Slik synkroniserer du to kombinasjonsbokser i et skjema i Microsoft Access

Denne artikkelen beskriver afterupdate-egenskapen som kjører en hendelsesprosedyre når du velger en kategori i den første kombinasjonsboksen.

Opprinnelig KB-nummer: 289670

Obs!

Krever grunnleggende ferdigheter for makroer, koding og interoperabilitet. Denne artikkelen gjelder for en Microsoft Access-database (.mdb/.accdb) og for et Microsoft Access-prosjekt (ADP).

Sammendrag

Denne artikkelen beskriver hvordan du synkroniserer to kombinasjonsbokser, slik at når du velger et element i den første kombinasjonsboksen, begrenser utvalget valgene i den andre kombinasjonsboksen.

Obs!

Denne artikkelen forklarer en teknikk som demonstreres i eksempelfilen, FrmSmp00.mdb.

Mer informasjon

Følgende eksempel bruker eksempeldatabasen Northwind.mdb. Den første kombinasjonsboksen viser de tilgjengelige produktkategoriene, og den andre kombinasjonsboksen viser de tilgjengelige produktene for kategorien som er valgt i den første kombinasjonsboksen:

Microsoft gir programmeringseksempler kun for illustrasjon, uten garanti hverken uttrykt eller antydet. Dette inkluderer, men er ikke begrenset til, de underforståtte garantiene for salgbarhet eller egnethet for et bestemt formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som blir demonstrert og verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsoft kundestøtte-teknikere kan hjelpe til å forklare funksjonaliteten til en bestemt prosedyre, men de vil ikke endre disse eksemplene for å gi ekstra funksjonalitet eller konstruere prosedyrer for å dekke dine spesifikke behov.

  1. Åpne eksempeldatabasen Northwind.mdb.

  2. Opprett et nytt skjema som ikke er basert på noen tabell eller spørring med følgende kombinasjonsbokser, og lagre deretter skjemaet som kategorier og produkter.

    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"
    

    Obs!

    Hvis du er i et Access-prosjekt, vil det RowSourceType være Table/View/StoredProc.

  3. Legg til følgende kode i hendelsesprosedyren AfterUpdate i kombinasjonsboksen Kategorier:

    Me.Products.RowSource = "SELECT ProductName FROM" & _
       " Products WHERE CategoryID = " & Me.Categories & _
       " ORDER BY ProductName"
    Me.Products = Me.Products.ItemData(0)
    
  4. Vis skjemaet Kategorier og produkter i skjemavisning.

    Obs!

    Når du velger en kategori i den første kombinasjonsboksen, oppdateres den andre kombinasjonsboksen slik at bare de tilgjengelige produktene for den valgte kategorien vises.

Merknader

I dette eksemplet er den andre kombinasjonsboksen fylt med resultatene av en SQL-setning. Denne SQL-setningen finner alle produktene som har en CategoryID som samsvarer med kategorien som er valgt i den første kombinasjonsboksen.

Når en kategori er valgt i den første kombinasjonsboksen, AfterUpdate kjører egenskapen hendelsesprosedyren, som angir egenskapen til den andre kombinasjonsboksen RowSource . Dette oppdaterer listen over tilgjengelige produkter i den andre kombinasjonsboksen. Uten denne prosedyren ble ikke innholdet i den andre kombinasjonsboksen endret.