根据多个组合框过滤查询,但如果组合框为空,则显示所有记录,包括空,

Posted

技术标签:

【中文标题】根据多个组合框过滤查询,但如果组合框为空,则显示所有记录,包括空,【英文标题】:Filter a Query based on multiple combo boxes but if combo box is blank show All records including empty, 【发布时间】:2018-10-09 18:02:58 【问题描述】:

我有一个表单和一个列表框,当用户从组合框中选择时,它会根据条件进行过滤。

列表框中的记录源是一个查询,所以我想过滤查询

我在查询设计器中使用过这段代码 Like " * " & [Forms]![Costumers]![PB_City] & " * " 为了从表格中获取部分文本 但如果该字段为空,则不会显示记录。

代码 Like " * " & [Forms]![AnyForm]![AnyThing] & " * " 省略了空白记录 因为我喜欢使用查询设计器 我想知道 SQL 的确切语法是什么或如何在查询设计器中工作 完成这项工作

【问题讨论】:

带有 AND 运算符的 LIKE 和通配符是正确的。如果字段为 Null,则计算字段以提供值并将条件应用于该字段。文本类型示例:Nz([fieldname],"") AS someName. 但是,通配符只对文本类型的字段有用,而不是数字或日期(日期实际上是一个数字)。评论allenbrowne.com/ser-62.html 在我的情况下,如果组合框为 = "" , 它的腰跑下 1000's field's 看看它们是否还是空白,会使它工作的计算机变慢 怎么会有上千个字段?你说的是记录吗?不管有多少字段有条件,仍然有相同数量的记录。您可能需要参考教程中演示的 VBA 方法。 我的意思是记录,但我的意思是查询将在每列中多次查看 1000 条记录 【参考方案1】:

我在查询设计器中找到了以下代码是什么工作类型:


如果您想用 SQL 编写,请查看这个问题,

点击此链接 https://***.com/a/38899574/9661307

或https://***.com/a/38852152/9661307


在查询设计器中执行以下操作

在您的专栏下,您执行标准

Like "*" & [Forms]![myForm]![myControl] & "*" OR [Forms]![myForm]![myControl] Is 
Null 

【讨论】:

但如果您使用多列查询设计器,您可能会导致查询设计器自动复制相同的 代码 一行接一行,如下所示 Like " * " & [Forms]![myForm]![myControl] & " * " Like " * " & [Forms]![myForm]![myControl] & " * " Like " * " & [Forms]![myForm]! [myControl] & " * " Like " * " & [Forms]![myForm]![myControl] & " * " 或更多,还有一堆带有代码的新列 ([Forms]![myForm]![myControl] ) , 多行 Is Null Is Null Is Null

以上是关于根据多个组合框过滤查询,但如果组合框为空,则显示所有记录,包括空,的主要内容,如果未能解决你的问题,请参考以下文章

如果组合框为空,则 Excel 宏中的警告消息

访问报告中的绑定组合框为空

从表单上的多个组合框控制 Access SQL 查询

Datagridview 组合框为空

如果组合框为空,combobox.removeAllItems 方法会抛出异常吗? [关闭]

通过连续形式访问循环