带有“全部”或“任何”选项的搜索组合框

Posted

技术标签:

【中文标题】带有“全部”或“任何”选项的搜索组合框【英文标题】:Search combo box with "All" or "Any" option 【发布时间】:2013-12-27 03:10:12 【问题描述】:

在 MS Access 中,我的表中有一个列,它使用下拉菜单选择字段的值,有六个可能的选项。我正在尝试在我的表单中创建相同的下拉菜单/组合框,以便在选择列表中的特定选项时过滤我的搜索查询。我已经做到了这一点,并且在这里没有问题。

但是,我希望在组合框中有一个选项,该选项将显示“任何”或“全部”,其行为方式将显示所有记录。就像当组合框最初为空白时,当没有选择任何内容并且查询显示所有记录时。

我在互联网上研究了几种方法来做到这一点,但我无法让它正常工作。

我已将 UNION 添加到我的 RowSource 查询中,如下所示:

SELECT [testtable].[colourtype] 
FROM   [testtable] 
UNION 
SELECT "any" 
FROM   [testtable]; 

我将此添加到我的AfterUpdate 活动中:

If Me.ColourT = "Any" Then
  strFilter = "*"
End If

这奇怪的是:它使我的组合框列表带有空白值,有六个空格(白色)并且没有文本。

编辑: 这是我在查询条件中的代码:

Like "*" & [Forms]![Search]![ColourT] & "*"

【问题讨论】:

在您从 ComboBox 中选择一个项目后,您能向我们展示所有代码吗?基本思想是在您选择一个值后设置过滤条件。如果所选值是“任何”或其他任何会重置条件的值,则删除过滤器 如果没有UNION,您是否获得了 ComboBox 中的颜色类型? @ravindraGullapalli 是的,没有“UNION”,它会在组合框中显示值,并且可以选择它们来过滤查询。 @Jeff 我已经添加了我在查询条件中使用的代码。我想这需要修改? 【参考方案1】:

最后,我根据here的建议让它工作了

这样构造查询

SELECT [id], [colourtype] 
FROM   [testtable] 
UNION 
SELECT 0, "any" 
FROM   [testtable];

并将此查询设置为组合框的行源

控制源属性中,选择colourtype

现在组合框显示值。希望这会有所帮助

【讨论】:

其实我直接得到它,没有任何括号。 我从头开始创建组合框,这是我现在的原始查询:SELECT [testtable].ID, [testtable].[colourtype] FROM [testtable] ORDER BY [testtable].[colourtype]; 我在你的例子中添加了 UNION,我在尝试打开组合框列表时遇到了这个错误:“两个选定表中的列数或联合查询的查询确实不匹配” 我从查询中删除了[testable].ID,现在我又回到了我最初描述的问题......组合框中的空白值。 我更改了查询。看看吧。

以上是关于带有“全部”或“任何”选项的搜索组合框的主要内容,如果未能解决你的问题,请参考以下文章

组合选项框和组合框以将记录添加到右表

使用带有数值的组合框访问过滤器表单

如何在文本框或组合框中显示多个值

MS ACCESS 过滤器组合框所有选项

Ms Access中的关键词搜索组合框

选择特定项目时的组合框信号