2016-06-21 89 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