SQL选择表字段部分匹配表单文本框字符串的行

时间:2016-03-25 17:59:43

标签: vba access-vba ms-access-2013

我有一个名为(PostOff)的表,其中有一个名为PAddress的字段 以及名为CAddress的表单文本框。

我正在尝试编写代码来选择PAddress部分匹配表单文本框CAddress的行。更具体地说,如果CAddress包含PAddress表字段的值,请选择该行。

我使用的代码仅在PAddress完全匹配CAddress时才有效:

("SELECT * FROM PostOff WHERE [PostOff.PAddress] Like  '" & Me.CAddress & "'")

我想我需要类似的东西:

("SELECT * FROM PostOff WHERE "*[PostOff.PAddress]*" Like  '" & Me.CAddress & "'")

但它不起作用。

2 个答案:

答案 0 :(得分:0)

[MS Access解决方案]

根据您的评论...

如果您只想在town字段中找到PAdress字词,则可以使用IN运算符。

sQry = "SELECT * FROM PostOff WHERE [PostOff.PAddress] IN (" & GetListOfWords(Me.CAddress) & ")" 

GetListOfWords函数可能如下所示:

Function GetListOfWords(ByVal sInputString As String) As String

Dim words() As String
Dim sResult  As String
Dim i As Integer

words = Split(Replace(sInputString, ",", ""), " ")

For i = 0 To UBound(words)
    sResult = sResult & "'" & words(i) & "',"
Next

GetListOfWords = Left(sResult, Len(sResult) - 1)

End Function

上面的函数返回:'123','St','Town','City','US'

答案 1 :(得分:0)

如果我理解正确,您需要使用%来匹配字符串前面或后面的任何内容

("SELECT * FROM PostOff WHERE [PostOff.PAddress] Like  '%" & Me.CAddress & "%'")