Você pode usar a ação CancelEvent para cancelar o evento que causou Access executar o macro que contém essa ação. O nome da macro é a configuração de uma propriedade de evento como BeforeUpdate, OnOpen, OnUnload ou OnPrint.
Observação: A ação de macro CancelEvent não está disponível nos aplicativos Web do Access.
Configuração
A ação CancelEvent não tem argumentos.
Comentários
Em um formulário, normalmente você usa a ação CancelEvent em uma macro validação com a propriedade de evento BeforeUpdate . Quando um usuário insere dados em um controle ou registro, o Access executa a macro antes de adicionar os dados ao banco de dados. Se os dados falharem nas condições de validação na macro, a ação CancelEvent cancelará o processo de atualizar antes de começar.
Geralmente, você usa essa ação com a ação MsgBox para indicar que os dados falharam nas condições de validação e para fornecer informações úteis sobre o tipo de dados que devem ser inseridos.
Os eventos a seguir podem ser cancelados pela ação CancelEvent .
Applyfilter |
Dirty |
Mousedown |
BeforeDelConfirm |
Sair |
NoData |
BeforeInsert |
Filtro |
Aberta |
Antesdeatualizar |
Formatar |
Imprimir |
DblClick |
Keypress |
Descarregar |
Delete |
Observação: Você pode usar a ação CancelEvent com o evento MouseDown apenas para cancelar o evento que ocorre quando você clica 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 CancelEvent , a ação cancelará o evento DblClick .
Para eventos que podem ser cancelados, o comportamento padrão do evento (ou seja, o que o Access normalmente faz quando o evento ocorre) ocorre após a execução da macro para o evento. Isso permite que você cancele o comportamento padrão. Por exemplo, quando você clica duas vezes em uma palavra em que o ponto de inserção está ativado em um caixa de texto, o Access normalmente seleciona a palavra. Você pode cancelar esse comportamento padrão na macro para o evento DblClick e executar algumas outras ações, como abrir um formulário contendo informações sobre os dados na caixa de texto. Para eventos que não podem ser cancelados, o comportamento padrão ocorre antes da execução da macro.
Observação: Se a propriedade de evento OnUnload de um formulário especificar uma macro que executa uma ação CancelEvent , você não poderá fechar o formulário. Você deve corrigir a condição que fez com que a ação CancelEvent fosse executada ou abrir a macro e excluir a ação CancelEvent . Se o formulário for um formulário janela restrita, você não poderá abrir a macro.
Para realizar a ação CancelEvent em um módulo de Visual Basic for Applications (VBA), 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. Ele mostra o uso das ações StopMacro, MsgBox, CancelEvent e GoToControl . Uma expressão condicional verifica o país/região e o código postal inseridos em um registro no 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 mensagens e cancelará salvar o registro. Em seguida, ele retorna você para o controle postal code, onde você pode corrigir o erro. Essa macro deve ser anexada à propriedade BeforeUpdate do formulário Fornecedores.
Condição |
Ação |
Argumentos: Configuração |
Comentar |
IsNull([CountryRegion]) |
Pararmacro |
Se CountryRegion for Null, o código postal não poderá ser validado. |
|
[CountryRegion] Em ("França", "Itália","Espanha") e Len([Código Postal]) <> 5 |
Msgbox |
Mensagem: o código postal deve ter 5 caracteres. Bip: Sim Tipo: Informações Título: Erro do Código Postal |
Se o código postal não for de 5 caracteres, exiba uma mensagem. |
... |
Cancelarevento |
Cancele o evento. |
|
Irparacontrole |
Nome do controle: PostalCode |
||
[CountryRegion] Em ("Austrália", "Cingapura") e Len([Código Postal]) <> 4 |
Msgbox |
Mensagem: o código postal deve ter 4 caracteres. Bip: Sim Tipo: Informações Título: Erro do Código Postal |
Se o código postal não for de 4 caracteres, exiba uma mensagem. |
... |
Cancelarevento |
Cancele o evento. |
|
Irparacontrole |
Nome do controle: PostalCode |
||
([CountryRegion] = "Canadá") E ([Código Postal] Não como"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
Msgbox |
Mensagem: o código postal não é válido. Exemplo de código canadense: H1J 1C3 Bip: Sim Tipo: Informações Título: Erro do Código Postal |
Se o código postal não estiver correto para o Canadá, exiba uma mensagem. (Exemplo de código canadense: H1J 1C3) |
... |
Cancelarevento |
Cancele o evento. |