Puede usar la acción CancelarEvento para cancelar la evento que provocó que Access ejecutara la macro que contiene esta acción. El nombre de la macro es el valor de una propiedad de evento como BeforeUpdate, OnOpen, OnUnload o OnPrint.
Nota: La acción de macro CancelarEvento no está disponible en las aplicaciones web de Access.
Configuración
La acción CancelarEvento no tiene argumentos.
Comentarios
En un formulario, normalmente se usa la acción CancelarEvento en una macro de validación con la propiedad de evento BeforeUpdate . Cuando un usuario escribe datos en un control o registro, Access ejecuta la macro antes de agregar los datos a la base de datos. Si los datos no cumplen las condiciones de validación de la macro, la acción CancelarEvento cancela el proceso de actualizar antes de que se inicie.
A menudo, use esta acción con la acción CuadroMsj para indicar que los datos no han superado las condiciones de validación y para proporcionar información útil sobre el tipo de datos que se deben escribir.
La acción CancelarEvento puede cancelar los eventos siguientes.
Applyfilter |
Dirty |
Mousedown |
Beforedelconfirm |
Salir |
Nodata |
BeforeInsert |
Filtro |
Abierto |
Beforeupdate |
Formato |
Imprimir |
Dblclick |
Keypress |
Descargar |
Eliminar |
Nota: Puede usar la acción CancelarEvento solo con el evento MouseDown para cancelar el evento que se produce al hacer clic con el botón secundario en un objeto.
Si el valor de la propiedad de evento OnDblClick de un control especifica una macro que contiene la acción CancelarEvento , la acción cancela el evento DblClick .
Para los eventos que se pueden cancelar, el comportamiento predeterminado del evento (es decir, lo que Access suele hacer cuando se produce el evento) se produce después de que se ejecute la macro del evento. Esto le permite cancelar el comportamiento predeterminado. Por ejemplo, al hacer doble clic en una palabra en la que el punto de inserción está en una cuadro de texto, Access selecciona normalmente la palabra. Puede cancelar este comportamiento predeterminado en la macro para el evento DblClick y realizar otra acción, como abrir un formulario que contenga información sobre los datos en el cuadro de texto. Para los eventos que no se pueden cancelar, el comportamiento predeterminado se produce antes de que se ejecute la macro.
Nota: Si la propiedad de evento OnUnload de un formulario especifica una macro que lleva a cabo una acción CancelarEvento , no podrá cerrar el formulario. Debe corregir la condición que causó la acción CancelarEvento o abrir la macro y eliminar la acción CancelarEvento . Si el formulario es un formulario modal, no podrá abrir la macro.
Para llevar a cabo la acción CancelarEvento en un módulo Visual Basic para Aplicaciones (VBA), use el método CancelEvent del objeto DoCmd .
Ejemplo
Validar datos mediante una macro
La siguiente macro de validación comprueba los códigos postales especificados en un formulario proveedores. Muestra el uso de las acciones StopMacro, MsgBox, CancelEvent y GoToControl . Una expresión condicional comprueba el país o región y el código postal especificado en un registro del formulario. Si el código postal no tiene el formato correcto para el país o la región, la macro muestra un cuadro de mensaje y cancela el guardado del registro. A continuación, le devuelve al control Código postal, donde puede corregir el error. Esta macro debe adjuntarse a la propiedad BeforeUpdate del formulario Proveedores.
Condición |
Acción |
Argumentos: Configuración |
Comentario |
EsNulo([PaísRegión]) |
StopMacro |
Si PaísRegión es Null, no se puede validar el código postal. |
|
[PaísRegión] En ("Francia","Italia","España") y Len([Código postal]) <> 5 |
Msgbox |
Mensaje: El código postal debe tener 5 caracteres. Pitido: Sí Tipo: información Título: Error de código postal |
Si el código postal no tiene 5 caracteres, muestre un mensaje. |
... |
Cancelarevento |
Cancelar el evento. |
|
Gotocontrol |
Nombre del control: CódigoPostal |
||
[PaísRegión] En ("Australia","Singapur") y Len([Código postal]) <> 4 |
Msgbox |
Mensaje: El código postal debe tener 4 caracteres. Pitido: Sí Tipo: información Título: Error de código postal |
Si el código postal no tiene 4 caracteres, muestre un mensaje. |
... |
Cancelarevento |
Cancelar el evento. |
|
Gotocontrol |
Nombre del control: CódigoPostal |
||
([PaísRegión] = "Canadá") Y ([Código postal] No es como"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
Msgbox |
Mensaje: El código postal no es válido. Ejemplo de código canadiense: H1J 1C3 Pitido: Sí Tipo: información Título: Error de código postal |
Si el código postal no es correcto para Canadá, muestre un mensaje. (Ejemplo de código canadiense: H1J 1C3) |
... |
Cancelarevento |
Cancelar el evento. |