Mysql
 sql >> Database >  >> RDS >> Mysql

La casella combinata a cascata del modulo di accesso non mostra nulla nel menu a discesa

Prima di tutto, assicuriamoci di comprendere il concetto alla base delle "caselle combinate a cascata". La logica viene eseguita in modo tale che dopo aver effettuato una selezione da Combo1, le opzioni disponibili in Combo2 cambieranno in modo che siano elementi correlati solo a Combo1. Allo stesso modo, dopo aver selezionato un elemento da Combo2, gli elementi in Combo3 saranno solo elementi relativi a ciò che l'utente ha selezionato in Combo2.

Quindi, prima di tutto, ogni casella combinata oltre a Combo1 dovrebbe essere vuota o dovrebbe essere correlata al valore predefinito di Combo1. Potresti farlo in entrambi i modi.

Successivamente, nell'evento AfterUpdate di Combo1, dovresti avere qualcosa del genere:

Me.cboCombo2.RowSource = "SELECT MyFieldNames " & _
                           "FROM tblMyTable " & _
                           "WHERE SomeID = " & Nz(Me.cboCombo1) & _  
                           "ORDER BY SomeValue"
Me.cboCombo2.Requery

Ovviamente, MyFieldNames, tblMyTable e tutti gli altri valori dipenderanno da ciò che stai effettivamente cercando, dalla tabella di origine/nome della query e dai nomi dei campi, ecc...

OK, quindi ora Combo2 dovrebbe riempirsi di dati che sono rilevanti solo per ciò che hai selezionato in Combo1, poiché stiamo usando Combo1 come filtro nell'SQL sopra.

Se sembra a posto, fai più o meno la stessa identica cosa per Combo3. Potrebbe essere necessario filtrare i valori di entrambe le combo, oppure potresti riuscire a farla franca usando semplicemente quel valore in Combo2, a seconda del tuo set di dati.

Schiuma, risciacqua, ripeti. Immagino che dovrai farlo 50 volte se hai 50 combo, ma è così che è fatto.

Per ulteriori riferimenti, vedere questo articolo:http://www.fmsinc. .com/microsoftaccess/forms/combo-boxes/cascading.html