Jump to content
clovisystem

Consulta personalizada na ComboBox

Recommended Posts

clovisystem

Pessoal, criei um form em Delphi e quando tento buscar os dados do banco de dados pra inserir numa ComboBox (combobox3)não aparece os dados... Sendo que esses dados obedecem uma consulta onde escolho o produto e na combo(combobox2) deve aparecer o valor dele no banco de dados. Alguém ajuda???

O código do erro  está em destaque

Aí vai o código do Button:

procedure TForm4.Button5Click(Sender: TObject);
begin
   DBEdit1.Visible:=true;
   ComboBox3.Visible:=true;
   Query2.close;
   Query2.Open;
   if Query2.IsEmpty then
    begin
      ShowMessage('Nenhum valor encontrado');
      exit;
    end
    else
      begin
      Query2.SQL.Add('SELECT DISTINCT Valor FROM Produtos WHERE MarcaProduto = ' + ComboBox2.Text );
      ComboBox3.Items.Add(Query1.FieldByName('Valor').AsString);
      Query2.Next;
   end
end;

 

Edited by nunopicado
Syntax Highlight

Share this post


Link to post
Share on other sites
clovisystem

Existe uma outra forma de ao invés de exibir o valor de um campo na combobox fazer uma consulta personalizada com este trecho de código:

ComboBox3.Items.Add(Query1.FieldByName('Valor').AsString);

Queria informar que o campo valor é de tal produto que informei no Form. Alguém ajuda?

 

Ex.:

'SELECT DISTINCT Valor FROM Produtos WHERE MarcaProduto = ' + ComboBox2.Text +''

 

Edited by nunopicado
Syntax Highlight

Share this post


Link to post
Share on other sites
Rafael Adão

Podes detalhar melhor colocando mais trechos de código? Não entendi muito bem qual o seu problema

Share this post


Link to post
Share on other sites
clovisystem
2 horas atrás, Rafael Adão disse:

Podes detalhar melhor colocando mais trechos de código? Não entendi muito bem qual o seu problema

Quero exibir esta consulta dentro de um combobox:

'SELECT DISTINCT Valor FROM Produtos WHERE MarcaProduto = ' + ComboBox2.Text +''

onde  o valor do ComboBox2.Text corresponde ao field Marcaproduto e exiba na combobox.

Edited by nunopicado
Syntax Highlight

Share this post


Link to post
Share on other sites
clovisystem
2 horas atrás, clovisystem disse:

Quero exibir esta consulta dentro de um combobox: 'SELECT DISTINCT Valor FROM Produtos WHERE MarcaProduto = ' + ComboBox2.Text +'' onde  o valor do ComboBox2.Text corresponde ao field Marcaproduto e exiba na combobox.

procedure TForm4.Button5Click(Sender: TObject);
begin
   ComboBox3.Visible:=true;
   showMessage('o valor é '+ComboBox2.Text);
   Query2.close;
   Query2.Open;
   if Query2.IsEmpty then
    begin
      ShowMessage('Nenhum valor encontrado');
      exit;
    end
    else
      begin
      Edit3.Text:=Query2.FieldByName('Valor').text;
      Query2.SQL.Add('SELECT DISTINCT Valor FROM Produtos WHERE MarcaProduto = ' + ComboBox2.Text );
      ComboBox3.Items.Add(Quero exibir aqui o valor da tabela); 
      end
end;

 

Edited by nunopicado
Syntax Highlight

Share this post


Link to post
Share on other sites
nunopicado

Começo por pedir que, quando meteres snippets de código, usa o editor de código do forum, que podes encontrar na barra de ferramentas do editor da mensagem com o símbolo <>. Além de ficar o código realçado (usa o tipo C/C#/Java, que funciona igualmente), permite-te indentar mais correctamente o código, para que seja mais perceptível a quem te tenta ajudar.

Quanto à tua questão:

Após executares a tua query tens de executar o Query2.Open, caso contrário, nada feito.
Além disso, antes de adicionares a query à Query2, deves limpar o que lá vem de trás, executando Query2.Clear (se não me falha a memória).

Podes em alternativa adicionar a query da forma seguinte, que te limpa automaticamente a query anterior:

begin
  Edit3.Text:=Query2.FieldByName('Valor').text;
  Query2.SQL.Text := 'SELECT DISTINCT Valor FROM Produtos WHERE MarcaProduto = ' + ComboBox2.Text;
  Query2.Open;
  ComboBox3.Items.Add(Quero exibir aqui o valor da tabela); 
end

 


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.