2017-02-27 5 views
0

Ich habe ein Problem mit dem ME.UNDO Befehl Änderungen zu verhindern, wenn ein Formular in Access 2013Me.undo in VBA Access-2013

Schließen habe ich eine Form, die zu einer Tabelle verknüpft, die einen Arbeitsvorrat enthält . Dieses Formular ist schreibgeschützt, um versehentliche Benutzeränderungen zu verhindern. Um Änderungen vornehmen zu können, muss der Benutzer auf ein Element doppelklicken, um ein anderes Formular aufzurufen, das mit diesem bestimmten Arbeitselement verknüpft ist, und Änderungen daran vornehmen. Ich habe eine Schaltfläche zum Speichern, auf die der Benutzer klicken kann, um die Änderungen zu speichern. Aber wenn Benutzer nur dieses Formular schließt, mache ich NICHT möchten die Änderungen speichern. Ich benutze me.undo im Schließen-Ereignis (und dies ist die einzige Codezeile in diesem Ereignis). Irgendwie speichert es es noch. Immer wenn ich Dinge dort eintippe und schließe, spiegelt sich die Änderung im Arbeitslistenformular wider.

Irgendeine Idee und Vorschläge bitte. Danke Jungs

+0

plusone für den selbstzerstörerischen Titel. 'If ​​Me.undone There WhoIsMe' – ThunderFrame

+3

Sie können das Rückgängigmachen nicht im Close-Event verwenden - das ist zu spät. Werfen Sie einen Blick auf diesen Artikel: https://bytes.com/topic/access/answers/810694-prevent-saving-when-just-closing –

Antwort

0

Wenn Sie nur einen einzigen Datensatz schreiben, und diesen Datensatz beim Schließen löschen möchten, dann versuchen Sie dies. Aber zuerst, entfernen Sie Ihre OnClose Ereignis, beachten Sie, dass dies auf die Entladen Ereignis des Formulars ausgelöst wird.

Private Sub Form_Unload(Cancel As Integer) 
    On Error Resume Next 
    DoCmd.SetWarnings False 
    DoCmd.RunCommand (acCmdUndo) 
    DoCmd.SetWarnings True 
End Sub 

Wenn die Benutzer mehrere Datensätze erstellen können, dann wird dies nur dann löschen Sie die letzte Zeile eingefügt.