Pesquisa por busca aproximada
Bom dia pessoal!
Mas uma vez estou aqui pedindo auxilio aos mestres!!!!
Tenho um Edit que uso como pesquisa. Como faço para implementar uma busca por aproximação, ou seja, quando digitar a primeira letra já me trazer os nomes que começam com a letra digitada.
Obs. ADOTABLE e access
desde já agradeço pela colaboração.
Mas uma vez estou aqui pedindo auxilio aos mestres!!!!
Tenho um Edit que uso como pesquisa. Como faço para implementar uma busca por aproximação, ou seja, quando digitar a primeira letra já me trazer os nomes que começam com a letra digitada.
Obs. ADOTABLE e access
desde já agradeço pela colaboração.
Mailson Janoca
Curtidas 0
Melhor post
Raimundo Pereira
23/11/2016
Ok, tente.
O indicado é que se coloque no envento key press, mais pode colocar no event onchange.
Se colocar no evento key press, só será realizada a consulta quando pressionar a tecla enter.
Se colocar no evento Onchange, qualquer letra que digitar no edit, será realizado o filtro imediato.
Para Onchange basta colar o código abaixo e colocar de acordo com sua base de dados
DM.adoquery1.close;
DM.adoquery1.Sql.clear;
DM.adoquery1.Sql.Add('select * from sua tabela');
DM.adoquery1.Sql.Add('where nome like :VarNome');
DM.adoquery1.Parameters.ParamByName('VarNome').Value := '%' + trim(Edit2.Text) + '%';
DM.adoquery1.open;
Para KeyPress
if key=#13 then
begin
DM.adoquery1.close;
DM.adoquery1.Sql.clear;
DM.adoquery1.Sql.Add('select * from sua tabela');
DM.adoquery1.Sql.Add('where nome like :VarNome');
DM.adoquery1.Parameters.ParamByName('VarNome').Value := '%' + trim(Edit2.Text) + '%';
DM.adoquery1.open;
end;
end;
O indicado é que se coloque no envento key press, mais pode colocar no event onchange.
Se colocar no evento key press, só será realizada a consulta quando pressionar a tecla enter.
Se colocar no evento Onchange, qualquer letra que digitar no edit, será realizado o filtro imediato.
Para Onchange basta colar o código abaixo e colocar de acordo com sua base de dados
DM.adoquery1.close;
DM.adoquery1.Sql.clear;
DM.adoquery1.Sql.Add('select * from sua tabela');
DM.adoquery1.Sql.Add('where nome like :VarNome');
DM.adoquery1.Parameters.ParamByName('VarNome').Value := '%' + trim(Edit2.Text) + '%';
DM.adoquery1.open;
Para KeyPress
if key=#13 then
begin
DM.adoquery1.close;
DM.adoquery1.Sql.clear;
DM.adoquery1.Sql.Add('select * from sua tabela');
DM.adoquery1.Sql.Add('where nome like :VarNome');
DM.adoquery1.Parameters.ParamByName('VarNome').Value := '%' + trim(Edit2.Text) + '%';
DM.adoquery1.open;
end;
end;
GOSTEI 1
Mais Respostas
Jones Granatyr
22/11/2016
Opa! Você pode usar o comando LOCATE do ADOTable
GOSTEI 0
Raimundo Pereira
22/11/2016
no evento onchange coloque
if (dm.suaquery.active=true) and (dm.suaquery.recordcount)>0 then
dm.suaquery.Locate('',EDT_PESQ.Text,[loCaseInsensitive, loPartialKey]);
if (dm.suaquery.active=true) and (dm.suaquery.recordcount)>0 then
dm.suaquery.Locate('',EDT_PESQ.Text,[loCaseInsensitive, loPartialKey]);
GOSTEI 0
Mailson Janoca
22/11/2016
Boa tarde!
Agradeço pela ajuda mas não é o que estou precisando.
Quero que vai selecionando conforme vou digitando no TEdit.
Agradeço pela ajuda mas não é o que estou precisando.
Quero que vai selecionando conforme vou digitando no TEdit.
GOSTEI 0
Raimundo Pereira
22/11/2016
Teste o comando acima, confirme se realmente não é o que precisa
Pois o comando que passei, de acordo você vai digitando algo no edit ele vai tentando localizar na query.
Não é o que precisa? se não, amigo, explique melhor o que quer dizer "Quero que vai selecionando conforme vou digitando no TEdit."
Pois o comando que passei, de acordo você vai digitando algo no edit ele vai tentando localizar na query.
Não é o que precisa? se não, amigo, explique melhor o que quer dizer "Quero que vai selecionando conforme vou digitando no TEdit."
GOSTEI 0
Mailson Janoca
22/11/2016
Vou tentar ser mais claro...
No TEdit quero implementar um código para busca aproximada, ou seja, ao digitar uma letra vai filtrando na GRID e que apareça somente os nomes conforme letra inicial.
exemplo: Digitei letra 'J'
GRID: Quero que apareça somente os clientes com letra J.
No TEdit quero implementar um código para busca aproximada, ou seja, ao digitar uma letra vai filtrando na GRID e que apareça somente os nomes conforme letra inicial.
exemplo: Digitei letra 'J'
GRID: Quero que apareça somente os clientes com letra J.
GOSTEI 0
Mailson Janoca
22/11/2016
Vou tentar ser mais claro...
No TEdit quero implementar um código para busca aproximada, ou seja, ao digitar uma letra vai filtrando na GRID e que apareça somente os nomes conforme letra inicial.
exemplo: Digitei letra ''J''
GRID: Quero que apareça somente os clientes com letra J.
No TEdit quero implementar um código para busca aproximada, ou seja, ao digitar uma letra vai filtrando na GRID e que apareça somente os nomes conforme letra inicial.
exemplo: Digitei letra ''J''
GRID: Quero que apareça somente os clientes com letra J.
GOSTEI 0
Mailson Janoca
22/11/2016
Muito obrigado!
Perfeito o código!
Perfeito o código!
GOSTEI 0