PDA

Vollständige Version anzeigen : Null in If-Abfrage


JohsMeier
05.11.2001, 11:37
Hallo, Forum!
Ich versuche mit Access97 in einer (externen) Adress-Tabelle (ASCII-CSV) mit einer If-Abfrage herauszufinden, ob die Anrede zum Geschlecht paßt:

If !Geschl = "m" Then
If !Anrede <> "Herrn" Then FehlerAnr = True

Bei Datensätzen, die dort keinen Eintrag haben, funktioniert's nicht. Habe jetzt versucht, durch zusätzliche Prüfung auf Null bzw. Leerstring diesen Fall abzufangen:

If IsNull(!Anrede) Then FehlerAnr = True
If !Anrede = "" Then FehlerAnr = True

Nix von alledem tut :-((
Was mache ich falsch?

Vielen Dank für eure Hilfe!

cu, Johannes

Mattes
05.11.2001, 11:45
Hi Johannes,

If!Geschl ist syntaktisch falsch.

If ME!Geschl = "m" THEN Me!Anrede="Herr" ELSE Me!Anrede = "Frau"

...glaube ich, bin kein VBA Crack. Probiers mal aus.

JohsMeier
05.11.2001, 11:53
Hallo, Mattes!

Mein Code war nur auszugsweise wiedergegeben. Weiter oben gibt's ein

*With ME

Dürfte gleichbedeutend sein mit ME!Geschl. Bin auch kein VBA-Crack, hab's dehalb sicherheitshalber probiert: Funktioniert trotzdem nicht.
Dennoch - Danke für Deinen Hiweis.

Gruss, Johannes

Pittchen
05.11.2001, 12:03
Hallo Johannes; eventuell so:

If Me!Geschl = "m" AND Not IsNull(Me!Geschlecht) Then ..

Gruß Pittchen

MAP_SM
05.11.2001, 12:26
hallo Johs,

habe mit If ... = Null ... folgende erfahrungen gemacht:

am besten klappt es mit
....
If Not !Geschl = "" Then
If !Geschl = "m" Then
...
Else:
...
End If
Else:
'hierher gelangt man immer dann falls "" oder NULL drin stand.
End If

VBA scheint da ein bißchen zu spinnen weil egal wie man abfragt, falls NULL als Antwort kommt geht es immer ab in den Else-Zweig.

Versuch mal Dein Glück

MAP

Mattes
05.11.2001, 13:14
hups:

so ist richtig:

If Me.geschl = "m" Then Me.Anrede = "Herr" Else Me.Anrede = "Frau"

JohsMeier
07.11.2001, 08:49
Hmm, jetzt geht's plötzlich...

Der Vergleich auf Leerstring oder Inhalt Null schlägt fehl (<em>If !Anrede = ""</em> bzw. <em>If !Anrede = Null</em>), aber die Prüfung mit IsNull funktioniert. Keine Ahnung, weshalb es neulich nicht ging (vermutlich lag der Fehler diesseits des Bildschirms).

Vielen Dank für eure Hilfe!