我有一个从单个表中生成的查询。使用表单来为我的查询设置标准我遇到了空值问题。我会在下面简化我的问题。访问查询以包含所有值,包括空值
表 [许可证] 的表称为许可证。有一个字段我想过滤,称为状态。在“状态”字段中,有以下条目:空值,“已完成”和“已取消”。本质上,空值表示许可证状态已打开。
在表单中: [FormQuery] 该表单称为FormQuery,并具有允许用户为其查询选择条件的复选框。该表格有四个复选框,名称分别为:全部,已完成,已打开,已取消。
查询中:通过[Permits]过滤![Status] 查询中有许多字段。与性判据的唯一字段是输入(Permits.Status)。以下标准:
In (IIf([Forms]![FormQuery]![Completed]=True,"COMPLETED",""),
IIf([Forms]![FormQuery]![Cancelled]=True,"Cancelled",""),
IIf([Forms]![FormQuery]![All]=True,[Permits]![Status],""))
据我了解IN(...)
是设置的标准的列表。标准取决于形式检查,如在[Forms]![FormQuery]![Completed]=true
部分中所见。如果该框被选中,则传递一个字符串,否则为“”空值。所以当刚刚完成检查时,该列表看起来像In (completed)
表单工作。当我选中“完成”复选框时,查询将显示全部完成。它与取消和全部复选框的工作方式类似。一个问题是,在最后一行中找到的代码,特别是[permits]![status]
部分的代码只会引出填充的条目,并且空值被遗漏。
我将如何搜索空值以及如何在所有查询中包含空值?
任何帮助将不胜感激。
感谢您的参考。我觉得我所做的实质上是参数查询并将输入限制在表单上找到的内容。我是否正确地认为? 此外,如果我输入代码: – Dre 2014-09-19 21:12:52
另外,如果我尝试: IIf([Forms]![FormQuery]![打开] =真,为空,“”) 我得到了:这个表达式输入错误,或者它太复杂,无法评估。例如,数字表达式可能包含太多复杂的元素。尝试通过将部分表达式分配给变量来简化表达式。 当删除所有条件并开始新鲜时,我可以输入条件为空并获取所有空值 – Dre 2014-09-19 21:20:16