微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MS Access 查询:使用传递的参数记录列表或参数“ALL”生成整个列表

如何解决MS Access 查询:使用传递的参数记录列表或参数“ALL”生成整个列表

我正在尝试将参数传递给我在标准字段中的查询。该参数包含在组合框 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
        )
    )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。