使用复选框过滤访问查询的 IIF 语句

问题描述

我正在处理基于单个表格的搜索表单。我主要在查询设计视图中工作。我想在表单上有一个复选框,所以如果它被选中(true),它只会返回 setID 为 Null 的记录。如果未选中 (false),则无论 setID 中是否存在值,它将返回所有记录。在编写 iif 语句时寻求一些帮助(我对此非常非常陌生)。

源表:库存 字段:集合ID 形式:frmSearchInventory 表单控件:ckExcludeSet

iif(Forms!frmSearchInventory!ckExcludeSets = true,Inventory.SetID is Null,Inventory.SetID is not Null)

关闭?此外,在查询设计视图中,我是否需要在条件行中添加任何内容?非常感谢!

解决方法

对于动态查询,计算一个返回 SetID 或代替 null 的值的字段:Nz(SetID,"N")

然后是该计算字段下的条件:

LIKE IIf(Forms!frmSearchInventory!ckExcludeSets,"N","*")

可以为三重状态设置未绑定的复选框。确保您的只允许 True 或 False,从不允许 Null - 将 TripleState 属性设置为 No。将 DefaultValue 属性设置为 True 或 False。