Ordem de eventos para objetos de banco de dados

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

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

Ordem de eventos para registros em formulários

Ordem de eventos para formulários e subformulários

Ordem de eventos para pressionamentos de teclas e cliques do mouse

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

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:

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

Open (formulário) seta Activate (formulário) seta Current (formulário) seta Enter (controle) seta GotFocus (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:

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

Exit (controle) seta LostFocus (controle) seta Unload (formulário) seta Deactivate (formulário) seta Close (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 AfterUpdate

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 Dirty seta Change 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 Dirty seta Change seta KeyUp seta NotInList seta Error

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:

Current (formulário) seta BeforeUpdate (formulário) seta AfterUpdate (formulário) seta Current (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 (formulário) seta AfterUpdate (formulário) seta Exit (controle) seta LostFocus (controle) seta RecordExit (formulário) seta Current (formulário)

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:

    Current (formulário) seta Enter (controle) seta GotFocus (controle) seta BeforeUpdate (controle) seta AfterUpdate (controle)

  • Move o foco para outro controle:

    Exit (controle1) seta LostFocus (controle1) seta Enter (controle2) seta GotFocus (controle2)

  • Move o foco para outro registro:

    BeforeUpdate (formulário) seta AfterUpdate (formulário) seta Exit (controle2) seta LostFocus (controle2) seta RecordExit (formulário) seta Current (formulário)

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:

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

Current (formulário) seta Enter (controle) seta GotFocus (controle) seta BeforeInsert (formulário) seta AfterInsert (formulário)

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:

Open seta Load seta Resize seta Activate seta Current

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:

Unload seta Deactivate seta Close

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:

Deactivate (formulário1) seta Activate (formulário2)

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:

Open (formulário) seta Load (formulário) seta Resize (formulário) seta Activate (formulário) seta Current (formulário) seta Enter (controle) seta GotFocus (controle)

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

Exit (controle) seta LostFocus (controle) seta Unload (formulário) seta Deactivate (formulário) seta Close (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 Change 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:

    Enter seta GotFocus 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 Click

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:

    Exit seta LostFocus

  • Segundo controle:

    Enter seta GotFocus seta MouseDown seta MouseUp seta Click

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 own seta MouseUp seta Click seta DblClick seta MouseUp

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:

Open seta Activate seta Close seta Deactivate

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:

Deactivate (relatório1) seta Activate (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:

Open (relatório) seta Activate (relatório) seta Format (seção do relatório) seta Print (seção do relatório) seta Close (relatório) seta Deactivate (relatório)

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

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×