2011-04-11 64 views
9

Tengo dos tablas llamadas [Insert_Record] y [Delete_Record] en MS Access. Ambas tablas tienen los mismos campos pero una tabla tiene registros mientras que otra tabla no tiene registro.MS Access trigger?

Pregunta: Deseo que cada vez que elimine cualquier registro de la tabla [Insert_Record], todo el registro se inserte automáticamente en otra tabla, es decir: [Eliminar registro].

¿Cómo puedo lograr esto?

+0

puede hacer referencia a este enlace: http://office.microsoft.com/en- us/access-help/create-a-trigger-adp-HP003085415.aspx – reggie

Respuesta

0

Según tengo entendido, Access no tiene desencadenantes.

Lo mejor que puedes hacer es poner este tipo de lógica en los formularios que editan la tabla. En otras palabras, maneje el evento eliminado en el nivel de formulario y coloque allí su lógica de inserción.

Si desea desencadenantes, querrá utilizar un RDMS adecuado que los admita (MySQL, MS SQL, Oracle, muchos otros).

EDITAR: Otra forma de hacer esto (que puede o no funcionar) sería agregar una columna booleana 'IsDeleted'. De esta forma, puede simplemente eliminar un registro lógicamente en lugar de moverlo a otra tabla. La desventaja de este enfoque es que los registros eliminados permanecen en la tabla principal, lo que podría causar problemas de rendimiento si hay muchas eliminaciones.

+1

Hasta el año pasado está en lo cierto, pero la última versión de acceso (2010) tiene algo que está cerca de un desencadenador. Como el OP no dijo en qué versión está, es seguro suponer que es una versión anterior, por lo que esto no se aplica. De todos modos aquí hay un enlace http://blogs.office.com/b/microsoft-access/archive/2009/08/13/access-2010-data-macros-similar-to-triggers.aspx –

+0

Diría que los desencadenantes son irrelevante aquí. Existe un error de diseño en que los datos se almacenan en dos tablas, cuando todo debe almacenarse en la misma tabla, con un campo adecuadamente configurado para distinguir los registros que se almacenaron previamente en tablas diferentes. –

+0

@ David-W-Fenton Soo, agregue una columna IsDeleted? – RQDQ

0

Cree una consulta de anexión, para agregar registros a la segunda tabla, que se ejecuta en el evento Confirmar al borrar del formulario que está utilizando para eliminar el registro de la primera tabla.

10

Access 2010 introdujo los eventos Data Macros que son similares a los factores desencadenantes. El proceso descrito en la pregunta se puede hacer fácilmente con una macro de datos después de eliminar en la tabla [Insert_Record]:

AfterDelete.png