Sorry, but I'm not following you, you say you don't end up with empty records in the table (good) but is saving a blank record on the form -
it is not - it is just displaying a new record-placeholder on the form. Again, this is the default behaviour for Access forms that allow new data entry.
To do what you want (suppress the new record) you need to manipulate the AllowAdditions property of the form. So for example you set it to No by default so you don't see the new record when you open the form, then in your Add New Record button's Click event you turn it on:
Code:
Private Sub cmd_Add_Record_Click()
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec
End Sub
And finally you need to turn it off again, probably in the form's AfterUpdate event once the new record was created:
Code:
Private Sub Form_AfterUpdate()
If Me.AllowAdditions = True Then Me.AllowAdditions = False
End Sub
In my opinion all this is not really warranted, I think educating users about the default Access behaviour would be preferred...
Cheers,
Vlad