Hallo,
@Klaus
was der genaue Hintergrund Deiner Frage ist
s. auch Eingangspost.
Wenn der Else-Teil auskommentiert ist, führt das dazu, dass das Tabellenfeld geleert wird.
Wie kann man nun prüfen, was "Leer" ist.
Also letztlich um den Zustand des Feldes, wenn die Funktion keinen Rückgabewert bekommt, da der else-Teil auskommentiert ist, OhneZiffern=s also fehlt.
So ohne weiteres kriegst Du doch "" gar nicht in ein Tabellenfeld
Im Gegenteil, zwei Anführungszeichen muss man eingeben. Sie heben die Gültigkeitsregel des Feldes (Not Null) auf und man kann das Feld verlassen.
@einGast
0 -> Feld enthält "" (Leere Zeichenfolge)
NULL -> Feldinhalt ist NULL
Ich habe das mal getestet.
- Code: Alles auswählen
? DLookup("Len(Artikel)" , "tblArtikel" , "ArtikelID=573" ) ' Zeile A
0
Folgendes steht da im Widerspruch zum obigen 0 , was ja eine Leere Zeichenfolge sein soll.
- Code: Alles auswählen
s=DLookup("Artikel","tblArtikel","ArtikelID=573")
?s
Null
?IsNull(s)
Wahr
@Ulrich
Im Link steht
Verwenden Sie die AllowZeroLength-Eigenschaft , um anzugeben, ob eine leere Zeichenfolge (" ") ein gültiger Eintrag in einem Tabellenfeld ist
.
Kann ich bei Acc2010 nicht bestätigen. Wird das Tabellenfeld auf Leere Zeichenfolge NEIN gestellt (mit Erforderlich NEIN und ohne Gültigkeitsregel), kann man den Wert löschen oder ein Leerzeichen eingeben und das Feld verlassen, also speichern, ohne dass Access meckert.
Hängt es damit zusammen, dass die Seite sich auf Access 2013 | Access 2016 bezieht? MS also nachgebessert hat?
Frage mich auch, was es für einen praktischen Nutzen haben soll, dass die Entwickler von Access zwischen NULL und "" unterscheiden. Das führt ja dazu, dass man ein Textfeld z.B. mit If [txtArtikel]=Null or [txtArtikel]= "" prüfen muss.
Nur der eine oder der andere Teil könnte ein falsches Ergebnis liefern.
Und das in der Tabelle ist noch differenzierter anzugehen.
Gruß Heinz