RELACIONAR COMBOBOX
Olá pessoal, estou com uma dúvida que a muito me persegue. Como faço para associar (relacionar) várias combobox, por exemplo:
--> Lista da ComboBox1 - Fruta / Verdura
--> Lista da ComboBox2 - Maça / Banana / Alface / Cenoura
Minha dúvida é: Quando selecionar a opção fruta na ComboBox1 como faço para aparecer na ComboBox2 somente as frutas e vice-versa para a opção verdura?
grato.
--> Lista da ComboBox1 - Fruta / Verdura
--> Lista da ComboBox2 - Maça / Banana / Alface / Cenoura
Minha dúvida é: Quando selecionar a opção fruta na ComboBox1 como faço para aparecer na ComboBox2 somente as frutas e vice-versa para a opção verdura?
grato.
Quando vc selecionar a ComboBox1, vc faz disparar a rotina que preenche a ComboBox2.
Será que vc poderia ser mais claro. Acho que ja tentei algo parecido.
primeiro colega de onde vc bucará estes dados.
de um arquivo texto ou de um banco de dados, de onde?
de um arquivo texto ou de um banco de dados, de onde?
de um arquivo de texto
>
O Ideal seria vc trabalhar com ID de ambos ComboBox, mas como vc não especificou suas tabelas, irei mostra um exemplo e vc adapta.
Ao selecionar ComboBox1 vc irá fazer um filtro na tabela produtos só do tipo selecionado e aà então vc carregaria a ComboBox2 com o resultado da RecordSet
SELECT IdProduto, ProduNome,Tipo FROM Produtos WHERE Tipo = ComboBox1.text
ComboBox2.Clear
With rs
Do Until .EOF
[ô]inclui os itens correspondentes
ComboBox2.AddItem rs(ProduNome)
ComboBox2.ItemData(ComboBox2.NewIndex) = rs(IdProduto)
.MoveNext
Loop
[ô]fecha o recordset
.Close
End With
*-*-*-*
Agora se for com arquivo Texto, pegue o exemplo do link abaixo para apoio ao seu código.
http://www.macoratti.net/dica39.htm
<
O Ideal seria vc trabalhar com ID de ambos ComboBox, mas como vc não especificou suas tabelas, irei mostra um exemplo e vc adapta.
Ao selecionar ComboBox1 vc irá fazer um filtro na tabela produtos só do tipo selecionado e aà então vc carregaria a ComboBox2 com o resultado da RecordSet
SELECT IdProduto, ProduNome,Tipo FROM Produtos WHERE Tipo = ComboBox1.text
ComboBox2.Clear
With rs
Do Until .EOF
[ô]inclui os itens correspondentes
ComboBox2.AddItem rs(ProduNome)
ComboBox2.ItemData(ComboBox2.NewIndex) = rs(IdProduto)
.MoveNext
Loop
[ô]fecha o recordset
.Close
End With
*-*-*-*
Agora se for com arquivo Texto, pegue o exemplo do link abaixo para apoio ao seu código.
http://www.macoratti.net/dica39.htm
<
Muito Obrigado pela ajuda!
Achei um meio mais fácil para mim.
_____________________________________________________
Private Sub UserForm_Initialize()
ComboBox1.AddItem [Ô]Fruta[Ô]
ComboBox1.AddItem [Ô]Verdura[Ô]
ComboBox2.Visible = False
ComboBox3.Visible = False
End Sub
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = 0 Then
ComboBox3.Visible = False
With ComboBox2
.Clear
.Visible = True
.Left = 30
.Top = 80
.AddItem [Ô]Maça[Ô]
.AddItem [Ô]Banana[Ô]
End With
ElseIf ComboBox1.ListIndex = 1 Then
ComboBox2.Visible = False
With ComboBox3
.Clear
.Visible = True
.Left = 30
.Top = 80
.AddItem [Ô]Alface[Ô]
.AddItem [Ô]Tomate[Ô]
End With
End If
_____________________________________________________
Achei um meio mais fácil para mim.
_____________________________________________________
Private Sub UserForm_Initialize()
ComboBox1.AddItem [Ô]Fruta[Ô]
ComboBox1.AddItem [Ô]Verdura[Ô]
ComboBox2.Visible = False
ComboBox3.Visible = False
End Sub
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = 0 Then
ComboBox3.Visible = False
With ComboBox2
.Clear
.Visible = True
.Left = 30
.Top = 80
.AddItem [Ô]Maça[Ô]
.AddItem [Ô]Banana[Ô]
End With
ElseIf ComboBox1.ListIndex = 1 Then
ComboBox2.Visible = False
With ComboBox3
.Clear
.Visible = True
.Left = 30
.Top = 80
.AddItem [Ô]Alface[Ô]
.AddItem [Ô]Tomate[Ô]
End With
End If
_____________________________________________________
Tópico encerrado , respostas não são mais permitidas