Discussion:
Ungülte Verwendung von Null (Laufzeitfehler 94)
(zu alt für eine Antwort)
Dirk Junker
2003-07-17 06:38:24 UTC
Permalink
Hallo Newsgroup,

ich möchte in VBA überprüfen, ob ein Formularfeld leer ist. Dazu
schreibe ich

If CStr(Me!Nachname) = "" Then irgendwas

Darauf hin erhalte ich den o. g. Laufzeitfehler. Wie kann ich das Feld
ansprechen, damit das nicht passiert?! Über einen Hinweis freue ich mich!

Viele Grüße,
Dirk
Gunter Avenius
2003-07-17 06:47:23 UTC
Permalink
Hallo Dirk,
Post by Dirk Junker
ich möchte in VBA überprüfen, ob ein Formularfeld leer ist. Dazu
schreibe ich
If CStr(Me!Nachname) = "" Then irgendwas
Darauf hin erhalte ich den o. g. Laufzeitfehler. Wie kann ich das
Feld ansprechen, damit das nicht passiert?! Über einen Hinweis
freue ich mich!
If isnull(Me!Nachname) then
'Null
else
'gefüllt
endif


--
Gruß
Gunter
_________________________________________________
Access - FAQ: http://www.donkarl.com
home: http://www.avenius.com
Stefan Dase
2003-07-17 06:52:09 UTC
Permalink
Hallo Dirk!
Post by Dirk Junker
If CStr(Me!Nachname) = "" Then irgendwas
Darauf hin erhalte ich den o. g. Laufzeitfehler. Wie kann ich das Feld
ansprechen, damit das nicht passiert?! Über einen Hinweis freue ich mich!
Das Feld enthält den sog. Null-Wert, der besagt, dass es keinen Inhalt
gibt; nicht zu verwechseln mit der Zahl Null "0"! Da die
Konvertierungsfunktion CStr() aber einen gültigen Parameter erwartet,
wird der Fehler ausgelöst.

An solch einer Problematik kann man sich aus mehreren Richtungen
versuchen; z.B, könntest du das Feld "Nachname" so definieren, dass es
einen Wert enthalten muss, ggf. auch einen Leerstring "".

Oder du fängst das ganze mit einer Nz-Funktion ab. CStr ist hier
eigentlich nicht notwenig, ich gehe mal davon aus, dass ein Feld
"Nachname" als Text definiert ist?! Dann sähe das ganze so aus:

If Nz(Me!Nachname, "") = "" Then ...

Oder du kannst auch noch die IsNull-Funktion verwenden, die springt aber
nicht auf Leerstrings "" an:

If IsNull(Me!Nachname) Then ...

HTH,
Stefan

Loading...