Dúvida referente à utilização do ComboBox Banco de dados
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!
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
Curtidas 0
Respostas
Sgubert
27/04/2004
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
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
Sgubert
27/04/2004
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
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
Nildo
27/04/2004
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!
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
Sgubert
27/04/2004
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
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
Flaviosan
27/04/2004
nildo tenta assim para colocar os itens da tabela no combobox:
Espero ter ajudado.
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
Nildo
27/04/2004
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.
[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
Sgubert
27/04/2004
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
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
Nildo
27/04/2004
Obrigado! Desejo o mesmo!
GOSTEI 0
Pabhen
27/04/2004
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.
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