Start / FAQ / FAQ 0006: Wie kann ich eine Zeichenkette an eine Datenbank übergeben?
 
Startseite Up-/Download Tutorials Club Das Team
Rubriken Foren Bücher Tips 'n Tricks Suche


FAQ 0006: Wie kann ich eine Zeichenkette an eine Datenbank übergeben?


  Frage

Wie kann ich eine Zeichenkette an eine Datenbank übergeben?

Inhalt

Grundlagen
Ein beliebiges Zeichen
Mehrere beliebige Zeichen

  Grundlagen

Zeichenketten müssen immer in einfache Hochkommata verpackt werden, wenn sie an eine Datenbank übergeben werden sollen:

Dim strSQL As String
Dim strSuche As String

strSuche = "Hugo"

strSQL = "SELECT * FROM Personen WHERE Vorname LIKE '" & strSuche & "';"

Listing 1: Suche nach einem Text

Ein Problem ergibt sich, wenn die Zeichenkette selbst Hochkommata enthält. Dann muß das enthaltene Hochkomma verdoppelt werden:

Dim strSQL As String
Dim strSuche As String

strSuche = "Andreas' Computer"
strSuche = Replace$(strSuche, "'", "''")

strSQL = "SELECT * FROM Verleih WHERE Quelle LIKE '" & strSuche & "';"

Listing 2: Suchtext enthält Hochkomma

Laut  Eckhart Wörner erwarten einige DBS, daß Apostrophen im Text nicht verdoppelt, sondern mit einem BackSlash maskiert werden. Statt "''" muß dann "\'" als dritter Parameter bei Replace$ übergeben werden (siehe auch Ersatz für einige Stringfunktionen ).

  Ein beliebiges Zeichen

Ein beliebiges Zeichen wird mit ADO mit dem Zeichen _, mit DAO mit dem Zeichen ? gesucht. Dieser Joker steht für exakt ein beliebiges Zeichen.

Dim strSQL As String

'   ADO (ActiveX Data Objects) und ein beliebiges Zeichen
strSQL = "SELECT * FROM Personen WHERE Nachname LIKE 'Me_er';"

'   DAO (Data Access Objects) und ein beliebiges Zeichen
strSQL = "SELECT * FROM Personen WHERE Nachname LIKE 'Me?er';"

Listing 3: Joker für ein beliebiges Zeichen

  Mehrere beliebige Zeichen

Mehrere Zeichen können mit ADO mit dem Zeichen %, mit DAO mit dem Zeichen * gesucht werden. Zu beachten ist, daß eine Zeichenkette nicht unbedingt Text an der Stelle des Jokers enthalten muß. So liefert die Abfrage auch alle Varianten von Stefan, die in der Tabelle gespeichert sind.

Dim strSQL As String

'   ADO (ActiveX Data Objects) und mehrere beliebiges Zeichen
strSQL = "SELECT * FROM Personen WHERE Vorname LIKE 'Ste%an%';"

'   DAO (Data Access Objects) und mehrere beliebige Zeichen
strSQL = "SELECT * FROM Personen WHERE Vorname LIKE 'Ste*an*';"

Listing 4: Joker für mehrere beliebige Zeichen


Erstellt: 05.03.2003
Aktualisierung: 26.07.2010
  Autor: Helge Rex
E-Mail: faq@ActiveVB.de



Copyright © 1998-2010 by ActiveVB
Alle Rechte vorbehalten.