Condición If compuesta mediante DLookup

Hola buenas,

tengo un formulario F donde se pueden insertar datos en los campos Apellidos, NombreDNI (clave principal), todos de tipo texto y asociados a la tabla Usuarios.
En F esos campos se llaman txtApellidos, txtNombre y txtDNI.


Por otro lado tengo una tabla C con los campos Apellidos, Nombre y DNI (aquí DNI no es clave principal).
Pongamos un ejemplo:

Tabla Usuarios
Apellidos      Nombre      DNI (clave principal)
Santana           Pedro          1x
Lorenzo            Juan            2x
Martin                Luis            3x
Tabla C
Apellidos      Nombre       DNI (no es clave)
Santana            Pedro          1x       
Lorenzo             Juan            2x
Objetivo:
Supongamos que, en un momento dado, se elimina el registro (Lorenzo, Juan, 2x) de la tabla Usuarios. Con posterioridad, desde F y con intención de agregar un nuevo usuario, se escribe en txtDNI el valor 2x. En ese momento, y aún sin haber guardado el registro en la tabla Usuarios, es decir, inmediatamente al posicionar el cursor fuera del txtDNI, deseo que, por ejemplo, al perder el foco de txtDNI (creo que es lo mejor) se evalúe una consulta:

Si el valor de txtDNI que se está introduciendo (en el ejemplo, 2x) NO está en la tabla Usuarios, pero SÍ que está en la tabla C, entonces un cuadro emergente advierte de la existencia del registro en la Tabla C:
"usuario con DNI=2x, Juan Lorenzo, ya existe; pulsar Sí para agregar o No para cancelar"

En caso de pulsar Sí, se debe agregar el registro en Usuarios. En caso contrario, borrar el contenido de txtDNI por si quiere introducir otro valor.
Solución:
el planteamiento que he realizado, de momento infructuosamente, es:
Private Sub txtDNI_LostFocus()


Dim Msg, Style, Response, MyString
Msg = "usuario con" ¿¿¿ DNI=2x, Juan Lorenzo???? "ya existe; pulsar Sí para agregar o No para cancelar"
Style = vbYesNo

If IsNull(DLookup("[DNI]", "[Usuarios]", "DNI='" & Form!txtDNI.Value & "'")) = True And _
   IsNull(DLookup("[DNI]", "[C]", "DNI='" & Form!txtDNI.Value & "'") = False) Then
              Response = MsgBox(Msg, Style)
              If Response = vbYes Then
                          MyString ="Si"
                          

                          ' Agregar registro
                          DoCmd.GoToRecord , , acNewRec
              End If
               ' Deshacer cambios
              DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If

End Sub


Espero que se haya entendido el planteamiento, seguro que tengo errores y agradecerles su ayuda.

Muchas gracias.

Añade tu respuesta

Haz clic para o