我正在处理报告标题,我想在文本字段中显示所选的查询参数。具体而言,用户访问表单,选择可用组合框的任意组合,然后单击提交按钮将所选参数传递给将用于生成报告的查询。
在表单中,组合框显示查询查询中的记录。例如,我的一个参数是Status。 Status组合框的行源有一个名为qry_StatusLookup的行源,它只是Status表的查询。这将在组合框中显示动态结果。组合框列数为2,列宽设置为0;“1”。这会绑定ID列(而不是名称列),以便在用户提交选择时将ID号传递给查询。
在我的报告标题中,我有相同的字段,应该反映在传递给查询的表单中选择的参数。例如,标题中的“状态”文本框设置为控制源为:
=DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & [Forms]![frm_ParameterSelection]![cboStatusLookup])
这显示所选参数的名称而不是ID号。当我提交表单时,值将传递给查询并显示报告。如果在表单上选择了状态,则它将成功显示。但是,如果用户未选择状态,则查询将成功运行(不按状态过滤),并且报告正确,但应显示所选Status参数的标题字段将显示为#Error。 / p>
我试图将Dlookup包装在NZ函数中,但这仍然显示#Error是未从表单中选择参数。但是,如果从表单中选择参数,则状态将成功显示。
我的Nz函数的语法有问题吗?
=Nz(DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & [Forms]![frm_ParameterSelection]![cboStatusLookup]),"")
或者,传递给查询的空组合框值在技术上是否为空?
答案 0 :(得分:0)
错误不为空,您将DLookUp
包裹在Nz
中,而不包含在字段中,如果字段为空,则DLookUp
会返回错误
尝试以下方法:
DLookUp("[Status_Name]","tbl_Status","[Status_ID] =" & Nz([Forms]![frm_ParameterSelection]![cboStatusLookup], 0))
(我假设您的Status_ID
列中没有0。或者,您可以使用Iif(IsNull([frm_ParameterSelection]![cboStatusLookup]),
)