JOM
|
BOM JESUS DA LAPA BA - BRASIL
|
|
Postada em 12/06/2007 01:04 hs
Se alguem puder me dizer como utilizar o metodo Seek, a tempos que tento, tenho uma tabela com indice definido e gostaria de localizar um registro especifico, sei que o melhor caminho é o seek, porém peno até hoje tentando. Se possivel insira o código usando os nomes genéricos: tabelatal, campotal... Obrigado pela atenção pessoal.
|
|
|
|
|
|
LCRamos
|
GOIANIA GO - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 12/06/2007 04:54 hs
JOM, o comando Seek só funciona sobre conexão em Tabelas, não funciona com Dynaset e Snapshop, faça a sua abertura, e depois use desta forma: rsTABELA.Index = "NOMEDOINDICE" rsTABELA.Seek"=", txtTEXTO1.Text If rsTABELA.Eof ' ou If rsTABELA.NoMatch Then Não encontrou Else Encontrou End If Desta forma, o nome do indice, tem que ser o nome que voce deu ao campo indexado, se voce não mudou, o nome é o mesmo do campo. O txtTEXTO1.Text, deve conter o valor que está procurando, vale para qualquer tipo de dados. Pode ser usado Text, Combo, variavel, qualquer dado na procura. O Seek, se houver valores duplicados ele só encontra o primeiro valor, ignora o restante, ai voce faz um Loop pela Tabela para verificar mais valores. Se necessitar de todos os valores iguais, use o Find, mas só funciona sobre Dynaset, não funciona em Tabelas. Uso muito o Seek, efetua buscas com muita rapidez, quase imperceptivel, independente do tamanho das Tabelas, se houver dúvidas, poste. vlu//
|
|
|
|
JOM
|
BOM JESUS DA LAPA BA - BRASIL
|
|
Postada em 12/06/2007 13:52 hs
Cara, acredita que ainda não consegui?, parece ser tão fácil, não sei o que pode estar acontecendo, ponho instruções SQL restringindo dados de inúmeras formas, faço outras buscas, mas esta que eu queria por buscar um item especifico não consigo. Uma forma seria pegar uma das instruções que uso de SQL, porém tendo que usar uma variável dentro dela e ai a coisa complica mais um pouco, veja: Dim ordem ordem = "(" & "Select * from dados where saldo <> 0 order by cheque asc" & ")" Adodc1.RecordSource = (ordem) Adodc1.Refresh Nesta instrução eu obtenho os cheques pre datados que ainda não foram baixados, ou seja, saldo diferente de zero e por ordem numerica mas o que gostaria mesmo é de buscar um cheque por seu número, que é único, e por sinal é meu indice na tabela. tem alguma sugestão? te agradeço de antemão o empenho em me ajudar
|
|
|
|
|
|
Postada em 18/06/2007 15:10 hs
http://www.vbweb.com.br/dicas_visual.asp?Codigo=707&Classificacao=
Esse foi a dica que coloquei sobre a busca com o seek, más pelo que sei ele não funciona com o sql, funciona com o DAO( não sei se funciona com o ADO ), pois no sql basta você mandar procurar o que deseja, depois verificar se o recordcount dele está zerado No seu caso: Dim ordem ordem = "(" & "Select * from dados where saldo <> 0 order by cheque asc" & ")" Adodc1.RecordSource = (ordem) Adodc1.Refresh if adodc1.recordcount=0 then msgbox " registro não encontrado " else seus comandos endif
Abraço e que DEUS te abençõe, espero poder ter te ajudado  Eu sou o Senhor, o DEUS de vocês; eu os seguro pela mão e lhes digo; Não fiquem com medo, pois eu os ajudo Isaias 41:13
|
|
|
|
|
|
Postada em 20/06/2007 11:07 hs
Olá Jom, Se você estiver uso o ADO o Seek não funciona. A forma correta é esta: If RS.RecordCount <> 0 Then RS.MoveMin RS.Find "Codigo = '" & Txt_Codiog.Text & "'" If RS.EOF Then MsgBox "Código não registrado !", vbOKOnly, "Atenção" Else MsgBox "O código existe !", vbOKOnly, "Atenção" End If Endif Jayme
|
|
|
|
|
|
Postada em 20/06/2007 11:09 hs
Desculpe-me Ao invés de RS.MoveMin o correto é: RS.MoveMin Jayme
|
|
|
|
|