Isla Dogs. point somewhat missed in that I am looking for a different form behavior. The db had been faithfully showing the duplicate value message. Before that I had tried setting RefNum as the PK. The code has evolved since then but I first made RefNum the PK, even before the code to show the duplicate value message was put in. Nothing happened immediately when the duplicate value was put in RefNum. The user could continue to enter more data into the record until the db went to save the record and then the native Access message for duplicate value would pop up. For me that was not a great solution. Lots of time wasted filling in data that is lost, frustrating, etc. etc. So next was the code I found which gives the notification of the duplicate value. That worked, great. So it was after that when I had the great idea ' Why not have the db move to the record which has the RefNum they had typed in which was the duplicate?' My logic is that, other than a typo, the main reason a user would put in a duplicate RefNum would be because they had additional data to put into that record. And I sort of got that to work with DoCmd.FindRecord ctlRefNum.Text. At some point along the way to this point I had to take out "no duplicates" for RefNum to make the code work. I justified to myself that the code would take care of preventing duplicates. So then at this point all is working perfect from a user point of view. If the user typed in an existing RefNum the form would jump to the record that had that RefNum and they could add data to the record as they please. The problem is that this method is not exactly preventing duplicates, it is creating an additional record with that RefNum which contains only the fields filled in up the point that the before update fired and detected the duplicate. Mostly these records have only a few fields as the RefNum field is fairly 'early' on the page/form. I tried adding code to get rid of the unwanted records but if I did that before the DoCmd.FindRecord then the fact that the record was deleted caused the DoCmd.FindRecord to not find the record. If I tried to delete last record after the Db moved to the reocord I wanted then the, naturally, the form would move to that record thus defeating the code that moved to the record I wanted. So I started the discussion thinking I just needed help know which event to use to get rid of the unwanted 'near empty' record. Since then the discussion has evolved to other possible solutions. I appreciate any feedback / advice / philosophical punditry that you have to offer.