ITEM PROCURA - FIND ...

USUARIO.EXCLUIDOS 22/07/2005 10:19:36
#95522
Galera
Referente uma dica sobre o botão pesquisar em ADO.... eu estava tentando melhorar um pouco a funcionalidade dele.

O que acontece é o seguinte:
pelo conteúdo do código antigo - Quando clica uma vez no botão ele verifica o Caption do botão e em seguida ativa a pesquisa SQL. - Quando ele consegue achar o registro ele exibe na tela, porém as funcionalidades: Primeiro, Anterior, Próximo e ÃÅ¡ltimo ficam desativadas devido ter aberto a tabela via SQL. - Eu tentei modificar o código para que quando ele ache o registro, o usuário clique novamente no botão pesquisar que estará com o Caption: "Pesquisa OK?", daí o que ocorre é que ele pula novamente para o primeiro registro.... e o certo é que continue com o registro na tela contendo todos os comandos de navegação.

Segue o código com algumas coisas que coloquei e gostaria de ver com você se de repente vc saberia me ajudar neste ponto?

Segue o código:
o que está entre ??? é porque eu tentei e não deu certo.
O resto funciona OK.



If cmdpesquisar.Caption = "Pesquisa OK?" Then 'Se o botão estiver com o texto: "Normal"

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

????? rs.Move (cod_atual) ??????

eu tentei :

??? cod = Int(rs(0).Value)
txtcod = cod
'rs.Open (txtcod.Text) ???

cmdpesquisar.Caption = "Buscar"
cmdlast.Enabled = True
cmdfirst.Enabled = True
cmdanterior.Enabled = True
cmdnext.Enabled = True
cmdlast.Enabled = True
cmdincluir.Enabled = True
cmsalvar.Enabled = True
cmdalterar.Enabled = True
cmdexcluir.Enabled = True
' rs.Move& resposta
Else 'Senão
cmdfirst.Enabled = False
cmdlast.Enabled = False
cmdanterior.Enabled = False
cmdnext.Enabled = False
cmdlast.Enabled = False
cmdincluir.Enabled = False
cmsalvar.Enabled = False
cmdalterar.Enabled = False
cmdexcluir.Enabled = False
resposta = InputBox("Informe o codigo do usuário a localizar ", "Localizar")
rs.Close
rs.Open "select * from Tabela1 where ID like '%" & resposta & "%'", conexao, adOpenDynamic, adLockOptimistic
If rs.EOF Then
MsgBox "Não Localizado código: " & resposta
rs.Close
rs.Open "select * from Tabela1, conexao, adOpenDynamic
Else
cmdpesquisar.Caption = "Pesquisa OK?"
End If
End If

Carrega

End Sub


Também vou colocar o código original em negrito:

If cmd_Buscar.Caption = "Normal" Then 'Se o botão estiver com o texto: "Normal"
rs.Close 'Fecha a conexão
rs.Open "select * from usuarios ", conexao 'Abre a tabela novamente (Usando SQL)
cmd_Buscar.Caption = "Buscar" 'O texto do Botão muda para: "Buscar"
Else 'Senão
resposta = InputBox("Informe o codigo do usuário a localizar ", "Localizar") 'Abre uma InputBox
rs.Close 'Fecha a Tabela
rs.Open "select * from usuarios where ID like '%" & resposta & "%'", conexao 'Abre a tabela e procura a palavra digitada no campo ID
If rs.EOF Then
MsgBox "Não encontrei o codigo: " & resposta
rs.Close
rs.Open "select * from usuarios ", conexao
Else
cmd_Buscar.Caption= "Normal"
End If
End If
carrega


Por enquanto agradeço e fico no aguardo,.


Leonardo Vianna.
leonardonet02@yahoo.com.br
LREZANI 22/07/2005 13:37:31
#95595
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.
JEAN.JEDSON 22/07/2005 13:46:38
#95599
o caso é que vc não precisa fechar a tabela... vc pode usar um filter... ou um find... em vez de abrir e fechar a consulta a cada vez...
Tópico encerrado , respostas não são mais permitidas