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
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. :)
- Compartir respuesta
Podría obtener una copia de la solución a este problema, por favor? - w3 ciber
Lo lamento, pero la pregunta es del año 2012, y ese archivo está más que eliminado. :-( Filebig elimina los archivos subidos al cabo de un mes, si no recuerdo mal. - Neckkito Nck
Hola, pudieron dar respuesta a este problema. a mi me pasa lo mismo, pero con el IVA: sucede que al actualizar la tabla de la alícuota del IVA en los productos me actualiza todos los registros annteriores para ese mismo producto, y eso no es lo que se quiere, pues el iva cambia segun lo disponga la ley pero los anteriores registros ya se enteraron al fisco. espero sus comentarios - Jose Mejias
Jose Mejias La única solución para lo que te pasa es que, independientemente de la tabla donde guardes la información de los tipos de IVA, en las tablas donde requieres el IVA crees un campo y guardes el IVA seleccionado en cada momento histórico. Si no lo haces así no podrás guardar, precisamente, esos registros históricos. - Neckkito Nck