NAVEGA?ÃO DE REGISTROS PRIMEIRO, PRÓXIMO, ANTERIOR
Boa tarde,
Verifiquei que meus registros de navegação (PRIMEIRO, PRÓXIMO, ANTERIOR) não estão funcionando.
*Quando clico no [ô]Primeiro[ô] ele vai para o registro 2, sendo que deveria ir para o 1;
*Quando clico no [ô]Próximo[ô] fica apenas em um registro, e não vai para nenhum mais;
*Quando clico no [ô]Anterior[ô] fica somente em um registro, e não vai para nenhum outro;
O único que funciona é o [ô]Último[ô]. Vou colocar o código abaixo, caso alguém possa me auxiliar:
Private Sub MontarNavegacao()
txtIdPerfil.Text = lTBPerfis.Fields([Ô]id_perfil[Ô]).Value
txtDataHora.Text = lTBPerfis.Fields([Ô]data_hora[Ô]).Value
txtPerfil.Text = lTBPerfis.Fields([Ô]perfil[Ô]).Value
lblAtualizadoPor = lTBPerfis.Fields([Ô]atualizado_por[Ô]).Value
lblUltimaAtualizacao = lTBPerfis.Fields([Ô]ultima_atualizacao[Ô]).Value
End Sub
Private Sub cmdPrimeiro_Click()
Set gBDSistemaIntegrado = OpenDatabase(App.Path & [Ô]\BDSistemaIntegrado.mdb[Ô], False, False, [Ô];pwd=SISTEMAINTEGRADO[Ô]) [ô]Para colocar senha no BD
Set lTBPerfis = gBDSistemaIntegrado.OpenRecordset([Ô]Perfis[Ô], dbOpenSnapshot)
lTBPerfis.MoveFirst
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Private Sub cmdProximo_Click()
Set gBDSistemaIntegrado = OpenDatabase(App.Path & [Ô]\BDSistemaIntegrado.mdb[Ô], False, False, [Ô];pwd=SISTEMAINTEGRADO[Ô]) [ô]Para colocar senha no BD
Set lTBPerfis = gBDSistemaIntegrado.OpenRecordset([Ô]Perfis[Ô], dbOpenSnapshot)
lTBPerfis.MoveNext
If lTBPerfis.EOF Then
lTBPerfis.MoveFirst
End If
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Private Sub cmdAnterior_Click()
Set gBDSistemaIntegrado = OpenDatabase(App.Path & [Ô]\BDSistemaIntegrado.mdb[Ô], False, False, [Ô];pwd=SISTEMAINTEGRADO[Ô]) [ô]Para colocar senha no BD
Set lTBPerfis = gBDSistemaIntegrado.OpenRecordset([Ô]Perfis[Ô], dbOpenSnapshot)
lTBPerfis.MovePrevious
If lTBPerfis.BOF Then
lTBPerfis.MoveLast
End If
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Private Sub cmdUltimo_Click()
Set gBDSistemaIntegrado = OpenDatabase(App.Path & [Ô]\BDSistemaIntegrado.mdb[Ô], False, False, [Ô];pwd=SISTEMAINTEGRADO[Ô]) [ô]Para colocar senha no BD
Set lTBPerfis = gBDSistemaIntegrado.OpenRecordset([Ô]Perfis[Ô], dbOpenSnapshot)
lTBPerfis.MoveLast
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Obrigado!
Verifiquei que meus registros de navegação (PRIMEIRO, PRÓXIMO, ANTERIOR) não estão funcionando.
*Quando clico no [ô]Primeiro[ô] ele vai para o registro 2, sendo que deveria ir para o 1;
*Quando clico no [ô]Próximo[ô] fica apenas em um registro, e não vai para nenhum mais;
*Quando clico no [ô]Anterior[ô] fica somente em um registro, e não vai para nenhum outro;
O único que funciona é o [ô]Último[ô]. Vou colocar o código abaixo, caso alguém possa me auxiliar:
Private Sub MontarNavegacao()
txtIdPerfil.Text = lTBPerfis.Fields([Ô]id_perfil[Ô]).Value
txtDataHora.Text = lTBPerfis.Fields([Ô]data_hora[Ô]).Value
txtPerfil.Text = lTBPerfis.Fields([Ô]perfil[Ô]).Value
lblAtualizadoPor = lTBPerfis.Fields([Ô]atualizado_por[Ô]).Value
lblUltimaAtualizacao = lTBPerfis.Fields([Ô]ultima_atualizacao[Ô]).Value
End Sub
Private Sub cmdPrimeiro_Click()
Set gBDSistemaIntegrado = OpenDatabase(App.Path & [Ô]\BDSistemaIntegrado.mdb[Ô], False, False, [Ô];pwd=SISTEMAINTEGRADO[Ô]) [ô]Para colocar senha no BD
Set lTBPerfis = gBDSistemaIntegrado.OpenRecordset([Ô]Perfis[Ô], dbOpenSnapshot)
lTBPerfis.MoveFirst
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Private Sub cmdProximo_Click()
Set gBDSistemaIntegrado = OpenDatabase(App.Path & [Ô]\BDSistemaIntegrado.mdb[Ô], False, False, [Ô];pwd=SISTEMAINTEGRADO[Ô]) [ô]Para colocar senha no BD
Set lTBPerfis = gBDSistemaIntegrado.OpenRecordset([Ô]Perfis[Ô], dbOpenSnapshot)
lTBPerfis.MoveNext
If lTBPerfis.EOF Then
lTBPerfis.MoveFirst
End If
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Private Sub cmdAnterior_Click()
Set gBDSistemaIntegrado = OpenDatabase(App.Path & [Ô]\BDSistemaIntegrado.mdb[Ô], False, False, [Ô];pwd=SISTEMAINTEGRADO[Ô]) [ô]Para colocar senha no BD
Set lTBPerfis = gBDSistemaIntegrado.OpenRecordset([Ô]Perfis[Ô], dbOpenSnapshot)
lTBPerfis.MovePrevious
If lTBPerfis.BOF Then
lTBPerfis.MoveLast
End If
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Private Sub cmdUltimo_Click()
Set gBDSistemaIntegrado = OpenDatabase(App.Path & [Ô]\BDSistemaIntegrado.mdb[Ô], False, False, [Ô];pwd=SISTEMAINTEGRADO[Ô]) [ô]Para colocar senha no BD
Set lTBPerfis = gBDSistemaIntegrado.OpenRecordset([Ô]Perfis[Ô], dbOpenSnapshot)
lTBPerfis.MoveLast
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Obrigado!
O problema que vejo é que voce carrega os dados todas as vezes que clica em qualquer botão.
carregue os dados no load do form então use os botões para mover para o registro desejado
carregue os dados no load do form então use os botões para mover para o registro desejado
Abra o Banco e tabela apenas uma vez e pronto.Movimenta os registros com quiser
Abra no load do form.
Abra no load do form.
Citação::
O problema que vejo é que voce carrega os dados todas as vezes que clica em qualquer botão.
carregue os dados no load do form então use os botões para mover para o registro desejado
Citação::
Abra o Banco e tabela apenas uma vez e pronto.Movimenta os registros com quiser
Abra no load do form.
Obrigado pelo retorno, e desculpa a demora!
Efetuando os testes desta maneira mesmo assim não funcionou, pois a navegação ficou:
*Ao clicar no [ô]Primeiro[ô] ele vai para o registro 2, sendo que deveria ir para o 1;
*Ao clicar no [ô]Próximo[ô] ele navega nesta sequência: 2, 3, 4, 1, 5, 6;
*Ao clicar no [ô]Anterior[ô] ele navega nesta sequência: 6, 5, 1, 4, 3, 2
O código ficou assim:
Dim lTBPerfis As Recordset
Private Sub Form_Load()
Set gBDSistemaIntegrado = OpenDatabase(App.Path & [Ô]\BDSistemaIntegrado.mdb[Ô], False, False, [Ô];pwd=SISTEMAINTEGRADO[Ô]) [ô]Para colocar senha no BD
Set lTBPerfis = gBDSistemaIntegrado.OpenRecordset([Ô]Perfis[Ô], dbOpenSnapshot)
End Sub
Private Sub MontarNavegacao()
txtIdPerfil.Text = lTBPerfis.Fields([Ô]id_perfil[Ô]).Value
txtDataHora.Text = lTBPerfis.Fields([Ô]data_hora[Ô]).Value
txtPerfil.Text = lTBPerfis.Fields([Ô]perfil[Ô]).Value
lblAtualizadoPor = lTBPerfis.Fields([Ô]atualizado_por[Ô]).Value
lblUltimaAtualizacao = lTBPerfis.Fields([Ô]ultima_atualizacao[Ô]).Value
End Sub
Private Sub cmdPrimeiro_Click()
lTBPerfis.MoveFirst
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Private Sub cmdProximo_Click()
lTBPerfis.MoveNext
If lTBPerfis.EOF Then
lTBPerfis.MoveFirst
End If
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Private Sub cmdAnterior_Click()
lTBPerfis.MovePrevious
If lTBPerfis.BOF Then
lTBPerfis.MoveLast
End If
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Private Sub cmdUltimo_Click()
lTBPerfis.MoveLast
MontarNavegacao
txtIdPerfil.SetFocus
End Sub
Obrigado!
Sugestões?
Na sua tabela Perfis [txt-color=#e80000]id_perfil[/txt-color] é um campo [txt-color=#8A2BE2]Número[/txt-color] ou [txt-color=#8A2BE2]Texto.[/txt-color]
Acho que matei a charada, ou melhor depois da minha bicuda.
Compara com o seu e ver onde tu estava errando.
Private Sub cmdPrimeiro_Click()
lTBPerfis.MoveFirst
MontarNavegacao
MsgBox [Ô]Este é o Primeiro Registro![Ô], vbInformation, [Ô]Perfil[Ô]
End Sub
Private Sub cmdProximo_Click()
lTBPerfis.MoveNext
If lTBPerfis.EOF Then
lTBPerfis.MoveLast
MsgBox [Ô]Este é o Último Registro![Ô], vbInformation, [Ô]Perfil[Ô]
End If
MontarNavegacao
End Sub
Private Sub cmdAnterior_Click()
lTBPerfis.MovePrevious
If lTBPerfis.BOF Then
lTBPerfis.MoveFirst
MsgBox [Ô]Este é o primeiro registro![Ô], vbInformation, [Ô]Perfil[Ô]
End If
MontarNavegacao
End Sub
Private Sub cmdUltimo_Click()
lTBPerfis.MoveLast
MontarNavegacao
MsgBox [Ô]Este é o Último Registro![Ô], vbInformation, [Ô]Perfil[Ô]
End Sub
Compara com o seu e ver onde tu estava errando.
Private Sub cmdPrimeiro_Click()
lTBPerfis.MoveFirst
MontarNavegacao
MsgBox [Ô]Este é o Primeiro Registro![Ô], vbInformation, [Ô]Perfil[Ô]
End Sub
Private Sub cmdProximo_Click()
lTBPerfis.MoveNext
If lTBPerfis.EOF Then
lTBPerfis.MoveLast
MsgBox [Ô]Este é o Último Registro![Ô], vbInformation, [Ô]Perfil[Ô]
End If
MontarNavegacao
End Sub
Private Sub cmdAnterior_Click()
lTBPerfis.MovePrevious
If lTBPerfis.BOF Then
lTBPerfis.MoveFirst
MsgBox [Ô]Este é o primeiro registro![Ô], vbInformation, [Ô]Perfil[Ô]
End If
MontarNavegacao
End Sub
Private Sub cmdUltimo_Click()
lTBPerfis.MoveLast
MontarNavegacao
MsgBox [Ô]Este é o Último Registro![Ô], vbInformation, [Ô]Perfil[Ô]
End Sub
Então, só não entendo qual a utilidade disso em um sistemas nos dias de hoje, quem faz esse tipo de navegação ?
Citação:Então, só não entendo qual a utilidade disso em um sistemas nos dias de hoje, quem faz esse tipo de navegação ?
cara, muita gente prefere nesse formato...
eu prefiro uma lista para navegar, dou [Ô]enter[Ô] na linha desejada e exibo o item detalhado, já há quem prefere exibir detalhado e ir navegando nos registros.
Citação:cara, muita gente prefere nesse formato...
eu prefiro uma lista para navegar, dou [Ô]enter[Ô] na linha desejada e exibo o item detalhado, já há quem prefere exibir detalhado e ir navegando nos registros.
Não consigo imaginar um cliente meu percorrendo registro a registro para verificação, imagino um banco com mais de 100 itens apenas, pode citar algum caso que isso se faça necessário ?
não é questão de ser necessário, é gosto, preferência...
mantenho os dois tipos de navegação no meu sistema por isso, eu prefiro buscar num filtro uma lista do item que procura e detalhar num [Ô]enter[Ô], entro disso se o sujeito quiser navegar para o próximo registro sem precisar voltar para a lista ele o faz.
mantenho os dois tipos de navegação no meu sistema por isso, eu prefiro buscar num filtro uma lista do item que procura e detalhar num [Ô]enter[Ô], entro disso se o sujeito quiser navegar para o próximo registro sem precisar voltar para a lista ele o faz.
Tópico encerrado , respostas não são mais permitidas