How are you closing the form - custom button or X close? I always disable the X close and use custom button but that does complicate the process because the button event fires before the BeforeUpdate event.
Consider this example which does not use BeforeUpdate but returns user to the form to complete entry.
Code:
Private Sub Close_Click()
If Not IsNull(Me.Rate) Then
'save record and close form
DoCmd.RunCommand acCmdSaveRecord
DoCmd.Close
End If
End Sub
If you want an option to completely abort the record entry/edit, that will mean some more code. At this point, user can press ESC to undo record edits.
Is a form/subform arrangement involved?