É comum, em formulário, uma ComboBox servir de filtro para outra. Essa prática é muito útil principalmente quando a segunda Combo tem origem em uma tabela com muitos registros, como por exemplo a lista de cidades brasileiras que contem mais de 5000 nomes.
Neste caso, ao escolher o Estado (UF), na combo_UF, a lista da combo_Cidades conterá apenas as cidades referentes ao UF escolhido.
Veja um exemplo de como isso funciona. Neste caso vamos trabalhar com Espécies e Raças de bichos.
Tab_Espécie:
_01idEspécie;
_02NomeDaEspécie.
Tab_Raças:
_01idRaça;
_02NomeDaRaça;
_03idEspécie.
No evento Após Atualizar da Combo_Espécie, coloca-se o seguinte código:
Option Compare Database
Option Explicit
Dim strSQL As String
Dim intOpcao As Integer
Private Sub Combo_Espécie_AfterUpdate()
intOpcao = Me.Combo_Espécie
strSQL = "SELECT _01idRaça, _02NomeRaça, 03idEspécie FROM Tab_Raças" _
& " WHERE _03idEspécie = " & intOpcao & ""
Me.Combo_Raça.RowSource = strSQL
End Sub
Observação:
Os campos _01idEspécie e _01idRaça são Numérico/InteiroLongo e chaves primárias nas respectivas tabelas.
Vale lembrar que o tipo do dado (numérico, texto, ...) interfere na sintaxe do parâmetro que é passado na cláusula WHERE. Nesse exemplo (" & intOpcao & "" ) foi usado ASPAS pois o DADO é numérico. |