2015-06-15 92 views
1

我有執行該applyfilter宏代碼搜索按鈕:的MS Access文本字段中的特殊字符

[ContractNumber] Like "*" & [Forms]![frmContractMatch&Revenue]![Text44] & "*"

因此,搜索文本框中text44爲適當ContractNumber。我遇到的麻煩是,例如,如果合同編號爲ART#45,由於特殊字符#,它不會在數據庫中找到它。

我該如何解決這個問題?問題是合約可能有不同的特殊字符,或者它們可能根本沒有特殊字符,所以我不能告訴它一直專門搜索特定的符號。

+0

我並不完全相信#在這種情況下是您的問題,請嘗試'[ContractNumber] Like''*「&[Forms]![frmContractMatch&Revenue]![Text44]&」*'「'引號顯示它是一個字符串)。 – Newd

+1

除了'#'之外,還有哪些特殊字符需要應付? – HansUp

+0

我試過單引號,但無濟於事。我不確定我會處理哪些其他特殊字符,但如果可以構建代碼來處理多個特殊字符,那將會很好。現在只有當我搜索的合同編號是全部文本或數字,例如:「LRV57」或者我只搜索文本部分例如:ART「時,它才起作用。當我放入#符號時,它什麼也找不到。 – TBrown33

回答

0

訪問使用#作爲單個數字段的通配符。當您創建搜索字段幷包含#(如ART#)時,Access會將其解釋爲「我正在搜索字符串'ART',後跟單個數字字符0-9」它使用'?','%'和' - '類似。爲了解決這個問題,你需要改變輸入字符串並將方括號中的文字特殊字符括起來。所以不是尋找:

'ART#' 

你會搜索:

'ART[#]' 

你怎麼解決這個得到什麼?取決於你如何輸入搜索條件。這個區域並不是我的強項,但根據搜索的輸入方式,您可能需要使用自定義函數在過濾表單之前將方括號添加到您的參數中。我個人會阻止在訂單號到代碼中使用特殊字符。

+0

好吧謝謝!我們將消除使用特殊字符,因爲我認爲它會加快進程。 – TBrown33