Listar Campos de uma Tabela num ComboBox

Delphi

13/06/2003

Quero colocar todos os Grupos gravados num banco de dados num Combo Box, pra gravar em outro Banco.. estou usando um DbComboBox e códigos Sql, só q to com um problema.. aparece só o primeiro nome, e a ´setinha´ pra abrir o combo e ver os outros nomes ta travado, naum abre... isso funciona numa grid.. o código sql q eu uso é esse..

procedure TFrmCadSubGrupo.FormActivate(Sender: TObject);
begin
  With DmBancoDados.SqlGrupos do
    begin
      close;
      sql.Clear;
      Sql.Add(´Select PkGrupo From TbGrupos Order By PkGrupo Asc´);
      try
        showmessage(sql.Text);
        open;
      except
        showmessage(´Erro´);
    end;
  end;
  
end;


Como eu falei, na grid sao listados todos, mas no combo aparece só o primeiro e naum da pra abrir ele.. o q eu faço??



Allan Elias Ramos :wink:


Aersoftware

Aersoftware

Curtidas 0

Respostas

Aersoftware

Aersoftware

13/06/2003

alguém? :cry:



Allan Elias Ramos :D


GOSTEI 0
Sandra

Sandra

13/06/2003

Quero colocar todos os Grupos gravados num banco de dados num Combo Box, pra gravar em outro Banco..


Allan,

Só aparece o 1º registro porque você pediu só pediu para fazer o select e não acrescentou os itens no DBComboBox.

procedure TFrmCadSubGrupo.FormActivate(Sender: TObject); 
begin 
  With DmBancoDados.SqlGrupos do 
    begin 
      close; 
      sql.Clear; 
      Sql.Add(´Select PkGrupo From TbGrupos Order By PkGrupo Asc´); 
      first;
      While not SqlGrupos.eof then
         begin
           nomedoseudbcombobox.items.add;
           next;
         end;
    end; 
  end; 
  
end;


Outra alternativa seria usar o DBLookupComboBox e configure suas propriedades:

- Datasource: tabela onde sera armazenada o campo;
- Datafield: nome do campo da tabela anterior onde será armazenado;
- Listsource: tabela que contem os dados a serem exibidos;
- Listfield: qual campo será exibido;
- Keyfield: campo a ser armazenado no Datafield.

Mais um detalhe, sua tabela deverá ter um índice.

Acho que é assim, deve funcionar. Senão, avise.

:)


GOSTEI 0
POSTAR