2017-07-18 72 views
0

我正在嘗試從組合框中編寫部分文本匹配來過濾表單。訪問表單組合框部分過濾器

這就是我正在寫:

"[FieldName1] Like '*" & Replace(Me.cboFindRecord.Text, "'", """) & "*' OR [FieldName2] Like '*" & Replace(Me.cboFindRecord.Text, "'", """) & "*'" 

當我離開這行的VBA代碼,我在第二屆&「得到一個錯誤*‘突出了單引號’,它說編譯錯誤:?預計表達

任何人都知道我做錯了,我一次又一次地檢查了引號和雙引號

回答

1
, """) 

不是有效的〜應變。 G。

如果你想使用雙引號字符,這將是

"[FieldName1] Like '*" & Replace(Me.cboFindRecord.Text, "'", """") & "*' OR ..." 

(字符串中的轉義雙引號)

但逃逸單引號的常用方法是使用兩個單報價:

"[FieldName1] Like '*" & Replace(Me.cboFindRecord.Text, "'", "''") & "*' OR ..." 
+0

謝謝。無論如何,我意識到我並不需要替換。人們不會試圖將單引號放入過濾器中。我浪費了我的時間,但至少你幫助我擺脫了我自己的方式哈哈哈。 – missscripty

+0

嘿:)但我不會依賴那個,用戶可以巧妙。在使用SQL連接變量時,可以使用Gustav的['CSql()'函數](https://stackoverflow.com/a/36494189/3820271),它使所有這些轉義和格式化變得更加痛苦。 – Andre

+0

謝謝。我的東西仍然無法正常工作,但我可能會以錯誤的方式解決問題。只需要用戶能夠輸入任何東西到一個組合,並讓它1)自動擴展(屬性設置爲是)和2)在顯示的列過濾器中的任何值匹配字符串的任何部分,所以用戶可以過濾到位。繼續收到錯誤,但我正在調試通過它們的方式。不幸的是,當我輸入時,我得到錯誤,因爲我沒有達到可接受的值,所以我不能看到它是否像我想要的那樣自動擴展。 – missscripty