Autocompletar campos en access en un formulario al introducir un valor en otro campo.

He creado un formulario con los campos (RazonSocial, Dirección, Teléfono, Contacto). Lo que hice es crear un buscador, un formulario que busca en la tabla Cliente y al hacer doble click lo pega en el campo RazonSocial. Esto funciona perfecto. Luego escribí en VB un código, usando DLookup en el evento afterUpdate que trae la información de los campos restantes. Esto funciona perfecto al seleccionar RazonSocial desde un cuadro combinado o al escribirlo manualmente.
Pero cuando uso el buscador para cargar los datos en el campo, deja de traerme la información de los otros campos.

Dejo el código que estoy usando para el buscador, la parte en que carga los datos en el campo RazonSocial. Desde ya muchas gracias.

'Carga Datos al Formulario al hacer doble clic sobre una fila
Private Sub Lista1_dblClick(Cancel As Integer)
 Form_Factura.RazonSocial = Lista1.ItemData(Lista1.ListIndex)
 DoCmd.Close acForm, "BuscaCliente"
 SendKeys "{ENTER}", True
End Sub
'Ahora el codigo para autocompletar los campos
 Option Compare
 Database
 Private Sub RazonSocial_AfterUpdate()
On Error GoTo Err_RazonSocial_AfterUpdate
Dim txtFiltro As String
txtFiltro = "idCliente= " & Me!RazonSocial
 Me!Telefono = DLookup("Telefono", "Cliente",
 txtFiltro)
 Me!Direccion = DLookup("Direccion", "Cliente",
 txtFiltro)
 Me!Contacto = DLookup("Contacto", "Cliente",
 txtFiltro)
 Salir_RazonSocial_AfterUpdate:
 Exit Sub
Err_RazonSocial_AfterUpdate:
 MsgBox Err.Description
 Resume Salir_RazonSocial_AfterUpdate
End Sub

1 respuesta

Respuesta
1

La forma fácil es que integres en el código que te traspasa la razón social los DlookUp y los pases a sus respectivos campos, algo así:

'Carga Datos al Formulario al hacer doble clic sobre una fila
Private Sub Lista1_dblClick(Cancel As Integer)

Dim txtFiltro As String
Form_Factura.RazonSocial = Lista1.ItemData(Lista1.ListIndex)

txtFiltro = "idCliente= " & Lista1.ItemData(Lista1.ListIndex)
Form_Factura.Teléfono = DLookup("Teléfono", "Cliente", txtFiltro)
Form_Factura.Dirección = DLookup("Dirección", "Cliente", txtFiltro)
Form_Factura.Contacto = DLookup("Contacto", "Cliente", txtFiltro)
DoCmd.Close acForm, "BuscaCliente"
SendKeys "{ENTER}", True
End Sub

Muchas gracias funcionó a la perfección.

Quisiera hacerte otra consulta sobre access.

Te comento lo que quiero hacer, haber si me podes dar una idea de como comenzar.

Tengo un formulario de factura, con un subformulario de detalle, el cual se ve en vista de hoja de datos. Lo que me gustaría hacer es que al posicionarme sobre una de las lineas del subformulario, teniendo como clave el código del producto, en un campo de datos adjuntos me aparezca la imagen de ese producto. Es decir tener un solo campo de datos adjuntos el cual cambie la imagen según en la linea en que me posicione.

Sinceramente no se como comenzar.

Desde ya muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas