Tienes toda la razón, la culpa es mía por "Cortar" y "Pegar", y ya se sabe, en esta fechas(cualquier disculpa es válida).
Tengo una tabla Clientes con 92 Idcliente. En el formulario Pedido, si pongo
Cuando pulso Enter
Pulso Si
Cuando cierro el formulario Clientes
Relleno los datos
Me voy al siguiente registro y le pongo un Idcliente que "si sé que está"
Cuando pulso Enter
El código correcto es
Private Sub IdCliente_BeforeUpdate(Cancel As Integer)
If Nz(DCount("*", "clientes", "idcliente=" & Me.IdCliente & "")) = 0 Then
Dim clientenuevo As Integer, título As String, mensaje As Integer
título = "El cliente que ha escrito no está en la lista"
mensaje = vbYesNo + vbDefaultButton1
clientenuevo = MsgBox("¿Desea agregar este cliente a la lista ?", mensaje, título)
If clientenuevo = vbYes Then
DoCmd.OpenForm "clientes", acNormal, "", "", acAdd, acDialog
Response = acDataErrAdded
End If
End If
End Sub
De todas formas, personalmente usaría un combinado y usaría el evento Al no estar en lista.