FIND FIRST COM DAO
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
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
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
DtClient.Recordset.FindFirst "profissao like ' " & procura.text & "*'"
next i
se o nomatch for true entao volte para o inicio da tabela MOVEFIRST
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...
:(
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...
:(
- 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 )
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 )
bom.. na minha aplicação, tem os quatro botões de busca (primeiro, seguinte, anterior e ultimo)... isso muda algo???
daà vc vai ter que realmente voltar para o inicio da tabela quando o criterio especificado nao for encontrado
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...
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...
use AND
DtClient.Recordset.FindFirst "profissao = '" & procura.text & "' AND CAMPO2="
DtClient.Recordset.FindFirst "profissao = '" & procura.text & "' AND CAMPO2="
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?????
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?????
rapaz assim nunca vi nao viu ( com o OR )
mas com o AND dentro da expressao de pesquisa ja vi exemplos "Nunca testei"
mas com o AND dentro da expressao de pesquisa ja vi exemplos "Nunca testei"
ok... vou testar NOW!!!!!!!!!!!!
se der certo... vou ficar bem feliz, visse mininu???
VALEU CLEVERTON!!!
tu merece um prêmio!!!!!
se der certo... vou ficar bem feliz, visse mininu???
VALEU CLEVERTON!!!
tu merece um prêmio!!!!!
Tópico encerrado , respostas não são mais permitidas