O Access define os eventos Open e Load para formulários como segue:
- O evento Open ocorre quando um formulário é aberto, mas antes de o primeiro registro ser exibido.
- O evento Load ocorre quando um formulário é aberto e seus registros são exibidos.
Para tentar verificar quais as diferenças entre esses dois eventos, construí um banco de dados onde todos os eventos de abertura do formulário e os eventos ligados ao foco das caixas de textos foram "marcados" via Debug.Print.
Na sequência são mostradas as instruções do evento Open e Load e o respectivo resultado na janela de verificação imediata.
O EVENTO OPEN
Private Sub Form_Open(Cancel As Integer)
Debug.Print "===Form_Open"
'Acessando uma propriedade do formulário
Debug.Print " ** Open - Nome do formulário : " & Me.Form.Name
'Obtendo o nº do registro
Debug.Print " ** Open - Me.CurrentRecord : " & Me.CurrentRecord
'Obtendo o valor do campo do 1º registro
Debug.Print " ?? Open - Valor do Campo1 : " & Me.Campo1.Value
'Definindo uma propriedade de controle
Me.NaoAcoplado.BackColor = 65535
'Definindo o valor de um campo não acoplado
Me.NaoAcoplado.Value = "Um valor qualquer"
End Sub
O EVENTO LOAD
Private Sub Form_Load()
Debug.Print "===Form_Load"
'Obtendo o nº do registro
Debug.Print " ** Load - Me.CurrentRecord : " & Me.CurrentRecord
End Sub
O RESULTADO NA JANELA DE VERIFICAÇÃO IMEDIATA
===Form_Open
** Open - Nome do formulário : Form1
** Open - Me.CurrentRecord : 0
?? Open - Valor do Campo1 : Dado 11
===Form_Load
** Load - Me.CurrentRecord : 1
===Form_Resize
===Form_Activate
===Form_Current
Campo1_Enter
Campo1_GotFocus
Comparando estes resultados com as definições todos me parecem coerentes, a menos daquele indicado com as interrogações (??)
Minha questão é : Se no evento Open o primeiro registro ainda não foi exibido, como é possível ter acesso ao dado de um campo desse registro ? Isso não é incoerente com a definição ?
Se alguém souber explicar a razão desse fato ou indicar uma fonte de informação sobre o assunto, eu agradeço.
Obrigado
Paulo Robilotta
- O evento Open ocorre quando um formulário é aberto, mas antes de o primeiro registro ser exibido.
- O evento Load ocorre quando um formulário é aberto e seus registros são exibidos.
Para tentar verificar quais as diferenças entre esses dois eventos, construí um banco de dados onde todos os eventos de abertura do formulário e os eventos ligados ao foco das caixas de textos foram "marcados" via Debug.Print.
Na sequência são mostradas as instruções do evento Open e Load e o respectivo resultado na janela de verificação imediata.
O EVENTO OPEN
Private Sub Form_Open(Cancel As Integer)
Debug.Print "===Form_Open"
'Acessando uma propriedade do formulário
Debug.Print " ** Open - Nome do formulário : " & Me.Form.Name
'Obtendo o nº do registro
Debug.Print " ** Open - Me.CurrentRecord : " & Me.CurrentRecord
'Obtendo o valor do campo do 1º registro
Debug.Print " ?? Open - Valor do Campo1 : " & Me.Campo1.Value
'Definindo uma propriedade de controle
Me.NaoAcoplado.BackColor = 65535
'Definindo o valor de um campo não acoplado
Me.NaoAcoplado.Value = "Um valor qualquer"
End Sub
O EVENTO LOAD
Private Sub Form_Load()
Debug.Print "===Form_Load"
'Obtendo o nº do registro
Debug.Print " ** Load - Me.CurrentRecord : " & Me.CurrentRecord
End Sub
O RESULTADO NA JANELA DE VERIFICAÇÃO IMEDIATA
===Form_Open
** Open - Nome do formulário : Form1
** Open - Me.CurrentRecord : 0
?? Open - Valor do Campo1 : Dado 11
===Form_Load
** Load - Me.CurrentRecord : 1
===Form_Resize
===Form_Activate
===Form_Current
Campo1_Enter
Campo1_GotFocus
Comparando estes resultados com as definições todos me parecem coerentes, a menos daquele indicado com as interrogações (??)
Minha questão é : Se no evento Open o primeiro registro ainda não foi exibido, como é possível ter acesso ao dado de um campo desse registro ? Isso não é incoerente com a definição ?
Se alguém souber explicar a razão desse fato ou indicar uma fonte de informação sobre o assunto, eu agradeço.
Obrigado
Paulo Robilotta
- Anexos
- AoAbrir.zip
- Arquivo .mdb usado para verificar os eventos de abertura do formulário
- Você não tem permissão para fazer download dos arquivos anexados.
- (21 Kb) Baixado 37 vez(es)