Compartir a través de


CancelarEvento (acción de macro)

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

Print

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: 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.