Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A caixa de combinação em cascata do formulário de acesso não mostra nada no menu suspenso


Antes de tudo, vamos nos certificar de que entendemos o conceito por trás das "caixas de combinação em cascata". A lógica funciona de tal forma que após você fazer uma seleção do Combo1, as opções disponíveis no Combo2 serão alteradas para que sejam itens relacionados apenas ao Combo1. Da mesma forma, após selecionarmos um item do Combo2, os itens do Combo3 serão apenas itens relacionados ao que o usuário selecionou no Combo2.

Então, antes de tudo, todas as caixas de combinação além de Combo1 devem estar vazias, ou devem estar relacionadas ao valor padrão de Combo1. Você poderia fazê-lo de qualquer maneira.

Em seguida, no evento AfterUpdate do Combo1, você deve ter algo assim:
Me.cboCombo2.RowSource = "SELECT MyFieldNames " & _
                           "FROM tblMyTable " & _
                           "WHERE SomeID = " & Nz(Me.cboCombo1) & _  
                           "ORDER BY SomeValue"
Me.cboCombo2.Requery

Obviamente, MyFieldNames, tblMyTable e todos esses outros valores dependerão do que você está realmente procurando, sua tabela de origem/nome da consulta e nomes de campo, etc ...

OK, agora o Combo2 deve ser preenchido com dados relevantes apenas para o que você selecionou no Combo1, pois estamos usando o Combo1 como filtro no SQL acima.

Se estiver tudo bem, faça mais ou menos exatamente a mesma coisa para Combo3. Você pode precisar filtrar os valores de ambos os combos ou pode usar apenas esse valor no Combo2, dependendo do seu conjunto de dados.

Ensaboe, enxágue, repita. Acho que você precisará fazer isso 50 vezes se tiver 50 combos, mas é assim que é feito.

Para referência adicional, consulte este artigo:http://www.fmsinc .com/microsoftaccess/forms/combo-boxes/cascading.html