PDA

Vollständige Version anzeigen : Eingabeformular mit Unterformular


dreamweaver
28.03.2006, 06:17
Hallo,

ich habe ein ungebundenes Eingabeformular mit einem gebundenen Unterformular. Nun möchte ich über verschiedene ungebundene Textfelder
Eingaben machen und diese dann per Recordset in eine Tabelle speichern. Im Unterformular werden auch Eingaben gemacht. Vor der Speicherung möchte ich fragen ob die Eingaben wirklich gespeichert werden sollen. Falls nein soll
sich das Formular schließen. Mein Problem ist dabei, dass die Angaben die
ich im UF gemacht habe dann aber ja trotzdem gespeichert werden weil
es gebundene Felder sind. Wie kann ich das lösen?

Smaug
28.03.2006, 07:24
wieso setzt Du nicht einfach eine gebundene Formular-UFO-Konstruktion ein ? Setzt Du das Unterformular in Deiner Konstruktion als Hauptformular ein oder wie erzeugst Du die Abhängigkeiten zwischen Deinem ungebundenen Hauptformular und den Daten des UFo´s ?? ggf. könntest Du um das gebundene Formular eine Transaktion kleiden und diese mit einem Rollback zurücksetzen falls die Eingaben nicht gespeichert werden sollen.
http://ms-office-forum.net/forum/showthread.php?t=69386&highlight=%2ATransaktionen%2A Beitrag #4 !!

Nouba
28.03.2006, 07:25
Ein <tt>Me.Undo</tt> im UFo-Formular sollte Eingaben rückgängig machen können, und im Before_Update müsste wohl die Frage gestellt werden.

dreamweaver
28.03.2006, 07:30
Was ich vielleicht noch erwähnen sollte: Das Unterformular und das Hauptformular füllen Daten in zwei verschiedene Tabellen. Ich möchte für das Hauptformular auch keine Datensatzherkunft festmachen da ich das über ein Recordset lösen will. Es geht also hauptsächlich um das UF welches ja gebunden ist. Kann man da nicht irgendwie undo verwenden?

Deinen Link schau ich mir gleich mal an...

dreamweaver
28.03.2006, 07:34
@Nouba

Das hab ich auch schon probiert. Allerdings kann muss ich dann nach jeder Zeile die ich im UF eingebe das Me.Undo verneinen:

Private Sub Form_BeforeUpdate(Cancel As Integer)
If MsgBox("Soll die Rezeptur gespeichert werden?", vbQuestion + vbYesNo) = vbNo Then
Me.Undo
End If
End Sub

Smaug
28.03.2006, 07:36
wenn es darum geht vor dem Speichern eines einzelnen Ufo-Datensatzes abzufragen ob Speichern o.k. ist dann käme - wie von Nouba erwähnt - das BeforeUpdate-Ereignis in Frage (Abbruch dann über Cancel= True nicht über Undo !!) Wenn sich das Undo auf alle Datensätze im UFo beziehen soll dann nur über eine Formular-Transaktion; diese muss dann über ein Recordset laufen !

Nouba
28.03.2006, 07:37
Wozu dürfte wohl das Cancel-Argument zu gebrauchen sein?

dreamweaver
28.03.2006, 11:49
Hallo,

danke nochmal für eure Antworten. Aber leider konnte ich da nicht so ganz folgen.
Da es schnell gehen musste hab ich die Sache jetzt über eine zweite Tabelle gelöst die
dann entweder gelöscht wird oder die Daten in die Originaltabelle verschiebt.