Si un usuario modifica una tabla quisiera saberlo.

21/04/2010 - 11:20 por Mery | Informe spam
Quisiera que si un usuario modifica el contenido de una tabla, recibir un
email con el cambio realizado, ¿es posible?, o en su defecto hacer un log de
modificaciones y al cierre de la aplicación recibir el email con todos los
cambios de contenido realizados de forma automática.

Muchas gracias a todos por las respuestas que dais y que aceleran el
aprendizaje.

Preguntas similare

Leer las respuestas

#1 Emilio
21/04/2010 - 11:50 | Informe spam
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias
Hola!
como ya se te ha dicho antes, sería de agradecer que respondieras en cada
mensaje si la solución que se te ha ofrecido resuelve o no tu pregunta, de
ese modo quien venga a consultar el histórico del grupo, sabrá si es la
solución a su problema.

Por otra parte ¿has mirado en mi Web?, allí tienes otro ejemplo que responde
a tu inquietud.

Saludos a todos
Emilio [MS-MVP Access 2006/10]
miliuco56 ALGARROBA hotmail.com
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio

"Mery" escribió en el mensaje
news:
Quisiera que si un usuario modifica el contenido de una tabla, recibir un
email con el cambio realizado, ¿es posible?, o en su defecto hacer un log
de
modificaciones y al cierre de la aplicación recibir el email con todos los
cambios de contenido realizados de forma automática.

Muchas gracias a todos por las respuestas que dais y que aceleran el
aprendizaje.
Respuesta Responder a este mensaje
#2 Ignacio
21/04/2010 - 12:52 | Informe spam
¡Hola, Mery!

Para hacer un seguimiento de los cambios realizados en una tabla lo
más adecuado es el uso de formularios donde se pueden controlar las
modificaciones en los eventos BeforeInsert, AfterInsert, BeforeUpdate,
AfterUpdate, BeforeDelConfirm y AfterDelConfirm. Además se deberían
añadir campos adicionales a las tablas para guardar la información del
tipo Usuario y Fecha.
Si no se utilizan formularios la única forma de saber si se han
realizado cambios es duplicar las tablas y compararlas después de las
modificaciones, sistema mucho más engorroso además de menos elegante y
eficiente.

Espero que te sugiera alguna idea de cómo afrontar la solución.

Un saludo,
Ignacio.
Respuesta Responder a este mensaje
#3 Mery
21/04/2010 - 15:12 | Informe spam
El acceso a las tablas es a través de formularios, pero no se como hacer el
código para conseguir lo que quiero.

"Ignacio" escribió:

¡Hola, Mery!

Para hacer un seguimiento de los cambios realizados en una tabla lo
más adecuado es el uso de formularios donde se pueden controlar las
modificaciones en los eventos BeforeInsert, AfterInsert, BeforeUpdate,
AfterUpdate, BeforeDelConfirm y AfterDelConfirm. Además se deberían
añadir campos adicionales a las tablas para guardar la información del
tipo Usuario y Fecha.
Si no se utilizan formularios la única forma de saber si se han
realizado cambios es duplicar las tablas y compararlas después de las
modificaciones, sistema mucho más engorroso además de menos elegante y
eficiente.

Espero que te sugiera alguna idea de cómo afrontar la solución.

Un saludo,
Ignacio.
.

Respuesta Responder a este mensaje
#4 Xavi
21/04/2010 - 17:27 | Informe spam
Así, por encima...

Lo primero que necesitas manejar son los eventos del formulario relativos a
los cambios en los datos. A saber: Antes de insertar, Antes de actualizar y
Antes de eliminar. Creo que en esos eventos es posible aun saber el valor
antiguo y el nuevo de los campos (cuando ello sea necesario).

Después necesitas un log que te guarde el usuario, el momento y la
modificación realizada. Ese log puede ser un simple fichero de texto o una
tabla en la aplicación.

Lo de saber el usuario variará en función de si tienes establecido un
sistema de usuarios propio o te basta con el propio de windows. En el primer
caso tu sabrás como lo tienes y como lo recuperas. En el segundo caso te
bastaría con un Environ("UserName") para recuperar el nombre del usuario
identificado en la máquina.

El momento actual te lo devuelve la función Now()

Sobre como escribir en ficheros de texto desde Access... hay abundante
literatura en la red. En http://www.mvp-access.com es muy probable que
encuentres cosas., tanto en las páginas de los moderadores como en el propio
foro.

Sobre lo de guardar el usuario y hora de modificación pues necesitas
añadir los campos necesarios a cada una de las tablas para guardar ese valor
(si es que realmente lo necesitas).

En el fondo se trata de ir "juntando pedacitos de aquí y de allá" para
acabar de construir lo que necesitas.

Al final tendrás un código que hará justamente eso. Una advertencia/consejo:
cuando llegues a ese código, intenta convertirlo en una función
suficientemente genérica como para no tener que estar escribiendo el código
continuamente en todas partes.



Xavi
http://www.llodax.com
http://www.mvp-access.com
http://www.aesoft-databases.com


"Mery" escribió en el mensaje de
noticias:
El acceso a las tablas es a través de formularios, pero no se como hacer
el
código para conseguir lo que quiero.

"Ignacio" escribió:

¡Hola, Mery!

Para hacer un seguimiento de los cambios realizados en una tabla lo
más adecuado es el uso de formularios donde se pueden controlar las
modificaciones en los eventos BeforeInsert, AfterInsert, BeforeUpdate,
AfterUpdate, BeforeDelConfirm y AfterDelConfirm. Además se deberían
añadir campos adicionales a las tablas para guardar la información del
tipo Usuario y Fecha.
Si no se utilizan formularios la única forma de saber si se han
realizado cambios es duplicar las tablas y compararlas después de las
modificaciones, sistema mucho más engorroso además de menos elegante y
eficiente.

Espero que te sugiera alguna idea de cómo afrontar la solución.

Un saludo,
Ignacio.
.

Respuesta Responder a este mensaje
#5 Patxi Sanz
21/04/2010 - 18:14 | Informe spam
Creo recordar que en la web de Emilio tienes un ejemplo de históricos.

Y en la mía tienes otro más.

Un saludo,


Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida