You don't need to use an unbound form to do any of this. Bind the form back to what it used to be. And then, in the form's General Declarations section put
And then in the form's BEFORE UPDATE event put:
Code:
If Not blnSave Then
Cancel = True
If Msgbox("Do you wish to cancel this record?", vbYesNo + vbQuestion) = vbYes Then
Me.Undo
End If
End If
And then in your save button's click event put
Code:
blnSave = True
If Me.Dirty Then Me.Dirty = False
That will then not let the record be saved if the button hasn't been clicked but it will let it save if it is clicked.