Kahden yhdistelmäruudun synkronoiminen lomakkeessa Microsoft Accessissa

Tässä artikkelissa kuvataan, että AfterUpdate-ominaisuus suorittaa tapahtumatoimintosarjan, kun valitset luokan ensimmäisestä yhdistelmäruudusta.

Alkuperäinen KT numero: 289670

Huomautus

Edellyttää makrojen, koodauksen ja yhteensopivuuden perustaitoja. Tämä artikkeli koskee Microsoft Access -tietokantaa (.mdb/.accdb) ja Microsoft Access -projektia (.adp).

Yhteenveto

Tässä artikkelissa kuvataan, miten kaksi yhdistelmäruutua synkronoidaan niin, että kun valitset kohteen ensimmäisestä yhdistelmäruudusta, valinta rajoittaa toisen yhdistelmäruudun valintoja.

Huomautus

Tässä artikkelissa kerrotaan menetelmästä, joka on näytetiedostossa FrmSmp00.mdb.

Lisätietoja

Seuraavassa esimerkissä käytetään mallitietokannan Northwind.mdb. Ensimmäisessä yhdistelmäruudussa on luettelo käytettävissä olevista tuoteluokista, ja toisessa yhdistelmäruudussa luetellaan ensimmäisessä yhdistelmäruudussa valitun luokan käytettävissä olevat tuotteet:

Microsoft esittää ohjelmointiesimerkkejä vain asian havainnollistamiseksi, ilman suoraa tai epäsuoraa vastuuta niiden toimivuudesta. Tämä sisältää muunmuassa epäsuorat vastuut soveltuvuudesta kaupankäyntiin tai soveltuvuuteen yksilöityyn käyttöön. Tässä artikkelissa oletetaan, että olet perehtynyt käytettyyn ohjelmointikieleen, sekä proseduurien luonti- ja virheenkorjaustyökaluihin. Microsoftin tukihenkilöt voivat auttaa selvittämään tietyn proseduurin toiminnallisuutta, mutta he eivät muokkaa näitä esimerkkejä parantamaan yksittäisen tarpeen toiminnallisuutta eivätkä luo siihen proseduureja.

  1. Avaa mallitietokannan Northwind.mdb.

  2. Luo uusi lomake, joka ei perustu mihinkään taulukkoon tai kyselyyn, käyttämällä seuraavia yhdistelmäruutuja ja tallenna lomake luokiksi ja tuotteiksi.

    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"
    

    Huomautus

    Jos olet Access-projektissa, RowSourceType se on Table/View/StoredProc.

  3. Lisää seuraava koodi Luokat-yhdistelmäruudun AfterUpdate-tapahtumatoimintosarjaan:

    Me.Products.RowSource = "SELECT ProductName FROM" & _
       " Products WHERE CategoryID = " & Me.Categories & _
       " ORDER BY ProductName"
    Me.Products = Me.Products.ItemData(0)
    
  4. Näytä Luokat ja tuotteet -lomake lomakenäkymässä.

    Huomautus

    Kun valitset luokan ensimmäisestä yhdistelmäruudusta, toinen yhdistelmäruutu päivitetään luetteloimaan vain valitun luokan käytettävissä olevat tuotteet.

Huomautuksia

Tässä esimerkissä toinen yhdistelmäruutu on täynnä SQL-lauseen tuloksia. Tämä SQL-lause etsii kaikki tuotteet, joiden CategoryID-tunnus vastaa ensimmäisessä yhdistelmäruudussa valittua luokkaa.

Aina kun luokka on valittuna ensimmäisessä yhdistelmäruudussa, AfterUpdate ominaisuus suorittaa tapahtumatoimintosarjan, joka määrittää toisen yhdistelmäruudun ominaisuuden RowSource . Tämä päivittää toisen yhdistelmäruudun käytettävissä olevien tuotteiden luettelon. Ilman tätä toimintosarjaa toisen yhdistelmäruudun sisältö ei muuttuisi.