2011-06-22 132 views
0

所以我設法讓我的標準形式進入並訪問,並且它搜索名稱/城市,但它只搜索EXACT城市名稱,儘管我給它一個通配符,名稱和名稱該領域的作用是搜索該領域的任何部分?有人知道爲什麼這裏是我的代碼:搜索標準表格

'Text field example. Use quotes around the value in the string. 
    If Not IsNull(Me.txtFilterCity) Then 
     strWhere = strWhere & "([City] Like ""*" & Me.txtFilterCity & "*"") AND " 
    End If 

    'Another text field example. Use Like to find anywhere in the field. 
    If Not IsNull(Me.txtFilterMainName) Then 
     strWhere = strWhere & "([MainName] Like ""*" & Me.txtFilterMainName & "*"") AND " 
    End If 

謝謝!

+1

@Colin,你是否檢查過'strWhere'的最終值 - 是否有另一部分屏蔽城市過濾器? – richaux

+0

最終不會在'strWhere'中成爲尾隨'AND'嗎?如果是這樣,那怎麼不把事情搞砸?你知道那個「And」是丹麥語中的「Duck」嗎? –

+0

啊!當你搜索鹽湖城時 - 讓我修復這個真的很快,當然,會迴應。 – Colin

回答

3

這裏就是2個字符的所有值是一個不同的方法來建立strWhere。

' Text field example. Use quotes around the value in the string. ' 
If Not IsNull(Me.txtFilterCity) Then 
    strWhere = strWhere & " AND City Like ""*" & Me.txtFilterCity & "*""" 
End If 
' Another text field example. Use Like to find anywhere in the field. ' 
If Not IsNull(Me.txtFilterMainName) Then 
    strWhere = strWhere & " AND MainName Like ""*" & Me.txtFilterMainName & "*""" 
End If 
' chop off leading AND ' 
strWhere = Mid(strWhere, 6) 
Debug.Print strWhere 

我放棄了圓括號和方括號,因爲這裏不需要它們。如果字段名稱包含空格,標點符號等,則需要圍繞字段名稱的方括號。如果字段名稱是保留字,方括號也很有用。我更喜歡只使用不需要在對象名稱中包圍的字符,而使用avoid reserved words作爲對象名稱。

+0

非常感謝HansUp! :)你真的很擅長解答我的問題並提供幫助。你的時間和精力大大增加。 – Colin

-1

如果您使用的訪問,則

*允許您匹配任何長度的任意字符串(包括零長度)

?讓您匹配單個字符

#允許你匹配一個數字位數

如:

像「B *」將返回以b開頭的所有值

像'* b *' 將返回所含的b

所有值

喜歡 '* b' 將返回以b

狀端的所有值'b?將返回以b開始,並且長度爲2個字符的所有值

喜歡「B#」將返回以b的長度,其中所述第二字符是數字

+3

不知道這是如何幫助... @科林已經有'喜歡'* B *''。 – richaux