Member
Beiträge: 11
| mcdpone - 14.02.24 16:16
Select Case KeyCode
Case 27 'Esc
RunCommand acCmdSaveRecord
DoCmd.Close , , acSaveNo
End Select
Private Sub Form_Close()
Dim ZAK As Recordset
Set ZAK = CurrentDB.OpenRecordset("Hier_Der_SQL_STRING" dbOpenDynaset, dbSeeChanges)
ZAK.Close
Set ZAK = Nothing
End Sub
Die ESC-Taste zum Speichern des Datensatzes zu nutzen halte ich für ungünstig. ESC dient eigentlich meistens für Rückgängig, Abbruch und dergleichen.
Die ESC-Taste wird, soweit ich weiß, nach dem Abarbeiten der Prozedur weiter gegeben. Um das zu verhindern, müsste KeyCode=0 gesetzt werden.
Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
(....???)
Case 27 'Esc
KeyCode=0
RunCommand acCmdSaveRecord
DoCmd.Close , , acSaveNo
End Select
end sub
Warum führst du die Prozedur in nicht im Casezweig aus?
Taucht das Problem unabhängig von der Art der Abfrage auf.
Vielleicht hilft das:
Private Sub Form_Close()
Dim ZAK As DAO.Recordset
Dim dbs as DAO.Database
set dbs = Currentdb
Set ZAK = dbs.OpenRecordset("Hier_Der_SQL_STRING" dbOpenDynaset, dbSeeChanges)
(...???)
ZAK.Close
Set ZAK = Nothing
dbs.Close
Set dbs = Nothing
End Sub
|