Fórum Dúvida referente à utilização do ComboBox Banco de dados #228141
27/04/2004
0
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
Curtir tópico
+ 0Posts
27/04/2004
Sgubert
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
Gostei + 0
27/04/2004
Sgubert
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
Gostei + 0
27/04/2004
Nildo
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!
Gostei + 0
27/04/2004
Sgubert
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
Gostei + 0
27/04/2004
Flaviosan
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.
Gostei + 0
27/04/2004
Nildo
[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.
Gostei + 0
27/04/2004
Sgubert
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
Gostei + 0
27/04/2004
Nildo
Gostei + 0
27/04/2004
Pabhen
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)