Hallo,
ich habe ein Problem mit einem Eingabeformular. Ich habe ein Hauptformular angelegt mit einem Unterformular und in dem UF sollen Eingaben gemacht werden. Nun möchte ich verhindern, dass die EIngaben automatisch gespeichert werden. Im UF habe ich daher einen Abbrechen Button angelegt mit folgendem Code:
Private Sub Abbrechen_Click()
If Me.Dirty Then
DoCmd.DoMenuItem acEditMenu, acEdit, acUndo
End If
DoCmd.Close
End sub
Dann habe ich noch einen Speichern Button mit diesem Code:
Private Sub Speichern_Click()
DoCmd.Close acForm, "frmRenov"
End Sub
Nun möchte ich erreichen, dass beim Schließen des Formulars über das "Kreuz" nicht automatisch gespeichert wird.
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.Dirty Then
If vbNo = MsgBox("Möchten Sie Speichern?", vbQuestion + vbYesNo, "Frage") Then
Cancel = True
Me.Undo
End If
End If
End Sub
Es funktioniert auch so weit, nur kommt von Access immer die Meldung "Datensatz kann nicht gespeichert werden", was kann ich dagegen machen?
Hallo,
schau mal hier rein:
http://accesshamburg.blogspot.co.at/2012/03/access-vba-verhindern-speichern.html (http://accesshamburg.blogspot.co.at/2012/03/access-vba-verhindern-speichern.html)
Leider funktioniert das nicht. Wenn ich den Code in das UF eingebe, kommt die Meldung von Access, das Datensatz nicht gespeichert werden kann und wenn ich den COde in das Hauptformular eingebe, wird der Datensatz trotzdem gespeichert
Hallo,
DoCmd.SetWarnings False
If Me.Dirty Then
If vbNo = MsgBox("Möchten Sie Speichern?", vbQuestion + vbYesNo, "Frage") Then
Cancel = True
Me.Undo
End If
End If
DoCmd.SetWarnings True
Mit dem Befehl setWarnings kannst du die Access-Warnungen ein- und ausblenden.
Ich denke das ist das was du meinst.
Bei mir kommt die Meldung trotzdem weiterhin, ich hab das Makro auch bei HF und UF und bei beiden gleichzeitig ausprobiert, nichts zu machen :'( :'(
OK,
dann halt auf die Brutaloart... 8)
If Me.Dirty Then
If vbNo = MsgBox("Möchten Sie Speichern?", vbQuestion + vbYesNo, "Frage") Then
Cancel = acDataErrContinue
Me.Undo
End If
End If
DoCmd.SetWarnings nimmst du wieder gänzlich raus.
Im Anhang ein kleines Beispiel zur Veranschaulichung
[Anhang gelöscht durch Administrator]
Vielen, vielen Dank! Klappt super! ;D
Hallo,
schön, dass es funktioniert
Bitte schließe den Thread in dem du in DEINEM ERSTEN Beitrag auf 'gelöst' klickst!
DANKE