Revisar si valor ya existe en una tabla, a través de formulario de access

Tengo una tabla llamada ID donde tengo la identificación de los trabajadores de mi empresa. Ella contiene, como clave, el campo RUT (DNI).

Creé un formulario para alimentar esa tabla. Sin embargo, quiero que al ingresar un RUT que ya esté en la tabla, el formulario impida el ingreso del mismo. Además, me gustaría que si se ingresa un RUT ya existente, el resto de los campos de formulario se completaran automáticamente, según los datos contenidos en la tabla.

¿Podrán ayudarme con esto?

1 Respuesta

Respuesta
2

En el campo RUT del formulario, en el evento "Después de actualizar" puedes colocar algo parecido al código siguiente, que redacto ahora y que por tanto no he comprobado:

Private Sub RUT_AfterUpdate()
xbusca = DLookup("[RUT]", "ID", "[RUT] = '" & RUT & "'")<br class="scayt-misspell" data-scayt_word="buscaId" data-scaytid="7" />If xbusca = [RUT] Then
MsgBox "Esta Ud introduciendo un RUT ya registrado.", vbCritical, "Aviso"
DoCmd. DoMenuItem acFormBar, acEditMenu, 8,, acMenuVer70
DoCmd. DoMenuItem acFormBar, acEditMenu, 6,, acMenuVer70
Else
End If
End Sub

A ver si te sirve.

Estimado,

Muchas gracias por el código funciona perfecto.

El único problema que tiene es que luego del MsgBox pasa al campo siguiente, en vez de dejar el cursor en el campo RUT, para volver a intentar con un ID diferente.

Intente solucionarlo con setfocus, pero no lo logré. A ver si me ayudas con ese detalle.

Gracias.

Creo que será necesario recargar el form completamente. Es decir, cerrar y volver a abrir el form.

Para cerrar el form puedes añadir Docmd.Close justo antes de else

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas