NAVEGA?ÃO DE REGISTROS PRIMEIRO, PRÓXIMO, ANTERIOR

MILTONSILVA94 10/09/2017 15:40:02
#476417
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!
DAMASCENO.CESAR 10/09/2017 17:37:46
#476418
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
OMAR2011 10/09/2017 19:03:13
#476422
Resposta escolhida
Abra o Banco e tabela apenas uma vez e pronto.Movimenta os registros com quiser
Abra no load do form.
MILTONSILVA94 16/09/2017 14:44:37
#476610
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!
MILTONSILVA94 25/09/2017 18:22:51
#476769
Sugestões?
OMAR2011 25/09/2017 19:23:11
#476770
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]
OMAR2011 25/09/2017 20:56:06
#476771
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
NILSONTRES 26/09/2017 10:02:12
#476773
Então, só não entendo qual a utilidade disso em um sistemas nos dias de hoje, quem faz esse tipo de navegação ?
LUIS2014 26/09/2017 10:46:45
#476774
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.
NILSONTRES 26/09/2017 10:52:07
#476775
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 ?
LUIS2014 26/09/2017 11:39:36
#476781
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.
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas