我需要搜索以查找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