2017-06-15 100 views
0

我知道這可能是我錯過的一件簡單的事情,但我希望你們都可以提供幫助。我試圖添加一個文本框到我的表單中,允許用戶輸入搜索條件並讓查詢過濾記錄以僅顯示那些符合條件的記錄。訣竅是我希望用戶能夠輸入信息並讓它檢查表單的所有字段並返回任何有效的記錄。在MS-ACCESS中創建交互式多字段搜索欄

我用我想檢查的字段設置查詢,我看了一些關於設置標準的教程,但他們都使用多個搜索欄。有沒有辦法做到只有1?

Like "*" Or [Forms]![Publications Page]![FilterBox] OR "*" 

這是我寫的標準表達式。它返回的記錄不是我想要的,並且在我改變[FilterBox]中的內容後似乎沒有改變。我有4個領域,我正在運行這個相同的標準。所有的想法和建議非常感謝!

謝謝!

+0

把一個'&'代替每個'或'的。將該標準表達式放在您要應用的每個字段下。 – June7

回答

0

產生的標準應該是這樣的

[LastName] Like '*searchtext*' Or [FirstName] Like '*searchtext*' Or ... 

那麼,你就必須建立一個單一的標準,這樣

Dim crit As String 

crit = " Like '*" & Replace(Me!FilterBox, "'", "''") & "*' " 

在REPLACE語句replces單引號(')2。這使用戶可以在搜索框中輸入撇號。

現在你必須創建整個標準

crit = "[Field1]" & crit & "Or [Field2]" & crit & "Or [Field3]" & crit & "Or [Field4]" & crit 
+0

這看起來像我試圖創建的感謝!對不起,另一個newb問題,但在這種情況下,我會把那個標準代碼放在哪裏?我可以在查詢的標準選項卡中進行調暗嗎?哦,我在任何時候都不需要撇號,所以我希望能夠簡化一些事情。 – Nogg

+0

我認爲這是一個窗體內的VBA代碼,您可以將此代碼放在過濾器文本框的AfterUpdate事件Sub中。在過濾器選項卡中,您必須在每個過濾器字段中輸入「Like」*「&[Forms]![Publications Page]![FilterBox]&」*「'。 –

+0

太棒了!它正在工作。只有一件事似乎是錯誤的。如果我在垃圾箱中輸入垃圾信息,它會返回一個隨機記錄。有什麼想法嗎? – Nogg