Daten prüfen nach einfügen in Form

3. September 2015 10:01

Hallo,

ich möchte folgendes realisieren:

In einer Form kann der Inhalt eines Feldes manuell oder auch über ein Lookup auf eine andere Tabelle eingefügt werden.
Ich möchte nach dem Einfügen des Wertes (ob manuell oder über Lookup) gewisse Feldinhalte des Datensatz der eingefügt wurde prüfen und
entsprechende Warnhinweise ausgeben.

Ich gebe mal ein Beispiel:

Auf der Debitorenkarte kann ich die PLZ sowohl manuell als auch über den Lookup auf die Tabelle PLZ-Code eingeben.
Sobald die PLZ in die Debitorenkarte geschrieben wird, soll z.B. geprüft werden, ob das Feld "Bundesland" in der Tabelle "PLZ Code" leer ist.
Entsprechend soll dann eine Warnmeldung ausgegeben werden "Achtung! Bundesland fehlt!" .

Kann mir jemand helfen?
Ich denke, dass das nicht soooo kompliziert ist.

Viele Grüße
Herbert

Re: Daten prüfen nach einfügen in Form

3. September 2015 14:01

Hallo,

Jedes Feld hat in der Form und Tabelle einen Trigger "OnValidate".
Der wird bei Änderung "angeschubst".

Nur in Form gibt es den Trigger "OnAfterValidate" vielleicht hilft dir das weiter für deine Message.

Global wird auch bei jeden Datensatzänderung der Trigger "OnModify" (Form/Tabelle) angetriggert.

Kommt drauf an wie der Code ist bzw. sein soll und wann du gerne die Meldung bringen würdest.

Re: Daten prüfen nach einfügen in Form

3. September 2015 14:20

Hallo,

die Prüfung und der Warnhinweis funktionieren, wenn man den Wert in das Feld eintippt.
Sobald der Wert aber über den Lookup eingefügt wird, funktioniert das nicht mehr.
Anscheinend wird dann der OnValidate Trigger nicht durchlaufen.

Trotzdem Danke für Deine Hilfe!!!

Gruß

Re: Daten prüfen nach einfügen in Form

3. September 2015 14:29

Du muss im Lookup Code selbst den Validate Trigger vom Feld anschubsen,
nach dem du dein Feld über den Lookup gesetzt hast.

"OnValidate(myField)"

Re: Daten prüfen nach einfügen in Form

3. September 2015 15:05

Das verstehe ich nicht.

Re: Daten prüfen nach einfügen in Form

3. September 2015 15:26

Hier gibt es viele Hinweise zu den Triggern OnValidate und OnAfterValidate
OnLookup & OnValidate #2

herb61 hat geschrieben:Anscheinend wird dann der OnValidate Trigger nicht durchlaufen.

Das gilt für den Control-Trigger der Form/Page nach einem Lookup, aber nicht für den gleichnamigen Feldtrigger in der Tabelle.

Wenn man solche Prüfungen also in die Tabelle einbaut und
Code:
IF CurrFieldNo <> 0 THEN…

davorschaltet, wird der nur bei manuellen Form/Pageeingaben ausgeführt und funktioniert auch mit Lookup.

Mittels
Code:
IF CurrFieldNo = AktuelleFeldnummerDerEingabe THEN…

kann man alternativ festlegen, dass die Prüfungen nur bei Eingaben in bestimmten Feldnummern ablaufen sollen. Das ist u.U. notwendig, um Validates zu verhindern, die sich gegenseitig aufrufen, was zu einer Endlosschleife führen kann.