Domanda

mi serve per ottenere una ricerca per cercare "corrispondenze fuzzy" in un database durante la ricerca per cognome. Ho implementato la seguente funzione per abilitare una funzione SoundEx, che non ha problemi.

Io sono sempre problemi quando si tratta di costruire il codice SQL per la ricerca in database chiamando la funzione SoundEx al volo. So che funzioni VBA possono essere chiamati in istruzioni SQL, ma non sembra funzionare correttamente.

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

Quando entro in una stringa nel modulo e fare clic sul pulsante, ho fatto un passo attraverso, e dal punto in cui costruisce la SQL, la sua getta una finestra di comando con l'uscita SoundEx del testo nella casella di ricerca, e un altro scatola per l'immissione dei dati.

Been armeggiare con questo per un po e non riesco a trovare un esempio che aiuta.

È stato utile?

Soluzione

Sto usando la funzione Soundex di Allen Browne con Access 2003: Soundex - corrispondenze fuzzy

Si restituisce il valore Soundex come una stringa. Se la funzione Soundex si sta utilizzando anche restituisce una stringa, racchiudere Soundex (LSearchString) con le citazioni in modo che il motore di database riconosce come un valore stringa invece del nome di un parametro mancante.

LSQL = LSQL & "WHERE Soundex([Victim Surname]) = '" & Soundex(LSearchString) & "';"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top