IIF()内的IsNull函数无效 - MS Access

时间:2015-04-30 18:13:09

标签: mysql date ms-access isnull

我在查询中有一个字段,用于检查用户在主窗体上输入日期的方式。我想在填写第一个文本框时将其设置为单个输入日期,如果在第二个文本框中输入结束日期,则将其设置为日期范围。因此,如果结束日期文本框为空,则应忽略它,并且查询应该像仅在特定日期过滤一样运行。我使用了下面的表达式并且只输入了开始日期,所以它应该只考虑将字段过滤1个日期而不是范围。但查询返回空白。 [Text0]是开始日期,[Text3]是结束日期。该字段是一个作业日期字段,仅用于从该日期或日期范围内返回作业编号。

示例:如果[Text0]设置为4/20/2015且[Text3]为空,则查询应返回作业编号A-18,B-18和C-18。如果[Text0]设置为2015年4月20日且[Text3]设置为4/27/2015,则查询应返回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])

1 个答案:

答案 0 :(得分:1)

我认为你需要的是这样的:

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