代码之家  ›  专栏  ›  技术社区  ›  Heather

DLOOKUP返回#NAME?IIF语句出错

  •  0
  • Heather  · 技术社区  · 7 年前

    我有一个表单,用于从表中报告数据。对于我的文本框控件,我必须使用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帮我解决这个问题。:)

    1 回复  |  直到 7 年前
        1
  •  0
  •   Minty    7 年前

    使用Nz()函数

    Nz(DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0)