【发布时间】:2018-10-01 19:21:49
【问题描述】:
我有一个访问数据库,其中有一个显示质量评估的表格。我希望用户能够单击一个复选框(flgFailed),它只会向他们显示失败的 QA。失败的字段名是 MovedToResolution,它是一个复选框,0 是失败。如果未选中此项,我希望他们查看所有 QA,无论其失败状态如何。我基于网络搜索尝试了如下 IIF 语句...
IIf([Forms]![MainMenu]![ManagersMenu].[Form]![flgFailed]=0,[MovedToResolution] Is Null,[MovedToResolution]=False)
...在字段名称中,在此表达式的条件中具有 False。
但是当我运行查询时,无论是否检查了 flgFailed,我都没有得到任何记录。当我在没有这个表达式的情况下运行查询时,它运行良好。我还尝试用 -1/0 替换 True/False 的值,但没有运气。任何帮助,将不胜感激。
【问题讨论】:
-
Yes/No 字段永远不会为 Null。它们是 -1 或 0。因此,如果您想要所有记录,需要删除条件或尝试使用 * 通配符 LIKE。我从不使用动态参数化查询。查看allenbrowne.com/NoYesNo.html 和allenbrowne.com/ser-62.html
-
对不起,我希望查询条件为空,而不是复选框字段。我正在尝试获取一个查询,我有时可以限制为只是失败的响应。当我想查看真假记录时,我需要查询中的条件为空。
-
运算符(=、LIKE、Is Null 等)不能是动态的。您的 IIf 条件正在尝试更改运算符。 Olivier 的回答看起来很有希望。
标签: ms-access