3.3.7 Probleme mit Kriterienausdrücken bei
SQL-Ausdrücken in VBA
3.3.8 Zeichenkette oder Zahlenwert?
Der Fehler aus Abbildung 3.9 resultiert fast immer aus dem Fehlen von Anführungszeichen im SQL-Ausdruck beim Verwenden von Zeichenketten als Kriterium.

Abbildung 3.9: Fehlermeldung beim Verwenden einer SQL-Anweisung per VBA
Das folgende Listing zeigt einen solchen Fehler:
Public Function MitarbeiterSuchen(strNachname As String) ... Set rst = CurrentDB.OpenRecordset("SELECT MitarbeiterID, " _ & "Vorname, Nachname FROM tblMitarbeiter WHERE Nachname = " _ & strNachname) ... End Function
Listing 3.3: Falsche Verwendung einer Zeichenkette als Kriterium
In dieses Listing wurden keine Anführungszeichen für die Zeichenkette integriert. Der SQL-Ausdruck sieht für den Aufruf MitarbeiterSuchen "Müller" wie folgt aus:
SELECT MitarbeiterID, Vorname, Nachname
FROM tblMitarbeiter
WHERE Nachname = Müller
»Müller« wird hierbei nicht als Zeichenkette, sondern als Parameter ausgelegt. Da für diesen kein Wert vorliegt, erscheint obige Fehlermeldung. Die Lösung des Problems ist einfach.
Fassen Sie den Parameter einfach in Anführungszeichen oder Hochkommata ein (in einer Zeile):
Set rst = db.OpenRecordset("SELECT MitarbeiterID, Vorname, Nachname FROM tblMitarbeiter WHERE Nachname = '" & strNachname & "'")
oder besser
Set rst = db.OpenRecordset("SELECT MitarbeiterID, Vorname, Nachname FROM tblMitarbeiter WHERE Nachname = """ & strNachname & """")
Nächster Abschnitt:
3.3.9 Probleme mit Datumsangaben
|