Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1620to1624
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SQL in VBA

SQL in VBA
22.04.2018 09:52:47
Eric
Hallo Community,
Thema ist eine ADO Abfrage per SQL String mit dem Ziel, eine Datei in strPath mittels Volltextsuche nach dem Suchbegriff strSearch zu durchsuchen.
Es geht nur um folgende Zeile im Code:
strSQL = "SELECT System.ItemPathDisplay FROM SYSTEMINDEX WHERE CONTAINS(*," & strSearch & ") and scope = " & strPath & ""
Der gesamte, im Original für diese Zeile etwas andere Code, kommt aus dem Internet (Stichwort Lysco, Volltextsuche).
Das funktioniert auch wunderbar, solange strSearch ein vollständiger Suchbegriff ist (z.B. "'Steuer'"). Mein Problem ist die Präfixsuche (z.B. "'Steuer*'").
Im MSDN Forum und in anderen Quellen wird auf die Schreibweise '"Steuer*"' verwiesen. Das allerdings erzeugt bei mir sofort die VBA Fehlermeldung "Erwarte Anweisungsende" und die Zeichenfolge "Steuer" wird im Code markiert. Die Fehlermeldung "Erwarte Anweisungsende" erscheint, sobald ich aus der Codezeile gehe, also nicht beim Ausführen des Codes, sondern bei der Syntax Überprüfung.
Meine Frage ist, ob in dieser SQL Konstruktion überhaupt eine Circa-Volltextsuche möglich und falls ja, wie ich diese bewerkstelligen kann.
Danke im Voraus!
Gruß Eric

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SQL in VBA
22.04.2018 10:42:50
Eric
Hallo Community,
soeben habe ich die Lösung durch weiteres Probieren selbst heraus gefunden. Vielleicht hilft es dem ein oder anderen auch weiter.
Aus
strSearch = "'Beispiel'"
mach
strSearch = """Beispiel"""
Aus
strSQL = "SELECT System.ItemPathDisplay FROM SYSTEMINDEX WHERE CONTAINS(*," & strSearch & ") and scope = " & strPath & ""
mach
strSQL = "SELECT System.ItemPathDisplay FROM SYSTEMINDEX WHERE CONTAINS(*, '" & strSearch & "') and scope = " & strPath & ""
Das funktioniert anscheinend sogar bei den Kombinationen Beispiel*, *Beispiel* und *Beispiel. Man benötigt also nur einen SQL String.
Gruß Eric
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige