¿Autocompletar registros en formulario access 2003?

Tengo un formulario de facturación y quiero que al poner el DNI del cliente automáticamente me salgan sus datos personales, como nombre, apellidos, dirección... ¿cómo lo puedo hacer?

1 Respuesta

Respuesta
1

En este enlace tienes explicadas distintas formas de hacerlo, con un ejemplo similar a lo que preguntas.

Perdona exactamente no seria un cuadro combinado donde yo introduzco el DNI, seria un cuadro de texto para poner el DNI y que automáticamente me salgan sus datos de nombre, apellidos, dirección, provincia.. etc..

O si hay alguna otra forma de poner un botón de comando e introducir el DNI y que se completen los campos de nombre, apellidos, etc..

Los datos de los clientes lo tengo en una tabla llamada Clientes Garrievents y el formulario en blanco donde quiero introducir las facturas se llama facturación.

¿Me puedes detallar un poco mas mi caso?

Gracias

En tal caso has de usar la función DLookUp. En el evento despues de actualizar de tu cuadro de texto, o en el evento Al hacer click si optas por poner el botón, le pones un código similar a este:

Me.txtNombre=DLookUp("Nombre";"[Clientes Garrievents]","DNI='" & Me.txtDNI & "'")

Me.txtApellidos=DLookUp("Apellidos";"[Clientes Garrievents]","DNI='" & Me.txtDNI & "'")

...

Suponiendo que los cuadros de texto en tu formulario se llaman txtDNI, txtNombre y txtApellidos, y en tu tabla de clientes tienes los datos en los campos DNI, NOmbre y Apellidos.

La misma mecánica sería para cada campo que quieras traer automáticamente, únicamente has de ir cambiando los nombres.

He seguido las indicaciones que me dijsite y en el cuadro de texto txtDNI en despues de actualizar he puesto: Me.txtNombre=DLookUp("Nombre";"[Clientes Garrievents]","DNI='" & Me.txtDNI & "'")

Solo lo he probado con Nombre para hacer la prueba, y a la hora de introducir un DNI en el cuadro de texto txtDNI y que automáticamente me salga el Nombre, me aparece este mensaje de error:

Access no puede encontrar la Macro 'Me'

La macro (o grupo de macros)no existe o la macro es nueva y no se ha guardado.

observe cuando introduce la sintaxis nombre_grupo_macro.nombre_macro en un argumento, debe especificar el nombre con el que se guardó la ultima vez el grupo de macros de la macro.

Algo debo de hacer mal, ¿tengo qué hacer antes una macro?

Gracias!

En después de actualizar, tienes que darle al botoncito con los 3 puntos que te aparece a la derecha, y seleccionar Generador de código, y en el editor de VBA que se te abre es donde pones el:

Me.txtNombre=DLookUp("Nombre";"[Clientes Garrievents]","DNI='" & Me.txtDNI & "'")

Obviamente con los nombres que tu tengas, porque si no te va a dar error...

Ok, gracias ahora si que me aparece correcto. lo único que en la tabla de clientes hay uno de ellos que la dirección es bastante larga y cuando quiero hacer una factura en el formulario y pongo su DNI para que me salgan todos sus datos, me aparece un mensaje de error diciendo:

Se ha producido el error '-2147352567 (80020009)' en tiempo de ejecución:

el campo es demasiado pequeño para aceptar la cantidad de datos que intenta agregar. Intenta insertar o pegar menos datos.

finalmente me da la opción de finalizar o depurar.

en la tabla, en el campo de dirección tengo puesto 255 caracteres y en el formulario el cuadro de texto lo he alargado y lo he puesto mas grande y me sigue saliendo este error.

otra cosa, en el formulario también tengo varios cuadros combinados para elegir si es primer o segundo pago. Y a la hora de hacer factura nueva, en el cuadro combinado me aparece la opción que he elegido en el registro anterior y quisiera que me apareciera en blanco. como lo podría hacer?

Muchas gracias de antemano por la ayuda.

Perdona el error del espacio ya lo he solucionado, he modificado los caracteres pero en la tabla de facturación de donde proviene el formulario.

Si me puedes resolver la otra duda para que en el siguiente registro el cuadro combinado me aparezca en blanco.

Luego no se si seria posible que al introducir una fecha en formato dd/mm/aaaa en el cuadro de texto del formulario a la hora de plasmar esa factura en un informe te lo cambiara a la fecha larga "6 de Mayo del 2015"

Gracias

Lo de los cuadros combinados lo puedes conseguir con Me.NombreCombo=Empty (o Me.NombreCombo=Null), poniéndolo en el evento adecuado (si tienes un botón para ir a una nueva factura, el evento sería "Al hacer click" del boton...)

Lo de la fecha juega con los formatos de fecha del cuadro de texto.

Te agradecería que para futuras ocasiones, plantees las nuevas dudas (que no tengan que ver con la original, como este caso) que te vayan surgiendo en nuevas preguntas, pues de esta manera otros usuarios se podrán beneficiar de la respuesta.

Hola, en el formulario de facturación cuando quiero hacer la siguiente factura le clico a la flecha con asterisco para añadir el nuevo registro y es aquí cuando me copia lo que he seleccionado en el registro anterior.

Donde debería de poner Me.NombreCombo=Empty  ? el cuadro combinado se llama "Pago" y el formulario "facturacion". 

Gracias

Ponlo en el evento "Al activar registro" del formulario, de esta manera:

Private Sub Form_Current()

If Me.NewRecord Then Me.Pago=Empty

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas