Where do you run the code you posted in post #1? You mention in post # 3 that is being run in the actual data entry form, so you must be loading that with its Data Entry property set to true which puts you at a new record already.
You could try something like this:
Code:
Private Sub frmDateofBirth_AfterUpdate()
Dim ID As Long
Dim sFname as string, sLName as String, sDOB as date
ID = Nz(DLookup("ClientID", "Clients", "FirstName=""" & Forms!EnrollClients!frmFirstName & """ And LastName=""" & Forms!EnrollClients!frmLastName & """ And DateofBirth=#" & Forms!EnrollClients!frmDateofBirth & "#"), 0)
If ID = 0 Then
'Vlad: Doesn't exist so keep adding
'If MsgBox("Client does not exist. Add as new Client?", vbYesNoCancel + vbQuestion, _
"Add New?") = vbYes Then
'Add as new client
'DoCmd.GoToRecord , , acNewRec 'Vlad: already a new record
Else
sFname=Me.frmFirstName
sLName=Me.frmLastName
sDOB=Me.frmDateofBirth
'we need to undo the data entry in the new record and navigate to the existing record
me.Undo
'change the data entry property to No
Me.DataEntry=False
'nagivate to record
Dim rs as Dao.Recordset
Set rs=Me.RecordsetClone
rs.FindFirst "ClientId = " & ID
Me.Bookmark=rs.Bookmark
Set rs=Nothing
'Exit Sub
'add set focus for the next control after DOB
Me.frmNEXTCONTROL.SetFocus
End If
End Sub
Cheers,