Access表Calculated Field嵌套IIF表达式语法错误排查求助
Access计算字段嵌套IIF表达式错误修正
原表达式存在的错误点
- 空值判断语法错误:
Is Null是字段判断的后缀,不能拆分作为IIf的独立参数,正确写法是[JPP-JPA_Received_Date] Is Null - 逻辑运算符位置错误:AND是用来拼接两个判断条件的,需要放在IIf的第一个参数(逻辑判断位)内部,不能放在参数之间
- IIf函数参数缺失:Access的IIf函数必须完整包含「判断条件、成立返回值、不成立返回值」三个参数,你最内层的IIf少了条件不成立时的返回值
- 逻辑顺序不合理:空值判断需要放在最外层优先执行,否则前面的日期比较运算遇到空值会返回无效结果,触发计算错误
修正后的表达式
IIf([JPP-JPA_Received_Date] Is Null And [JPP-JPA_Due_Date] < Date(), "Over Due", IIf([JPP-JPA_Received_Date] <= [JPP-JPA_Due_Date], "On Time", "Late"))
优化说明:因为第一个判断已经覆盖了收件日期为空的场景,后续判断默认收件日期有有效值,不需要再嵌套第三层IIf,简化了结构同时避免了逻辑冗余。
内容的提问来源于stack exchange,提问作者Taruna
相关产品推荐
相关产品推荐

