IIf() 中的 IsNull 函数不起作用 - MS Access

IsNull function inside an IIf() not working - MS Access

我在查询中有一个字段用于检查用户如何在主窗体上输入日期。当第一个文本框被填写时,我试图让它像一个输入的日期,如果在第二个文本框中输入结束日期,它就像一个 日期范围 。因此,如果结束日期文本框为空,则应将其忽略,并且查询应 运行 就像仅在特定日期过滤一样。我使用了下面的表达式并且只输入了开始日期,所以它应该只将该字段视为按 1 个日期而不是范围进行过滤。但是查询 return 是空白的。 [Text0] 是开始日期,[Text3] 是结束日期。该字段是一个工作日期字段,仅用于 return 个来自该日期或日期范围内的工作编号。

示例:如果 [Text0] 设置为 4/20/2015 且 [Text3] 为空,则查询应 return 工作编号 A-18、B-18 和 C -18。如果 [Text0] 设置为 4/20/2015 且 [Text3] 设置为 4/27/2015,则查询应 return A-18、B-18、C-18、D -19、E-19、F-19。 -18 和 -19 之间的差异是它对应的星期。

=IIf((IsNull([Forms]![MainForm]![Text3])=True),[Forms]![MainForm]![Text0],Between [Forms]![MainForm]![Text0] And [Forms]![MainForm]![Text3])

我想你需要的是这样的:

Select JobNumber, ...
from Jobs
where JobDate >= [Forms]![MainForm]![Text0]
    and JobDate <= nz([Forms]![MainForm]![Text3],[Forms]![MainForm]![Text0])