Twee keuzelijsten met invoervak synchroniseren in een formulier in Microsoft Access

In dit artikel wordt beschreven dat de eigenschap AfterUpdate een gebeurtenisprocedure uitvoert wanneer u een categorie selecteert in de eerste keuzelijst met invoervak.

Origineel KB-nummer: 289670

Opmerking

Vereist basisvaardigheden op het gebied van macro's, coderen en interoperabiliteit. Dit artikel is van toepassing op een Microsoft Access-database (.mdb/.accdb) en op een Microsoft Access-project (.adp).

Samenvatting

In dit artikel wordt beschreven hoe u twee keuzelijsten met invoervak synchroniseert, zodat wanneer u een item in de eerste keuzelijst met invoervak selecteert, de keuzemogelijkheden in de tweede keuzelijst met invoervak beperkt.

Opmerking

In dit artikel wordt een techniek uitgelegd die wordt gedemonstreerd in het voorbeeldbestand, FrmSmp00.mdb.

Meer informatie

In het volgende voorbeeld wordt de voorbeelddatabase gebruikt Northwind.mdb. De eerste keuzelijst met invoervak bevat de beschikbare productcategorieën en de tweede keuzelijst met invoervak bevat de beschikbare producten voor de categorie die in de eerste keuzelijst met invoervak is geselecteerd:

Microsoft verstrekt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. U kunt desgewenst contact opnemen met Microsoft Product Support Services voor uitleg over de functie van een bepaalde procedure. Microsoft Product Support Services is echter niet bereid de voorbeelden aan te passen om extra functies toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.

  1. Open de voorbeelddatabase Northwind.mdb.

  2. Maak een nieuw formulier dat niet is gebaseerd op een tabel of query met de volgende keuzelijsten met invoervak en sla het formulier vervolgens op als Categorieën en producten.

    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"
    

    Opmerking

    Als u zich in een Access-project bevindt, is de RowSourceType Table/View/StoredProc.

  3. Voeg de volgende code toe aan de gebeurtenisprocedure AfterUpdate van de keuzelijst categorieën met invoervak:

    Me.Products.RowSource = "SELECT ProductName FROM" & _
       " Products WHERE CategoryID = " & Me.Categories & _
       " ORDER BY ProductName"
    Me.Products = Me.Products.ItemData(0)
    
  4. Bekijk het formulier Categorieën en producten in de formulierweergave.

    Opmerking

    Wanneer u een categorie selecteert in de eerste keuzelijst met invoervak, wordt de tweede keuzelijst met invoervak bijgewerkt met alleen de beschikbare producten voor de geselecteerde categorie.

Opmerkingen

In dit voorbeeld wordt de tweede keuzelijst met invoervak gevuld met de resultaten van een SQL-instructie. Met deze SQL-instructie vindt u alle producten met een CategoryID die overeenkomt met de categorie die is geselecteerd in de eerste keuzelijst met invoervak.

Wanneer een categorie wordt geselecteerd in de eerste keuzelijst met invoervak, voert de AfterUpdate eigenschap de gebeurtenisprocedure uit, waarmee de eigenschap van RowSource de tweede keuzelijst met invoervak wordt ingesteld. Hiermee wordt de lijst met beschikbare producten in de tweede keuzelijst met invoervak vernieuwd. Zonder deze procedure zou de inhoud van de tweede keuzelijst met invoervak niet worden gewijzigd.