¿Cómo consigo que no me modifiquen en todas las facturas la dirección del cliente?

Tengo un formulario en Access basado en dos tablas: facturas y clientes, cuando un cliente me cambia de dirección yo la modifico en la tabla clientes y las nuevas facturas me aparecen con esta nueva dirección, pero las anteriores también y yo quiero que conserven la dirección anterior. ¿Cómo hago?.
Respuesta
1
Tal y como creo que lo tienes diseñado, esto es normal. Digamos que "falta" una tabla que haría de intermediaria entre las facturas y los clientes. Es más si tienes también una tabla con los precios de productos, cuando actualices estos, te ocurrirá lo mismo, con un añadido: que si quieres sacar copia de una factura antigua te encontrarás que se ha modificado el montante de la misma, al ir actualizando los precios.
Desconozco como tienes establecidas las relaciones entre las tablas. Esta nueva tabla (en adelante Transacciones), debería contener los indices/claves principales de las otras dos, y estar relacionadas "uno & infinito". De esta forma todas las facturas volcarán sus datos en la tabla 'Transacciones'.
Si como te dije anteriormente, tienes una tabla productos, el índice de esta tabla tendrá que existir también como campo en la tabla Transacciones. Todas las operaciones de compra/venta irán a esta tabla qudando recogidos los precios que se facturaron, mientras que la actualización de precios se realizará siempre en la tabla productos.
Cuando busque la venta de un producto lo haré a través de la tabla transacciones y el dato mostrado de precio de venta del producto se referirá a la fecha en que se realizó la venta, aunque el producto haya aumentado y disminuido su precio.
Creo que con esto tendrás suficiente. ¿OK?
Te pregunto lo mismo es que no lo tengo claro del todo, entonces el informe factura debe tener sus orígenes de control en la tabla transacciones y no en las tablas pedidos o clientes.
Cuantas veces quieras. Efectivamente la tabla que denominamos anteriormente (por llamarla de algún modo) Transacciones, es la que debe recoger los datos de las facturas emitidas, de modo que el vinculo entre las demás tablas se realiza a través de un id.
Cualquier duda al respecto, a tu entera disposición. ¿OK?

1 respuesta más de otro experto

Respuesta
1
Tal como lo tienes lo mejor es que en la tabla Facturas crees un campo llamado Dirección. El cuadro de texto del formulario hazlo depender de esta Dirección de la tabla Facturas. Supongo que tendrás un cuadro de texto, o combinado que se llame, p. ej. NombreCliente, Idcliente, etc, que viene de la tabla Clientes. En las propiedades de ese cuadro Nombrecliente, en Eventos-Después de actualizar-Procedimiento de evento(pulsa el botón de generar), se abrirá la ventana del editor de Visual Basic, y entre Private Sub y la línea End sub
Escribe
Dirección=Dlookup("Direccion","Clientes","[nombrecliente]=[forms]![nombre del formulario]![nombrecliente]")
Le estás diciendo que después de actualizar el nombre(ó el Idcliente)del cliente busque en la tabla clientes la dirección que se corresponde con el nombre del cliente que acabas de actualizar.
Con lo cual la dirección se te queda guardada en la tabla facturas y aunque modifiques la dirección de la tabla Clientes las antiguas no te cambian.
Lógicamente el cuadro de texto Dirección del informe Factura( o como lo llames)debe depender del de la tabla Facturas.
Si tienes alguna pega dímelo.
Gracias pero la verdad en que esto no me ocurre solo con el campo Dirección, también con los teléfonos y con otra serie de campos de otras tablas, por lo tanto, no se si exista pero ojala u allá una respuesta más generalizada

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas