Cuadro de control de clientes para facturas

Estoy desarrollando un formulario en Access 2000 para generar facturas, que serán almacenadas en la tabla 'facturas'.
Desde un cuadro combinado recojo el valor de Id de cliente desde la tabla 'clientes', y para históricos, querría recoger todos los datos del cliente que corresponden a ese Id en los campos equivalentes en la tabla 'facturas'. De esa manera, aunque la información quede redundante, tendré la posibilidad de contemplar posibles cambios de datos de ciertos clientes, etc.
Los orígenes de control en cada campo de datos de cliente del formulario 'facturas' están correctos (almacenarán en la tabla 'facturas' lo que haya escrito en ellos), pero no consigo encontrar la forma de crear un 'select' de 'clientes', con un filtro a ese Id de cliente, para colocarlo en cada campo de cliente, de manera que con un procedimiento de evento 'onChange' en el cuadro combinado, cambien todos los datos de cliente del formulario.
Yo programo habitualmente en ASP, sobre una hoja plana, y allí todo es sencillo, pero con Access no me aclaro. ¿Podrías despejarme las dudillas?

1 Respuesta

Respuesta
2
Lo que pretendes es fácil, pero no sé si me explicaré bien. Vamos allá.
En el formulario Facturas, si son pocos los cuadros de texto que quiere "rellenar" puedes poner en el evento Después de actualizar del combinado Codcliente
NombreCliente=dlookup("NombreCliente","Clientes","[idcliente]=[forms]![facturas]![nombre del combinado]")
Dirección=Dlookup("dirección","Clientes","[idcliente]=[forms]![clientes]![nombre del combinado]")
Etc.
Si fueran muchos los cuadros de texto podrías poner, en el evento Después de actualizar del combinado
Form.recordsource="select * from Clientes where idcliente=[forms]![facturas]![nombre del combinado]"
En este caso, te cambia el origen del formulario, por lo que deberías poner un botón de comando, llamado por ejemplo Guardar, y en el evento Al hacer clic
Docmd.runsql"Insert into facturas select * from Clientes where [idcliente]=[forms]![facturas]![nombre del combinado]"
En el caso de que una vez que "hallas cambiado" el origen del formulario sea cuando le pones número a la factura, como esté no estaría en la tabla clientes, en el mismo código de Docme.runsql... debajo podrías ponerle
Docmd.runsql"update Facturas set NúmFactura=[forms]![facturas]![númfactura]"
De todas formas, si quieres un ejemplo, dímelo y te lo mando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas