NAVEGANDO POR REGISTROS

DANIKULL 24/06/2010 12:25:26
#345682
Citação:

:
Olá, amigos. tenho em uma aplicação 4 botões: primeiro/último/anterior/próximo, para navegar entre os registros de uma tebela. Estou tentando escrever o código para fazer a navegação entre esses registros, mas já tentei alguns exemplos e não consegui, toda hora ocorre um erro. Gostaria que alguém me ajudasse nessa questão. Sei que pode ser simples para alguns. Conto com vocês. Estou fazendo a conexão com ADO e ACCESS.

Até mais.



Boa tarde.

Faz seguinte assim:


[ô]Coloca no formulario um Label e nomeio ele para lbl_status para ver onde esta, ok??

Private Sub cmd_first_Click()
Call MovePrim(suatabela)
Call AtualizaFormulario(suatabela)
lbl_status.Caption = CStr([Ô]Registro: [Ô] & suatabela.AbsolutePosition & [Ô] de [Ô] & suatabela.RecordCount)
End Sub

Private Sub cmd_previous_Click()
Call MoveAnter(suatabela)
Call AtualizaFormulario(suatabela)
lbl_status.Caption = CStr([Ô]Registro: [Ô] & suatabela.AbsolutePosition & [Ô] de [Ô] & suatabela.RecordCount)
End Sub


Private Sub cmd_next_Click()
Call MoveProx(suatabela)
Call AtualizaFormulario(suatabela)
lbl_status.Caption = CStr([Ô]Registro: [Ô] & suatabela.AbsolutePosition & [Ô] de [Ô] & suatabela.RecordCount)
End Sub

Private Sub cmd_last_Click()
Call MoveUlti(suatabela)
Call AtualizaFormulario(suatabela)
lbl_status.Caption = CStr([Ô]Registro: [Ô] & suatabela.AbsolutePosition & [Ô] de [Ô] & suatabela.RecordCount)
End Sub


Public Sub AtualizaFormulario(myRs As Recordset)
With myRs
If .BOF = True And .EOF = True Then Exit Sub
Seu.Campo = !Campo.da.sua.tabela
...
.
.
.
End With
End Sub



[ô]estas linhas abaixo, você coloca em um módulo, ok??

Public Sub ChecarStatusBD(tbStat As Recordset)
With tbStat
If .BOF = False And .EOF = True Then
MsgBox [Ô]Não há registros para este módulo.[Ô], vbExclamation, [Ô]Notificação[Ô]
End If
End With
End Sub

Public Sub MovePrim(tbPrim As Recordset)
On Error GoTo del
With tbPrim
Call ChecarStatusBD(tbPrim)
.MoveFirst
If .BOF Then
.MoveFirst
MsgBox [Ô] Este é o primeiro registro... [Ô], vbInformation, [Ô]Início dos Registros[Ô]
Exit Sub
End If
End With

Exit Sub
del:
MsgBox [Ô]Não existem registros para serem navegados.[Ô], vbCritical, [Ô]Sem Registro[Ô]
Exit Sub

End Sub

Public Sub MoveAnter(tbAnter As Recordset)
On Error GoTo del
With tbAnter
Call ChecarStatusBD(tbAnter)
.MovePrevious
If .BOF Then
.MoveFirst
MsgBox [Ô] Este é o primeiro registro... [Ô], vbInformation, [Ô]Início dos Registros[Ô]
Exit Sub
End If
End With

Exit Sub
del:
MsgBox [Ô]Não existem registros para serem navegados.[Ô], vbCritical, [Ô]Sem Registro[Ô]
Exit Sub
End Sub

Public Sub MoveProx(tbProx As Recordset)
On Error GoTo del

With tbProx
Call ChecarStatusBD(tbProx)
.MoveNext
If .EOF Then
.MoveLast
MsgBox [Ô] Este é o último registro... [Ô], vbInformation, [Ô]Fim dos Registros[Ô]
Exit Sub
End If
End With

Exit Sub
del:
MsgBox [Ô]Não existem registros para serem navegados.[Ô], vbCritical, [Ô]Sem Registro[Ô]
Exit Sub

End Sub

Public Sub MoveUlti(tbUlti As Recordset)
On Error GoTo del

With tbUlti
Call ChecarStatusBD(tbUlti)
.MoveLast
If .EOF Then
.MoveLast
MsgBox [Ô] Este é o último registro... [Ô], vbInformation, [Ô]Fim dos Registros[Ô]
Exit Sub
End If
End With

Exit Sub
del:
MsgBox [Ô]Não existem registros para serem navegados.[Ô], vbCritical, [Ô]Sem Registro[Ô]
Exit Sub

End Sub


Espero poder ter ajudado. Dúvidas poste novamente
PERCIFILHO 25/06/2010 10:13:41
#345772
Valeu, amigos muito obrigado pelas dicas. Agora, sim eu consegui.

Até mais.
Página 2 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas