SELECTS VB6

SYSZEN 08/06/2012 10:05:21
#403775
boas novamente pessoal , bem o meu problema e o seguinte:
tenho 2 combobox , e ao carregar na combo ira fazer um select com o tipo de pesquisa qe carregou .
gostava de saber se da para adicionar um select ja a um select existente
ex :
combo1 - escolho o tipo [Ô]águas[Ô] - vai fazer um select em qe so vai aparecer produtos do tipo [Ô]aguas[Ô]
combo2 - escolho por exemplo que tenham quantidade menor que 30 , ele faz novo select e esquece o da combo1

queria qe ele continuase com o antigo select , so tirava caso o utilizador o retira-se mesmo

ajudas?
MARCELO.TREZE 08/06/2012 10:48:09
#403779
explique-se melhor ta meio confuso ainda
SYSZEN 08/06/2012 11:19:47
#403781
imagine 2 combobox
combo1 tem - [Ô]águas[Ô] , [Ô]sumos , [Ô]todos[Ô]
combo2 tem - [Ô]quantidade maior que 20[Ô], [Ô]quantidade menor qe 20[Ô] , [Ô]todas as quantidades[Ô]
(isto para filtrar a base de dados)

imagina

private sub combo1_click()
if combo1.text = [Ô]águas[Ô] then
e aqui fica i select para filtrar os produtos referentes a águas
end if
end sub

agora isto iria filtrar agora imagina qe qero meter um segundo filtro vindo da combo2


private sub combo2_click()
if combo2.text = [Ô]quantidade maior que 20[Ô] then
e aqui fica i select para filtrar produtos com uma quantidade maior que 20 , e sendo so águas por causa do outro select , ter 2 selects activos tas a perceber?
end if
end sub
CASTELO 08/06/2012 11:31:52
#403782
SYSZEN utilizo 2 combo para refinar algumas pesquinas (sistema escolar por série e turma).

preencho a combo1 com os dados no evento ONLOAD do form

se o select tem resultado preencho da seguinte forma
[ô] você escolhe a forma de dar o loop, eu utilizo while NOT .eof e no final o rs.movenext e wend
COMBO1.AddItem rs!DESCRICAO
COMBO1.ItemData(COMBO1.NewIndex) = rs!ID


Na primeira no evento ou CLICK da combo1, chamo o select que irá preencher a segunda combo.

se o select retornar resultados NOT EOF ele preenche a combo2
Eu utilizo como filtro o [Ô]id[Ô] de cada campo do banco de dados assim:
COMBO2.AddItem rs!DESCRICAO
COMBO2.ItemData(COMBO2.NewIndex) = rs!ID

ao nesta combo2 ele chama o select final

OBS: para você relacionar o código de cada combo use
para combo1
ID1 = combo1.ItemData(combo1.ListIndex)

para combo2
ID2 = combo2.ItemData(combo2.ListIndex)

Com isso você consegue planejar seu código, são os macetes, não o código pronto.
XXXANGELSXXX 11/06/2012 15:56:09
#403911
preenche o primeiro combo no lload do form...
no segundo combo utilize o evento click do mesmo para preencher, refiando a busca..
FEDERHEN 11/06/2012 16:19:45
#403918
[ô]eu uso muito este tipo de consulta parametrizada...

[ô]segue uma lógica abaixo


private sub combo1_click()
GeraConsulta
end sub

private sub combo2_click()
GeraConsulta
end sub

private sub GeraConsulta()
dim sql as string
sql = [Ô]Select * from tabela [Ô]
select case combo1.text
case [Ô]águas[Ô]
sql = sql & [Ô]where campo1 = [ô]águas[ô] [Ô]
case [Ô]sumos[Ô]
sql = sql & [Ô]where campo1 = [ô]sumos[ô] [Ô]
case else
sql = sql & [Ô]where campo1 <> [ô][ô] [Ô]
end select
select case combo2.text
case [Ô]quantidade maior que 20[Ô]
sql = sql & campo2 > 20
case [Ô]quantidade menor qe 20[Ô]
sql = sql & campo2 <= 20 [ô]menor e igual
end select
end sub

[ô]agora é só montar o recordset do comando montado na variavel sql

Tópico encerrado , respostas não são mais permitidas