【发布时间】:2017-08-22 15:25:44
【问题描述】:
我有一个表格用来报告表格中的数据。对于我的文本框控件,我必须使用 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 错误。
关于如何解决此问题的任何建议? Google 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)
与 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 试图帮助我解决这个问题。 :)
【问题讨论】:
-
如果这是一个查找字段,您可以使用组合框直接显示该值。或者使用 Nz() 函数
Nz(DLookUp("[FORMATION_NAME]","R_FORMATIONS","[FORM_ID]=" & [FIRST_FRM_FK]),0) -
谢谢,明蒂!不能为此使用组合框,但您的 Nz 功能有效。我以前试过这个,但一定是结构不正确。
-
该死!我认为它有效,但是当我查看表中的测试记录时,测试空字段中有一个 0。我将其清除并在表单中再次查看并收到#Error 消息。 DLookup 部分工作,但 NZ 部分不工作。还有其他想法吗?
-
从
FORMATION_NAME中删除[]括号。
标签: ms-access textbox ms-access-2013