仅添加if not not null

时间:2018-05-04 06:19:31

标签: ms-access

我正在尝试在表单中设置一个文本框,以显示一系列其他文本框的总和。如果没有值,我希望该框为空,但是需要显示任何值,即使只有一个贡献源有值。

假设有三个贡献框:txtScore1txtScore2txtScore3,以及总和框txtTotal。在数据出现在任何得分框之前,它们包含空值。所以我尝试将txtTotal的控制源设置为:

=Iif(Not IsNull([txtScore1]),[txtScore1])+
Iif(Not IsNull([txtScore2]),[txtScore2])+
Iif(Not IsNull([txtScore3]),[txtScore3])

但是如果所有三个都有值,那么这只给出一个值,就像任何东西+ Null = Null一样。如果我向它们添加0的FalsePart,txtTotal中的值总是 0,即使这三个都是空的。我在整个事情之前添加Iif(IsNull([txtScore1]) and IsNull([txtScore2]) and IsNull([txtScore3]),null,...,还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

NZ函数可以处理这种情况,假设您可以使用它:

=Iif(IsNull([txtScore1]) AND IsNull([txtScore2]) AND IsNull([txtScore3]),
     NULL,
     Nz([txtScore1], 0) + Nz([txtScore2], 0) + Nz([txtScore3], 0))

Nz是标准COALESCE函数的Access版本,如果第一个参数为NULL,则使用第二个参数作为值。查看Tech On The Net页面,了解如何使用它的一些示例。