MS Access:舍入IIf语句时出错

时间:2019-01-31 17:19:32

标签: sql ms-access

当IIf条件为false时,此Round语句将产生错误,当IIf条件为true时将起作用。

我在SQL方面的经验非常有限。我从一个退休的同事那里继承了我正在尝试调整的Access DB,所以我一直在进行故障排除和语法拼写方面的工作。

这是我要开始工作的Round声明:

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]

“手动”字段是通过以下语句创建的(不确定是否相关,但认为我会添加):

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

预期结果:如果Manual不为null,则%ADM将以Manual / 180填充到3 decpts。如果Manual为null,则%ADM将填充MemberDays / 180至3 dec pts。

实际结果:如果Manual不为null,则该语句有效,但是Manual为null时,%ADM填充#ERROR。 Google告诉我这是因为计算中的字段之一为null ...但是MemberDays绝不会为null。

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

1 个答案:

答案 0 :(得分:0)

^https?:\/\/([^\/]+\.)?(mysite\.com|asite\.com)\/ 表达式中,对真部分和假部分都进行求值,并且如果其中之一不能求值,则返回错误。在您的情况下,您认为IIf有时可能是Manual,但我不这样认为...因为在Null的{​​{1}}公式中,您返回了空字符串,应返回IIf。空字符串不能除以数字。因此:

Manual字段的表达式更改为

Null