1

我正在处理一个报告标题,我想在文本字段中显示选定的查询参数。具体来说,用户访问一个表单,选择可用组合框的任意组合,然后单击提交按钮将选择的参数传递给将用于生成报告的查询。

在表单中,组合框显示来自查找查询的记录。例如,我的参数之一是状态。Status 组合框的行源有一个名为 qry_StatusLookup 的行源,它只是对 Status 表的查询。这将在组合框中显示动态结果。组合框列数为 2,列宽设置为 0;"1"。这将绑定 ID 列(不是名称列),以便在用户提交选择时将 ID 号传递给查询。

在我的报告标题中,我有相同的字段,这些字段应该反映在传递给查询的表单中选择的参数。例如,标题中的状态文本框设置为控制源为:

=DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & [Forms]![frm_ParameterSelection]![cboStatusLookup])

这将显示所选参数的名称而不是 ID 号。当我提交表单时,值会传递给查询并显示报告。如果在表单上选择了状态,那么它将成功显示。但是,如果用户没有选择状态,则查询将成功运行(通过不按状态过滤),并且报告是正确的,但应该显示所选状态参数的标题字段将显示为#Error。

我试图将 Dlookup 包装在一个 NZ 函数中,但这仍然显示#Error is the parameter is not selected from the form。但是如果从表单中选择参数,则状态将成功显示。

我的 Nz 函数的语法有问题吗?

=Nz(DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & [Forms]![frm_ParameterSelection]![cboStatusLookup]),"")

或者,传递给查询的空组合框值在技术上不为空吗?

4

1 回答 1

1

错误不为空,您将 包装在DLookUpNz,而不是字段中,DLookUp如果字段为 Null,则返回错误

尝试以下操作:

DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & Nz([Forms]![frm_ParameterSelection]![cboStatusLookup], 0))

(我假设 0 不会出现在您的Status_ID列中。或者,您可以使用Iif(IsNull([frm_ParameterSelection]![cboStatusLookup]),

于 2017-11-30T18:51:39.127 回答