COMBOBOX
Quero o seguite:
Quando eu selecionar um item na combo1, a combo2 filtra os items para o criterio especificado na combo1?
evento click ou lost focus
mas o q vc tem carregado nos combos?
explique melhor
mas o q vc tem carregado nos combos?
explique melhor
Se estiver usando SQL poderia fazer mais ou menos assim:
Exemplo de como mostrar somente as cidades de um estado
Conclusão: Você limpa o combo e preenche somente de acordo com seus criterios...
Exemplo de como mostrar somente as cidades de um estado
Sub Filtrar(Estado as String)
rs.Open "Select * From Cidades Where Estado = '" & Estado & "'"
Combo2.Clear
While not rs.EOF
Combo2.AddItem rs!Cidade
rs.Movenext
Wend
End Sub
Combo1.Click()
Filtrar combo1.text
Conclusão: Você limpa o combo e preenche somente de acordo com seus criterios...
NA COMBO1 TENHO 1º GRAU; 2º GRAU
NA COMBO2 TENHO 1º SERIE, 2º SERIE;3º SERIE;4º SERIE;5º SERIE;6º SERIE;7º SERIE;8º SERIE;1º SERIE;2º SERIE;3º SERIE
QUANDO EU SELECIONAR NA COMBO1 O ITEM 1º GRAU, NA COMBO2 ELE SÓ“ VAO ME RETORNAR OS VALORES DA 1Âê à  8Âê SERIES
NA COMBO2 TENHO 1º SERIE, 2º SERIE;3º SERIE;4º SERIE;5º SERIE;6º SERIE;7º SERIE;8º SERIE;1º SERIE;2º SERIE;3º SERIE
QUANDO EU SELECIONAR NA COMBO1 O ITEM 1º GRAU, NA COMBO2 ELE SÓ“ VAO ME RETORNAR OS VALORES DA 1Âê à  8Âê SERIES
Sub Filtrar (Criterio as String)
Combo2.Clear
If Criterio = "1º Grau" then
Qtd = 8
Else
Qtd = 3
Else if
For i = 1 to 8
Combo2.AddItem i & "Âê Série"
Next
End Sub
Combo2.Clear
If Criterio = "1º Grau" then
Qtd = 8
Else
Qtd = 3
Else if
For i = 1 to 8
Combo2.AddItem i & "Âê Série"
Next
End Sub
No lost Focus da Combo 1, ou no Click da Combo 2 (depende do caso), vc coloca:
If Trim$(Combo1.Text) <> VbNullString then
dim i%
rs.Open "Select * From <SUA TABELA> Where <CAMPO> = '" & Combo1.Text & "'"
Combo2.Clear
for i = 1 to rs.Recordcount
Combo2.AddItem rs!Cidade
rs.Movenext
next
end if
OBS. VbNullString é o mesmo que string vazia "'
Usar o FOR dá melhor performance do que um Do While
Abs
If Trim$(Combo1.Text) <> VbNullString then
dim i%
rs.Open "Select * From <SUA TABELA> Where <CAMPO> = '" & Combo1.Text & "'"
Combo2.Clear
for i = 1 to rs.Recordcount
Combo2.AddItem rs!Cidade
rs.Movenext
next
end if
OBS. VbNullString é o mesmo que string vazia "'
Usar o FOR dá melhor performance do que um Do While
Abs
Corrigindo:
Eu tinha colocado um 8 no For e era Qtd
Você pode simplificar o If com o IIF
Qtd = IIF(Criterio = "1º Grau",8,1)
Sub Filtrar (Criterio as String)
Combo2.Clear
If Criterio = "1º Grau" then
Qtd = 8
Else
Qtd = 3
Else if
For i = 1 to Qtd
Combo2.AddItem i & "Âê Série"
Next
End SubEu tinha colocado um 8 no For e era Qtd
Você pode simplificar o If com o IIF
Qtd = IIF(Criterio = "1º Grau",8,1)
Muito obrigado pela ajuda !!!!!!
Vou tentar todas as dicas
Vou tentar todas as dicas
Tópico encerrado , respostas não são mais permitidas