如何使用 setfilter 和基于组合框的访问报告?

Posted

技术标签:

【中文标题】如何使用 setfilter 和基于组合框的访问报告?【英文标题】:How to use setfilter with access report based on combox? 【发布时间】:2017-05-23 06:33:49 【问题描述】:

我有一个表格 (form1) 。 我有一个报告 (report1),这个报告有 4 个字段:

身份证 NameEmp 数据招聘 工资

我需要根据form1 中的组合框(名为cboname)中的用户选择来过滤此报告。

如何根据cbonamereport1设置一个只包含NameEmp的过滤器?

我已经尝试过使用这个 VBA 代码:

DoCmd.Setfilter Where condtion :- [NameEmp]= forms!Form1 [cboname]
Event: On Open_Report1

非常感谢。

【问题讨论】:

欢迎来到 ***。在提问之前,您应该考虑阅读How to Ask 指南。有关该站点的更多信息,您可以访问tour 页面。 抱歉,您发布的代码不是 VBA(至少,它违反了 VBA 的多个语法规则)。这让我很难理解您正在尝试做什么并对您的代码进行故障排除。在尝试将 VBA 代码集成到数据库之前,请先尝试遵循 VBA 教程。 谢谢,Erik 先生,但我对 VBA 代码不感兴趣,我想说的是:我想通过使用组合框根据用户选择为我的报告设置一个过滤器。因此,如果用户选择第一个选项,则报告将根据此选择进行过滤,但如果用户确实选择了任何内容,则报告将打开所有信息而无需任何过滤。就是这样。 【参考方案1】:

查询报告并在 ID 条件下放置 [forms]![form1]![cboname]

感谢您的帮助,但这仍然不是我想要的,因为如果我想构建许多组合框,这意味着我必须为许多组合框构建许多查询。 第二:见下例: 如果我建立一个包含多个字段的查询(我会将您的条件放在每个字段的前面):

    ID [forms]![form1]![cbonID] NameEmp [forms]![form1]![cboname] dataHiring [forms]![form1]![cbodataH] 工资 [forms]![form1]![cboSal] 访问将根据标准运行查询,现在我明白了,但是,如果用户想要所有员工姓名以及 2012 年之前的招聘数据怎么办。如果用户还选择所有工资高于 3000 美元的所有信息(ID、NameEmp ,dataHiring)..等等。 一份报告的多项选择,这意味着很多查询!!! 我想设置过滤器,如果用户没有选择任何内容,则删除应用的过滤器。

【讨论】:

这不是我想要的。

以上是关于如何使用 setfilter 和基于组合框的访问报告?的主要内容,如果未能解决你的问题,请参考以下文章

如何将组合框的值转换为 vba 模块中的字符串?

如何过滤表单中具有多个组合框的 Access 子表单?

返回未绑定访问组合框的先前值

基于另一个组合在 ExtJs 中的 EditableGrid 中设置组合框的存储

如何在访问中禁用组合框上的自动完成功能?

组合框的访问选择查询并不总是评估复选框值