There are two basic strategies.
First, you can keep all those fields unbound, and have the Save button validate the valuse and then execute VBA to insert the record into the table.
Second, you can trap attempts to leave the form before the save, and delete/undo the record at that point.
You could try having your save button say
Code:
Private Sub cmdSave_OnClick()
Me.Dirty = False
End Sub
thus saving the record, and your other relevant events say
Code:
Private Sub Form_BeforeUpdate()
If Me.Dirty Then Me.Undo
End Sub
I believe BeforeUpdate is the proper place.