Fórum Dúvida referente à utilização do ComboBox Banco de dados #228141

27/04/2004

0

Olá amigos!
Estou com uma dúvida referente à mostrar os dados da tabela em um ComboBox.
Eu queria mostrar todos os dados de uma tabela em um ComboBox (sem ter que adicionar item por item manualmente), para isso eu usei o DBLookUpComboBox. Só que quando eu mudo de registro da tabela, o valor desse DBLookUpComboBox não altera. Como eu devo proceder?

Obrigado!


Nildo

Nildo

Responder

Posts

27/04/2004

Sgubert

Olá Nildo, blz?/

Sou iniciante em delphi, mas já utilizaei, se não me engano, um desses dois componente que citou. dai só ecolhi a tabela, e o campo que queria que listasse e dava certo......Agora, se quando tu seleciona no combo ele ja aponta direto pra tabela eu não se te dizer...

[]´s
Samuel Gubert


Responder

Gostei + 0

27/04/2004

Sgubert

Opa eskeci de uma observação....

Acho que em algum evento do combo vc terá que dar um locate ou executar um query para posicionar no registrio da tabela correspondente ao item selecionado....
Espero que minhas observações possam te ajudar...

[]´s


Responder

Gostei + 0

27/04/2004

Nildo

Olá! Obrigado por ajudar, mas...
Se eu utilizar o DBComboBox normal, quando eu mando abrir a lista de itens dele, não mostra todos os registros daquele campo. Mas com o DBLookUpComboBox, Mostra, mas quando eu altero o registro da tabela o valor deste Combo não é alterado.

Você ou alguem saberia me dizer como alterar este valor?
Obrigado!


Responder

Gostei + 0

27/04/2004

Sgubert

Bah infelizmente não tenho como te ajudar.....
Esse DBLookupComboBox não tem uma propriedade do tipo atualizar, refresh, update ou algo parecido??? Talvez resolvesse não é mesmo???
Ah, Nildo, se desse vc poderia me explicar como funciona esse componente e pra que ele serve??, Acho que utilizo ele mas da forma errada e não apra o propósito correto....
Desulpa abusar da tua boa vontade...hehehe
E espero que consiga resolver teu problema...

[]´s
Samuel Gubert


Responder

Gostei + 0

27/04/2004

Flaviosan

nildo tenta assim para colocar os itens da tabela no combobox:
procedure TForm1.FormCreate(Sender: TObject);
var
   index : Integer;
begin
   ComboBox1.Items.Clear;
   query.Open;
   for index := 0 to (query.RecordCount - 1) do
   begin
      ComboBox1.Items.Add(queryNOMECLI.Value);
      query.Next;
   end;
   query.Close;
end;

Espero ter ajudado.


Responder

Gostei + 0

27/04/2004

Nildo

FlavioSan, obrigado, mas este procedimento eu já havia feito e como a tabela contém muitos registros, acaba se tornando um processo muito lento. Já no caso da utilização do DBLookUpComboBox fica muito mais rápido. Mas acho que vou ter que fazer desta forma mesmo, já que não achei uma solução pra esse problema! Então muito obrigado a todos!

[b:808a0fff70]sgubert[/b:808a0fff70], TDBLookupComboBox representa um ComboBox que identifica alguns valores de campos de um DataSet com os valores correspondentes de um outro DataSet, como se fosse fazer a integração visual entre dois DataSets.


Responder

Gostei + 0

27/04/2004

Sgubert

Muito obrigado pela explicação Nildo...

Infelizmente vc acabou me ajudando mais que eu a vc....
Quem sabe na próxima eu possa lhe ajudar não é mesmo...
Muito obrigado e boa sorte ai...

Grande Abraço
Samuel


Responder

Gostei + 0

27/04/2004

Nildo

Obrigado! Desejo o mesmo!


Responder

Gostei + 0

27/04/2004

Pabhen

o lookupcombo serve pra fazer tipo um mestre detalhe. As principais propriedades são:

ListSource: Vc liga ao datasource da tabela pai(exemplo- EMPRESA)

ListField: Vc liga ao campo q vc keira q apareça na lista do Lookup(exemplo- NOMEDAEMPRESA)

KeyField: Campo Chave, é o campo q faz o relacionamento com a tabela filha(exemplo- CODIGODAEMPRESA)

DataSource: Vc liga ao datasource da tabela filha(exemplo- FUNCIONARIO)

DataField: Campo Chave, é o campo q faz o relacionamento com a tabela pai(exemplo- CODIGODAEMPRESA); O valor desse campo é vai ser gravado na sua tabela filha.

ps1: O campo CODIGODAEMPRESA tem q estar nas duas tabelas (EMPRESA e FUNCIONARIO) pra fazer o relacionamento mestre-detalhe.

ps2: Se vc já faz o relacionameto das tabelas usando o campo mastersource das mesmas, naum precisa preencher os campos datasource e datafield do Lookup. O mesmo vale para as querys, por exemplo, vc pode fazer o relacionamento entre querys assim:
SELECT * FROM FUNCIONARIO WHERE CODEMPRESA=:CODEMPRESA
para isso funcionar o campo datasource da tabela filha tem q apontar para o datasource da tabelapai.

ps2: Qnd vc mostrar o form (OnShow) vc tem q colocar o seguinte código:
dblookupcombobox.KeyValue:=queryfilha.fieldbyname(´NOMEDOCAMPO´).value;

ps3: naum sei porque qnd se abre o form o valor naum aparece (mas ele tah lá), por isso a gente tem q forçar a aparição do mesmo.

Espero ter ajudado.


Responder

Gostei + 0

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

Aceitar