• Le caselle combinate a cascata nelle maschere di Access

    cascadingcombobox.jpg

    Con un paio di righe di codice VBA è possibile implementare, in una maschera di Access, una funzionalità molto interessante: le caselle combinate a cascata. Ossia, un gruppo di due (o più) caselle combinate in cui i valori mostrati nella seconda (o delle successive) casella dipendono dalla selezione effettuata nella prima. Tutti noi abbiamo fatto qualche esperienza con questo tipo di caselle: magari nella prima si può scegliere una provincia, poi, nella seconda, viene caricato l’elenco dei comuni della provincia selezionata.

    Per provare questa soluzione, ci occorre una la maschera con due caselle combinate (immaginiamo che si chiamino rispettivamente cboProvince e cboComuni). Occorre, poi, popolare queste due caselle rispettivamente con l’elenco delle province e con l’elenco dei comuni. Il sistema più veloce è creare una tabella con due campi: Comune e Provincia e popolare le caselle combinate estraendo i valori da questa tabella.

    Potete tranquillamente usare la creazione guidata per popolare la casella combinata cboProvince, badando, comunque, che le province siano elencate una volta sola. Se preferite scrivere direttamente l’istruzione SQL che genera la tabella, l’istruzione da usare è

    SELECT ComuniMolise.Provincia FROM ComuniMolise
    GROUP BY ComuniMolise.Provincia ORDER BY ComuniMolise.Provincia;

    Per quanto riguarda la casella combinata cboComuni, essa viene popolata dalla istruzione SQL

    SELECT ComuniMolise.Comune
    FROM ComuniMolise
    WHERE (((ComuniMolise.Provincia)=[Forms]![ComuniMolise]![cboProvince]));

    Nella figura che apre il post, si vede questa query nel generatore di query.

    Infine, perché la seconda casella si aggiorni in base alla selezione nella prima, basta scrivere per l’evento AfterUpdate della casella cboProvincia il codice che segue

    Private Sub cboProvince_AfterUpdate()
    Me.cboComuni = "
    Me.cboComuni.Requery
    End Sub

    Il metodo Requery forza la ri-esecuzione della query che genera la casella combinata cboComuni. In questo modo, il filtro applicato alla query che genera questa casella di testo, utilizzerà il valore attualmente selezionato nella casella cboProvincia.

    Tags:

    Se vuoi aggiornamenti su Le caselle combinate a cascata nelle maschere di Access inserisci la tua e-mail nel box qui sotto:


    Ho letto e acconsento l'informativa sulla privacy

    Si No

    Acconsento al trattamento dei dati personali di cui al punto 3 dell'informativa sulla privacy

    Si No

    Commenti

    1. Bene, ottimo tutorial! Però desidero sapere come fare per scrivere in automatico la provincia e la regione di un comune scelto tramite una casella combinata. Grazie

    2. Ester Altacarnia dice:

      Lo stesso commento di Salvatore faccio io, aggiungendo che devo inserire anche il CAP, prefisso telefonico e codice ISTAT. Grazie (solo se rispondi!)

    3. Alessandra dice:

      Stessa problematica,
      Filtro i dati da tre cbo a cascata inserisco i dati, in tabella vengono registrati ma, se torno in visualizzazione dei dati immessi precedentemente nella maschera una o più cbo risultano vuote
      Grazie

    Commenta

    Your email address will not be published. Required fields are marked *