PROBLEMAS COM A PESQUISA!!!!!

USUARIO.EXCLUIDOS 26/07/2005 10:20:12
#96013
E aí Galera, blz?

A uns dias atrás estava tendo problemas com um item da minha pesquisa, pois eu não estava conseguindo manter na tela o registro procurado depois que clicava no botão "Pesquisa OK?" - Então... funcionou blz com a dica do Luiz (abaixo).... o problema é que quando mando ele localizar o primeiro registro do banco de dados Ex.: cód 1, ele está apresentando o seguinte erro :

"Run-time error '3021'

BOF ou EOF são verdadeiros, ou o registro atual foi excluído.
A operação solicitada pelo aplicativo requer um registro atual."



VcÂÂÂ's saberiam me dizer o que ocorrer?
Por enquanto valeu...

Leonardo.

Referente:

Citação:
rs.Close 'Fecha a conexão
rs.Open "Tabela1", conexao, adOpenDynamic, adLockOptimistic

????? rs.Move (cod_atual) ?????? ????? rs.Move (cod_atual) ??????
Tente dessa forma:


rs.Close 'Fecha a conexão
rs.Open "Tabela1", conexao, adOpenDynamic, adLockOptimistic

RS.Find ("ID='" & cod_atual & "'"), 1, adSearchForward

OU MELHOR AINDA:

Dim cod_atual As Integer
cod_atual = Cint(TextboxCod.Text)

rs.Close 'Fecha a conexão
rs.Open "Select * from Tabela1 where ID=" & cod_atual & "", conexao, adOpenDynamic, adLockOptimistic




Espero que agora funcione.
Não esqueça de encerrar o tópico.

As honras tributadas sem razão, são molas da fortuna.
Lrezani@hotmail.com
Luiz A. Rezani.
LREZANI 26/07/2005 10:30:05
#96016
LEONARDO:
Me diga qual dos métodos de pesquisa que eu te passei que você usou.
Se possível mostre como seu código está no momento.
USUARIO.EXCLUIDOS 26/07/2005 12:10:44
#96038
Luiz,
No momento não terei como te passar todo o código do meu botão pesquisar, pois está em outra máquina.... Tem como eu te passar um e-mail com este código, no seu e-mail?
USUARIO.EXCLUIDOS 26/07/2005 16:15:06
#96084
isto ocorre porque o cursor do seu recordset esta apontando para EOF(end of file - fim do arquivo) ou BOF (begin of file inicio do arquivo) que no caso não refere - se a registro algum, portanto antes da pesquisa coloque
seurs.movefirst
com isto o ponteiro é movimentado para a primeira posição valida do recordset, possibilitando a consulta.
detalhe se tanto EOF quanto BOF forem verdadeiros, quer dizer que não tem registro algum no recordset.
MARCOSAV 26/07/2005 16:21:44
#96088
LEONARDO, tente fazer isto :

NO MÓ“DULO, CRIE ESTAS SUB's (Código, Nome e Telefone são apenas exemplos de campos, ok ???)

Sub CarregaCampo()
If Len(rscadastro("Código")) > 0 Then Screen.ActiveForm.codtxt.Text = rscadastro("Código")
If Len(rscadastro("Nome")) > 0 Then Screen.ActiveForm.nometxt.Text = rscadastro("Nome")
If Len(rscadastro("Telefone")) > 0 Then Screen.ActiveForm.fonetxt.Text = rscadastro("Telefone")

End Sub
_____________________________________________________________________________
Sub MostrarCampo()

Screen.ActiveForm.lblcod.Visible = True
Screen.ActiveForm.nomelbl.Visible = True
Screen.ActiveForm.fonelbl.Visible = True
Screen.ActiveForm.codtxt.Visible = True
Screen.ActiveForm.nometxt.Visible = True
Screen.ActiveForm.fonetxt.Visible = True

End Sub
____________________________________________________________________________
____________________________________________________________________________

Agora, sua pesquisa (exemplificando com um ENTER no campo Código)...

Private Sub codtxt_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then ' ENTER pressionado
rscadastro.Index = "Código" 'O campo Código é um índice em sua tabela
rscadastro.Seek "=", codtxt.Text
If rscadastro.NoMatch Then
MsgBox "CÓ“DIGO não existente !!!"
codtxt.Text = ""
Else
CarregaCampo ' Sub do MÓ“DULO
MostrarCampo ' Sub do MÓ“DULO
End If
End If

End Sub

Espero que ajude...
Abraço.
Tópico encerrado , respostas não são mais permitidas