Access 2007 VBA:在查询参数中使用Form.Filter
问题描述:
我想根据用户的当前窗体过滤器创建并打开选择查询。我可以在VBA中通过解析表单的Me.Filter字符串,提取我需要的位并创建一个WHERE语句来实现。但是,加入所有必需的逻辑,标点符号和语法将会很痛苦。Access 2007 VBA:在查询参数中使用Form.Filter
所以我的问题,在我做这一切之前:是否有任何现有的功能来做到这一点?
谢谢。
答
也许我的评论有点神秘。
假设您的表单的记录来源是myQuery
。
的形式进行过滤,Me.Filter = myQuery.field1 LIKE 'asdf*' AND myQuery.field2 = 42
所以你的选择查询是例如
SELECT field1, field3
FROM myQuery
WHERE myQuery.field1 LIKE 'asdf*' AND myQuery.field2 = 42
或
myQuerydef.SQL = "SELECT field1, field3 FROM " & Me.Recordsource & _
" WHERE " & Me.Filter
所以我不太看是哪里的问题。
你的问题的答案是否定的,没有功能 - 但你不应该需要除了Me.Filter
以外的任何东西。
编辑由HansUp建议:
如果您的窗体的记录源目前是不是一个单一的查询,但一个SELECT语句,创建从SELECT语句命名查询,并使用查询作为记录源。
如果您使用表单的记录源作为select查询的基础,它不一定非常痛苦。 – Andre
谢谢,但源不是问题,我看不到任何方法从记录源属性中获取SQL WHERE字符串。 – Absinthe