Traer datos de un formulario a otro en access 97

Tengo un gran problemilla, este es: Estoy desarrollando una base de datos, en donde el objetivo es llenar un formulario "X" (el cual tiene 40 campos) e implimirlo, por ahora, todo esta perfecto pero quiero que al ingresar el NIT o cédula del cliente, en el mismo formulario "X" me pegue los datos de otra tabla y/o formulario denominado "clientes" donde tengo toda la información correspondiente de cada uno de los clientes, no he podido saber cómo hacer para que al ingresar el NIT me pegue el nombre, la dirección y el teléfono (solamente) del mismo.
Hay que tener en cuenta que para los clientes nuevos primero se llena el
formulario de "clientes" y luego si se llena el formulario "X". ¿Hay qué programar un botón?, ¿O se puede hacer que sólo al ingresar el NIT en el campo correspondiente y pasar a otro me pegue los datos en otros campos inhabilitados para escribir?
Respuesta
1
Supongamos que la tabla principal del Formulario POR es "Pedidos".
Antes que nada debemos establecer las relaciones de la base de datos, en este caso, deben estar relacionadas las tablas "Clientes" y "Pedidos" en una relación 1 a muchos a través del campo NIT.
Luego se debe hacer una consulta que incluya ambas tablas (la relación debe aparecer automáticamente) y seleccionar todos los campos de la tabla Pedidos que se deben llenar (Incluyendo el NIT de esta tabla) y todos los campos de Clientes que se deben mosrtrar en el form X.
Luego se debe establecer esta consulta como origen del registro del form X. Cuando ingresemos en el form el NIT (de la tabla Pedidos) deberán aparecer automáticamente todos los datos del Cliente que se obtinen a través de la relación.
Espero que te sirva la explicación. Cualquier duda consúltame.
Suerte

1 respuesta más de otro experto

Respuesta
1
Lo que pides es muy sencillo.. En el evento AntesDeActualizar del cuadro de texto NIT escribe el siguiente código...
Dim dbs as database
Dim rst as recordset
set dbs=currentdb
set rst=dbs.OpenRecordset("SELECT * FROM NombreTablaClientes WHERE NombreCampoNIT = '" & me.Nit & "'")
If rst.RecordCount then
'Se ha encontrado el cliente..
Me.NombreCliente=rst!NombreCliente
Me.Direccion=rst!DireccionCliente
Me.Telefono=rst!TelefonoCliente
else
msgbox "El código de NIT indicado no se corresponde con ningún cliente.",vbInformation
Cancel=true
Exit sub
end if
Considero que NIT es un campo de texto. En el caso de que sea SIEMPRE numérico no debes encerrar el código entre comillas..
set rst=dbs.OpenRecordset("SELECT * FROM NombreTablaClientes WHERE NombreCampoNIT = " & me.Nit)
Espero que te sirva...
Saludos.
Jordi Pérez i Madern
Mataró (Barcelona)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas