使用宏过滤带有组合框的表单 - MS Access

Posted

技术标签:

【中文标题】使用宏过滤带有组合框的表单 - MS Access【英文标题】:Filter form with combobox using macro - MS Access 【发布时间】:2016-06-28 08:55:18 【问题描述】:

我在 MS Access 2013 中创建了一个从查询中获取数据的多项目表单。我已经使用宏创建了过滤器,但问题是它们只有在组合框中的行源只是文本而不是表的内容时才有效。在我的情况下,这不切实际,因为我有几十个条目,我不能只在其中使用文本值。

到目前为止,我在宏中有这个来创建过滤器:

"=[project number]='" & [Forms]![MyForm]![comboboxProject] & "'" 

但它不起作用。我不知道是不是因为我有一个多项目表格,而不是一个简单的表格。顺便说一句,项目编号是我数据的一列,只是文本。

经过几个小时的调试,我发现我的组合框有两列,一列是隐藏的,一列是项目的 id,一列是可见的,是项目号。我尝试使用 [comboboxProject].Column(1) 但它说函数 Column 未定义。所以我需要找到一种方法,从我的组合框中只获取一列作为文本,问题就会得到解决。

非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

当您创建宏时,我使用 Apply Filter 而不是 Set Filter。 除此之外,其余的代码就这么简单:

[project number]=[Forms]![MyForm]![comboboxProject]

【讨论】:

【参考方案2】:

这应该可行:

Me.Filter = "[project number]='" & [Forms]![MyForm]![comboboxProject] & "'" 
Me.FilterOn = True

【讨论】:

非常感谢您的快速回答。但是,它仍然不起作用。就像它没有过滤一样,因为它返回了表格的所有内容。 我在宏里写这个吗?在“设置过滤器”宏类别中,它具有“过滤器名称”、“位置条件”和“控件名称”。很抱歉提出这样的问题,但我对此真的很陌生。 啊,错过了,抱歉。我不做宏。

以上是关于使用宏过滤带有组合框的表单 - MS Access的主要内容,如果未能解决你的问题,请参考以下文章

来自组合框的 MS Access Like 查询

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

如何在 MS Access 2010 中使用 VBA 选择多值组合框的值?

MS ACCESS 过滤器组合框所有选项

使用单个表单组合框中的多列作为 MS Access 中的查询参数

带有不可选择组合框的 access2010 表单