🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

Los eventos de Access

Definición

Un evento permite ejecutar una o varias instrucciones como resultado de una acción por parte de un usuario. La acción desencadena la ejecución del código del procedimiento del evento correspondiente, que está relacionado con el objeto activo.

images/RI08_01.png

Para asociar un código VBA durante una acción sobre un objeto, podemos pasar por la pestaña Evento, en la pestaña de navegación Hoja de propiedades:

images/RI08_02_1.png

También es posible pasar en el editor VBE, por las zonas de listas desplegables (zona izquierda para seleccionar el objeto y zona derecha para seleccionar el evento).

Images/0803N.png

El objetivo de este capítulo es revisar los diferentes tipos de eventos, mostrar cómo anular algunos y mencionar el orden en que se desencadenan los eventos durante acciones simples.

Tipos de eventos

Las descripciones también se aplican a los estados.

1. Los eventos durante la apertura

Evento (Propiedad)

Se produce

Anulable

Open (durante la apertura)

Durante la apertura del formulario, pero antes de que se muestre el primer registro.

Load (durante el cambio)

Durante la apertura del formulario, una vez mostrado el primer registro. 

No

Resize (durante el redimensionamiento)

Cuando el formulario cambia de dimensiones, así como durante su primera visualización.

No

Activate (durante la activación)

Cuando el formulario se hace activo.

No

Current (durante la activación)

Durante la apertura del formulario, antes de que el primer registro se convierta en registro actual.

No

2. Los eventos durante el cierre

Evento (Propiedad)

Se produce

Anulable

Unload (durante la liberación)

Durante el cierre del formulario, una vez que se han liberado los registros, pero antes de la desaparición del formulario.

Deactivate (durante la desactivación)

Durante el cierre del formulario, así como durante la activación de otra ventana, antes de que la otra ventana se active.

No

Close (durante el cierre)

Cuando el formulario desaparece durante el cierre.

No

3. Los eventos de adición, eliminación o modificación de registros

Evento (Propiedad)

Se produce

Anulable

BeforeInsert (antes de la inserción)

Durante la escritura del primer carácter de un nuevo registro, pero antes la adición del nuevo registro.

AfterInsert (después de la inserción)

Después de la adición de un nuevo registro en la tabla.

No

BeforeUpdate (antes actualización)

Antes de la actualización de un registro o de un control (modificación de los datos).

Change (durante el cambio)

Durante la modificación del contenido de una lista modificable o de una zona de texto.

No

Updated (durante la actualización)

Cuando los datos de un objeto OLE se han modificado.

No

AfterUpdate (después actualización)

Después de la actualización de un registro o de un control (modificación de las datos).

No

BeforeDelConfirm (antes eliminación)

Después de que el usuario elimine los registros, pero antes de que Access pida confirmación de esta eliminación.

Delete (durante la eliminación)

Antes de la eliminación efectiva (pulsar la tecla Supr del teclado, por ejemplo).

AfterDelConfirm (después de la eliminación)

Antes de que el usuario haya respondido a la confirmación de la eliminación de los registros.

No

NotInList (durante la ausencia en la lista)

Durante la introducción de un valor no disponible en una lista y cuando la lista está limitada.

No

4. Los eventos de detección de un error, modificación y anulación

Evento (Propiedad)

Se produce

Anulable

Undo (durante la anulación)

Cuando el usuario anula su modificación (pulsa la tecla [Esc] del teclado).

Dirty (si hay modificación)

Cuando cambia el contenido de un formulario o una zona de lista desplegable. También tiene lugar cuando el usuario cambia de página en una pestaña.

Error (durante el error)

Cuando se produce un error.

No

5. Los eventos relacionados con el foco

Evento (Propiedad)

Se produce

Anulable

Enter...

Anulación de un evento

Es posible, y algunas veces muy práctico, anular un evento. Los diferentes eventos listados anteriormente se pueden o no anular. Para anular un evento, es posible pasar como argumento AnularEvento a la macro, o poner a True la variable Cancel en el código VBA.

Orden de realización de los eventos

En algunas situaciones, tienen lugar varios eventos unos después de otros. Este capítulo especifica cómo funcionan. Los eventos se representan en orden cronológico de arriba abajo.

1. Durante la apertura de un formulario

images/08RI4.png

2. Durante el cierre de un formulario

images/08RI5.png

3. Durante la activación de un formulario ya abierto

images/08RI6.png

4. Durante la actualización de un control

Tiene lugar cuando el usuario termina de escribir y pasa al siguiente control.

images/RI08_13.png

5. Durante la actualización de un registro

Tiene lugar cuando el usuario termina de escribir en un registro y pasa a otro registro.

images/RI08_14.png

6. Durante la eliminación de un registro

images/08RI9.png

7. Durante la pulsación de una tecla

images/08RI10.png

Orden de los eventos durante una actualización

En Microsoft Access, los eventos relacionados con la actualización se desencadenan a dos niveles diferentes:

1. A nivel del control

Durante la actualización de un control, se ejecutan los eventos BeforeUpdate y AfterUpdate del control. Preceden a los eventos del formulario.

2. A nivel de un registro

Durante la actualización de un registro, se ejecutan los eventos BeforeUpdate y AfterUpdate del formulario.