Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Access 2013, Office 2013
Puede usar la acción CancelEvent para cancelar el 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 u OnPrint.
Configuración
La acción CancelarEvento no tiene argumentos.
Comentarios
En un formulario, suele utilizarse 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 en un registro, Access ejecuta la macro antes de agregar los datos a la base de datos. Si los datos no pasan las condiciones de validación de la macro, la acción CancelarEvento cancela el proceso de actualización antes de que se inicie.
A menudo, esta acción se usa con la acción CuadroDeMensaje para indicar que los datos no han pasado las condiciones de validación y para proporcionar información útil sobre la clase de datos que debe especificarse.
La acción CancelarEvento puede cancelar los eventos siguientes.
ApplyFilter |
Dirty |
MouseDown |
BeforeDelConfirm |
Exit |
NoData |
BeforeInsert |
Filter |
Abrir |
BeforeUpdate |
Format |
|
DblClick |
KeyPress |
Unload |
Delete |
Nota:
[!NOTA] Puede usar la acción CancelarEvento con el evento BajarMouse sólo para cancelar el evento que se produce al hacer clic con el botón secundario en un objeto.
Si la configuración de la propiedad de evento AlHacerDobleClic de un control especifica una macro que contiene la acción CancelarEvento, la acción cancela el evento HacerDobleClic.
Para los eventos que pueden cancelarse, el comportamiento predeterminado para el evento (es decir, lo que generalmente hace Access cuando ocurre un evento) se produce después de que se ejecuta la macro para el evento. Esto permite cancelar el comportamiento predeterminado. Por ejemplo, cuando hace doble clic en una palabra en la que está el punto de inserción en un cuadro de texto, Access en general selecciona la palabra. Puede cancelar este comportamiento predeterminado en una macro para el evento HacerDobleClic y realizar alguna otra acción, como abrir un formulario que contenga información acerca de los datos en el cuadro de texto. Para eventos que se pueden cancelar, el comportamiento predeterminado se produce antes de que se ejecuta la macro.
Nota:
[!NOTA] Si la propiedad de evento AlDescargar de un formulario especifica una macro que lleva a cabo la acción CancelarEvento, no podrá cerrar el formulario. Debe corregir la condición que generó la acción CancelarEvento o abrir la macro y eliminar la acción CancelarEvento. Si el formulario es modal, no podrá abrir la macro.
Para llevar a cabo la acción CancelarEvento en un módulo de Visual Basic para Aplicaciones (VBA), utilice el método CancelEvent del objeto DoCmd.
Ejemplo
Validar datos con una macro
La siguiente macro de validación comprueba los códigos postales introducidos en el formulario Proveedores. Muestra el uso de las acciones DetenerMacro, CuadroDeMensajes, CancelarEvento e IrAControl. Una expresión condicional comprueba el país o la región y el código postal especificados 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 proceso de guardar el registro. Después, lleva al usuario hasta el control CódigoPostal, donde puede corregir el error. Esta macro debe asociarse a la propiedad AntesDeActualizar del formulario Proveedores.
Condición |
Acción |
Argumentos: Configuración |
Comentario |
|---|---|---|---|
IsNull([CountryRegion]) |
StopMacro |
Si PaísRegión es Nulo, no se podrá validar el código postal. |
|
[CountryRegion] En ("Francia", "Italia", "España") y Len([Código postal]) <> 5 |
MessageBox |
Mensaje: el código postal debe tener 5 caracteres. Pitido: Tipo sí : Título de la información : Error de código postal |
Si el código postal no tiene 5 caracteres, mostrar un mensaje. |
... |
CancelEvent |
Cancelar el evento. |
|
GoToControl |
Nombre del control: CódigoPostal |
||
[CountryRegion] En ("Australia", "Singapur") y Len([Código postal]) <> 4 |
MessageBox |
Mensaje: el código postal debe tener 4 caracteres. Pitido: Tipo sí : Título de la información : Error de código postal |
Si el código postal no tiene 4 caracteres, mostrar un mensaje. |
... |
CancelEvent |
Cancelar el evento. |
|
GoToControl |
Nombre del control: CódigoPostal |
||
([PaísRegión] = "Canadá") Y ([CódigoPostal] No Como"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
MessageBox |
Mensaje: el código postal no es válido. Ejemplo de código canadiense: H1J 1C3 Beep: Sí Tipo: Título de la información : Error de código postal |
Si el código postal no es correcto para Canadá, mostrar un mensaje. (Ejemplo de código canadiense: H1J 1C3) |
... |
CancelEvent |
Cancelar el evento. |