Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Uma única ação, como mover de um controle em um objeto para outro controle, pode disparar vários eventos diferentes, que ocorrem em uma sequência específica. Saber quando os eventos ocorrem e em que ordem é importante, porque isso pode afetar como e quando suas macros ou procedimentos de evento são executados. Por exemplo, se houver dois procedimentos de evento que devem ser executados em uma ordem específica, verifique se os eventos aos quais estão associados ocorrerem nessa mesma ordem.

Neste artigo

Ordem de eventos para controles em formulários

Os eventos ocorrem para controles em formulários quando você move o foco para um controle e, quando você altera e atualiza dados em um controle.

Observação: O Microsoft Office Access exibe nomes de eventos ligeiramente diferentes no Editor do Visual Basic do que faz na folha de propriedades e o Construtor de Macros. Por exemplo, o evento chamado On Got Focus na folha de propriedades do formulário e no Construtor de Macros é denominado GotFocus no Editor do Visual Basic. Os exemplos neste artigo usam o formato do Visual Basic for Applications (VBA) para nomes de eventos.

Mover o foco para um controle

Quando você move o foco para um controle em um formulário (por exemplo, ao abrir um formulário que contém um ou mais controles ativos ou ao mover o foco para outro controle no mesmo formulário), os eventos Enter e GotFocus ocorrem nesta ordem:

Insira seta GotFocus

Quando você abre um formulário, os eventos Enter e GotFocus ocorrem após os eventos associados à abertura do formulário (tais como Open, Activate e Current) da seguinte forma:

Abrir (formulário) setaAtivar (formulário) setaAtual (formulário) setaEnter (controle) setaGotFocus (controle)

Quando o foco deixa um controle em um formulário (por exemplo, quando você fecha um formulário que contém um ou mais controles ativos ou quando você move para outro controle no mesmo formulário), os eventos Exit e LostFocus ocorrem nesta ordem:

Sair seta LostFocus

Quando você fechar um formulário, os eventos Exit e LostFocus ocorrem antes dos eventos associados ao fechamento do formulário (como Unload, Deactivate e Close) da seguinte forma:

Sair (controle) setaLostFocus (controle) setaDescarregar (formulário) setaDesativar (formulário) setaFechar (formulário)

Alterando e atualizando dados em um controle

Se você inserir ou alterar dados em um controle em um formulário e, em seguida, mover o foco para outro controle, os eventos BeforeUpdate e AfterUpdate ocorrerão:

BeforeUpdate seta Afte rUpdate

Os eventos Exit e LostFocus para um controle cujo valor muda ocorrem após os eventos BeforeUpdate e AfterUpdate:

BeforeUpdate seta AfterUpdate seta Exit seta LostFocus

Quando você altera o texto em uma caixa de texto ou na seção de caixa de texto de uma caixa de combinação, o evento Change ocorre. Este evento ocorre sempre que o conteúdo do controle é alterado, mas antes de mover o foco para um controle ou registro diferente (e, portanto, antes dos eventos BeforeUpdate e AfterUpdate ocorrerem). A seguinte sequência de eventos ocorre em cada tecla pressionada em uma caixa de texto ou na seção de caixa de texto de uma caixa de combinação:

KeyDown seta KeyPress seta setaDirty seta KeyUp

O evento NotInList ocorre depois que você insere um valor em uma caixa de combinação que não é encontrada na lista da caixa de combinação e, em seguida, tenta mover o foco para outro controle ou registro. O evento NotInList ocorre depois dos eventos de teclado e os eventos Change para a caixa de combinação, mas antes dos eventos para qualquer outro controle ou formulário. Se a propriedade LimitToList da caixa de combinação estiver definida como Yes, um evento Error para o formulário ocorre imediatamente após o evento NotInList:

KeyDown seta KeyPress seta Alteração seta Suja seta KeyUp seta Erro de0 NotInList

Início da Página

Ordem de eventos para registros em formulários

Os eventos ocorrem para os registros em formulários quando você move o foco para um registro diferente, atualiza dados em um registro, exclui um ou mais registros existentes ou cria um novo registro.

Movendo o foco para registros e atualizando dados em registros

Quando você move o foco para um registro existente em um formulário, insere ou altera dados no registro e, em seguida, move o foco para outro registro, a seguinte sequência de eventos ocorre para o formulário:

Atual (formulário) setaBeforeUpdate (formulário) setaAfterUpdate (formulário) setaCurrent (formulário)

Quando você sai do registro cujos dados foram alterados, mas antes de inserir o próximo registro, os eventos Exit e LostFocus ocorrem para o controle que tem o foco. Estes eventos ocorrem após os eventos BeforeUpdate e AfterUpdate para o formulário da seguinte maneira:

BeforeUpdate (form) setaAfterUpdate (form) setaExit (control) setaLostFocus (control) setaCurrent (form)

Conforme você move o foco entre os controles em um formulário, os eventos ocorrem para cada controle. Por exemplo, as seguintes sequências de eventos ocorrem quando você faz o seguinte:

  • Abre um formulário e altera dados em um controle:

    Atual (formulário) setaEnter (controle) setaGotFocus (controle) setaBeforeUpdate (controle) setaAfterUpdate (controle)

  • Move o foco para outro controle:

    Saída (control1) setaLostFocus (control1) setaEnter (control2) setaGotFocus (control2)

  • Move o foco para outro registro:

    BeforeUpdate (form) setaAfterUpdate (form) setaExit (control2) setaLostFocus (control2) setaCurrent (form)

Excluindo registros

Quando você exclui um registro, os seguintes eventos ocorrem para o formulário e o Microsoft Office Access exibe uma caixa de diálogo pedindo para confirmar a exclusão:

Excluir seta BeforeDelConfirm seta AfterDelConfirm

Se você cancelar o evento Delete, os eventos BeforeDelConfirm e AfterDelConfirm não ocorrerão e a caixa de diálogo não será exibida.

Criar um novo registro

Quando você move o foco para um novo registro (em branco) em um formulário e, em seguida, cria um novo registro digitando os dados em um controle, ocorre a seguinte sequência de eventos:

Atual (formulário) setaEnter (controle) setaGotFocus (controle) setaBeforeInsert (formulário) setaAfterInsert (formulário)

O evento BeforeInsert (formulário) é disparado assim que você começa a digitar no controle. O evento AfterInsert (formulário) é disparado após você deixar o registro.

Os eventos BeforeUpdate e AfterUpdate para os controles no formulário e para o novo registro ocorrem após o evento BeforeInsert e antes do evento AfterInsert.

Início da Página

Ordem de eventos para formulários e subformulários

Os eventos ocorrem para os formulários quando você abre ou fecha um formulário, move-se entre formulários ou trabalha com dados em um formulário ou subformulário.

Abrindo e fechando um formulário

Quando você abre um formulário, ocorre a seguinte sequência de eventos para o formulário:

Abrir seta Carregamento seta Redimensionar seta Ativar seta Atual

Se não houver controles ativos no formulário, o evento GotFocus ocorrerá para o formulário após o evento Activate, mas antes do evento Current.

Quando você fecha um formulário, ocorre a seguinte sequência de eventos para o formulário:

Descarregar seta Desativar seta Fechar

Se não houver controles ativos no formulário, o evento LostFocus ocorrerá para o formulário após o evento Unload, mas antes do evento Deactivate.

Movimentação entre formulários

Quando você alterna entre dois formulários abertos, o evento Deactivate ocorre para o primeiro formulário e o evento Activate ocorre para o segundo:

Desativar (form1) setaAtivar (form2)

O evento Deactivate para um formulário também ocorre quando você alterna do formulário para outra guia de objeto no Access. No entanto, o evento Deactivate não ocorre quando você alterna para uma caixa de diálogo, para um formulário cuja propriedade PopUp estiver definida como Yes ou para uma janela em outro programa.

Observação:  O evento Open não ocorrerá se você mover o foco para um formulário que já está aberto, mesmo se você tiver movido o foco para esse formulário executando uma ação OpenForm.

Trabalhando com dados em um formulário

Os eventos de formulário e controle ocorrem à medida que você move entre os registros no formulário e altera os dados. Por exemplo, quando você abre um formulário primeiro, ocorre a seguinte sequência de eventos:

Abrir (formulário) setaCarga (formulário) setaRedimensionar (formulário) setaAtivar (formulário) setaAtual (formulário) setaEnter (controle)0 GotFocus (controle)

Da mesma forma, quando você fecha um formulário, ocorre a seguinte sequência de eventos:

Sair (controle) setaLostFocus (controle) setaDescarregar (formulário) setaDesativar (formulário) setaFechar (formulário)

Se você tiver alterado dados em um controle, os eventos BeforeUpdate e AfterUpdate ocorrerão para o controle e o formulário antes do evento Exit para o controle.

Trabalhando com subformulários

Quando você abre um formulário que contém um subformulário, o subformulário e seus registros são carregados antes do formulário principal. Dessa forma, os eventos no subformulário e seus controles (como Open, Current, Enter, e GotFocus) ocorrem antes dos eventos para o formulário. No entanto, o evento Activate não ocorre para subformulários. Portanto, abrindo um formulário principal dispara um evento Activate apenas para o formulário principal.

Da mesma forma, quando você fechar um formulário que contém um subformulário, o subformulário e seus registros são descarregados depois do formulário. O evento Deactivate não ocorre para subformulários. Portanto, fechar um formulário principal dispara um evento Deactivate apenas para o formulário principal. Os eventos para os controles, o formulário e os subformulário ocorrem na seguinte ordem:

  1. Eventos para os controles de subformulário (como Exit e LostFocus)

  2. Eventos para os controles de formulário (incluindo o controle de subformulário)

  3. Eventos para o formulário (como Deactivate e Close)

  4. Eventos para o subformulário

Observação: Como os eventos para um subformulário ocorrem após o formulário principal ser fechado, determinados eventos, como cancelar o fechamento do formulário principal de um evento no subformulário, não ocorrerão. Talvez você precise mover esses tipos de testes de validação para um evento no formulário principal.

Início da Página

Ordem de eventos para pressionamentos de teclas e cliques do mouse

Os eventos de teclado ocorrem para formulários e controles quando você pressiona teclas ou envia pressionamentos de teclas enquanto o formulário ou controle tem o foco. Os eventos de mouse ocorrem para formulários, seções de formulário e controles em formulários quando você clica nos botões do mouse enquanto o ponteiro do mouse está em um formulário, seção ou controle. Os eventos de mouse também ocorrem quando você move o ponteiro do mouse sobre um formulário, seção ou controle.

Eventos de teclado

Quando você pressiona e libera uma tecla enquanto um controle em um formulário tem o foco (ou usa a ação SendKeys ou instrução para enviar um pressionamento de tecla), ocorre a seguinte sequência de eventos:

KeyDown seta KeyPress seta KeyUp

Quando você pressiona e libera uma tecla ou envia um pressionamento de tecla no conjunto de caracteres ANSI, todos os eventos KeyDown, KeyPress e KeyUp ocorrem. Se você pressionar e mantiver pressionada uma tecla ANSI, os eventos KeyDown e KeyPress alternarão repetidamente (KeyDown, KeyPress, KeyDown, KeyPress e assim por diante) até você liberar a tecla; em seguida, o evento KeyUp ocorrerá.

Se você pressionar e liberar uma tecla não ANSI, os eventos KeyDown e KeyUp ocorrerão. Se você pressionar e mantiver pressionada uma tecla não ANSI, o evento KeyDown ocorrerá repetidamente até que você libere a tecla e, em seguida, o evento KeyUp ocorrerá.

Se pressionar uma tecla acionar um outro evento para um controle, esse evento ocorrerá após o evento KeyPress, mas antes do evento KeyUp. Por exemplo, se um pressionamento de tecla converter o texto em uma caixa de texto, que dispara um evento Change, a seguinte sequência de eventos ocorrerá:

KeyDown seta KeyPress seta Altere seta KeyUp

Se um pressionamento de tecla faz o foco se mover de um controle para outro, o evento KeyDown ocorrerá para o primeiro controle, enquanto os eventos KeyPress e KeyUp ocorrerá para o segundo controle. Por exemplo, se você altera dados em um controle e, em seguida, pressiona a tecla TAB para mover para o próximo controle, as seguintes sequências de eventos ocorrerão:

  • Primeiro controle:

    KeyDown seta BeforeUpdate seta AfterUpdate seta Exit seta LostFocus

  • Segundo controle:

    Insira seta KeyPress seta KeyPress seta KeyUp

Eventos de mouse

Quando você clicar e soltar o botão do mouse enquanto o ponteiro do mouse está sobre um controle em um formulário, a seguinte sequência de eventos ocorrerá para o controle:

MouseDown seta MouseUp seta Clique

Se um controle tiver o foco e você clicar em outro controle para mover o foco para esse segundo controle, ocorrerão as seguintes sequências de eventos:

  • Primeiro controle:

    Sair seta LostFocus

  • Segundo controle:

    Insira seta MouseDown seta MouseDown #x4 setaMouseUp setaClique

Se você mover para outro registro e, em seguida, clicar em um controle, o evento Current para o formulário também ocorrerá antes do evento Enter para o controle.

Clicar duas vezes em um controle faz ambos os eventos Click e DblClick ocorrerem. Por exemplo, quando você clica duas vezes um controle que não seja um botão de comando, a seguinte sequência de eventos ocorre para o controle:

MouseD próprio seta MouseUp seta Clique seta MouseUp seta DblClick

Quando você clica duas vezes um botão de comando, a sequência de eventos anterior ocorre, seguida por um segundo evento Click.

O evento MouseMove para um formulário, seção ou controle ocorre quando você move o ponteiro do mouse sobre o formulário, seção ou controle. Este evento é independente dos outros eventos de mouse.

Início da Página

Ordem de eventos para relatórios e seções de relatório

Os eventos ocorrem para relatórios e seções de relatório quando você abre um relatório para imprimi-lo ou visualizá-lo ou fechar um relatório.

Eventos para relatórios

Quando você abre um relatório para imprimi-lo ou visualizá-lo e depois fecha o relatório ou move para outra guia de objeto no Access, a seguinte sequência de eventos ocorre para o relatório:

Abrir seta Ativar seta Fechar seta Desativar

Quando você alterna entre dois relatórios abertos, o evento Deactivate ocorre para o primeiro relatório e o evento Activate ocorre para o segundo:

Desativar (report1) setaAtivar (relatório2)

O evento Deactivate para um relatório também ocorre quando você alterna do relatório para outra guia de objeto no Access. No entanto, o evento Deactivate não ocorre quando você alterna para uma caixa de diálogo, para um formulário cuja propriedade PopUp estiver definida como Yes ou para uma janela em outro programa.

Quando você abre um relatório baseado em uma consulta, o Access dispara o evento Open para o relatório antes de executar a consulta subjacente. Como resultado, você pode definir os critérios para o relatório usando uma macro ou procedimento de evento que responde ao evento Open. Por exemplo, a macro ou procedimento de evento pode abrir uma caixa de diálogo personalizada na qual você insere critérios de relatório.

Eventos para seções de relatório

Quando você imprime ou visualiza um relatório, os eventos Format e Print ocorrem para as seções do relatório após os eventos Open e Activate para o relatório e antes dos eventos Close ou Deactivate do relatório:

Abrir (relatório) setaAtivar (relatório) setaFormato (seção relatório) setaImprimir (seção relatório) setaFechar (relatório) setaDesativar (relatório)

Segurança    Você pode usar o Modo de Exibição de Relatório para habilitar a filtragem de relatórios pelo usuário. Mas, ao contrário da Visualização de Impressão, os eventos Formatar e Imprimir em qualquer seção não ocorrem no Modo de Exibição de Relatório. Isso também se aplica aos resultados da função VBA e aos procedimentos definidos pelo usuário que são exibidos em controles (como legendas de rótulo, exibição status, formatação condicional, redimensionamento de controles e assim por diante) nesses eventos. Portanto, não use código neste evento para formatar, ocultar ou imprimir dados confidenciais, que podem ficar expostos. Recomendamos filtrar previamente os dados ou desabilitar a Visualização de Relatório definindo a propriedade AllowReportView como No.

Além disso, os seguintes eventos podem ocorrer durante ou após a formatação, mas antes do evento Print:

  • O evento Retreat ocorre quando o Access retorna para uma seção anterior durante a formatação do relatório.

  • O evento NoData ocorrerá se não houver registros exibidos pelo relatório.

  • O evento Page ocorre após a formatação, mas antes de imprimir. Você pode usar esse evento para personalizar a aparência do relatório impresso.

Início da Página

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×