PROBLEMAS COM A PESQUISA!!!!!
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.
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.
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.
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.
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?
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?
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.
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.
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.
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