PROBLEMAS ADO

JEISONANTONI 06/01/2011 11:58:34
#361351
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.
LUIZCOMINO 06/01/2011 13:13:20
#361361
de uma olhada nesse topico http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=361322&varUltimaPagina=1
ACG1574 06/01/2011 14:25:49
#361380

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
JUNIORARI2 06/01/2011 15:29:55
#361400
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

ACG1574 06/01/2011 15:42:38
#361403
no meu exemplo nao deu certo ?
sempre faço assim, nunca me deu problemas nao
PARREIRA 06/01/2011 16:06:06
#361408
Tenta assim

frsEmp.MovePrevious
If frsEmp.BOF Then frsEmp.MoveNext

JEISONANTONI 06/01/2011 17:42:00
#361437
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.
JEISONANTONI 06/01/2011 18:16:08
#361442
pow galera descobri o problema.
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