我有一个表单,用于从表中报告数据。对于我的文本框控件,我必须使用DLOOKUP来显示我想要的值,否则它会显示索引号。下面是我为文本框编写的代码,它确实显示了值:
DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK])
到目前为止,一切顺利。我现在遇到的问题是,如果有空值,DLOOKUP会返回一个#错误代码。
我找到了一个使用IIF语句和ISNULL的解决方案:
IIf(IsNull([WELL_MASTER]![FIRST_FRM_FK]),"",DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]))
当我在查询中尝试这一点时,效果很好;然而,当我将表达式放入文本框控件时,DLOOKUP返回一个#Name错误。
谢谢
每分钟:
Nz(DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0)
DLookup函数部分工作,但null作为#错误返回。
Nz(DLookUp("FORMATION_NAME","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0)
与Minty的建议相同。
使用Is Null VS ISNULL函数包装在IIF语句中:
IIf([WELL_MASTER]![FIRST_FRM_FK] Is Null,"",DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]))
奇怪的是,如果IIF语句表达式在查询中,它们就会工作。当我将表达式复制到textbox控件时,DLookup失败。DLookup函数在文本框表达式中工作良好,只要没有任何内容围绕它。一旦你把它放入IIF语句中,它就会停止工作。
关于它不喜欢的文本框控件,有什么想法吗?
谢谢Minty和Kostas K帮我解决这个问题。:)