【问题标题】:Resolve #error when summing text box values that result from an MS Access 2010 IIF statement在对 MS Access 2010 IIF 语句产生的文本框值求和时解决 #error
【发布时间】:2018-02-23 03:05:32
【问题描述】:

所附图片显示了在工厂采取各种行动时的一堆时间戳。

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

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

如果“清洁开始”中没有值或日期不在您在表单顶部看到的日期,则该列值设置为 0

IIF 语句似乎工作正常,但是当我尝试对列求和时,我只是得到#Error

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

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

谁能告诉我我哪里出错了?

顺便说一句,左侧的 QTY 总数非常有效,直到我尝试将看起来很奇怪的 FINISHED 列总数。

Enlarge

将非常感谢一些指点。

【问题讨论】:

  • 确保您尝试对其进行数学运算的所有值都是非空值和数字。
  • 非常感谢。这个问题涉及的框 - 以及我正在执行求和的框 - 是“[txtFinished]”,其格式为“固定为 0 个小数位”。我尝试将其更改为通用编号,但这没有帮助。构成总和一部分的另一个框“数量”也是“通用数字”。我同意你关于 Null 的观点,但据我所知,假设我做得正确,我的 IIF 语句用零代替 Null?
  • Incidentally, the QTY total on the left works perfectly until I try and total the FINISHED column which seems strange. 这是标准的访问行为,如果一个聚合失败,它们都会失败。
  • 感谢大家迄今为止的意见,尽管这些答案都不能解决问题。

标签: ms-access ms-access-2010


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢。 qty 上没有空值,实际上该表中的所有 4024 行都有一个数值(我刚刚检查过):-)
【解决方案2】:

我想这应该是:

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

【讨论】:

  • 谢谢 Gustav.... 好地方。我也有我的真实部分和错误部分:0)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2018-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多