By default, any changes made to a bound record in a form are automatically saved whenever you move away from that record - this could be by moving to another record, by creating a new record or by closing the form. This is generally fine, but what if an unplanned change has been made in error? Wouldn't it be nice to get a “record changed - save changes?” type prompt when you move away from a record?
Fortunately this is easily achieved through use of the form's BeforeUpdate event - this is triggered by saving changes to a bound record (that's why it called “before update”, after all), so it's triggered when you move away from a modified record. Of course, it's also triggered if you do an explicit Save operation, but that's okay, it then just gives you a chance to confirm that you want to save, which is generally a good thing too. Anyway, here's the code.
Private Sub Form_BeforeUpdate(Cancel As Integer) Select Case MsgBox("Do you want to save changes to this record?", vbYesNoCancel + vbQuestion) Case vbYes 'Go-ahead and save 'Don't have to do anything Case vbNo 'Undo all changes, close without saving Me.Undo Case Else 'Cancel change, continue editing Cancel = True End Select End Sub