如果任何字段为空,则访问计算失败

时间:2012-09-24 11:12:28

标签: ms-access

我正在单个表上执行选择,我需要在一组相关字段中对该值进行总计,我在查询构建器的“字段”部分中有这个值。

  

TotalValue:   [FIELD1] + [FIELD2] + [FIELD3] + [FIELD4] + [字段5] + [字段6] + [字段7]

当我转到查询的“表格视图”时,我只得到一个计算,其中指定的所有字段都有值?但如果所有字段都有一个值,它就能完美运行。

为了查看这是否真的是这种情况我将每个字段插入到查询中,并且我得到一个缺少值的表。

显然不是我所期待的!

我错过了一些明显的东西吗?它与字段中的'null'值有关吗?

请提前帮助,请提供帮助

大卫

2 个答案:

答案 0 :(得分:4)

您需要使用Nz(Field,0)

包装每个字段
TotalValue : Nz([FIELD1],0)+Nz([FIELD2],0)+Nz([FIELD3],0)+Nz([FIELD4],0)+
Nz([FIELD5],0)+Nz([FIELD6],0)+Nz([FIELD7],0)

如果不允许为null,也可以为数值设置一个默认值为零的表。

答案 1 :(得分:-1)

Remu提供的答案让我得到了正确答案。

我尝试了Remu的解决方案,我收到了一条错误消息,一些额外的','不在应该的位置。

这是对代码的一个小修改,现在它读取......

  

NZ([DEBITN1D1])+ NZ([DEBITN2D1])+ NZ([DEBITN3D1])+ NZ([DEBITN4D1])+ NZ([DEBITN5D1])NZ([DEBITN6D1])+ NZ([DEBITN7D1] + )

由于我不知道这个特殊的功能,我给了Remu一个+1,我也找不到它!他/她的回答也让我找到了正确的解决方案。

大卫

编辑:

因此,在回应评论时,我衷心同意应该包括额外的信息。但是,当我在方法中有额外的变量时,我无法看到代码在我的情况下失败的原因吗?

鉴于此,我发现很难选择我的回答作为正确的答案(尽管Remou的原始失败并出现错误而我的代码没有)。

我想知道这是否是因为我在查询构建器中使用字段详细信息中的函数(而不是在报表或页面上的VB模块中使用它)。有没有人有任何方法我测试看原因是什么?