DLOOKUP 在 IIF 语句中返回 #NAME?错误



我有一个表单,用于报告表中的数据。对于我的文本框控件,我必须使用 DLOOKUP 来显示所需的值,否则它会显示索引号。这是我为文本框准备的代码,它确实显示了值:

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

目前为止,一切都好。我现在遇到的问题是,如果存在空值,DLOOKUP 会返回一个 #Error 代码。

我找到了使用 IIF 语句和 ISNULL 的解决方案:

IIf(IsNull([WELL_MASTER]![FIRST_FRM_FK]),"",DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]))

当我在查询中尝试此操作时,它效果很好;但是,当我将表达式放在文本框控件中时,DLOOKUP 返回 #Name 错误。

关于如何解决此问题的任何建议?谷歌foo又让我失望了。

谢谢!

更新:

好的,我已经尝试了以下方法:

每薄荷:Nz(DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0)

DLookup 函数部分工作,但空值返回为 #Error。

每科斯塔斯 K:Nz(DLookUp("FORMATION_NAME","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0)

和明蒂的建议一样。

使用 Is Null 与 ISNULL 函数包装在 IIF 语句中:

IIf([WELL_MASTER]![FIRST_FRM_FK] Is Null,"",DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]))

我回到了DLookup函数返回 #Name 错误的原始问题。

这是一件奇怪的事情 - 如果 IIF 语句表达式在查询中,它们就会起作用。当我将表达式复制到文本框控件时,DLookup 失败。DLookup 函数在文本框表达式中工作正常,只要它周围没有任何包装。当您将其放入 IIF 语句中的那一刻,它就会停止工作。

关于它不喜欢的文本框控件的任何想法?

谢谢Minty和Kostas K试图帮助我解决这个问题。 :)

使用 Nz(( 函数

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

最新更新