MOVER PARA PROXIMO REGISTRO NA TABELA NO BD

PHELIPO 04/12/2010 12:54:09
#358784
Preciso de uma ajuda!
Olhando na figura, ao clicar na seta do lado direito, quero que mostra no campo Num. Pagamento o próximo número que estar na tabela no banco de dados (que seria númeor dois)? Assim por diante, Para poder popular as informações do pagamento no formulário.
Desenvolvi esse código à baixo, o problema é que não vai para os próximos registro.
Quem me poder ajudar eu agradeço.
Private Sub btnproximo_Click()
sSQL = [Ô]SELECT num_pagamentoitem [Ô]
sSQL = sSQL & [Ô]FROM itemspago [Ô]
rsItemsPago.Open sSQL, con, adOpenKeyset, adLockOptimistic
rsItemsPago.MoveNext
If rsItemsPago.BOF = False Then
txtnumpaganento = rsItemsPago.Fields([Ô]num_pagamentoitem[Ô])
rsItemsPago.MovePrevious
Call PopularPagamento
End If
End Sub

JEANCOELHO 05/12/2010 14:10:33
#358840
O problema e que vc faz a consulta nomente se alterar o registro use apenas rsItemsPago.MoveNext ao invez de consultar novamente a base
PHELIPO 05/12/2010 16:21:49
#358842
Já tentei assim não deu Certo. Mesmo assim valeu.
FEDERHEN 06/12/2010 17:59:29
#358932
Private Sub btnproximo_Click()
sSQL = [Ô]SELECT num_pagamentoitem [Ô]
sSQL = sSQL & [Ô]FROM itemspago [Ô]
If txtnumpaganento.Text <> [Ô][Ô] Then
sSQL = sSQL & [Ô]WHERE num_pagamentoitem > [Ô] & txtnumpaganento.Text & [Ô] [Ô]
End If
sSQL = sSQL & [Ô]ORDER BY num_pagamentoitem[Ô]
rsItemsPago.Open sSQL, con, adOpenKeyset, adLockOptimistic
If rsItemsPago.EOF = False Then
txtnumpaganento = rsItemsPago.Fields([Ô]num_pagamentoitem[Ô])
Call PopularPagamento
End If
End Sub
PHELIPO 22/12/2010 15:14:10
#360213
Obrigado Federhen Pela ajuda. Assim não funcionou porque eu preciso popular no campo Num.Pagamento do formulário, exatamente com o número que estar no campo num_pagamentoitem do banco, para fazer a consulta. Dessa maneira que voce fez irá obedecer uma ordem numerica, apartir do numero um. Caso eu excluo um numero da sequencia, não conseguirei fazer uma consulta com esse número excluido.

Quem poder me Ajudar eu agradeço.
TECLA 22/12/2010 15:52:14
#360217
Resposta escolhida
O problema é o seguinte:

A rotina...
[txt-color=#e80000]sSQL = [Ô]SELECT num_pagamentoitem [Ô]
sSQL = sSQL & [Ô]FROM itemspago [Ô]
rsItemsPago.Open sSQL, con, adOpenKeyset, adLockOptimistic[/txt-color]
[txt-color=#007100][ô]Esta linha serve para corrigir o problema do -1[/txt-color]
[txt-color=#e80000]rsItemsPago.CursorLocation = adUseClient[/txt-color]

...está no escopo errado.
Ela deve estar em uma outra parte da fonte, mas que seja [Ô]visível[Ô] do evento CLICK do botão.

No botão, deve ficar somente a rotina que muda a posição do cursor do RECORDSET.
[txt-color=#0000f0]Private Sub btnproximo_Click()
If Not rsItemsPago.Eof Then
rsItemsPago.MoveNext
Else
rsItemsPago.MovePrevious
End If
Call PopularPagamento
End Sub[/txt-color]
Tópico encerrado , respostas não são mais permitidas