Problemas com DBCombobox
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;
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
Curtidas 0
Respostas
Osocram
10/02/2004
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)
se vc usa o DBComboBox vc naum precisa jogar os valores nele.. eh so ligar ele c a query (DataSource)
GOSTEI 0
Maicongabriel
10/02/2004
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!
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!
GOSTEI 0
Elias Jr
10/02/2004
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).
GOSTEI 0
Fabio.hc
10/02/2004
Tente assim:
Que vai para o primeiro registro.
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.
GOSTEI 0
Fabio.hc
10/02/2004
Tente assim:
Coloque um DBLookupComboBox.
- Listsource = query2
- listfield = nome
- keyfield nome
só estas propriedades.
Coloque um DBLookupComboBox.
- Listsource = query2
- listfield = nome
- keyfield nome
só estas propriedades.
GOSTEI 0
Fabio.hc
10/02/2004
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.
query2.edit ou query2.insert assim vc seleciona no dbcombobox.
GOSTEI 0
Osocram
10/02/2004
Ou usa um ComboBox jah q vc passa os dados d uma query p ele no braco... naum precisa ser o DBCombobox
GOSTEI 0