我在MS Access 2013中创建了一个多项目表单,用于从查询中获取数据。我已经使用宏创建了过滤器,但问题是它们只有在组合框中才有效,rowsource只是文本而不是表的内容。在我的情况下,这不是实际原因,我有几十个条目,我不能只使用其中的文本值。
到目前为止,我在宏中创建过滤器:
"=[project number]='" & [Forms]![MyForm]![comboboxProject] & "'"
但它不起作用。我不知道是不是因为我有多个项目形式,而不是简单形式。顺便说一下,项目编号是我的数据列,只是文本。
经过数小时的调试后,我发现我的组合框有两列,一个是项目ID的隐藏列,另一列是项目编号。我尝试使用[comboboxProject] .Column(1),但它说没有定义函数Column。所以我需要找到一种方法,只从我的组合框中获取一列作为文本,问题就解决了。
非常感谢您的帮助!
答案 0 :(得分:1)
创建宏时,我使用应用过滤器而不是设置过滤器。 除此之外,代码的其余部分就像这样简单:
[project number]=[Forms]![MyForm]![comboboxProject]
答案 1 :(得分:0)
这应该有效:
Me.Filter = "[project number]='" & [Forms]![MyForm]![comboboxProject] & "'"
Me.FilterOn = True