Capítulo 6
A. Presentación 1. Definición Un evento es el resultado de una acción del usuario o del sistema sobre un objeto. Desencadena la ejecución del código correspondiente al procedimiento de evento del objeto activado.
La utilización de un procedimiento de evento o de una macro permite agregar la respuesta propia de la aplicación a un evento que se produzca en un formulario, en un informe o en un control.
2. Asociación de código VBA a un evento Puede asignar código VBA al evento de un objeto de dos maneras:
- a partir de la ficha Eventos de la ventana de propiedades del objeto en Access.
202
VBA Access 2010
Gesti贸n de los eventos
- a partir de las listas desplegables de objetos y de eventos en el editor Visual
茫 Editions ENI - All rights reserved
Basic.
Programar en Access
203
Capítulo 6
B. Categorías de eventos Las siguientes listas de eventos están clasificadas por tipo y contienen:
- el nombre del evento, - el nombre de la propiedad correspondiente en la ventana de propiedades del objeto (entre paréntesis),
- la descripción del evento, - la columna de la derecha (Cancelación) indica si el evento puede cancelarse. La cancelación de un evento se describe en el apartado C.
1. Eventos de tipo Ventana Cancelación Open
(AlAbrir) Sí Se produce al abrir un formulario pero antes de que se muestre el primer registro. Se produce al abrir un informe, pero antes de su impresión.
Load
(AlCargar) No Se produce al abrir un formulario cuando se muestra el primer registro.
Resize
(AlCambiarTamaño) No Se produce al mostrar por primera vez el formulario y al cambiar su tamaño.
UnLoad
(AlDescargar) Sí Se produce al cerrar y cuando se liberan los registros, pero antes de que el formulario desaparezca.
Close
(AlCerrar) No Se produce cuando el formulario o el informe desaparece al cerrarlo.
204
VBA Access 2010
Gestión de los eventos
2. Eventos de tipo Enfoque Les eventos de tipo "enfoque" pueden aplicarse a los formularios (Activate, Deactivate, GotFocus, LostFocus) o a los controles (Enter, Exit, SetFocus, LostFocus). Decimos que un objeto tiene el enfoque (o foco) cuando puede recibir una entrada del usuario a través de acciones con el ratón o con el teclado. Los objetos que tienen el enfoque se llaman objetos activos (ActiveForm o ActiveControl). El método SetFocus permite dar el foco a un control o a un formulario.
ã Editions ENI - All rights reserved
Cancelación Activate
(AlActivar) No Se produce cuando la ventana del formulario o del informe se convierte en activa.
Deactivate
(AlDesactivar) No Se produce al activar otra ventana, pero antes de que esta última esté activada. Se produce también al cerrar la ventana.
Enter
(AlEntrar) No Se produce antes de que un control tome el foco a partir de un control o al abrir el formulario.
Exit
(AlSalir) Sí Se produce antes de que un control pierda el enfoque en provecho de otro control del formulario o de otro formulario.
GotFocus
(AlRecibirEnfoque) No Se produce cuando un control o un formulario sin control activo recibe el foco.
LostFocus
(AlPerderEnfoque) No Se produce cuando un control o un formulario pierde el enfoque.
Programar en Access
205
Capítulo 6
3. Eventos de tipo Datos Los eventos de tipo "datos" se aplican a los formularios asociados a un origen de datos (propiedad RecordSource rellenada a partir de un nombre de tabla o de una consulta) y a los controles asociados a un campo del origen de datos del formulario (propiedad ControlSource rellenada). Cancelación AfterInsert
(DespuésDeInsertar) No Se produce después de agregar un nuevo registro a la tabla.
AfterUpdate
(DespuésDeActualizar) No Se produce después de la actualización de un control o de un registro con datos modificados.
AfterDelConfirm
(DespuésDeConfirmarEliminación) No Se produce después de que el usuario haya respondido a la solicitud de eliminación de los registros.
BeforeInsert
(AntesDeInsertar) Sí Se produce al teclear el primer carácter de un nuevo registro, pero antes de agregar realmente el registro.
BeforeUpdate
(AntesDeActualizar) Sí Se produce antes de la actualización de un control o de un registro con datos modificados.
BeforeDel-Confirm (AntesDeConfirmarEliminación) Sí Se produce después de que el usuario haya eliminado registros y antes que Access solicite confirmación. NotInList
206
(AlNoEnLaLista) No Se produce al entrar un valor que no existe en una lista y cuando la propiedad LimitarALista es verdadera.
VBA Access 2010
Gestión de los eventos Current
(AlActivarRegistro) No Se produce cuando el foco pasa de un registro a otro.Se produce también al abrir, antes de que el primer registro se convierta en el actual.
Change
(AlCambiar) No Se produce al modificar el contenido de un cuadro de texto o un cuadro combinado (teclado o macro/Visual Basic).
Updated
(AlActualizar) No Se produce cuando los datos de un objeto OLE han sido modificados.
Delete
(AlEliminar) Sí Se produce antes de la eliminación efectiva. Al pulsar [Supr] por ejemplo.
Dirty
(AlCambiar) Sí Se produce cuando cambia el contenido de un formulario o la parte de texto de un cuadro combinado.Se produce también al pasar de una página a otra en un control Ficha.
4. Eventos de tipo Ratón
ã Editions ENI - All rights reserved
Cancelación Click
(AlHacerClic) No Se produce al pulsar el botón izquierdo del ratón sobre un control o una zona en blanco de un formulario.
DblClick
(AlHacerDobleClic) Sí Se produce al pulsar dos veces el botón izquierdo del ratón sobre un control o una zona en blanco de un formulario.
MouseDown
(AlBajarMouse) Sí Se produce al pulsar un botón del ratón sobre un control o un formulario.
Programar en Access
207