Como filtrar um DBGrid através de um Edit no Delphi utilizando ADOQUERY
Boa noite,
tudo bem pessoal?
Estou com um problema em meu sistema, onde estou tentando filtrar os dados de minha DBGrid através de um Edit, porém estou sem resultado.
Estou colocando o comando no Evento OnChange:
if edit1.Text <>'' then
begin
ADOQUEY1.Locate('DESCRICAO_X', edit1.Text,[loPartialKey, loCaseInsensitive]);
end;
Gostaria que assim que eu fosse digitando no Edit ele já iria filtrando na DBGrid... Como posso realizar esse procedimento?
tudo bem pessoal?
Estou com um problema em meu sistema, onde estou tentando filtrar os dados de minha DBGrid através de um Edit, porém estou sem resultado.
Estou colocando o comando no Evento OnChange:
if edit1.Text <>'' then
begin
ADOQUEY1.Locate('DESCRICAO_X', edit1.Text,[loPartialKey, loCaseInsensitive]);
end;
Gostaria que assim que eu fosse digitando no Edit ele já iria filtrando na DBGrid... Como posso realizar esse procedimento?
Vinicius David
Curtidas 0
Melhor post
Natanael Ferreira
30/10/2018
Você quer filtrar ou localizar?
O comando Locate apenas tenta localizar o registro posicionando o cursor no registro encontrado.
O comando Filter mostra apenas o registro que correspondem a condição criada.
Veja um exemplo do Filter:
O comando Locate apenas tenta localizar o registro posicionando o cursor no registro encontrado.
O comando Filter mostra apenas o registro que correspondem a condição criada.
Veja um exemplo do Filter:
if Edit1.Text <> EmptyStr then
begin
with Adoquery1 do
begin
Filtered := False;
Filter := 'DESCRICAO_X like ' + QuotedStr('*' + Edit1.Text + '*');
Filtered := True;
end;
end;GOSTEI 1
Mais Respostas
Vinicius David
30/10/2018
Bom dia,
Ao tentar colocar esse código no OnChange aparece essa mensagem:
O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.
Seria no Evento OnChange do Edit que devo colocar?
Ao tentar colocar esse código no OnChange aparece essa mensagem:
O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.
Seria no Evento OnChange do Edit que devo colocar?
GOSTEI 0
Natanael Ferreira
30/10/2018
Normalmente esta mensagem de erro aparece quando a query não reconhece o nome do campo a ser filtrado.
O nome do campo realmente é DESCRICAO_X ? Verifique o nome do campo.
O nome do campo realmente é DESCRICAO_X ? Verifique o nome do campo.
GOSTEI 0
Vinicius David
30/10/2018
Realmente o sistema esta se perdendo Natanael.
No query que estou utilizando eu crio um novo FIELD e atribuo esse field a outro ADOQUERY. Coloco o nome da outra tabela do ADOQUERY e mesmo assim não consigo.
Quando utilizo o código:
ADOQUEY1.Locate('DESCRICAO', edit1.Text,[loPartialKey, loCaseInsensitive]);
Porém em outra tabela e não crio outro FIELD para juntar as tabelas ele da certo, onde a DBGrid mostra com a seta onde esta o Processo que necessito.
Esse comando FILTER que me passou não consegui utiliza-lo.
No query que estou utilizando eu crio um novo FIELD e atribuo esse field a outro ADOQUERY. Coloco o nome da outra tabela do ADOQUERY e mesmo assim não consigo.
Quando utilizo o código:
ADOQUEY1.Locate('DESCRICAO', edit1.Text,[loPartialKey, loCaseInsensitive]);
Porém em outra tabela e não crio outro FIELD para juntar as tabelas ele da certo, onde a DBGrid mostra com a seta onde esta o Processo que necessito.
Esse comando FILTER que me passou não consegui utiliza-lo.
GOSTEI 0