Fórum Listar Campos de uma Tabela num ComboBox #165499

13/06/2003

0

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

Responder

Posts

14/06/2003

Aersoftware

alguém? :cry:



Allan Elias Ramos :D


Responder

Gostei + 0

19/06/2003

Sandra

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.

:)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar