Access查询IIF语句未正确显示结果求助
Access查询IIf函数显示异常的解决方法
你的问题核心是Access里的空字段默认是Null,不是长度为0的空字符串。你写的Len([tbl_Associate].[NICKNAME])=0对Null值不生效——因为Len(Null)返回的是Null,Null和0比较的结果还是Null,IIf会把这个结果判定为False,所以不管Nickname是Null还是空字符串,都会返回Nickname字段的值,而Null值显示出来就是空。
给你三种可行的解决写法:
- 直接用IsNull判断是否为Null:
FirstName: IIf(IsNull([tbl_Associate].[NICKNAME]), [tbl_Associate].[FIRST_NAME], [tbl_Associate].[NICKNAME])
- 用Nz把Null转成空字符串再判断长度:
FirstName: IIf(Len(Nz([tbl_Associate].[NICKNAME],""))=0, [tbl_Associate].[FIRST_NAME], [tbl_Associate].[NICKNAME])
- 最简化的写法,直接用Nz函数一步到位(Nz的作用就是当第一个参数为Null时返回第二个参数):
FirstName: Nz([tbl_Associate].[NICKNAME], [tbl_Associate].[FIRST_NAME])
内容的提问来源于stack exchange,提问作者user16800302
相关产品推荐
相关产品推荐

