Compartilhar via


Ação da macro CancelarEvento

Aplica-se ao: Access 2013, Office 2013

Você pode usar a ação CancelEvent para cancelar o evento que fez com que o Access executasse a macro que contém essa ação. O nome da macro é a configuração de uma propriedade de evento como AntesDeAtualizar, AoAbrir, OnUnload ou OnPrint.

Setting

A ação CancelarEvento não tem nenhum argumento.

Comentários

Em um formulário, normalmente é usada a ação CancelarEvento em uma macro de validação com a propriedade de evento AntesDeAtualizar. Quando um usuário insere dados em um controle ou registro, o Access executa a macro antes de adicioná-los ao banco de dados. Se os dados falharem nas condições de validação da macro, a ação CancelarEvento cancelará o processo de atualização antes de ser iniciado.

Geralmente, você usa esta ação com a ação CaixadeMensagem para indicar que os dados falharam nas condições de validação e para fornecer informações úteis sobre o tipo de dados que deve ser inserido.

Os eventos a seguir podem ser cancelados pala ação CancelarEvento.

ApplyFilter

Dirty

MouseDown

BeforeDelConfirm

Exit

NoData

BeforeInsert

Filtro

Abrir

BeforeUpdate

Format

Print

DblClick

KeyPress

Unload

Delete

Observação

[!OBSERVAçãO] Você pode usar a ação CancelarEvento com o evento PressionarMouse somente para cancelar o evento que ocorre ao clicar com o botão direito do mouse em um objeto.

Se a configuração da propriedade de evento OnDblClick de um controle especificar uma macro que contém a ação CancelarEvento, esta cancelará o evento ClicarDuasVezes.

Para eventos que podem ser cancelados, o comportamento padrão do evento (ou seja, o que o Access normalmente faz na ocorrência do evento) ocorre após a execução da macro do evento. Isso permite cancelar o comportamento padrão. Por exemplo, quando você clica duas vezes em uma palavra sobre a qual está o ponto de inserção em uma caixa de texto, o Access normalmente seleciona a palavra. É possível cancelar esse comportamento padrão na macro do evento ClicarDuasVezes e executar alguma outra ação, como abrir um formulário que contém informações sobre os dados na caixa de texto. Para eventos que não podem ser cancelados, o comportamento padrão ocorre antes de a macro ser executada.

Observação

[!OBSERVAçãO] Se a propriedade de evento OnUnload de um formulário especificar uma macro que executa uma ação CancelarEvento, você não conseguirá fechar o formulário. Será necessário corrigir a condição que causou a execução da ação CancelarEvento ou abrir a macro e excluir a ação CancelarEvento. Se o formulário for restrito, você não conseguirá abrir a macro.

Para executar a ação CancelarEvento em um módulo do VBA (Visual Basic for Applications), use o método CancelEvent do objeto DoCmd.

Exemplo

Validar dados usando uma macro

A macro de validação a seguir verifica os códigos postais inseridos em um formulário Fornecedores. Ela mostra o uso das ações PararMacro, CaixadeMensagem, CancelarEvento e IrParaControle. Uma expressão condicional verifica o país/região e o código postal inseridos em um registro do formulário. Se o código postal não estiver no formato certo para o país/região, a macro exibirá uma caixa de mensagem e cancelará o salvamento do registro. Ela retornará o controle de Código Postal, em que será possível corrigir o erro. Essa macro deve ser anexada à propriedade AntesdeAtualizar do formulário Fornecedores.

Condition

Ação

Argumentos: Configuração

Comentário

IsNull([CountryRegion])

PararMacro

Se PaísRegião for Nulo, o código postal não poderá ser validado.

[CountryRegion] In ("França","Itália","Espanha") e Len([Código Postal]) <> 5

CaixaDeMensagem

Mensagem: O código postal precisa ter 5 caracteres. Bip: Tipo sim : título de informações : erro de código postal

Se o código postal não tiver 5 caracteres, exiba uma mensagem.

...

CancelEvent

Cancele o evento.

GoToControl

Nome do Controle: CEP

[CountryRegion] Em ("Austrália", "Cingapura") e Len([Código Postal]) <> 4

CaixaDeMensagem

Mensagem: O código postal precisa ter 4 caracteres. Bip: Tipo sim : título de informações : erro de código postal

Se o código postal não tiver 4 caracteres, exiba uma mensagem.

...

CancelEvent

Cancele o evento.

GoToControl

Nome do Controle: CEP

([PaísRegião] = "Canadá") E ([CEP] Não igual a"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]")

CaixaDeMensagem

Mensagem: O código postal é inválido. Exemplo de código canadense: H1J 1C3 Beep: Sim Tipo: Título de informações : erro de código postal

Se o código postal não estiver correto para Canadá, exiba uma mensagem. (Exemplo de código de Canadá: H1J 1C3)

...

CancelEvent

Cancele o evento.