Jak synchronizovat dvě pole se seznamem ve formuláři v Aplikaci Microsoft Access

Tento článek popisuje AfterUpdate Vlastnost spustí proceduru události při výběru kategorie v prvním poli se seznamem.

Původní číslo KB: 289670

Poznámka

Vyžaduje základní dovednosti v oblasti maker, kódování a vzájemné spolupráce. Tento článek se vztahuje na databázi Aplikace Microsoft Access (.mdb/.accdb) a projekt aplikace Microsoft Access (.adp).

Souhrn

Tento článek popisuje, jak synchronizovat dvě pole se seznamem tak, aby při výběru položky v prvním poli se seznamem byl omezen výběr možností v druhém poli se seznamem.

Poznámka

Tento článek vysvětluje techniku, která je ukázaná v ukázkovém souboru, FrmSmp00.mdb.

Další informace

Následující příklad používá ukázkovou databázi Northwind.mdb. První pole se seznamem obsahuje dostupné kategorie produktů a druhé pole se seznamem uvádí dostupné produkty pro kategorii vybranou v prvním poli se seznamem:

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci, bez žádné záruky výslovně uvedené nebo odvozené, včetně, bez omezení, odvozených záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že uživatel je obeznámen s programovacím jazykem, který je předmětem ukázky, a s nástroji použitými pro vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo konstrukce podle konkrétních požadavků uživatele.

  1. Otevřete Northwind.mdb ukázkové databáze.

  2. Vytvořte nový formulář, který není založený na žádné tabulce nebo dotazu s následujícími poli se seznamem, a pak formulář uložte jako Kategorie a produkty.

    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"
    

    Poznámka

    Pokud jste v projektu accessu, RowSourceType bude hodnota Table/View/StoredProc.

  3. Do procedury události AfterUpdate pole se seznamem Categories přidejte následující kód:

    Me.Products.RowSource = "SELECT ProductName FROM" & _
       " Products WHERE CategoryID = " & Me.Categories & _
       " ORDER BY ProductName"
    Me.Products = Me.Products.ItemData(0)
    
  4. Zobrazte formulář Kategorie a produkty ve formulářovém zobrazení.

    Poznámka

    Když vyberete kategorii v prvním poli se seznamem, druhé pole se seznamem se aktualizuje tak, aby vypisuje jenom dostupné produkty pro vybranou kategorii.

Poznámky

V tomto příkladu je druhé pole se seznamem vyplněné výsledky příkazu SQL. Tento příkaz JAZYKa SQL najde všechny produkty, které mají ID kategorie odpovídající kategorii vybrané v prvním poli se seznamem.

Pokaždé, když je v prvním poli se seznamem vybraná kategorie, AfterUpdate spustí vlastnost proceduru události, která nastaví vlastnost druhého pole se seznamem RowSource . Tím se aktualizuje seznam dostupných produktů v druhém poli se seznamem. Bez tohoto postupu by se obsah druhého pole se seznamem nezměnil.