Aquí podría ser tu PUBLICIDAD


¿Evento de nivel de formulario para cuando se cambian los datos en un formulario MSAccess?

votos
0

Bueno, básicamente, estoy trabajando en una aplicación de MSAccess y en el formulario donde los administradores verán y editarán los datos del usuario. Quiero poder llamar a un evento con los valores antiguos y nuevos de un campo cada vez que se modifique. Esta función agregará un registro en la tabla de auditoría para rastrear los cambios.

No tengo problemas para crear la consulta para agregar la entrada a la tabla de auditoría, pero no sé dónde colocar la llamada a la función. Probé algunos eventos de nivel de forma, así que no tengo que entrar en cada uno de los cincuenta campos y editar sus eventos onBlur para verificar si hay un nuevo valor, pero no tuve suerte.

Cualquier consejo sería bienvenido

Publicado el 24/12/2008 a las 02:22
fuente por usuario Andrew G. Johnson
En otros idiomas...        العربية       

3 respuestas

Respondida el 24/12/2008 a las 03:15
fuente por usuario Fionnuala


Aquí podría ser tu PUBLICIDAD


votos
0

La solución (1) sería agregar un controlador de eventos en el evento "beforeUpdate". La propuesta de Remou es muy interesante para eso.

La solución (2) sería comparar los datos en el conjunto de registros con los datos del control en el evento afterUpdate: para los controles vinculados a campos en conjuntos de registros, siempre hay un paso donde el valor en el control difiere del que está en el conjunto de registros. Esto es muy fácil cuando las fuentes de control son nombres de campo rectos.

Pero no me gustó el concepto de auditoría de cambios en el nivel Formulario: sus resultados pueden ser ambiguos ya que los datos modificados en el nivel del formulario pueden no guardarse a nivel de tabla, ya sea porque el formulario se puede cerrar antes de actualizar el conjunto de registros subyacente o porque la consulta SQL no se envía al servidor.

Si su actualización de datos se realiza a través de SQL synatx, la solución (3) sería almacenar las cadenas "INSERT IGNORE" o "UPDATE" enviadas desde su aplicación Access a su servidor de base de datos en un "registro de transacciones".

Respondida el 24/12/2008 a las 07:07
fuente por usuario Philippe Grondier

votos
0

Puede llamar a su función en los eventos Después de insertar, Después de actualizar y Después de confirmar. Estos son como desencadenantes que se activan después de insertar, actualizar o eliminar un registro.

Respondida el 24/12/2008 a las 02:47
fuente por usuario Patrick Cuff