MOVENEXT E MOVEPREVIOUS
Olá gente...
Estou tendo problemas com os meus botões "registro anterior" e "próximo registro"
fala q precisa de um registro atual .. e q BOF ou EOF é verdadeiro...
no meu BD tem 7 registros... a primeira vez q clico do proximo.. funciona normalmente... mas qd clico de novo não acontece nd... e toda vez q clico do anterior da o erro comentado acima...
não sei o q pode ser ... jah q fiz até as condições.... por favor alguem pode me ajudar? ... e logico me ajuda?
Estou tendo problemas com os meus botões "registro anterior" e "próximo registro"
fala q precisa de um registro atual .. e q BOF ou EOF é verdadeiro...
no meu BD tem 7 registros... a primeira vez q clico do proximo.. funciona normalmente... mas qd clico de novo não acontece nd... e toda vez q clico do anterior da o erro comentado acima...
Private Sub cmdProximo_Click()
SQL = "Select * from tbProdutos"
Tabela.Open SQL, Conexao, adOpenKeyset, adLockOptimistic
If Tabela.EOF = False Then
Tabela.MoveNext
txtCodigo.Text = Tabela.Fields("Codigo")
txtFormula1.Text = Tabela.Fields("Formula1")
txtFormula2.Text = Tabela.Fields("Formula2")
txtFormula3.Text = Tabela.Fields("Formula3")
txtFormula4.Text = Tabela.Fields("Formula4")
txtPorcentagem1.Text = Tabela.Fields("Porcentagem1")
txtPorcentagem2.Text = Tabela.Fields("Porcentagem2")
txtPorcentagem3.Text = Tabela.Fields("Porcentagem3")
txtPorcentagem4.Text = Tabela.Fields("Porcentagem4")
txtProduto.Text = Tabela.Fields("Produto")
txtPassada1.Text = Tabela.Fields("Passada1")
txtPassada2.Text = Tabela.Fields("Passada2")
txtPassada3.Text = Tabela.Fields("Passada3")
txtPassada4.Text = Tabela.Fields("Passada4")
Else
MsgBox "Esse é o último registro!", vbInformation, "Aviso"
End If
Tabela.Close
End Sub
Private Sub cmdAnterior_Click()
SQL = "Select * from tbProdutos"
Tabela.Open SQL, Conexao, adOpenKeyset, adLockOptimistic
If Tabela.BOF = False Then
Tabela.MovePrevious
txtCodigo.Text = Tabela.Fields("Codigo")
txtFormula1.Text = Tabela.Fields("Formula1")
txtFormula2.Text = Tabela.Fields("Formula2")
txtFormula3.Text = Tabela.Fields("Formula3")
txtFormula4.Text = Tabela.Fields("Formula4")
txtPorcentagem1.Text = Tabela.Fields("Porcentagem1")
txtPorcentagem2.Text = Tabela.Fields("Porcentagem2")
txtPorcentagem3.Text = Tabela.Fields("Porcentagem3")
txtPorcentagem4.Text = Tabela.Fields("Porcentagem4")
txtProduto.Text = Tabela.Fields("Produto")
txtPassada1.Text = Tabela.Fields("Passada1")
txtPassada2.Text = Tabela.Fields("Passada2")
txtPassada3.Text = Tabela.Fields("Passada3")
txtPassada4.Text = Tabela.Fields("Passada4")
Else
MsgBox "Esse é o primeiro registro!", vbInformation, "Aviso"
End If
Tabela.Close
End Sub
Private Sub Form_Load()
Set Conexao = New ADODB.Connection
Set Tabela = New ADODB.Recordset
Conexao.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & App.Path & "\Dados.mdb"
SQL = "Select * from tbProdutos"
Tabela.Open SQL, Conexao, adOpenKeyset, adLockOptimistic
If Tabela.RecordCount > 0 Then
Tabela.MoveFirst
End If
Tabela.Close
End Sub
não sei o q pode ser ... jah q fiz até as condições.... por favor alguem pode me ajudar? ... e logico me ajuda?
Faz assim amigo...ai vira um loop caso seja BOF vai para o ultimo caso seja EOF vai para o primeiro
Private Sub cmdProximo_Click()
SQL = "Select * from tbProdutos"
Tabela.Open SQL, Conexao, adOpenKeyset, adLockOptimistic
If Tabela.EOF = False Then
Tabela.MoveNext
txtCodigo.Text = Tabela.Fields("Codigo")
txtFormula1.Text = Tabela.Fields("Formula1")
txtFormula2.Text = Tabela.Fields("Formula2")
txtFormula3.Text = Tabela.Fields("Formula3")
txtFormula4.Text = Tabela.Fields("Formula4")
txtPorcentagem1.Text = Tabela.Fields("Porcentagem1")
txtPorcentagem2.Text = Tabela.Fields("Porcentagem2")
txtPorcentagem3.Text = Tabela.Fields("Porcentagem3")
txtPorcentagem4.Text = Tabela.Fields("Porcentagem4")
txtProduto.Text = Tabela.Fields("Produto")
txtPassada1.Text = Tabela.Fields("Passada1")
txtPassada2.Text = Tabela.Fields("Passada2")
txtPassada3.Text = Tabela.Fields("Passada3")
txtPassada4.Text = Tabela.Fields("Passada4")
Else
Tabela.MoveFirst
End If
Tabela.Close
End Sub
Private Sub cmdAnterior_Click()
SQL = "Select * from tbProdutos"
Tabela.Open SQL, Conexao, adOpenKeyset, adLockOptimistic
If Tabela.BOF = False Then
Tabela.MovePrevious
txtCodigo.Text = Tabela.Fields("Codigo")
txtFormula1.Text = Tabela.Fields("Formula1")
txtFormula2.Text = Tabela.Fields("Formula2")
txtFormula3.Text = Tabela.Fields("Formula3")
txtFormula4.Text = Tabela.Fields("Formula4")
txtPorcentagem1.Text = Tabela.Fields("Porcentagem1")
txtPorcentagem2.Text = Tabela.Fields("Porcentagem2")
txtPorcentagem3.Text = Tabela.Fields("Porcentagem3")
txtPorcentagem4.Text = Tabela.Fields("Porcentagem4")
txtProduto.Text = Tabela.Fields("Produto")
txtPassada1.Text = Tabela.Fields("Passada1")
txtPassada2.Text = Tabela.Fields("Passada2")
txtPassada3.Text = Tabela.Fields("Passada3")
txtPassada4.Text = Tabela.Fields("Passada4")
Else
Tabela.MoveLast
End If
Tabela.Close
End Sub
Amigos...
Erro de lógica...
vc abre a tabela toda hora que clica no botão, então o cursor volta para o primeiro registro.
Aàvc da um next, ele volta pro segundo, dando a impressão de que não acontece nada...
e quando da um previous ele dá erro, pois já está no primeiro registro e não tem registro anterior.
Tente assim:
Erro de lógica...
vc abre a tabela toda hora que clica no botão, então o cursor volta para o primeiro registro.
Aàvc da um next, ele volta pro segundo, dando a impressão de que não acontece nada...
e quando da um previous ele dá erro, pois já está no primeiro registro e não tem registro anterior.
Tente assim:
Private Sub cmdProximo_Click()
Tabela.MoveNext
If Tabela.EOF = True Then
Tabela.MoveLast
MsgBox "Esse é o último registro!", vbInformation, "Aviso"
Exit sub
End if
txtCodigo.Text = Tabela.Fields("Codigo")
txtFormula1.Text = Tabela.Fields("Formula1")
txtFormula2.Text = Tabela.Fields("Formula2")
txtFormula3.Text = Tabela.Fields("Formula3")
txtFormula4.Text = Tabela.Fields("Formula4")
txtPorcentagem1.Text = Tabela.Fields("Porcentagem1")
txtPorcentagem2.Text = Tabela.Fields("Porcentagem2")
txtPorcentagem3.Text = Tabela.Fields("Porcentagem3")
txtPorcentagem4.Text = Tabela.Fields("Porcentagem4")
txtProduto.Text = Tabela.Fields("Produto")
txtPassada1.Text = Tabela.Fields("Passada1")
txtPassada2.Text = Tabela.Fields("Passada2")
txtPassada3.Text = Tabela.Fields("Passada3")
txtPassada4.Text = Tabela.Fields("Passada4")
End Sub
Private Sub cmdAnterior_Click()
Tabela.MovePrevious
If Tabela.BOF = True Then
Tabela.MoveFirst
MsgBox "Esse é o primeiro registro!", vbInformation, "Aviso"
Exit sub
End if
txtCodigo.Text = Tabela.Fields("Codigo")
txtFormula1.Text = Tabela.Fields("Formula1")
txtFormula2.Text = Tabela.Fields("Formula2")
txtFormula3.Text = Tabela.Fields("Formula3")
txtFormula4.Text = Tabela.Fields("Formula4")
txtPorcentagem1.Text = Tabela.Fields("Porcentagem1")
txtPorcentagem2.Text = Tabela.Fields("Porcentagem2")
txtPorcentagem3.Text = Tabela.Fields("Porcentagem3")
txtPorcentagem4.Text = Tabela.Fields("Porcentagem4")
txtProduto.Text = Tabela.Fields("Produto")
txtPassada1.Text = Tabela.Fields("Passada1")
txtPassada2.Text = Tabela.Fields("Passada2")
txtPassada3.Text = Tabela.Fields("Passada3")
txtPassada4.Text = Tabela.Fields("Passada4")
End Sub
era isso msm... eu tava fechando a tabela em toda rotina... Obrigado kra
vlws msm!
vlws msm!
Esquenta não brother..
Qualquer coisa posta aàque a galera te dá um help.
Qualquer coisa posta aàque a galera te dá um help.
Tópico encerrado , respostas não são mais permitidas