PDA

Vollständige Version anzeigen : Ereignis bei Verlassen des Datensatzes


Alexandra, die zweite
07.11.2001, 07:00
Morgen allerseits,

ich hätt da doch auch nochmal eine kleine Frage, ich möchte bei Änderungen eines Datensatzes abfrage, ob die Änderungen gespeichert werden sollen oder nicht. Das hatte ich mir so überlegt ...

If Me.Dirty Then
If MsgBox("Wollen Sie die Änderungen speichern?", vbYesNo, "Speichern?") = vbNo Then
Me.Undo
Cancel = True End If
End If

Im Prinzip funktioniert das auch, allerdings würde ich diese Funktion gerne nur beim Verlassen einen Datensatzes aufrufen. Obwohl, wenn ich mir das so recht überlege .. naja, vielleicht habt ihr ja noch einen anderen Tipp für mich.

Es geht (immer noch :-) um die Datenbank, in der ich im Hauptformular relativ viele Checkboxen hab, auf Grund deren Auswahl dann Daten in ein Unterformular eingetragen werden (automatisch). Allerdings muss ich bei einigen Checkboxen (wenn sie ausgewählt werden) den Focus auf das Unterformular setzen - und hier sehe ich gerade mein Problem, damit verlasse ich doch schon den Datensatz im Hauptformular oder?

Ich hab's als Ereignis "vor Aktualisierung" probiert, allerdings erhalte ich dort meine Rückfrage (ob speichern oder nicht) eben dann, wenn ich nach Checkbox-Auswahl den Focus auf das Ufo setzen muss.

Vielleicht habt ihr ja noch eine andere Idee?! :-),
Alex

Mattes
07.11.2001, 08:27
Hallo Alex,

reicht es nicht, wenn vor dem Schließen des Forms gefragt wird? Andere Möglichkeit, wäre beim verlassen des HF zu Fragen, oder bein erneuten eintreten ins HF.

Alexandra, die zweite
07.11.2001, 10:48
hi Mattes,

nein, reinweg beim schließen dürfte nicht reichen, da ja auch mal mehrere Datensätze auf einmal (vielmehr hintereinander :-) angelegt werden, und das Formular dazwischen nicht geschlossen wird.

Die andere Sache (mit dem HF) klappt, denke ich, auch nicht, da ich, wie gesagt, in das Unterformular springe, wenn ich bspw. Checkbox1 auswähle. Klicke ich dann auf Checkbox2 (im HF) springe ich ja wieder ins HF wo dann die Frage kommen würde; allerdings ist's da ein wenig verfrüht da ich nicht bei jeder Checkbox-Auswahl die Frage erscheinen lassen wollte.

Trotzdem danke,
Alex

Mattes
07.11.2001, 10:56
Rückfrage:

Soll Deine Frage nur bei ÄNDERUNGEN oder auch beim HINZUFÜGEN eines neuen DS kommen?

Alexandra, die zweite
07.11.2001, 11:19
hi again,

nur bei Änderungen reicht vollkommen; aber im Grunde genommen wär es auch egal. Soll heißen .. ich nehm das, was einfacher ist :-)

Gruß,
Alex

Mattes
07.11.2001, 11:52
hmm, ich bin ja auch nicht so fit, aber:

Wenn Du einen neuen DS erstellst (bestimmt autowert auf Kundennummer oder so) hat der dann die höchste DS-Nummer. Könntest Du nicht mit recordcount Deine DS zählen, und dann beim Schließen sagen:

If me DS-Nummer < recordcount ( Es ist also kein neuer DS ) ... Dein Code ELSE Docmd.close

.. oder so?

Ist natürlich syntaktich nicht korrekt, nur so ne Idee.

hth Mattes

Alexandra, die zweite
07.11.2001, 12:25
hi mattes,

hhhmm, ja, könnte prinzipiell funktionieren. Allerdings doch nur, wenn ich das Formular schließe, nicht wenn ich im Formular den Datensatz wechsle, oder?

Und so gesehen, könnte ich dann ja gleich beim Schließen, abfragen ob sich der Datensatz geändert hat, wenn ja fragen ansonsten einfach schließen...

Danke und Gruß,
Alex

Mattes
07.11.2001, 19:32
...shi*, haste auch wieder recht...

Alexandra, die zweite
08.11.2001, 06:29
Morgen Mattes,

aber nur ausnahmsweise ;-)

Gruß,
Alex