带有“全部”或“任何”选项的搜索组合框
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
,现在我又回到了我最初描述的问题......组合框中的空白值。
我更改了查询。看看吧。以上是关于带有“全部”或“任何”选项的搜索组合框的主要内容,如果未能解决你的问题,请参考以下文章