所以我设法让我的标准形成并进入访问状态,它搜索名称/城市,但它只搜索确切的城市名称,即使我给它一个通配符,名称字段也可以作为搜索该领域的任何部分?谁知道为什么?这是我的代码:
'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
谢谢!
答案 0 :(得分:3)
这是建立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作为对象名称。
答案 1 :(得分:-1)
如果您正在使用访问
*允许您匹配任何长度的任何字符串(包括零长度)
?允许您匹配单个字符
#允许您匹配单个数字
例如:
与'b *'类似,将返回以b
开头的所有值与'* b *'类似,将返回包含b
的所有值与'* b'类似,将返回以b
结尾的所有值喜欢'b?'将返回以b开头并且长度为2个字符的所有值
与'b#'类似,将返回以b开头的所有值,长度为2个字符,其中第二个字符为数字