FAQ Access – Volltext Suche a la Google
Access VBA – Volltext Suche a la Google
Problem
Sie wollen wie bei Google nach verschiedenen Suchbegriffe suchen ? Das bedeutet Sie geben – Klaus Hannover Müller – ein und wollen nur die Personen sehen, die alle drei Kriterien erfüllen ?
Lösung
Nutzen Sie folgenden Code und nutzen Sie die Funktion in jeder OpenForm Anweisung:
Public Function Suchterm(vSuchbegriff) As String
Dim vLänge As Long, vLetztesLeerzeichen As Long, vLeerzeichenstelle As Long
Dim vAnzeige As String
vLänge = Len(vSuchbegriff)
vLetztesLeerzeichen = InStr(1, vSuchbegriff, " ")
vLeerzeichenstelle = InStr(vLetztesLeerzeichen + 1, vSuchbegriff, " ")
'Suchbegriff hat nur einen Begriff
If vLetztesLeerzeichen = 0 Then
vAnzeige = "[Suchbegriff] like '*" & vSuchbegriff & "*'"
GoTo Weiter
End If
'Suchbegriff hat nur zwei Begriffe
If vLeerzeichenstelle = 0 Then
vAnzeige = "[Suchbegriff] like '*" & Mid(vSuchbegriff, 1, vLetztesLeerzeichen - 1) & "*' AND [Suchbegriff] like '*" & Mid(vSuchbegriff, vLetztesLeerzeichen + 1) & "*'"
GoTo Weiter
End If
'Suchbegriff hat viele Begriffe
vAnzeige = "[Suchbegriff] like '*" & Mid(vSuchbegriff, 1, vLetztesLeerzeichen - 1) & "*'"
Do While vLetztesLeerzeichen < vLänge
vLeerzeichenstelle = InStr(vLetztesLeerzeichen + 1, vSuchbegriff, " ")
'Ende erreicht
If vLeerzeichenstelle = 0 Then
vAnzeige = vAnzeige & " AND [Suchbegriff] like '*" & Mid(vSuchbegriff, vLetztesLeerzeichen + 1) & "*'"
GoTo Weiter
Else
vAnzeige = vAnzeige & " AND [Suchbegriff] like '*" & Mid(vSuchbegriff, vLetztesLeerzeichen + 1, vLeerzeichenstelle - vLetztesLeerzeichen - 1) & "*'"
End If
vLetztesLeerzeichen = vLeerzeichenstelle
Loop
Weiter:
Suchterm = vAnzeige
End Function