问题描述
我正在尝试将参数传递给我在标准字段中的查询。该参数包含在组合框 cboReportSender 的表单中。 cboReportSender 包含我为其运行报告的部门列表。列表中还包含“ALL”。选择此项后,我希望报告显示所有记录。我确定查询正在寻找一个字面上包含“Like *”的字段 我是不是从错误的角度来看这个?
IIf([Forms]![frmRunReport]![cboReportSender]=Trim(" ALL"),"Like *",[Forms]![frmRunReport]![cboReportSender])
解决方法
首先,我想知道您的组合框是选择了数字值还是字母数字值。但是,当我创建一个用于测试的数据库时,与运算符 Like *
结合使用时都不适合我。我需要输入 Like '\*'
,在星号前后各加一个引号。
更妙的是,添加带有数字和字母数字值的这个倒逗号的作品。
我需要更改的第二件事是添加第二个类似操作符。最后,您的标准将变为:IIf([Forms]![frmRunReport]![cboReportSender]=Trim(" ALL"),"Like '*'","Like '" & [Forms]![frmRunReport]![cboReportSender] & "'")
考虑在组合框选择 ALL
时返回字段本身。
SELECT ...
FROM ...
WHERE myDepartmentField = IIf(
TRIM([Forms]![frmRunReport]![cboReportSender]) = 'ALL',myDepartmentField,TRIM([Forms]![frmRunReport]![cboReportSender])
)
如果组合框为空,则使用 NZ
默认为字段本身。
WHERE myDepartmentField = IIf(
TRIM([Forms]![frmRunReport]![cboReportSender]) = 'ALL',TRIM(
NZ(
[Forms]![frmRunReport]![cboReportSender],myDepartmentField
)
)