Tipp 4.13 - Text an SQL-String
Wie kann ich Textwerte im Code korrekt an einen SQL-Ausdruck übergeben?
Texte werden in SQL-Ausdrücken grundsätzlich mit Anführungszeichen (") bzw. Apostrophen (') angegeben.
Wenn Sie jedoch innerhalb Ihres Textes selber Apostrophen bzw. Anführungszeichen verwenden, oder nicht genau wissen, ob diese Zeichen im Text vorkommen könnten, stoßen Sie recht bald auf Probleme. Microsoft Access quittiert das Fehlen der korrekten Schreibweise, nämlich die Verdoppelung der Zeichen, mit einem Laufzeitfehler. Abhilfe schafft unsere kleine Routine MakeQuotes. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.
Beispiel:
' Text an SQL-String Function MakeQuotes(ByVal psValue As String) As String '// ----------------------------------------------------- '// Methode | Überprüft Text auf Anführungszeichen ' und wandelt diesen in eine korrekten ' Schreibweise um '// ----------------------------------------------------- '// Parameter | psValue - Textinhalt '// ----------------------------------------------------- '// Rückgabe | SQL-String-Inhalt '// ----------------------------------------------------- '// Erstellt | Manuela Kulpa '// | EDV Innovation & Consulting - Dormagen '// ----------------------------------------------------- '// Beispielaufruf: ' Inhalt des Datenbankfeldes Kunde = Hung "Owl" AllNight '// sSql = "... Where Firma = " & MakeQuotes(Kunde) '// ----------------------------------------------------- Dim sOut As String Dim sChar As String Dim iFound As Integer For iFound = 1 To Len(psValue) sChar = Mid$(psValue, iFound, 1) If Asc(sChar) = 34 Then sOut = sOut & Chr(34) & " & " & String$(4, Chr(34)) & " & " & Chr(34) Else sOut = sOut & sChar End If Next MakeQuotes = Chr(34) & sOut & Chr(34) End Function