MinhasDicas.com > Informática > Dicas & Macetes - Delphi
DBLookupComboBox
  • Limpando o conteúdo selecionado em um DBLookupComboBox
Objetivo: Limpar o conteúdo anteriormente selecionado de um DBLookupComboBox.

A chave está entre as propriedades KeyValue e KeyField.

Preencha normalmente as propriedades ListSource com o nome do DataSource que está apontando para a Query com a consulta SQL, depois preencha o ListField com o nome do campo que será listado e finalmente (o mais interessante para o nosso exemplo) preencha KeyField com nome do campo chave da tabela. Esse campo também pode ser o mesmo do ListField.

Atenção Agora:

Se o campo em KeyField for numérico, para limpar use:

DBLookupComboBox1.KeyValue := -1;

Senão se o campo for um String, para limpar use:

DBLookupComboBox1.KeyValue := '';
  • Selecionando um item já listado em um DBLookupComboBox
Objetivo: Através de um click em um DBLookupComboBox selecionar os dados em outro(s) já listado(s).

A chave (novamente) está entre as propriedades KeyValue e KeyField.

Preencha o ListSource com o nome do DataSource que está apontando para Query com a consulta SQL, depois preencha o ListField com o nome do campo que será listado e finalmente preencha KeyField com nome do campo chave da tabela.

Atenção: Se o campo em KeyField for numérico a passagem do parâmetro também deve ser numérico.

Exemplo Prático :
Temos um DBLookupComboBox com nome DBLcbo_cliente preenchido pela Query qry_cliente, com as propriedades ListField := nome_cliente e KeyField := codigo_cliente.
Temos também um outro DBLookupComboBox com nome DBLcbo_pedido preenchido pela Query qry_pedido, com as propriedades ListField := cod_pedido e KeyField := cod_pedido, sendo que entre a lista de variáves da Query temos o campo cod_cliente.
O objetivo aqui é selecionar um número de pedido num DBLookupComboBox e automaticamente selecionar o respectivo cliente em outro.

No evento Click do DBLcbo_pedido coloque a seguinte linha:

DBLcbo_cliente.KeyValue := qry_pedidocod_cliente.Value;