Come sincronizzare due caselle combinate in un modulo in Microsoft Access

Questo articolo descrive la proprietà AfterUpdate che esegue una routine evento quando si seleziona una categoria nella prima casella combinata.

Numero KB originale: 289670

Nota

Richiede competenze di base per macro, codifica e interoperabilità. Questo articolo si applica a un database di Microsoft Access (.mdb/.accdb) e a un progetto di Microsoft Access (con estensione adp).

Riepilogo

Questo articolo descrive come sincronizzare due caselle combinate in modo che quando si seleziona un elemento nella prima casella combinata, la selezione limiti le scelte nella seconda casella combinata.

Nota

Questo articolo illustra una tecnica illustrata nel file di esempio FrmSmp00.mdb.

Ulteriori informazioni

Nell'esempio seguente viene usato il Northwind.mdb di database di esempio. La prima casella combinata elenca le categorie di prodotti disponibili e la seconda casella combinata elenca i prodotti disponibili per la categoria selezionata nella prima casella combinata:

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze.

  1. Aprire il Northwind.mdb di database di esempio.

  2. Creare un nuovo modulo non basato su alcuna tabella o query con le caselle combinate seguenti e quindi salvare il modulo come Categorie e prodotti.

    Combo Box 1
    -------------------------------
    Name:          Categories
    RowSourceType: Table/Query
    RowSource:     Categories
    ColumnCount:   2
    ColumnWidths:  0";1"
    BoundColumn:   1
    AfterUpdate:   [Event Procedure]
    
    Combo Box 2
    --------------------------
    Name:          Products
    RowSourceType: Table/Query
    ColumnWidths:  2"
    Width:         2"
    

    Nota

    Se si è in un progetto di Access, l'oggetto RowSourceType sarà Table/View/StoredProc.

  3. Aggiungere il codice seguente alla routine evento AfterUpdate della casella combinata Categorie:

    Me.Products.RowSource = "SELECT ProductName FROM" & _
       " Products WHERE CategoryID = " & Me.Categories & _
       " ORDER BY ProductName"
    Me.Products = Me.Products.ItemData(0)
    
  4. Visualizzare il modulo Categorie e prodotti nella visualizzazione Maschera.

    Nota

    Quando si seleziona una categoria nella prima casella combinata, la seconda casella combinata viene aggiornata per elencare solo i prodotti disponibili per la categoria selezionata.

Note

Nell'esempio seguente, nella seconda casella combinata vengono inseriti i valori dei risultati di un'istruzione SQL. Questa istruzione SQL trova tutti i prodotti con un CategoryID corrispondente alla categoria selezionata nella prima casella combinata.

Ogni volta che nella prima casella combinata viene selezionata una categoria, la AfterUpdate proprietà esegue la routine evento, che imposta la proprietà della RowSource seconda casella combinata. In questo modo viene aggiornato l'elenco dei prodotti disponibili nella seconda casella combinata. Senza questa procedura, il contenuto della seconda casella combinata non cambierebbe.