Actualizar campo de texto al cambiar registro del form

Le escribo a ver si podría ayudarme con una pequeña duda que tengo y no logro solucionar. Gracias de antemano.
Tengo un formulario de Presupuestos. Al seleccionar el "idpet" de un cuadro combinado, me rellena el "idcli" automáticamente (es un campo de la tabla presupuestos también) y también me rellena un campo de texto con el nombre del cliente aunque ese no le guardo. Mi problema es que al seleccionar el "idpet" me rellena bien los otros 2 campos, pero el nombre me deja fijo siempre el mismo, no se actualiza al cambiar de registro. Si tengo 4 presupuestos guardados de distintos clientes, no me cambia el nombre de cliente al recorrerles, ¿me entiendes el problema?
¿Te dejo el código que tengo en el AfterUpdate del Cuadro combinado ok? Es en base a los ejemplos que me diste:
Private Sub cmbPet_AfterUpdate()
   Me.idcli = DLookUp("[idcli]","tblPetOferta","[idpet]="&Me.cmbPet.Column(0))
   Me.nomcli= DLookUp("[rsocial]","tblClientes","[idcli]="&Me.cmbPet.Column(1))
   Me.descrip= DLookUp("[descrip]","tblPetOferta","[idpet]="&Me.cmbPet.Column(0))
End Sub
Aclaración: El cuadro combinado tiene 2 campos, "idpet" e "idcli" aunque el "idcli" no lo muestro

3 respuestas

Respuesta
1
El problema puede estar en que, aunque un cuadro combinado tenga varias columnas la dependiente, es decir la que elige es solo una (En propiedades puedes ver la que tienes como dependiente aunque supongo que será el IdPet)
Si en la tabla tblClientes no tienes el IdPet, tendrás que hacer una consulta de selección en la que vincules esta tabla con la tblPetOferta y hacer el dlookup sobre esta consulta empleando para la búsqueda el campo IdPet.
Bueno días Angeles, gracias por tu pronta respuesta.
La consulta de selección podría ser:
SELECT rsocial
FROM tblClientes
WHERE ((tblPetOferta.idcli)=[Forms]![frmPresuClientes]![idcli])
Y respecto a hacer el dLookUp sobre la consulta no tengo ni idea de como se haría, ¿me puedes echar una mano?
Mil Gracias
Perdona por la tardanza pero es que este fin de semana me he cambiado de ordenador y... supongo que alguna vez te habrá pasado y sabrás lo que se tarda poner todo en orden.
En cuanto a la consulta, supongo que la tabla tblClientes y tblPetOferta se vincularán por el campo IdCli, entonces la sql sería:
Select * from tblClientes inner join tblPetOferta on tblClientes.IdCli=tblPetOferta.IdCli
Me cuentas.
Buenos días Angeles,
no pasa nada por la tardanza, faltaría más jejejeje.
¿A ver te cuento ok?
Esto sigue sin funcionar y me esta volviendo loco. Tanto de la forma que tenia hecho como de la que me has dicho tu, al seleccionar del combo el idpet, me rellena el idcli y el campo de texto con el nombre del cliente, pero el problema persiste. Lo que hace es dejarme ese campo de texto fijo, es decir, no me cambia al recorrer los registros y si doy de alta uno nuevo, me aparece el campo relleno con el nombre fijo. No se me ese campo a corde con el idcli correspondiente.
No se si me entiendes lo que sucede.
Un saludo y muchas gracias pr todo.
Israel
No se lo que puede pasar, si quieres me mandas la BD (en access 2003 y con pocos registros para que pese poco) y la echo un vistazo.
[email protected]
Respuesta
1
Prueba a poner la línea
Me.idcli = DLookUp("[idcli]","tblPetOferta","[idpet]="&Me.cmbPet.Column(0)) 
Me.nomcli= DLookUp("[rsocial]","tblClientes","[idcli]="&Me.cmbPet.Column(1)) 
Me.descrip= DLookUp("[descrip]","tblPetOferta","[idpet]="&Me.cmbPet.Column(0))
Me. Nomcli. Requery
Para ver si es un problema es de refresco de dato.
Hola, ante todo muchísimas gracias por tu respuesta y dedicación.
Decirte que conseguí solucionarlo, poniendo un código en el evento "al activar registro" del formulario, donde mediante un if y un DLookUp he solucionado el problema.
Darte de nuevo las gracias por tu respuesta y tu tiempo, y espero poder seguir preguntándote mis futuras dudas.
Un fuerte abrazo y un saludo desde Santader,
Israel
Respuesta
1
Si quieres pásame la bd
[email protected]
Muchas gracias, ya lo solucione, pero tengo otro problema que te expongo vía e-mail si te parece bien ([email protected])
Un saludo desde Santander (España)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas