| Postato: 07/Feb/2010 17:52 | IP Salvato
|
|
|
Come promesso ti ho preparato una piccola demo per spiegarti un metodo dei tanti che puoi utilizzare per applicare un filtro alle varie combobox in cascata... Qui trovi la demo: http://myfreefilehosting.com/f/cb72cfab62_0.3MB
In due parole vado a spiegarti il metodo utilizzato: 1) predisponi correttamente le relazioni tra le varie abelle che dovranno popolare le varie combobox ... per esempio vedi figura:
 In questo esempio vengono utilizzate tre tabelle che in cascata dovranno popolare le combobox per Nazione/Regione/Città
2) a questo punto non rimane altro che impostare le select delle combo come qui mostrato... per esempio nella combo Regioni imposterai : SELECT Tbl_Regioni.IdRegioni, Tbl_Regioni.IdNazioni, Tbl_Regioni.RegioneDes FROM Tbl_Regioni WHERE (((Tbl_Regioni.IdNazioni)=[cmbNazioni])) ORDER BY Tbl_Regioni.RegioneDes; e per le città imposti la seguente select: SELECT Tbl_Citta.IdCitta, Tbl_Citta.IdRegione, Tbl_Citta.CittaDes FROM Tbl_Citta WHERE (((Tbl_Citta.IdRegione)=[cmbRegioni])) ORDER BY Tbl_Citta.CittaDes; In rosso ti ho evidenziato come applicare il filtro nelle combobox
3)queste sono le poche righe di codice da inserire nelle routine di evento in Dopo Aggiornamento delle varie combobox: Option Compare Database Option Explicit
' AGGIORNA COMBOBOX REGIONI Private Sub cmbNazioni_AfterUpdate() ' filtra combobox a cascata Me.cmbRegioni.Requery Me.cmbRegioni = Null Me.cmbCitta.Requery Me.cmbCitta = Null ' imposta visualizzazione dinamica su combolist Me.cmbListNazioni = Me.cmbNazioni Me.cmbListRegioni.Requery Me.cmbListRegioni = Null Me.cmbListCitta.Requery Me.cmbListCitta = Null End Sub
' AGGIORNA COMBOBOX CITTA Private Sub cmbRegioni_AfterUpdate() ' filtra combobox a cascata Me.cmbCitta.Requery Me.cmbCitta = Null ' imposta visualizzazione dinamica su combolist Me.cmbListRegioni = Me.cmbRegioni Me.cmbListCitta.Requery Me.cmbListCitta = Null End Sub
' AGGIORNA COMBOLIST CITTA Private Sub cmbCitta_AfterUpdate() ' imposta visualizzazione dinamica su combolist Me.cmbListCitta = Me.cmbCitta End Sub
Questo invece è il risultato che propone la Demo:

Il metodo utilizzato è quello di filtrare nella select della combobox successiva l'id chiave della combobox precedente. Su aggiornamento della combobox si eseguono le requery delle combobox successive per applicare e refreshare le select con l'id chiave scelto nella combobox precedente.
Spero che sia quello che cercavi... Buon lavoro, ciaooo 
__________________ ohi ohi... (chi fa da se fa x tle ?)
|