Access Query Dlookup不返回值#error

时间:2018-02-01 15:51:59

标签: ms-access access-vba iif

尝试简短而甜蜜,我的问题是在尝试填写FEDWire或国际电汇的相关信息时,Access Query中的以下函数给出的#Error:

IIf(IsNull([BeneABA]),DLookUp("Code","tblCountryCodes","[Country]=" & [Intl_BeneBankCountry]),DLookUp("State","qryFEDWIRE","RoutingNumber=" & [BeneABA]))

当填写BeneABA时,此功能成功。根据银行的ABA /路由信息,它返回正确的“状态”。当ABA为空时,想法是拉出2位数的国家“代码”(国际线路将具有swiftID,因此不是ABA)。

正如我在此picture和此picture中所示,当没有BeneABA时,我得到#Error。在这个例子中,#Error应该从tblCountryCodes中拉出“HK”,在那里它寻找“香港”并返回“代码”

以下是查询与相关表格的关系构建器:Picture

如果用户放入该国家,是否有人有任何建议或知道更好的方法用Code填充此字段?

1 个答案:

答案 0 :(得分:1)

假设您的国家/地区是文本,请尝试在条件周围添加一些引号;

IIf(IsNull([BeneABA]),DLookUp("Code","tblCountryCodes","[Country]='" & [Intl_BeneBankCountry] & "'"),DLookUp("State","qryFEDWIRE","RoutingNumber=" & [BeneABA]))

如果这是一个文本而不是一个数字,你需要在RoutingNumber周围做同样的事情。

您还可以将查找包装在Nz()函数中,以更优雅地处理空返回。

Nz(DLookup(...),"No Value")