在对由MS Access 2010 IIF语句产生的文本框值求和时解决#error

时间:2018-02-22 16:16:27

标签: ms-access ms-access-2010

附加的图像显示了在工厂中执行各种操作时的一堆时间戳。

FINISHED列值由下面发布的IIF语句填充。

=IIf(IsNull([DateStampCleaning]),0,IIf(([DateStampCleaning]>=[Forms]![frmIndividualBuildActivity]![txtFrom]) And ([DateStampCleaning]>=[Forms]![frmIndividualBuildActivity]![txtTo]+1),0,[quantity]))

如果“清洁已开始”中没有值,则列值设置为0。或者如果日期超出您在表格顶部看到的日期。

IIF语句似乎运行正常,但是当我尝试对该列进行SUM时,我只是得到#Error

为清楚起见 - 蓝色框中的项目显示为0,因为日期超出了我们的范围。红色框中的项目显示数量列中的数字。

包含IIF语句的文本框名为txtFinished,在底部的总框中(带圆圈)我只是在控件来源中有=Sum([txtFinished])

有人可以告诉我,我哪里出错了吗?

顺便提一下,左边的QTY总计完美无缺,直到我尝试总计看似奇怪的FINISHED列。

Enlarge

IMAGE LINK

非常感谢一些指示。

2 个答案:

答案 0 :(得分:1)

[quantity]更改为Nz([quantity])

0为空时,这将返回[quantity],确保求和的值始终为数字。

当省略第二个参数时,Nz函数将为空数字参数返回0,为空字符串参数返回空字符串("")。但是,您可以使用0

显式指定函数返回Nz([quantity],0)

答案 1 :(得分:0)

我想这应该是:

[DateStampCleaning]<=[Forms]![frmIndividualBuildActivity]![txtTo]