Jump to content
Fórum Script Brasil
  • 0

SELECT com dois parâmetros para o mesmo campo


Gabriel Cabral
 Share

Question

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

Edited by Gabriel Cabral
Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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

Edited by Frega
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.1k
×
×
  • Create New...