Fórum Problemas com DBCombobox #213007

10/02/2004

0

Saudações,
gente o meu problema é o seguite: tenho um dbcombobox num form de pesquisa com vários radiobuttons (nome_prod, fornecedor...etc). No onclick do radio eu habilito o dbcombo com os campos que a pessoa selecionou para pesquisar (tipo, por nome de produto aí ele carrega a combo com todos os nomes da tabela). O problema que os nomes saem repetidos e quando eu ponho o distinct através de uma query ele sempre seleciona o último campo. Como eu elimino esse problema? Vai aí o código da pesquisa por nome:
with query2 do
begin
close;
sql.clear;
sql.add(´select distinct nome from compraesc order by nome´);
open;
first;
while not query2.eof do
begin
ednome.DataField := ´nome´;
ednome.items.Add(query2.fieldbyname(´nome´).asstring);
query2.next;
end;
end;


Elias Jr

Elias Jr

Responder

Posts

10/02/2004

Osocram

eu naum entendi o seu prob....

se vc usa o DBComboBox vc naum precisa jogar os valores nele.. eh so ligar ele c a query (DataSource)


Responder

Gostei + 0

10/02/2004

Maicongabriel

Complementando o que o [b:dfbf449a93]osocram[/b:dfbf449a93] disse ...
A sua DBComboBox esta ligada diretamente à tabela, por isso você não esta adicionando todas as opções(nomes) à DBComboBox e sim esta substituindo sempre o mesmo registro da tabela no qual ela esta posicionada!


Responder

Gostei + 0

10/02/2004

Elias Jr

eu naum entendi o seu prob.... se vc usa o DBComboBox vc naum precisa jogar os valores nele.. eh so ligar ele c a query (DataSource)


Saudações, a combobox mostra o resultado de várias pesquisas diferentes(nome do produto, fornecedor, solicitante, etc). Por isso eu pus o código no onclick de cada radiobutton modificando o sql da query...está tudo certo a única coisa que eu queria é que ele aceitasse as outras opções (mesmo mostrando todas as opções quando clicamos nele ele só seleciona o último dado da tabela).


Responder

Gostei + 0

10/02/2004

Fabio.hc

Tente assim:

while not query2.eof do 
   begin 
   ednome.DataField := ´nome´;
   ednome.items.Add(query2.fieldbyname(´nome´).asstring); 
   query2.next;  // 
end; 
query2.first;


Que vai para o primeiro registro.


Responder

Gostei + 0

10/02/2004

Fabio.hc

Tente assim:

Coloque um DBLookupComboBox.
- Listsource = query2
- listfield = nome
- keyfield nome

só estas propriedades.


Responder

Gostei + 0

10/02/2004

Fabio.hc

Usando o DBComboBox vc só seleciona se a query estiver em modo de edição ou alteração:

query2.edit ou query2.insert assim vc seleciona no dbcombobox.


Responder

Gostei + 0

10/02/2004

Osocram

Ou usa um ComboBox jah q vc passa os dados d uma query p ele no braco... naum precisa ser o DBCombobox


Responder

Gostei + 0

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

Aceitar