MS Access:舍入 IIf 语句时出错

当 IIf 条件为假时,此 Round 语句会产生错误,当 IIf 条件为真时,它会起作用。

我对 SQL 的经验非常有限。我从一位退休的同事那里继承了这个我正在尝试调整的 Access DB,所以我一直在暗中拍摄故障排除和拼凑语法。

这是我试图开始工作的回合声明:

Round(IIf([Manual] is Not Null,[Manual]/180,[MemberDays]/180),3) AS [%ADM]

故障排除编辑:

Round(IIf([Manual] is Not Null,180/180,100/180),3) AS [%ADM]

Manual 字段由此语句创建(不确定是否相关,但我认为我会包括在内):

IIf(([2-billing-Prep Export]!wth_date) Is Not Null,[MemberDays]-[Session Cum]+1,"")) AS Manual

预期结果:如果 Manual 不为空,%ADM 将填充 Manual/180 到 3 dec pts。如果 Manual 为空,%ADM 将填充 MemberDays/180 到 3 dec pts。

实际结果:该语句在 Manual 不为 null 时有效,但当 Manual 为 null 时,%ADM 填充为 #ERROR。Google 告诉我这是因为计算中的一个字段为空……但 MemberDays 永远不会为空。

故障排除编辑的结果:%ADM 被填充,就好像条件始终为真,即使对于 Manual 为或看起来为 null 的记录也是如此。我很困惑,因为在进行故障排除编辑之前,条件似乎识别了手册中的空/非空值。

沃尔夫冈·凯斯

在一个IIf表达式中,true-part 和 false-part 都会被求值,如果其中之一不能被求值,则返回一个错误。在您的情况下,您认为有时Manual可能Null会如此,但我不这么认为......因为在IIffor公式中Manual,您在应该返回时返回一个空字符串Null空字符串不能被数字分割。所以:

将该Manual字段的表达式更改

IIf(([2-billing-Prep Export]!wth_date) Is Not Null,[MemberDays]-[Session Cum]+1,Null)) AS Manual

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MS Access溢出错误

来自分类Dev

使用MS Access插入C#语句

来自分类Dev

使用vs 2010和MS Access运行报表Northwind时出错

来自分类Dev

Access中的iif()语句

来自分类Dev

MS Access SUMIIF to SQL CASE语句

来自分类Dev

使用BETWEEN的IIF语句

来自分类Dev

TablixFilter中的IIF语句问题

来自分类Dev

SSRS IIF语句的行为异常

来自分类Dev

MS Access查询:在Switch函数或IIF函数中使用Select语句

来自分类Dev

嵌套的IIf语句可以工作,但是Switch语句在MS Access中产生“溢出”错误。为什么?

来自分类Dev

循环语句中的函数IIF

来自分类Dev

SQL MS-Access中带有IIF和IsNull的动态Where条件

来自分类Dev

编写Iif语句以更新表

来自分类Dev

从MS Access数据库获取日期时出错?

来自分类Dev

MS Access 2013:嵌套的IIF语法错误

来自分类Dev

MS Access选择..进入语句混乱

来自分类Dev

Access中的iif()语句

来自分类Dev

MS Access转换语句计算字段

来自分类Dev

TablixFilter中的IIF语句问题

来自分类Dev

如何在SQL Server中转换或重写Access IIF语句

来自分类Dev

#Func!MS Access中的iif查询错误

来自分类Dev

INSERT INTO语句以匹配行-MS Access SQL

来自分类Dev

MS Access SQL查询中的奇怪IIF

来自分类Dev

MS Access中的IIf错误

来自分类Dev

IIf语句比较计算值

来自分类Dev

MS Access-“在表达式中找不到名称...”错误-IIf CDbl语句

来自分类Dev

将数据插入 MS Access 表时出错

来自分类Dev

MS Access 2010 - 通过时间戳过滤时出错

来自分类Dev

如果语句在 ms-access 2016 中出错