SQL 到 select 行,其中 table 字段部分匹配表单文本框字符串

SQL to select row where table field partially matches form textbox string

我有一个名为 (PostOff) 的 table,它有一个名为 PAddress 的字段 和一个名为 CAddress.

的表单文本框

我正在尝试将代码写入 select 行,其中 PAddress 与表单文本框 CAddress 部分匹配。更具体地说,select 行 if CAddress 包含 PAddress table 字段的值。

我使用的代码只有在 PAddress 完全匹配 CAddress:

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

我想我需要这样的东西:

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

但它不起作用。

[MS Access 解决方案]

根据您的评论...

如果您只想在 PAdress 字段中查找 town 单词,您可以使用 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

以上函数returns:'123','St','Town','City','US'

如果我没理解错的话,你需要用%来匹配字符串前面或后面的任何东西

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