Access多条件IIf And语句实现0/1赋值返回全0问题求助
问题原因
你写的表达式存在两个核心问题:
- 两个
IIf的判断逻辑是完全互斥的,Session_ID<154和Session_ID>=154不可能同时成立,所以两个IIf永远有一个返回"0",用And连接两个返回值做逻辑运算,最终结果自然永远为0 - 你返回的是字符串格式的"1""0",直接做逻辑运算也可能出现类型匹配异常,导致结果不符合预期
修正后的写法
你的需求是按Session_ID的区间二选一判断,直接嵌套一层IIf即可实现:
' 返回数字类型的1/0 IIf([Session_ID]<154, IIf([Level_Avg]>[Current_Lvl], 1, 0), IIf([Exam_Avg]>2, 1, 0))
如果需要返回文本格式的"1"/"0",把表达式里的1、0替换为带双引号的"1"、"0"即可。如果业务规则中Session_ID≥154时允许Exam_Avg等于2也返回1,把[Exam_Avg]>2调整为[Exam_Avg]>=2即可。
内容的提问来源于stack exchange,提问作者jhahn
相关产品推荐
相关产品推荐

