Pode utilizar a ação CancelarEvento para cancelar o evento que fez com que o Access executasse a macro que contém esta ação. O nome da macro é a definição de uma propriedade de evento como AntesDeActualizar, AoAbrir, AoRemoverDaMemória ou AoImprimir.
Nota: A ação de macro CancelarEvento não está disponível nas aplicações Web do Access.
Definição
A ação CancelarEvento não possui quaisquer argumentos.
Observações
Num formulário, utiliza habitualmente a ação CancelarEvento numa validação de macro com a propriedade de evento AntesDeAtualizar. Quando um utilizador introduz dados num controlo ou registo, o Access executa a macro antes de adicionar os dados à base de dados. Se os dados falharam as condições de validação na macro, a ação CancelarEvento cancela o processo atualizar antes de começar.
Muitas vezes, utiliza esta ação com a ação CxMsg para indicar que os dados falharam as condições de validação e para fornecer informações úteis sobre o tipo de dados que devem ser introduzidos.
Os eventos seguintes podem ser cancelados pela ação CancelarEvento.
AplicarFiltro |
Modificado |
AoPremirOBotãoDoRato |
ConfirmarAntesDeEliminar |
Sair |
NenhumDado |
AntesDeInserir |
Filtrar |
Abrir |
AntesDeAtualizar |
Formatar |
Imprimir |
FazerDuploClique |
AoPremirATecla |
RemoverDaMemória |
Eliminar |
Nota: Pode utilizar a ação CancelarEvento com o evento AoPremirOBotãoDoRato apenas para cancelar o evento que ocorre quando clica com o botão direito do rato em algum objeto.
Se a definição de propriedade do evento AoFazerDuploClique de um controlo especificar uma macro que contenha a ação CancelarEvento, a ação cancela o evento FazerDuploClique.
Para eventos que podem ser cancelados, o comportamento predefinido para o evento (ou seja, o que o Access faz normalmente quando ocorre um evento) ocorre depois da execução da macro do evento. Isto permite-lhe cancelar o comportamento predefinido. Por exemplo, quando faz duplo clique numa palavra de uma caixa de texto onde está o ponto de inserção, o Access normalmente seleciona a palavra. Pode cancelar este comportamento predefinido na macro para o evento FazerDuploClique e efetuar qualquer outra ação, como abrir um formulário que contenha informações sobre os dados na caixa de texto. Para eventos que não podem ser cancelados, o comportamento predefinido ocorre antes da macro ser executada.
Nota: Se a propriedade de evento AoRemoverDaMemória de um formulário especificar uma macro que execute a ação CancelarEvento, não será capaz de fechar o formulário. Tem de corrigir a condição que fez com que a ação CancelarEvento fosse executada ou abrir a macro e eliminar a ação CancelarEvento. Se o formulário for um formulário modal, não será capaz de abrir de abrir a macro.
Para executar a ação CancelarEvento num módulo VBA (Visual Basic for Applications), utilize o método CancelarEvento do objeto DoCmd.
Exemplo
Validar dados ao utilizar uma macro
A seguinte macro de validação verifica os códigos postais introduzidos num formulário de Fornecedores. Apresenta a utilização das ações PararMacro, CxMsg, CancelarEvento e IrParaControlo. A expressão condicional verifica o país/região e código postal introduzidos num registo do formulário. Se o código postal não estiver no formato correto para o país/região, a macro apresenta uma caixa de mensagens e não guarda o registo. Em seguida, irá regressar ao controlo do Código Postal, onde pode corrigir o erro. Esta macro deve ser anexada à propriedade AntesDeActualizar do formulário de Fornecedores.
Condição |
Ação |
Argumentos: Definição |
Comentário |
ÉNulo([PaísRegião]) |
PararMacro |
Se PaísRegião for Nulo, o código postal não pode ser validado. |
|
[PaísRegião] Em ("França","Itália","Espanha") E NÚM.CARAT([Código Postal]) <> 5 |
CxMsg |
Mensagem: O código postal tem de ter 5 carateres. AvisoSonoro: Sim Tipo: Informações Título: Erro de Código Postal |
Se o código postal não tiver 5 carateres, apresentar uma mensagem. |
... |
CancelarEvento |
Cancela o evento |
|
IrParaControlo |
Nome do Controlo: CódigoPostal |
||
[PaísRegião] Em ("Austrália","Singapura") E NÚM.CARAT([Código Postal]) <> 4 |
CxMsg |
Mensagem: O código postal tem de ter 4 carateres. AvisoSonoro: Sim Tipo: Informações Título: Erro de Código Postal |
Se o código postal não tiver 4 carateres, apresentar uma mensagem. |
... |
CancelarEvento |
Cancela o evento |
|
IrParaControlo |
Nome do Controlo: CódigoPostal |
||
([PaísRegião] = "Canadá") E ([Código Postal] Não Como"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
CxMsg |
Mensagem: O código postal não é válido. Exemplo de código Canadiano: H1J 1C3 AvisoSonoro: Sim Tipo: Informações Título: Erro de Código Postal |
Se o código postal não estiver correto para o Canadá, apresentar uma mensagem. (Exemplo do código canadiano: H1J 1C3) |
... |
CancelarEvento |
Cancela o evento |