2016-06-21 95 views
0

我在Microsoft Access 2010中转换我的工作宏VBA脚本(也正在):访问VBA - 应用过滤器 - 多个OR条件

DoCmd.ApplyFilter "", "[Forename] Like ""*"" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & ""*""", "" 

我用同样的格式(我相信),试图扩展这个过滤与多个领域的工作,但它不工作:

DoCmd.ApplyFilter "", "[Forename] Like ""*"" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & ""*"" Or [Surname] Like ""*"" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & ""*""", "" 

这就是我的意思是不工作:如果我的数据是: [用的名字] [姓氏] 亚历克斯·鲍勃 克里斯院长

然后输入,例如“alex”或“a”,根本不会过滤结果。另一方面,只有一个过滤器的代码会缩小数据范围。

+0

是否有任何错误消息?你的意思是“不起作用”? –

+0

没有错误信息。我的意思是不工作: 如果我的数据是:姓氏:bobs,院长 然后键入,例如“alex”或“a”,根本不会过滤结果。另一方面,只有一个过滤器的代码会缩小数据范围。 – Idios

回答

3

你可以尝试另一种方法来应用过滤器:

me.filter = "[forename] like '*" & Me.StaffTotalSearchText & "*'" & _ 
" OR [surname] like '*" & Me.StaffTotalSearchText & "*'" 
me.filter =true 

编辑

由于@Andre有评论,我已经使用单引号(撇号)封装我的琴弦。您的vba应该与以下更改一起使用:

DoCmd.ApplyFilter "", "[Forename] Like '*" & _ 
    [Forms]![StaffTotalQuery]![StaffTotalSearchText] & "*'" & _ 
    " Or [Surname] Like '*" & [Forms]![StaffTotalQuery]![StaffTotalSearchText] & "*'" 
+0

关键是使用单引号作为标准分隔符,这个过滤器字符串也应该使用'DoCmd.ApplyFilter'。 @Idios – Andre

+0

第二个建议的方法就像一个魅力。非常感谢,安德烈和利亚姆! – Idios