ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Pesquisar dados de uma edit e ao... <RESOLVIDO>

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
dcbfreitas21
Membro Junior
Membro Junior


Registrado: Sábado, 30 de Janeiro de 2010
Mensagens: 323

MensagemEnviada: Ter Ago 30, 2011 3:39 pm    Assunto: Pesquisar dados de uma edit e ao... <RESOLVIDO> Responder com Citação

tenho um aplicativo onde ao mostrar o formulario de produtos ele lista somente os produtos de determinado fornecedor (cadastrado em um outro formulario), porem executo tb codigos para procurar determinados produtos no evento onchange de uma edit e gostaria de juntar os dois, mas nao sei como fazer isso, o codigo do evento onshow é este:
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select tp.codigo, tp.produto, tp.unidade, tp.fornecedor, tp.valor, tu.unidade from tabelaproduto as tp inner join tabelaunidade as tu on tp.unidade = tu.codigo');
ADOQuery1.SQL.Add('where tp.fornecedor = ' + (Form_OC.DBEdit2.Text));
ADOQuery1.SQL.Add('order by produto');
ADOQuery1.Open;

ele ao mostrar o formulario mostra somente os produto do fornecedor informado na dbedit2 e o codigo do evento onchange é este:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select tp.codigo, tp.produto, tp.valor, tp.unidade, tu.unidade from tabelaproduto as tp inner join tabelaunidade as tu on tp.unidade = tu.codigo');
ADOQuery1.SQL.Add('where produto LIKE ' + QuotedStr('%' + edit1.Text + '%'));
ADOQuery1.SQL.Add('order by produto');
ADOQuery1.Open;

mas ao editar ele nao respeita mais o fornecedor logicamente e nao estou sabendo como unir a linha:
ADOQuery1.SQL.Add('where produto LIKE ' + QuotedStr('%' + edit1.Text + '%'));
com a linha:
ADOQuery1.SQL.Add('where tp.fornecedor = ' + (Form_OC.DBEdit2.Text));


Editado pela última vez por dcbfreitas21 em Ter Ago 30, 2011 4:40 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Ago 30, 2011 4:26 pm    Assunto: Responder com Citação

Experimente mais ou menos como segue:

Código:
ADOQuery1.SQL.Add('Select tp.codigo, tp.produto, tp.unidade, tp.fornecedor, tp.valor, tu.unidade');
ADOQuery1.SQL.Add('from tabelaproduto as tp inner join tabelaunidade as tu on tp.unidade = tu.codigo');
ADOQuery1.SQL.Add('where tp.fornecedor = ' + Form_OC.DBEdit2.Text);
ADOQuery1.SQL.Add('and produto LIKE ' + QuotedStr('%' + edit1.Text + '%'));


ou com parâmetros:

Código:
ADOQuery1.SQL.Add('Select tp.codigo, tp.produto, tp.unidade, tp.fornecedor, tp.valor, tu.unidade');
ADOQuery1.SQL.Add('from tabelaproduto as tp inner join tabelaunidade as tu on tp.unidade = tu.codigo');
ADOQuery1.SQL.Add('where tp.fornecedor = :fornecedor');
ADOQuery1.SQL.Add('and produto LIKE :produto');
ADOQuery1.Parameters.ParamByName('fornecedor').Value := Form_OC.DBEdit2.Text;
ADOQuery1.Parameters.ParamByName('produto').Value := QuotedStr('%' + edit1.Text + '%');


obs: acho melhor acessar o valor pelo field do que pelo DBEdit ao qual está ligado

Espero que ajude.

_________________
Assinatura: Salas comerciais em Guarulhos
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
dcbfreitas21
Membro Junior
Membro Junior


Registrado: Sábado, 30 de Janeiro de 2010
Mensagens: 323

MensagemEnviada: Ter Ago 30, 2011 4:38 pm    Assunto: Responder com Citação

imex escreveu:
Experimente mais ou menos como segue:

Código:
ADOQuery1.SQL.Add('Select tp.codigo, tp.produto, tp.unidade, tp.fornecedor, tp.valor, tu.unidade');
ADOQuery1.SQL.Add('from tabelaproduto as tp inner join tabelaunidade as tu on tp.unidade = tu.codigo');
ADOQuery1.SQL.Add('where tp.fornecedor = ' + Form_OC.DBEdit2.Text);
ADOQuery1.SQL.Add('and produto LIKE ' + QuotedStr('%' + edit1.Text + '%'));


ou com parâmetros:

Código:
ADOQuery1.SQL.Add('Select tp.codigo, tp.produto, tp.unidade, tp.fornecedor, tp.valor, tu.unidade');
ADOQuery1.SQL.Add('from tabelaproduto as tp inner join tabelaunidade as tu on tp.unidade = tu.codigo');
ADOQuery1.SQL.Add('where tp.fornecedor = :fornecedor');
ADOQuery1.SQL.Add('and produto LIKE :produto');
ADOQuery1.Parameters.ParamByName('fornecedor').Value := Form_OC.DBEdit2.Text;
ADOQuery1.Parameters.ParamByName('produto').Value := QuotedStr('%' + edit1.Text + '%');


obs: acho melhor acessar o valor pelo field do que pelo DBEdit ao qual está ligado

Espero que ajude.
Tentei da 1° maneira e deu certo obrigado

_________________
Assinatura: Salas comerciais em Guarulhos
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB