Hallo,
da gäbe es doch Einiges dazu zu sagen/fragen:
– für was ist das Ganze letztendlich überhaupt gut? Eine solche Berechnung („X“ anzeigen, wenn „Vorname“ leer ist) ist nicht nötig, in einem Tabellenfeld gespeichert zu werden. Weiterhin ist eine „Kennzeichung“ eines leeren Feldes mit „X“ in einem anderen Feld für mich im Sinn nachfragewürdig.
– die Fehlermeldung ( ) bedeutet, daß die Eigenschaften des Tabellenfeldes so eingestellt sind, als daß keine „leere Eingabe“ (Textlänge =0 ) erlaubt ist.
– der Code sollte so heißen( je nachdem, in welcher Ereignisprozedur er stehen soll)
Sub Vorname_Afterupdate() 'passende Ereignisprozedur verwenden
If IsNull(Me!Vorname) Then Me!Prüfung =„X“
End Sub
Der Code hat den "Nachteil, daß zwar X gesetzt , aber nicht zurückgesetzt wird, wenn der Vorname wieder gefüllt wird. Siehe ff.
Bei IIF(…) werden immer beide Entscheidungszweige ausgewählt, so daß eben bei Zuweisung von „“ (Leerstring) die o. g. Fehlermeldung erscheint. Das könnte vermieden werden, wenn in den Tabellenfeldeigenschaften Leerstrings erlaubt würden.
– Am besten wäre, das Tabellenfeld „Prüfung“ ganz zu eliminieren und die Berechnung dafür an den Stellen zu erledigen, an denen das Ergebnis (die Kenntnis, daß der Vorname leer ist) gebraucht wird. (Wobei ich nicht weiß, wie oben schon angedeutet, wie , wo und warum dieses gebraucht wird.)
Wenn aber schon als gespeicherte Berechnung, dann das Tabellenfeld in den Datentyp Ja/Nein wandeln und z. B. mit einem Kontrollk. oder einem Optionsfeld anzeigen und ähnlichen Code verwenden:
Sub Vorname_Afterupdate()
Me!Prüfung= IsNull(Me!Vorname) 'Feld „Prüfung“ in der Tabelle vom Datentyp „Ja/Nein“
End Sub
Gruß
Franz, DF6GL