DLOOKUP返回#NAME? IIF声明中的错误

时间:2017-08-22 15:25:44

标签: ms-access textbox ms-access-2013

我有一张表格用于报告表格中的数据。对于我的文本框控件,我必须使用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函数部分可以工作,但是null返回为#Error。

Per Kostas K:Nz(DLookUp("FORMATION_NAME","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0)

与Minty的建议相同。

使用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试图帮助我解决这个问题。 :)

1 个答案:

答案 0 :(得分:0)

使用Nz()函数

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