我正在尝试在表单中设置一个文本框,以显示一系列其他文本框的总和。如果没有值,我希望该框为空,但是需要显示任何值,即使只有一个贡献源有值。
假设有三个贡献框:txtScore1
,txtScore2
和txtScore3
,以及总和框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,...
,还是有更好的方法?
答案 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页面,了解如何使用它的一些示例。