PROBLEMAS ADO
Bom dia Galera,
Estou com o seguinte problema...
Na minha aplicação tenho uma recordset privada no form, onde eu carrego os dados do banco e depois fico percorrendo ela e jogando os dados na tela. Porém estou com o probelma o .MovePrevious pois quando é o último registro ele da erro.
segue fonte e imagem.
[ô]fonte
frsEmp.MovePrevious [ô]aki passo para o registro anterior
If frsEmp.BOF Then [ô]verifico se ainda existe registro
frsEmp.MoveLast [ô]se nao existe registro mando pro ultimo
End If
na primeira vez esta ok, ele verifica se existe registro, não existe dai ele vai pro ultimo, mas se eu cliko denovo pra ir pro anterior gera o erro da imagem.
Estou com o seguinte problema...
Na minha aplicação tenho uma recordset privada no form, onde eu carrego os dados do banco e depois fico percorrendo ela e jogando os dados na tela. Porém estou com o probelma o .MovePrevious pois quando é o último registro ele da erro.
segue fonte e imagem.
[ô]fonte
frsEmp.MovePrevious [ô]aki passo para o registro anterior
If frsEmp.BOF Then [ô]verifico se ainda existe registro
frsEmp.MoveLast [ô]se nao existe registro mando pro ultimo
End If
na primeira vez esta ok, ele verifica se existe registro, não existe dai ele vai pro ultimo, mas se eu cliko denovo pra ir pro anterior gera o erro da imagem.
de uma olhada nesse topico http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=361322&varUltimaPagina=1
If frsEmp.BOF Then [ô]verifico se ainda existe registro
frsEmp.MoveLast [ô]se nao existe registro mando pro ultimo
else
frsEmp.MovePrevious [ô]aki passo para o registro anterior
End If
nao entendi p vc ta passando pro ULTIMO registro quando chega em BOF
quando chega em BOF pq vc nao passao para o PRIMEIRO registro:
frsEmp.MovePrevious [ô]aki passo para o registro anterior
If frsEmp.BOF Then [ô]verifico se ainda existe registro
frsEmp.MoveFirst [ô]se nao existe registro mando pro ultimo
End If
quando chega em BOF pq vc nao passao para o PRIMEIRO registro:
frsEmp.MovePrevious [ô]aki passo para o registro anterior
If frsEmp.BOF Then [ô]verifico se ainda existe registro
frsEmp.MoveFirst [ô]se nao existe registro mando pro ultimo
End If
no meu exemplo nao deu certo ?
sempre faço assim, nunca me deu problemas nao
sempre faço assim, nunca me deu problemas nao
Tenta assim
frsEmp.MovePrevious
If frsEmp.BOF Then frsEmp.MoveNext
frsEmp.MovePrevious
If frsEmp.BOF Then frsEmp.MoveNext
pois é pessoal, o problema não é em mover pro ultimo e sim em mover pro anterior, depois que passa pelo propriedade BOF ou EOF o moveprevious nao funciona mais. Vou Postar o codigo inteiro
Private Sub cmdPrev_Click()
[txt-color=#0000f0] On Error Resume Next[/txt-color]
[txt-color=#e80000]frsEmp.MovePrevious
If frsEmp.BOF Then
frsEmp.MoveLast
End If[/txt-color]
[txt-color=#0000f0]txtNomeFan.Text = frsEmp!Nome_Fantasia
txtRazao.Text = frsEmp!Razao_Social
txtCNPJ.Text = frsEmp!CNPJ
txtIM.Text = frsEmp!IM
txtIE.Text = frsEmp!IE
cboRamo.Text = frsEmp!Ramo
dtpData.Value = Format(frsEmp!Data_Fundacao, [Ô]dd/MM/yyyy[Ô])
optTipo(1).Value = Not frsEmp!Matriz
lblResults(0).Caption = frsEmp!Logradouro
lblResults(1).Caption = frsEmp!numero
lblResults(2).Caption = frsEmp!Complemento
lblResults(3).Caption = frsEmp!CEP
lblResults(4).Caption = frsEmp!Bairro
lblResults(5).Caption = frsEmp!Cidade
lblResults(6).Caption = frsEmp!UF
lblResults(7).Caption = frsEmp!Email
lblResults(8).Caption = frsEmp!Fone_Comercial
lblResults(9).Caption = frsEmp!Fone_Celular
lblResults(10).Caption = frsEmp!Fone1
lblResults(11).Caption = frsEmp!Fone2[/txt-color]
End Sub
com o [Ô]on error resume next nao da erro mas tem q clikar duas vezes pra mudar de registro, pois uma vez da erro e nao passa os
registros mas na outra vez funciona isso q nao entendo, com DAO nao tinha esse problema.
Private Sub cmdPrev_Click()
[txt-color=#0000f0] On Error Resume Next[/txt-color]
[txt-color=#e80000]frsEmp.MovePrevious
If frsEmp.BOF Then
frsEmp.MoveLast
End If[/txt-color]
[txt-color=#0000f0]txtNomeFan.Text = frsEmp!Nome_Fantasia
txtRazao.Text = frsEmp!Razao_Social
txtCNPJ.Text = frsEmp!CNPJ
txtIM.Text = frsEmp!IM
txtIE.Text = frsEmp!IE
cboRamo.Text = frsEmp!Ramo
dtpData.Value = Format(frsEmp!Data_Fundacao, [Ô]dd/MM/yyyy[Ô])
optTipo(1).Value = Not frsEmp!Matriz
lblResults(0).Caption = frsEmp!Logradouro
lblResults(1).Caption = frsEmp!numero
lblResults(2).Caption = frsEmp!Complemento
lblResults(3).Caption = frsEmp!CEP
lblResults(4).Caption = frsEmp!Bairro
lblResults(5).Caption = frsEmp!Cidade
lblResults(6).Caption = frsEmp!UF
lblResults(7).Caption = frsEmp!Email
lblResults(8).Caption = frsEmp!Fone_Comercial
lblResults(9).Caption = frsEmp!Fone_Celular
lblResults(10).Caption = frsEmp!Fone1
lblResults(11).Caption = frsEmp!Fone2[/txt-color]
End Sub
com o [Ô]on error resume next nao da erro mas tem q clikar duas vezes pra mudar de registro, pois uma vez da erro e nao passa os
registros mas na outra vez funciona isso q nao entendo, com DAO nao tinha esse problema.
pow galera descobri o problema.
tinha esquecido de colokar o CursorLocation = adUseClient.
Aff, hehehehe
muito obrigado a quem se pos a ajudar.
tinha esquecido de colokar o CursorLocation = adUseClient.
Aff, hehehehe
muito obrigado a quem se pos a ajudar.
Tópico encerrado , respostas não são mais permitidas