Caixas de combinação interativas

Neste exemplo pretendo demonstrar como fazer caixas de combinação interativas, ou seja, ao escolher um valor numa caixa de combinação na segunda apareça apenas os valores relacionados com a primeira escolha. Ou seja, temos uma tabela Carros em que temos dois campos: Marca e Modelo, e ao escolher a marca na 1ªcaixa vamos mostrar apenas os modelos dessa marca na 2ª caixa.

1- Criar a tabela carros com dois campos: Marca e Modelo ambos do tipo texto.

2- Criar o formulário carros, independente, colocar uma caixa de combinação e na origem de dados escolher o campo marca e agrupar os resultados: SELECT Carros.Marca FROM Carros GROUP BY Carros.Marca ORDER BY Carros.Marca;

3- Inserir uma nova caixa de combinação e nas propriedades inserir a seguinte instrução na origem da linha: SELECT Carros.Modelo FROM Carros WHERE (((Carros.Marca) Like forms!carros!marca));
Básicamente escolhemos os dois campos da tabela e mostramos apenas os modelos onde a marca é igual à que escolhemos na 1ª caixa de combinação.

4- Depois vamos dar a instrução para actualizar a 2ª caixa assim que actualizamos o valor da 1ª. Para isso vamos às propriedades da 1ª caixa e na propriedade depois de actualizar colocar o seguinte código: me!modelo.requery.
Para que ao mudar a marca não fique o modelo que não corresponde à marca anterior selecionada colocamos também o seguinte código para o campo modelo ficar sem valor: Me!modelo = “”

5- Nas propriedades das duas caixas de combinação, a propriedade “Limitado à lista” escolhemos como “sim” para só aceitar valores que já estejam inseridos na tabela.

6- Testar

Download: Caixas de combinação