Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: kikimat am Mai 27, 2013, 10:32:15

Titel: Schließen ohne Speichern
Beitrag von: kikimat am Mai 27, 2013, 10:32:15
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?
Titel: Re: Schließen ohne Speichern
Beitrag von: database am Mai 27, 2013, 11:49:11
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)
Titel: Re: Schließen ohne Speichern
Beitrag von: kikimat am Mai 27, 2013, 13:27:23
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
Titel: Re: Schließen ohne Speichern
Beitrag von: database am Mai 27, 2013, 14:07:14
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.
Titel: Re: Schließen ohne Speichern
Beitrag von: kikimat am Mai 27, 2013, 14:19:42
Bei mir kommt die Meldung trotzdem weiterhin, ich hab das Makro auch bei HF und UF und bei beiden gleichzeitig ausprobiert, nichts zu machen :'( :'(
Titel: Re: Schließen ohne Speichern
Beitrag von: database am Mai 27, 2013, 15:00:27
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]
Titel: Re: Schließen ohne Speichern
Beitrag von: kikimat am Mai 27, 2013, 20:16:33
Vielen, vielen Dank! Klappt super! ;D
Titel: Re: Schließen ohne Speichern
Beitrag von: database am Mai 28, 2013, 14:48:15
Hallo,
schön, dass es funktioniert

Bitte schließe den Thread in dem du in DEINEM ERSTEN Beitrag auf 'gelöst' klickst!

DANKE