Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Jonny am November 18, 2011, 12:40:40

Titel: Änderungsdatum
Beitrag von: Jonny am November 18, 2011, 12:40:40
Hallo,
ich möchte immer wenn im Form irgendein Feld geändert wurde ein Feld Anderungsdatum mit Now belegen.
Jetzt habe ich schon versucht die Ereignisse "nach Aktuallisieren" und "bei Änderung" mit dem Befehl
me!aenderungsdatum = now
zu versehen.
Leider klappt es nicht.
Arbeite mit Acc 2007

Gruß

Johann
Titel: Re: Änderungsdatum
Beitrag von: Beaker s.a. am November 18, 2011, 16:54:20
Hallo Jonny,
In AfterUpdate noch was zu ändern ist zu spät (DS bereits gespeichert). Dadurch ist der DS dann wieder in Bearbeitung (Dirty ist True). Wenn Du in AfterUpdate nach der Änderung (Datum=Now) den DS programmatisch speicherst (Dirty=False oder DoCmd.RunCommand acCmdSaveRecord) werden Before- und AfterUpdate erneut gefeuert; - da läufst Du im schlimmsten Falle in eine Endlosschleife, oder bekommst, u.U. nicht verständliche, Fehlermeldungen.
"Bei Änderung" ist IMO zu früh, weil da ja noch gar nicht klar ist, ob die Änderung(en) dann auch gespeichert werden soll (s.u.)
Verwende Form_BeforeUpdate. Da hast Du evtl. ja schon Code mit einer Abfrage "Speichern J/N?", womit Du das steuern kannst ob gespeichert werden soll oder nicht; - und das ist dann ja auch der richtige Zeitpunkt, bei einer vom Anwender tatsächlich gewollten Änderung, das Änderungsdatum zu schreiben.
hth
gruss ekkehard
Titel: Re: Änderungsdatum
Beitrag von: Jonny am November 21, 2011, 11:20:36
Hallo ekkehard,
erstmal vielen Dank für die Antwort.
Leider klappt es nicht das Änderungsdatum wird immer aktuallisiert.

Gruß

Johann
Titel: Re: Änderungsdatum
Beitrag von: DF6GL am November 21, 2011, 11:27:21
Hallo,

WAS machst Du denn, weshalb es nicht klappt?


Sub Form_BeforeUpdate(Cancel AS Integer)  ' wie Ekkehard  schon gesagt hat
Me!Aenderungsdatum=Date  ' besser "Date" anstatt "Now" , wenn keine Uhrzeit benötigt wird
End Sub


Das Form_BeforeUpdate-Ereignis tritt nur dann auf, wenn irgendein Feldwert geändert wurde.


Titel: Re: Änderungsdatum
Beitrag von: Jonny am November 21, 2011, 12:03:40
Hallo,
ich hab es gefunden.
Es sind Prüfberichte mit zwei Prüfer.
Diese beiden oder auch nur einer melden sich an.
Wenn ich jetzt einen Prüfbericht aufrufe habe ich einfach die zwei Prüfer neu zugeordnet.
Das führt dann ja zwingend zu einer Änderung auch wenn beide gleich sind.
Jetzt mache ich es nur wenn die Anmeldung vom Prüfbericht abweicht und siehe da es klappt.

Also nichts anderes wie ein blöder Logikfehler.

Gruß

Johann