FIND FIRST COM DAO

MARCELO.VB.PIRA 09/01/2005 19:42:29
#59650
como usar o findfirst...findnext...finpreviuos...findlast para procurar em vários campos de uma só vez???

tipo:

eu tenho os seguintes campos:

profissao
endereco
atributo
apelido
qualquer_coisa
etc...

e quero procurar um ou mais registros que a string "teste" esteja presente em qualquer umdos campos, não precisa estar EM TODOS, basta estar em qualquer um dos campos...

para procurar de campo em campo, hoje eu faço assim:

DtClient.Recordset.FindFirst "profissao = '" & procura.text & "'"
DtClient.Recordset.FindFirst "endereco = '" & procura.text & "'"
DtClient.Recordset.FindFirst "atributo = '" & procura.text & "'"
etc...etc..etc...

mas queria construir uma rotina de busca, onde eu pusesse um determinado dado e o FIND fisesse a busca nos campos que eu quisesse... ou em todos os campos da tabela!!!!

VALEU


CLEVERTON 09/01/2005 22:50:34
#59683
Resposta escolhida
for i = 0 to tb.fields.count - 1
DtClient.Recordset.FindFirst "profissao like ' " & procura.text & "*'"
next i

se o nomatch for true entao volte para o inicio da tabela MOVEFIRST
MARCELO.VB.PIRA 09/01/2005 23:31:02
#59690
o nomatch eu vou por apos cada find??? e quando não achar, alem de mover para o inicio da tabela eu tenho que refazer o loop do next???

ha.. eu me lembro de uma dica q me deram uma vez, que voce punha algo mais ou menos assim:

DtClient.Recordset.FindFirst "profissao = '" & procura.text & "'" like "endereco = '" & procura.text & "'" like "atributo = '" & procura.text & "'"


mas não me lembro bem se era o like que se usava...

:(


CLEVERTON 09/01/2005 23:36:44
#59694
- o nomatch eu vou por apos cada find???

sim. ( porque se já achou o criterio especificado, a pesquisa deve parar nao acha )

- e quando não achar, alem de mover para o inicio da tabela eu tenho que refazer o loop do next???

sim, ( a nao ser que quando chegar ao final da tabela vc mude o FINDNEXT PARA FINDPREVIOUS )
MARCELO.VB.PIRA 09/01/2005 23:43:57
#59695
bom.. na minha aplicação, tem os quatro botões de busca (primeiro, seguinte, anterior e ultimo)... isso muda algo???
CLEVERTON 09/01/2005 23:49:22
#59697
daí vc vai ter que realmente voltar para o inicio da tabela quando o criterio especificado nao for encontrado
MARCELO.VB.PIRA 09/01/2005 23:54:17
#59701
voce não conhece algo parecido com este metodo:

DtClient.Recordset.FindFirst "profissao = '" & procura.text & "'" like "endereco = '" & procura.text & "'" like "atributo = '" & procura.text & "'"

ou

DtClient.Recordset.FindFirst "profissao = '" & procura.text & "'" + "endereco = '" & procura.text & "'" + "atributo = '" & procura.text & "'"

não sei se é exatamente assim, se ao inves do LIKE é SEEK... putz... era um achado.. e agora virou perdido...

ja estou de olho doido de revirar o msdn e nada ate agora... putz...

CLEVERTON 09/01/2005 23:56:37
#59702
use AND

DtClient.Recordset.FindFirst "profissao = '" & procura.text & "' AND CAMPO2="
MARCELO.VB.PIRA 10/01/2005 00:00:17
#59703
para acabar de matar a pau, pedra e spray de DDT...

da para usar assim?

DtClient.Recordset.FindFirst "profissao = '" & procura.text & "'" or "endereco = '" & procura.text & "'" or "atributo = '" & procura.text & "'"

dis que sim... diz que sim... diz que sim... SSSSIIIMMMMMMMMMMM?????

CLEVERTON 10/01/2005 00:02:09
#59704
rapaz assim nunca vi nao viu ( com o OR )

mas com o AND dentro da expressao de pesquisa ja vi exemplos "Nunca testei"

MARCELO.VB.PIRA 10/01/2005 00:04:55
#59705
ok... vou testar NOW!!!!!!!!!!!!

se der certo... vou ficar bem feliz, visse mininu???

VALEU CLEVERTON!!!

tu merece um prêmio!!!!!

Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas