我需要搜索以查找Surname時搜索數據庫中的「模糊匹配」。我已經實現了以下功能來啓用沒有問題的SoundEx功能。MS Access 2003使用SoundEx從表格中搜索
當談到構建SQL以通過調用SoundEx函數的數據庫進行搜索時,我遇到了問題。我知道VBA函數可以在SQL語句中調用,但它似乎沒有正常工作。
Private Sub cmdSearch_Click()
Dim LSQL As String
Dim LSearchString As String
If Len(txtSearchString) = 0 Or IsNull(txtSearchString) = True Then
MsgBox "You must enter a search string."
Else
LSearchString = txtSearchString
LSQL = "SELECT * FROM TVictim "
LSQL = LSQL & "WHERE Soundex([Victim Surname]) = " & Soundex(LSearchString) & ";"
frmVictim.Form.RecordSource = LSQL
lblTitle.Caption = "Matching Victim Details: Filtered by '" & LSearchString & "'"
txtSearchString = ""
MsgBox "Results have been filtered. All Victim Names containing " & LSearchString & "."
End If End Sub
當我輸入窗體上的字符串,然後單擊該按鈕時,我已經經歷了加強,並且該點處,它能增強SQL,它與文本搜索的SOUNDEX輸出命令窗口拋出了框和另一個數據輸入框。
已經擺弄這一段時間,似乎無法找到一個有用的例子。
性能方面,它是存儲在數據表中的SOUNDEX值是一個好主意,因爲這時可以將它們編入索引,從而大大您使用它們加快搜索速度。另外請注意,花園多樣的Soundex()是一個非常模糊的匹配,只適用於某些語言的名稱。你可能想看看Soundex2。對於需要模糊匹配的大型數據表,我的名字和姓氏都有Soundex和Soundex2字段,並且效果很好。 – 2011-04-30 19:49:03