Fórum DÚVIDA CONSULTA #148277
21/03/2003
0
POR EXEMPLO O DBGRID ESTÁ LIGADO COM A TABELA DE DOCUMENTOS, ENTÃO APARECE TODOS OS CAMPOS DELA, E CONFORME EU DIGITO NO MASKEDIT O NOME DO CLIENTE, ELE VAI FAZENDO A CONSULTA.
SÓ Q EU QUERIA Q ELE SÓ FOSSE MOSTRANDO SÓ O NOME DO CLIENTE Q EU FOSSE DIGITANDO NO MASKEDIT E NÃO MOSTRAR TODOS OS NOMES.
Rafaela
Curtir tópico
+ 0Posts
21/03/2003
Biscalquini
Gostei + 0
21/03/2003
Rafaela
é uma consulta simples só que não quero q o dbgrid me mostre todos os registros da tabela q ele está ligado e sim os registros q eu for digitando no maskedit....
por exemplo se eu digito no maskedit o nome RAFAELA, o dbgrid tem q me trazer TODOS os registros q contenham o nome RAFAELA entendeu???.......
Grata
RAFAELA
Gostei + 0
21/03/2003
Anonymous
Gostei + 0
21/03/2003
Biscalquini
Do jeito que vc quer, faça com query: No evento onchange do edit coloque:
With Query, SQL do
begin
Close;
Clear;
Add(´SELECT * FROM TABELA´);
Add(´WHERE NOME LIKE :Nome´);
Params[0].AsString:=Edit1.Text+´¬´;
Open;
end;
Dessa forma ele vai achar somente os registros que começam com o que vc escrever no edit, mas pode ficar lento dependendo do número de registros em sua tabela, crie um índice com o NOME para melhorar a performance;
O segundo modo é com Table:
No evento onchange do edit coloque;
Table1.FindNearest([Edit1.Text]);
ele é case sensitive, isto é, diferencia maiúsculas de minúsculas, mas o processo é bem mais rápido, na propriedade IndexName da Table selecione o indice que corresponde o nome para o comando funcionar.
Espero ter ajudado
Gostei + 0
21/03/2003
Anonymous
no onChange do Edit faça:
if Tabela.Locate(´NOME´,Edit.text,[loCaseInsensitive,loPartialKey]) then
Edit.Text := TabelaNome.Value;
T+
Se não funcionar avisa
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)