Vytvoření kaskádových polí se seznamem a seznamů v Accessu

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Kaskádové ovládací prvky použijte, když hodnota vybraná v jednom poli se seznamem nebo seznamu určuje volby v jiném. Například výběrem kategorie produktů můžete seznam produktů omezit na produkty v této kategorii.

Vlastnosti Řídicí propojovací pole a Podřízená propojovací pole umožňují Accessu automaticky filtrovat závislé pole se seznamem nebo seznam. Nemusíte vytvářet obslužnou proceduru události After Update nebo makro, abyste se znovu dotázali dotazu na závislý ovládací prvek.

Princip polí seznamu a podřízenosti

Nastavte vlastnosti propojení závislého pole se seznamem nebo seznamu.

Vlastnost Popis
Řídicí propojovací pole Pole nebo ovládací prvek ve formuláři, který poskytuje hodnotu použitou k filtrování závislého ovládacího prvku.
Podřízená propojovací pole Pole ve zdroji řádku závislého ovládacího prvku, které Access porovnává s hlavní hodnotou.

Při změně hlavní hodnoty Access aktualizuje závislý ovládací prvek a zobrazí pouze řádky s odpovídajícími hodnotami podřízených polí.

Před vytvořením odkazu zkontrolujte, že:

  • Hlavní ovládací prvek vrátí hodnotu, kterou obsahuje podřízené pole. Pole se seznamem kategorie by se mělo například vrátit CategoryID , pokud je podřízené pole také CategoryID.
  • Podřízené pole je součástí zdroje řádků závislého ovládacího prvku. Podřízené pole může být v seznamu skryté, ale musí být součástí zdroje řádku.
  • Hlavní a podřízená pole používají kompatibilní datové typy.

Další informace o vytváření ovládacích prvků seznamů a nastavení jejich zdrojů řádků naleznete v tématu Přidání seznamu nebo pole se seznamem.

Filtrovat produkty podle kategorie

Předpokládejme, že formulář objednávky obsahuje tato pole se seznamem:

  • cboCategory, kde uživatel vybere kategorii produktu. Jeho hodnotou je hodnota kategorie CategoryID.
  • cboProduct, kde uživatel vybere produkt.

Filtrování produktů podle vybrané kategorie:

  1. Otevřete formulář v návrhovém zobrazení.

  2. Vyberte cboProductpoložku a stisknutím klávesy F4 otevřete seznam vlastností.

  3. Na kartě Data nastavte Typ zdroje řádků na Tabulka/Dotaz.

  4. Nastavte jako zdroj řádků dotaz nebo příkaz SQL, který obsahuje pole použité k propojení ovládacích prvků. Příklady:

    SELECT ProductID, ProductName, CategoryID
    FROM Products
    ORDER BY ProductName;
    
  5. V tomto příkladu nastavte Počet sloupců na 3, Vázaný sloupec na 1a Šířky sloupců na 0";2";0". Díky těmto nastavením bude pole se seznamem vracet ProductID, zobrazovat ProductNamea skrývat CategoryID.

  6. Nastavte vlastnosti propojení na cboProduct.

    Vlastnost Value (Hodnota)
    Řídicí propojovací pole cboCategory
    Podřízená propojovací pole CategoryID
  7. Uložte formulář a pak přepněte do zobrazení formuláře.

  8. Vyberte kategorii a otevřete cboProduct. V seznamu produktů se zobrazují pouze produkty, jejichž CategoryID hodnota odpovídá hodnotě cboCategory.

Access může skryté CategoryID pole použít k filtrování řádků, protože pole zůstává ve zdroji řádků.

Použití kaskádových seznamů

Vlastnosti řídicí propojovací pole a podřízená propojovací pole fungují stejně jako u seznamů. Nastavte vlastnosti závislého seznamu a zkontrolujte, zda zdroj řádků obsahuje podřízené pole.

Propojená pole se seznamem a seznamy můžete použít třeba pro tyto scénáře:

  • Oddělení, týmy a zaměstnanci
  • Zákazníci a objednávky
  • Projekty a úkoly
  • Kategorie produktů a produkty

Pokud záznamy spojuje více polí, zadejte do obou vlastností propojení názvy oddělené čárkami. Access porovnává pole podle jejich umístění v jednotlivých seznamech.

Příklady:

Vlastnost Value (Hodnota)
Řídicí propojovací pole CompanyID, LocationID
Podřízená propojovací pole CompanyID, LocationID

Oba seznamy musí obsahovat stejný počet položek. Každé řídicí pole musí mít kompatibilní datový typ s podřízeným polem na odpovídající pozici.

Použití kaskádových ovládacích prvků v nekonečných formulářích

Propojená pole se seznamem a seznamy fungují taky v nekonečných formulářích. Access filtruje závislý ovládací prvek pro každý viditelný záznam pomocí hlavní hodnoty daného záznamu. K opakovanému dotazování na každý řádek zvlášť nepotřebujete kód události.

Řešení potíží s kaskádovými ovládacími prvky

Problém Co zkontrolovat
Vlastnosti propojení se na kartě Data nezobrazují. Ujistěte se, že je Access aktualizován na verzi 2609 (build 20430.20092) nebo novější.
Závislý ovládací prvek je prázdný. Potvrďte hodnotu ovládacího prvku seznamu, zda existují odpovídající záznamy, zda je podřízené pole zahrnuto do zdroje řádků a zda řídicí a podřízené hodnoty používají kompatibilní datové typy.
Závislý ovládací prvek zobrazuje neočekávané volby. Ověřte, zda jsou u závislého ovládacího prvku nastaveny vlastnosti propojení a zda hlavní ovládací prvek vrací hodnotu klíče uloženou v podřízeném poli.
Propojení s více poli nefunguje. Ujistěte se, že obě vlastnosti obsahují stejný počet polí (v odpovídajícím pořadí) s kompatibilními datovými typy.

Existující kaskádové ovládací prvky, které používají jazyk VBA nebo makra, budou dál fungovat. Vlastnosti propojení použijte jako deklarativní alternativu, když potřebujete ovládací prvek filtrovat jenom z hodnot dostupných ve formuláři.

Aktualizace přístupu

Pokud chcete zkontrolovat novější build aktuálního kanálu, vyberte Možnostiaktualizace>účtu souboru>>. I po instalaci nejnovějšího buildu může ještě nějakou dobu trvat, než se funkce zobrazí, protože se rozšiřuje zavádění.