Ir para conteúdo
Fórum Script Brasil
  • 0

SELECT com dois parâmetros para o mesmo campo


Gabriel Cabral

Pergunta

Tenho um combobox simples que está carregado com o Nome de cada Fornecedor

e uma DBEdit que armazena o Código do Fornecedor...

Ao "navegar" pelos registros, com botões Primeiro, Próximo, etc.. o ComboBox simples precisa receber o nome do fornecedor de acordo com o código que está no DBEdit [vinculado com o banco]...

Para realizar isso em um combo, fiz dessa maneira:

with QueryCadProForn do
  begin
    Close;
    SQL.Clear;

    SQL.Add('SELECT FORFAN FROM FINAFOR.dbf');
    SQL.Add('WHERE FORCOD = :pCOD');

    ParambyName('pCOD').AsString := txtCadPro_AuxForn1.Text;
    Open;

    if not(IsEmpty) then
    begin
      cboCadPro_Forn1.Text := QueryCadProForn.FieldByName('FORFAN').AsString;
    end;
  end;

Mas tenho mais de um combo para fazer isso...e cada um tem vinculado uma DBEdit diferente, com valores diferentes..

Dessa forma, o parâmetro não pode ser o mesmo para prencher todos os combos...

Como devo fazer???

Devo limpar a query e fazer um SELECT por vez para cada combo??

Ou devo usar 4 TQuery diferentes??

Ou existe outra maneira??

Muito Obrigado.

Gabriel Cabral

Editado por Gabriel Cabral
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Mas tenho mais de um combo para fazer isso...e cada um tem vinculado uma DBEdit diferente, com valores diferentes..

Dessa forma, o parâmetro não pode ser o mesmo para prencher todos os combos...

Como devo fazer???

Devo limpar a query e fazer um SELECT por vez para cada combo??

Ou devo usar 4 TQuery diferentes??

qualquer uma das maneiras é possivel ... veja o que fica mais pratico

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

para poupar serivço pode fazer asim:

procedure Atualizar(Sender:TObject);

var VarCod : string;

begin

if Sender=btnProximo1 then

VarCod:=DBEdit1.text;

if Sender=btnProximo2 then

VarCod:=DBEdit2.text;

if Sender=btnProximo3 then

VarCod:=DBEdit3.text;

with QueryCadProForn do

begin

Close;

SQL.Clear;

SQL.Add('SELECT FORFAN FROM FINAFOR.dbf');

SQL.Add('WHERE FORCOD = :pCOD');

ParambyName('pCOD').AsString := VarCod;

Open;

if not(IsEmpty) then

begin

cboCadPro_Forn1.Text := QueryCadProForn.FieldByName('FORFAN').AsString;

end;

end;

em cada botão de proximo ou voltar dos DBEdits com o codigo você bota o evento

Atualizar(NomeDoBotão);

asim quando você clicar no botão ele vai pegar o codigo do fornecedor no DBEdit e jogar na query

Editado por Frega
Link para o comentário
Compartilhar em outros sites

  • 0
Tenho um combobox simples que está carregado com o Nome de cada Fornecedor

e uma DBEdit que armazena o Código do Fornecedor...

Ao "navegar" pelos registros, com botões Primeiro, Próximo, etc.. o ComboBox simples precisa receber o nome do fornecedor de acordo com o código que está no DBEdit [vinculado com o banco]...

:

:

Ou existe outra maneira??

Gabriel Cabral, já que você usa componentes data-aware (os TDB...), há algum motivo especial para você não utilizar um TLookupComboBox no lugar do seu ComboBox? Ele já faria todo o "serviço sujo" para você.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...