Feld im Formular auf Nullwerte prüfen

Hallo zusammen,

ich hab da ein (für mich) unfassbares Phänomen.
Alles fing mit dem Laufzeitfehler 2427 „sie haben einen Ausdruck angegeben, der keinen Wert enthält“ an, das Formular enthielt keine Datensätze.
Für mich bedeutet das, dass das Feld Null ist, die Auswertung mit der Funktion IsNull() ergibt aber False, das gleiche ist mit IsEmpty(), Field=““ ergibt wiederum den selben Lauzeitfehler.
Das kuriose ist nun wenn ich das Feld, das auf Null getestet wird, aus dem Formular lösche, dann funktioniert die Auswertung mit IsNull() und ergibt True.
Der Nachteil wiederum ist, wenn das Feld nicht existiert kann ich auch nicht nach einem Datensatz über dieses Feld suchen – es ist halt auch noch der Primärschlüssel.

Kann mir jemand erklären, welche Logik sich dahinter verbirgt?

Danke im voraus

Heiko

Hallo,

kann sein, dass ich jetzt Schotter von m ir gebe :wink: , aber mi ist aus computertechnischer Sicht nicht bekannt, dass man grundsätzlich einen Prümarschlüssel auf Null setzen kann. Primärschlüssel haben meines Erachtens immer den ‚Not Null‘ und so wie ich die MicroDoof-Entwickler einschätze, haben die die Abrage ‚IsNull‘ von vornherein für Primärschlüssel ausgeschlossen und deshalb bekommst Du hier den Fehler …
aber ich kann mich auch irren …

Ciao

Alexander

PS: Also ich kann bei mir kein Primärschlüssel-Feld gleich NULL setzen.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
dass Primärschlüssel keine Nullwerte enthalten können ist mir bekannt, es ging mir rein um die Formular-Ansicht, in der es vorkommen kann, dass entweder durch Nutzer abhängige Filter, oder dass noch gar keine Daten eingegeben wurden, im Formular keine Daten angezeigt werden.
Ich versuche gerade diese Situation abzufangen, da jede weitere Aktion ohne Daten zu einem Laufzeitfehler führt.
Mittlerweile habe ich es aufgegeben die beschriebene Situation zu vertehen und Konzentriere mich darauf, wie ich festellen kann, ob ein geöffnetes Formular Daten enthält, Bei Berichte gibts die Eigenschaft HasData, nur bei Formularen bin ich noch nicht fündig geworden.

Gruß
Heiko

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Es soll also geprüft werden, ob das Form Daten hat.

Private Sub Form_Open(Cancel As Integer)
If Me.CurrentRecord = 0 Then
Debug.Print „Nix“
End If
end sub

Oder aber:
Private Sub Form_Open(Cancel As Integer)
If Not IsNumeric(Me.DeinPrimaryKey) Then
Debug.Print „Nicht numerisch, da dort nämlich das Wörtchen ‚(AutoWert)‘ drinnesteht, wenn alles leer ist“
End If
End Sub

Oder aber prüfen, ob’s nur ein neuer leerer Satz ist, sonst aber Daten vorhanden:
If Me.newrecord = true then

end if

Gruß
Stephan

http://www.it-werkstatt.com/helpline.html

Danke schön!

es kann so einfach sein :smile:)

Heiko

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]