Modificar datos de un campo (precio) y que se conserven los antiguos

Quiero hacer una modificación en los datos de una tabla de precios, pero quiero que en los informes, se conserven también los antiguos. O sea, actualizo precios, pero quiero conservar aquellos que tenía en trabajos anteriores a la actualización.

1 respuesta

Respuesta
1

Un par de cosas:

Los informes "leen" la información de las tablas o las consultas. Eso significa que te mostrarán la información que haya dentro de esos objetos. El informe no "guarda" información por sí mismo.

Teóricamente, aunque modifiques los precios, los registros que ya tengas guardados seguirán con el precio antiguo. Eso no será así si tienes las tablas involucradas relacionadas y definida la propiedad de la relación como "Actualizar campos en cascada". Si tienes la relación definida así como te comento es muy probable que la información del precio sí se te actualice. En ese caso tienes dos soluciones:

1.- Redefinir las propiedades de la relación, eliminándole la propiedad que te comentaba, o

2.- Guardándote los datos que tienes en un duplicado de la tabla original, dejando la tabla a cero.

Evidentemente esta segunda opción complica un poco las cosas a la hora de realizar consultas.

Si no sabes muy bien de qué te estoy hablando con el tema de las relaciones la solución más sencilla es la de "prueba y error". Es decir:

1.- Copia tu base de datos (entera) y pégala con otro nombre: algo así como BDdePrueba, por ejemplo.

2.- En la BD de prueba actualizas un par de precios (no te "mates" actualizándolos todos... ¡Seria una locura!)

3.- Comprueba si se te han modificado los precios antiguos. Si no se te han modificado... perfecto. Ya sabes que no vas a perder los datos históricos.

4.- Como siempre convendría hacer, por si las moscas, guárdate una copia de seguridad de la BD antes de realizar cambios "masivos". Es una buena práctica ;-)

Gracias por tu respuesta. Las relaciones creo tenerlas correctamente, o sea, NO actualizo campos en cascada, pero sí se Exige Integridad referencial.

Lo hago de este modo:

1º Creo una consulta que recopile campos de distintas tablas, el conjunto de campos resultantes da lugar a una tabla con el total de datos de un determinado servicio.

2º Creo un Formulario en base a la consulta anterior para ir agregando registros, uno por cada servicio. Con un botón termino la inserción de datos e indico que abra una consulta de datos anexados.

3º He creado esa Consulta de tipo Anexar que en copiaría los registros del formulario anterior a una tabla que me almacenará el TOTAL de los servicios realizados.

Pensé que solo copiaría el último registro, y resulta que los copia todos (repitiéndolos), de modo que la tabla que almacena el TOTAL de servicios, se incrementa exponencialmente.

¿Cómo podría hacer para que sólo se anexara el registro activo?

Necesito encontrar la solución porque al modificar precios, me interesa conservar en la tabla TOTAL de servicio, los servicios con lo precios antiguos y los nuevos.

Gracias de nuevo

Bufffff... vaya con el sistemita que utilizas! :-)

No acabo de entender muy bien por qué realizas la consulta y sobre ella el formulario, si al final lo que vas a hacer (por lo que comentas) es dar de alta nuevos registros y llevarlos a una tabla de total... Me resulta extraño. ¿:) ¿No te sería más cómodo crear el formulario sobre la tabla TOTAL, y a partir de ahí ir añadiendo nuevos registros?

Imagino que hay algo que se me escapa de la estructura de tu BD y que por eso tu operativa me suena rara. Si la solución anterior (la de operar directamente sobre la tabla TOTAL) no es válida necesitaría más detalles sobre tu BD y el proceso que realizas.

Gracias por su atención. El planteamiento en principio es sencillo, quizá no logre expresar claramente mi problema.
Veamos si ahora soy capaz.
Dispongo de las siguientes Tablas:
CLIENTES, OPERADOR, PRODUCTO
Creo una Consulta llamada VENTA, cuyos campos son recopilados de los anteriores. Esta Consulta va a recoger el trabajo diario.
La Tabla PRODUCTO incluye un Campo llamado Precio.
Comienzo a operar con la Consulta desde el día 1 de enero de 2012. Pongamos que el precio de un determinado producto que tengo fijado en 10 lo cambio con fecha 1 de julio de
2012 a 15.
Si ejecuto la Consulta VENTA con fecha posterior al 1 de julio automáticamente cambia el precio antiguo de 10 por el de 15 a todas las ventas realizadas con anterioridad al 1 de julio.
Lo que pretendo es conservar aquellas ventas anteriores a la fecha del cambio manteniendo el precio original, o sea 10, y las efectuadas con posterioridad a esa fecha, con el precio actual, es decir 15

¿Entiendo que no puedo hacer una Consulta (VENTA) que de los resultados que yo quiero?, es decir, en la misma consulta mantener los precios antiguos (como venta
realizada) y los nuevos.
No sé cómo conseguirlo.
Mil gracias

Vamos a ver...

Creo que estamos mezclando conceptos. Te lo voy a explicar intentándote poner un ejemplo.

Las tablas son las que recogen la información, y esa información ahí se queda. Las consultas extraen información de las tablas, y a través de ellas puedes consultarla o modificarla. Pero, en ningún caso, la consulta guarda la información: es la tabla en donde queda guardada.

Si tienes un bote con agua, ese bote sería la tabla. Con un vaso sacas agua. El vaso sería la consulta. Si añades colorante al vaso de manera que el agua se vuelva, por ejemplo, roja, y después vuelves a echar ese agua del vaso dentro del bote el agua del bote no quedará incolora, como estaba inicialmente. Debes echar el vaso de agua en un nuevo bote: así tendrás el agua incolora inicial más el agua del segundo bote tintada y perfectamente separadas.

Es difícil darte una solución porque estás utilizando un sistema de trabajo que creo que no es el más adecuado, y se me hace complicado ver "mentalmente" cómo estructuras la introducción de datos.

Si quieres pásame una copia de tu BD (aunque sea sólo con unos registros de prueba) y una explicación a nivel de usuario (como si yo tuviera que utilizar la BD), y le echo un vistazo a ver si se me ocurre una manera de solventar tu problema. Por favor, pásamela comprimida en zip o rar.

Mi mail es neckkito(arroba)neckkito(punto)16mb(punto)com

Un saludo,

Neckkito

Si, entiendo el funcionamiento de las tablas y consultas, tu explicación es muy didáctica. Por eso desde el principio de mi consulta pretendía crear otra tabla que se alimentase de los registros generados por una consulta de anexado.

Disculpa mis pocos conocimientos.

Te enviaré la BD, y te agradezco de antemano tu atención.

OK. Espero el archivo.

Y, por favor, no pidas disculpas por ese motivo. Cuando yo empecé probablemente sabía menos que tú :-)

A ver si encontramos una solución que te funcione perfecto!

Tal y como comentamos te dejo el archivo aquí: http://www.filebig.net/files/nCbSgEVwTU

Si te parece bien ahora ya puedes cerrar la pregunta. :)

Resulta alentador encontrar personas que utilizando su propio tiempo libre y sin pedir nada a cambio, en un ambiente distendido y absolutamente cordial, te ayudan sin más compensación que la satisfacción de saber que te han ayudado.

Muchas gracias a Neckkito por su capacidad "docente".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas