1

家系の名前で検索するときに、データベースで「あいまい一致」を検索するために検索を取得する必要があります。以下の関数を実装して、問題のないSoundEx関数を有効にしました。

その場でSoundEx関数を呼び出してデータベースを検索するSQLを構築する際に、問題が発生します。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出力とデータ用の別のボックスを含むコマンドウィンドウが表示されます。エントリ。

しばらくこれをいじっていて、役立つ例を見つけることができないようです。

4

1 に答える 1

1

私はAccess2003でAllenBrowneのSoundex関数を使用しています:Soundex-あいまい一致

Soundex値を文字列として返します。使用しているSoundex関数も文字列を返す場合は、Soundex(LSearchString)を引用符で囲んで、データベースエンジンが、欠落しているパラメーターの名前ではなく文字列値として認識できるようにします。

LSQL = LSQL & "WHERE Soundex([Victim Surname]) = '" & Soundex(LSearchString) & "';"
于 2011-04-29T04:58:27.977 に答える