
Caixa de Combinação carregada com SQL usando (Db2 - banco de dados IBM)
O Banco de Dados da IBM (Db2) já consta no Excel, desta forma é possível criar consultas em SQL no Excel. Os dados são processados na memória Ram,
o que agiliza os processos. Neste exemplo vamos carregar 2 listas de validações com os dados de outra planilha, usando a SQL para filtrar e agrupar os dados,
a primeira linha da planilha será usada para gerar o campo no registro na SQL.




Estado
São Paulo
São Paulo
Bahia
Bahia
Bahia
Bahia
São Paulo
Minas Gerais
Minas Gerais
Minas Gerais
Minas Gerais
Minas Gerais
São Paulo
São Paulo
São Paulo
São Paulo
Bahia
Bahia
Minas Gerais
Cidade
Mairiporã
Mauá
Feira de Santana
Serrinha
Itaberaba
Brumado
Osasco
Varginha
Belo Horizonte
Pirapóra
Sete Lagoas
Três Marias
Sorocaba
Santos
Cotia
Campinas
Vitória da Conquista
Caculé
Ipatinga

Baixar Exemplo
Cole o código abaixo no módulo que você criou.
'-----------------------------------------------------------------------------
' Incluir referência: 'Microsoft DAO 3.6 Object Library'
'-----------------------------------------------------------------------------
Sub Carregar_Drop_down1()
Dim Db2 As Database
Dim RSt2 As Recordset
Worksheets("Principal").Shapes("Drop_down1").ControlFormat.RemoveAllItems 'Limpar combo
Set Db2 = OpenDatabase(ThisWorkbook.Path & "\" & ThisWorkbook.Name, False, False, "Excel 8.0")
Set RSt2 = Db2.OpenRecordset("SELECT Estado FROM [Dados$] GROUP BY Estado;")
Call Carregar_Drop_down2(RSt2("Estado"))
While Not RSt2.EOF
Worksheets("Principal").Shapes("Drop_down1").ControlFormat.AddItem Format(RSt2("Estado"), "dd/mm/yy")
RSt2.MoveNext
Wend
Worksheets("Principal").Shapes("Drop_down1").ControlFormat.ListIndex = 1 'Inserir primeira linha na janela da combo
MsgBox "Base carregada com sucesso!!", vbInformation, "Informação"
End Sub
Sub Drop_down_1() 'pegar item selecionado
With Worksheets("Principal").Shapes("Drop_down1").ControlFormat
Call Carregar_Drop_down2(.List(.Value))
End With
End Sub
Sub Carregar_Drop_down2(Drop_down1) 'carregar comb2 com item selecionado na combo1
Worksheets("Principal").Shapes("Drop_down2").ControlFormat.RemoveAllItems 'Limpar combo
'SQL-DB2
Set Db2 = OpenDatabase(ThisWorkbook.Path & "\" & ThisWorkbook.Name, False, False, "Excel 8.0")
Set RSt2 = Db2.OpenRecordset("SELECT Estado, Cidade FROM [Dados$] WHERE Estado like (" & "'" & Drop_down1 & "'" & ") GROUP BY Estado, Cidade;")
While Not RSt2.EOF
Worksheets("Principal").Shapes("Drop_down2").ControlFormat.AddItem RSt2("Cidade")
RSt2.MoveNext
Wend
Worksheets("Principal").Shapes("Drop_down2").ControlFormat.ListIndex = 1 'Inserir primeira linha na janela da combo
RSt2.Close
Db2.Close
End Sub

