Frage

Ich muss eine Suche nach "Fuzzy -Übereinstimmungen" in einer Datenbank bei der Suche nach Familienname suchen. Ich habe die folgende Funktion implementiert, um eine SoundEx -Funktion zu aktivieren, die keine Probleme hat.

Ich erhalte Probleme, wenn es darum geht, die SQL zu erstellen, um die Datenbank zu durchsuchen, die die SoundEx -Funktion im laufenden Flug aufruft. Ich weiß, dass VBA -Funktionen in SQL -Anweisungen aufgerufen werden können, aber es scheint nicht richtig zu funktionieren.

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

Wenn ich eine Zeichenfolge im Formular eingehe und auf die Schaltfläche klicke, bin ich durchgesetzt und an dem Punkt, an dem sie den SQL erstellt, wirft es ein Befehlsfenster mit der SoundEx -Ausgabe des Textes im Suchfeld und einem anderen Feld für Daten aus Eintrag.

Ich habe schon eine Weile damit herumgespielt und kann kein Beispiel finden, das hilft.

War es hilfreich?

Lösung

Ich verwende Allen Brownes SoundEx -Funktion mit Access 2003: Soundex - Fuzzy -Matches

Es gibt den SoundEx -Wert als Zeichenfolge zurück. Wenn die von Ihnen verwendete SoundEx -Funktion auch eine Zeichenfolge zurückgibt, schließen Sie bei SoundEx (LSEARCHSTRING) Mit Anführungszeichen erkennt die Datenbank -Engine sie als Zeichenfolgewert anstelle des Namens eines fehlenden Parameters.

LSQL = LSQL & "WHERE Soundex([Victim Surname]) = '" & Soundex(LSearchString) & "';"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top