Die Community zu .NET und Classic VB.
Menü

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

 von 

Frage 

Wie kann ich eine Zeichenkette an eine Datenbank übergeben?

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

Ihre Meinung  

Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.