Yes that is a solution to that problem, but to get rid of records that are not soppose to be there use the code below.
First select your forms propperties (little square left top of the forms screen) and right click it.
Now select "on exit" en select "event procedure" from the drop down menu.
Paste this code (adjust the names of the fields and table to your data)
Code:
If Me.Dirty Then
Me.Dirty = False
End If
DoCmd.SetWarnings False
Dim strSQL As String
strSQL = "DELETE * FROM YourTableHere WHERE (((YourTableHere.YourControlName) Is Null))"
DoCmd.RunSQL strSQL
What this does is : delete all records that meet there where criteria.
In my case i have a parking management system, and without the license plate number i consider it no record. Thus when my database closes it deletes all records that have no licenseplate numers in my table.
Off couse the users of my database cannot complete the permit without this data. So i know that any record deleted is actually no record at all, just empty space.
But there are circumstances that users still manage to get a "blanc" record in. To ensure clean data i made the above code.
Maybe your problem is solved with missinglinq's code, but if it isnt, try mine