Google
 
Diesen Blog abonnieren

Beliebte Posts

Mittwoch, 18. März 2009

Access: Anführungszeichen, Doppeltes Hochkomma, Gänsefüßchen im Code verwenden

Ein Zeichen und jeder nennt es anders. Im VBA-Code ist das Zeichen (") zum Begrenzen von Strings unabdingbar. In vielen Fällen kann man sich mit dem einfach Hochkomma (') über Wasser halten, was aber wenn das nicht mehr funktioniert?

Dann gibt es 2 Lösungsmöglichkeiten. Die Erste gibt direkt per Chr-Funktion das Anführungszeichen zurück. Die dafür stehende Nummer im Standard-ASCII-Code ist die 34. So kann man z.B. im Direktfenster per ? Chr(34) das Anführungszeichen ausgeben. Die 2.Variante funktioniert über eine globale Variable. Legen Sie sich hier zu im Deklarationsbereicht eines Moduls eine globale Konstante "gf" für "Gänsefüßchen" an. Die Definition sieht folgendermaßen aus:

Global Const Gf = """"

Nun lässt sich überall im Code mit der Konstanten "gf" das Gänsefüßchen verwenden.

Ein Beispiel aus der Praxis wäre einen SQL-String per VBA zusammen zu setzen und dabei ein String-Kriterium einzubauen. Nehmen wir an, wir wollen aus einer Tabelle "Kunden" alle Datensätze selektieren in denen im Feld "Zuname" der Wert "Müller" vorkommt. Der Wert "Müller" steht in der String-Variablen "Kriterium". Das dazu nötige SQL-Statement würde wie folgt aussehen:

SELECT * FROM Kunden WHERE Zuname="Müller";

Im VBA-Code müsste das SQL-Statement in einen String geschoben werden und hierbei stolpert VBA über die beiden Hochkomma. Nachfolgende Anweisung erzeugt durch die Hochkommas in VBA einen Fehler.

SQLStr = "SELECT * FROM Kunden WHERE Zuname="Müller";"

Das Problem lässt sich mit folgenden Varianten umgehen:

SQLStr = "SELECT * FROM Kunden WHERE Zuname=" _
& Chr(34) & Kriterium & chr(34) & ";"

SQLStr = "SELECT * FROM Kunden WHERE Zuname=" _
& gf & Kriterium & gf & ";"

SQLStr = "SELECT * FROM Kunden WHERE Zuname='" & Kriterium & "';"

Gefunden im Newsletter von www.access-paradies.de

Anmerkung: Ich verwende immer '. Man muss jedoch aufpassen, weil das in Access das Kommentarzeichen ist. Möglicherweise gibt es Fälle, wo die obigen Alternativen sinnvoll eingesetzt werden können.

Keine Kommentare: