PDA

Vollständige Version anzeigen : Datensatzwechsel verhindern


JPA
26.04.2016, 17:52
Servus Forum,

leider gibt es das Event onRecordExit (RecordExit) in Access nicht.
Das Event onCurrent (Form_Current) wird ja ausgelöst, nach dem der Datensatzwechsel stattgefunden hat.

Ggf. soll jedoch das verlassen eines Datensatzes verhindert werden, unabhängig welche Daten im Datensatz vorliegen. Z.B. in Abhängigkeit von Daten in einem Unterformular oder noch ganz andere Informationen.

Dafür habe ich mir eine allgemeine Klasse geschrieben (die in jedem Formular angewandt werden kann), die genau dieses Event zur Verfügung stellt.

Meine Klasse stellt das Event AfterRecordExit zu Verfügung, welches ausgelöst wird nach dem ein anderer Datensatz gewählt wurde. Eigentlich kein unterschied zum integrierten Event onCurrent.
Jedoch liefert mein Event den RecordSet vom vorherigen Datensatz und im Event kann entschieden werden, ob wieder zum vorherigen Datensatz zurück gewechselt werden soll.
Wird tatsächlich zum vorherige Datensatz zurückgewechselt, dann tritt das Event QueryRecordExit ein. In diesem kann entschieden werden, ob der Datensatz verlassen werden soll oder nicht. Soll nicht verlassen werden, bleibt der Datensatz einfach stehen, ansonsten wird wieder (die Klasse hat sich diesen gemerkt) zum neuen angewählten Datensatz gegangen.

Meine Klasse wechselt also nachträglich wieder zum ursprünglich Datensatz zurück (falls erforderlich) und wieder zum neuen (wenn gewünscht).
Das Event onRecordExit ist zwar nicht perferkt nachprogrammiert, jedoch ist das Endergebnis erreicht. Dieses hin- und her wechsel lässt sich nach menen Wissenstand nicht verhindern.

Der Code findet ihr in der Demo-Dateien und ist als eine erste Grundlage gedacht.
Auf weitere Anregungen/Ideen freue ich mich sehr.

Grüße
JPA

PS: Ich hoffe meine Kommentare reichen zum nachvollziehen aus, ansonsten einfach Fragen stellen :-)