Vytvoření, úprava a odstranění relace
Applies ToAccess pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Relace v aplikaci Access pomáhá při kombinování dat ze dvou různých tabulek. Každou relaci tvoří pole ve dvou tabulkách s odpovídajícími daty. Například můžete mít v tabulce Produkty a v tabulce PodrobnostiObjednávek pole IDProduktu. Každý záznam v tabulce PodrobnostiObjednávek má pole IDProduktu, které odpovídá některému ze záznamů v poli IDProduktu v tabulce Produkty.

Když použijete související tabulky v dotazu, relace umožní Accessu určit, které záznamy z obou tabulek sloučit v sadě výsledků. Relace může také zabránit ztrátě dat, protože pomáhá provádět jejich synchronizaci a předcházet jejich odstranění. Tomuto principu se říká referenční integrita.

Než začnete vytvářet relace, ujistěte se, že rozumíte jejich principům. Další informace nabízí Příručka k relacím mezi tabulkami a článek Začínáme s relacemi tabulek.

V tomto článku

Přehled

V databázi Accessu můžete vytvářet relace mezi tabulkami pomocí libovolné z následujících metod:

  • V okně Relace můžete přidat tabulky, pro které chcete vytvořit relaci, a potom přetažením pole mezi oběma tabulkami mezi nimi vytvořit relaci.

  • Přetáhněte pole na datový list tabulky z podokna Seznam polí.

Při vytvoření relace mezi tabulkami nemusí mít společná pole stejné názvy, i když se často stává, že je mají. Společná pole musí mít stejný datový typ. Pokud je pole primárního klíče polem Automatické číslo, může být pole cizího klíče také číselným polem v případě, že je vlastnost Velikost pole v obou polích stejná. Můžete například porovnat pole Automatické číslo a Číslo v případě, že je vlastnost Velikost pole obou polí Dlouhé celé číslo. Když jsou obě společná pole číselnými poli, musí mít stejné nastavení vlastnosti Velikost pole.

Začátek stránky

Vytvoření relace tabulky pomocí okna Relace

  1. Na kartě Databázové nástroje klikněte ve skupině Relace na položku Relace.

  2. Na kartě Relationships Design (Návrh relací ) klikněte ve skupině Relace na Add Tables (Přidat tabulky).

  3. Vyberte jednu nebo několik tabulek či dotazů a klikněte na Přidat. Až na kartu dokumentu Relace přidáte všechny požadované tabulky a dotazy, klikněte na Zavřít.

  4. Přetáhněte pole (zpravidla primární klíč) z jedné tabulky do společného pole (cizí klíč) ve druhé tabulce. Pokud chcete přetáhnout více polí, stiskněte klávesu CTRL, klikněte na jednotlivá pole a pak je přetáhněte. Zobrazí se dialogové okno Upravit relace.Dialogové okno Upravit relace v Accessu s poli Zákazníci a Spojení objednávek

  5. Ověřte, jestli jsou zobrazené názvy polí společná pole relace. Pokud není některý název pole správný, klikněte na něho a ze seznamu vyberte příslušné pole. Pokud chcete vynutit referenční integritu pro tuto relaci, zaškrtněte políčko Zajistit referenční integritu. Další informace o referenční integritě najdete v části Zajištění referenční integrity.

  6. Klikněte na Vytvořit.

    Access zakreslí mezi oběma tabulkami čáru relace. Pokud jste zaškrtli políčko Zajistit referenční integritu, bude čára na obou koncích silnější. Navíc (zase jen pokud jste zaškrtli políčko Zajistit referenční integritu) se nad silnější částí zobrazí na jedné silnější straně čáry relace hodnota 1 a na druhé straně znak nekonečna (). Následující obrázek slouží jako ukázka.Přetažení pole z tabulky do odpovídajícího pole v jiné tabulce.

    Poznámky: 

    • Vytvoření relace 1:1    Obě společná pole (obvykle pole primárního a cizího klíče) musí mít jedinečný index. To znamená, že vlastnost Indexovat těchto polí by měla být nastavená na hodnotu Ano (bez duplicity). Pokud mají obě pole jedinečný index, Access vytvoří relaci 1:1.

    • Vytvoření relace 1:N    Pole na straně 1 (zpravidla primární klíč) relace musí mít jedinečný index. To znamená, že vlastnost Indexovat by pro toto pole měla být nastavená na hodnotu Ano (bez duplicity). Pole na straně N by nemělo mít jedinečný index. Může mít index, ale musí umožňovat duplicity. To znamená, že vlastnost Indexovat tohoto pole by měla být nastavená na hodnotu Ne nebo Ano (duplicita povolena). Jakmile má jedno pole jedinečný index a druhé ne, Access vytvoří relaci 1:N.

Začátek stránky

Vytvoření relace mezi tabulkami přidáním pole pomocí podokna Seznam polí

Do stávající tabulky, která je otevřená v zobrazení Datový list, můžete přidat pole přetažením z podokna Seznam polí. Podokno Seznam polí zobrazuje pole, která jsou k dispozici v souvisejících tabulkách, a také pole, která jsou k dispozici v jiných tabulkách v databázi.

Přetáhnete-li pole z jiné tabulky, která nemá s vaší tabulkou vytvořenou relaci, a pak dokončíte Průvodce vyhledáváním, vytvoří se automaticky nová relace 1:N mezi tabulkou v podokně Seznam polí a tabulkou, do níž jste pole přetáhli. Tato relace vytvořená v Accessu ve výchozím nastavení nevynucuje referenční integritu. Pokud chcete referenční integritu vynutit, musíte relaci upravit. Další informace najdete v části Úprava relace.

Otevření tabulky v zobrazení Datový list

  • V navigačním podokně poklikejte na tabulku.

Otevření podokna Seznam polí

  • Stiskněte kombinaci kláves ALT+F8. Zobrazí se podokno Seznam polí.

    Podokno Seznam polí

Podokno Seznam polí obsahuje seznam všech ostatních tabulek v databázi seskupených do kategorií. Pokud pracujete s tabulkou v zobrazení Datový list, Access zobrazí pole v podokně úloh Seznam polí v některé ze dvou kategorií: Pole dostupná v souvisejících tabulkách a Pole dostupná v jiných tabulkách. První kategorie obsahuje seznam všech tabulek, které jsou v relaci s tabulkou, se kterou aktuálně pracujete. Druhá kategorie obsahuje všechny tabulky, se kterými nemá otevřená tabulka definovanou relaci.

Kliknete-li v podokně úloh Seznam polí na znaménko plus (+) vedle názvu tabulky, zobrazí se seznam všech polí dostupných v této tabulce. Chcete-li pole připojit k tabulce, přetáhněte požadované pole z podokna úloh Seznam polí do tabulky v zobrazení Datový list.

Přidání pole a vytvoření relace v podokně Seznam polí

  1. V tabulce otevřené v zobrazení Datový list stiskněte kombinaci kláves ALT+F8. Zobrazí se podokno Seznam polí.

  2. V kategorii Pole dostupná v jiných tabulkách klikněte na znaménko plus (+) vedle názvu tabulky. Zobrazí se seznam polí.

  3. Přetáhněte požadované pole z podokna Seznam polí do tabulky otevřené v zobrazení Datový list.

  4. Jakmile se objeví čára označující místo pro vložení, uvolněte tlačítko myši, a vložte tak pole na příslušnou pozici.

    Spustí se Průvodce vyhledáváním.

  5. Postupujte podle pokynů Průvodce vyhledáváním.

    Pole se zobrazí v tabulce v zobrazení Datový list.

Přetáhnete-li pole z jiné tabulky, která nemá s vaší tabulkou vytvořenou relaci, a pak dokončíte Průvodce vyhledáváním, vytvoří se automaticky nová relace 1:N mezi tabulkou v podokně Seznam polí a tabulkou, do níž jste pole přetáhli. Tato relace vytvořená v Accessu ve výchozím nastavení nevynucuje referenční integritu. Pokud chcete referenční integritu vynutit, musíte relaci upravit. Další informace najdete v části Úprava relace.

Začátek stránky

Úprava relace

Relaci můžete změnit výběrem relace v okně Relace a její následnou úpravou.

  1. Opatrně umístěte kurzor tak, aby ukazoval na čáru relace, a pak čáru kliknutím vyberte.

    Čára relace se při výběru zobrazí silněji.

  2. Poklikejte na vybranou čáru relace.

    – nebo –

    Na kartě Relationships Design (Návrh relací) klikněte ve skupině Nástroje na Edit Relationships (Upravit relace).

Otevře se dialogové okno Upravit relace.

Otevření dialogového okna Upravit relace

  1. Na kartě Databázové nástroje klikněte ve skupině Relace na položku Relace.

  2. Na kartě Návrh relací klikněte ve skupině Relace na Položku Všechny relace.

    Zobrazí se všechny tabulky s relacemi a znázorněnými čarami relací. Skryté tabulky (tabulky, u kterých je zaškrtnuté políčko Skryté v dialogovém okně Vlastnosti tabulky) a jejich relace se nezobrazí, dokud nezaškrtnete políčko Zobrazit skryté objekty v dialogovém okně Možnosti navigace.

  3. Klikněte na čáru relace, kterou chcete změnit. Čára relace se při výběru zobrazí silněji.

  4. Poklikejte na čáru relace.

    – nebo –

    Na kartě Relationships Design (Návrh relací) klikněte ve skupině Nástroje na Edit Relationships (Upravit relace).

    Zobrazí se dialogové okno Upravit relace.

    Dialogové okno Upravit relace v Accessu s poli Zákazníci a Spojení objednávek

  5. Proveďte požadované změny a klikněte na tlačítko OK.

    V dialogovém okně Upravit relace můžete změnit relaci mezi tabulkami. Konkrétně můžete změnit tabulky nebo dotazy na některé ze stran relace nebo pole na některé straně. Můžete také zobrazit typ spojení nebo vynutit referenční integritu a zvolit kaskádovou možnost. Další informace o typu spojení a jeho nastavení najdete v části Nastavení typu spojení. Další informace o vynucení referenční integrity a výběru kaskádové možnosti najdete v části Zajištění referenční integrity.

Nastavení typu spojení

Pokud nadefinujete relace mezi tabulkami, poskytují informace o relaci vodítko pro návrhy dotazů. Pokud například definujete relaci mezi dvěma tabulkami a pak vytvoříte dotaz, který s těmito tabulkami pracuje, Access vybere automaticky výchozí odpovídající pole na základě polí zadaných v relaci. Tyto počáteční výchozí hodnoty v dotazu můžete změnit, ale hodnoty získané z relace budou často správné. Protože porovnání a seskupení dat z více než jedné tabulky představuje často prováděnou akci ve všech kromě těch nejjednodušších databází, může vám nastavení výchozích hodnot vytvořením relací ušetřit čas a ukázat se jako přínosné.

Dotaz s více tabulkami kombinuje informace z několika tabulek porovnáním hodnot ve společných polích. Operace, při které porovnání a kombinování probíhá, se označuje jako spojení. Předpokládejme například, že chcete zobrazit objednávky zákazníka. Vytvoříte dotaz, který spojuje tabulku Zákazníci s tabulkou Objednávky na základě pole Kód zákazníka. Výsledek dotazu obsahuje informace o zákazníkovi a objednávce pouze pro ty řádky, v nichž byla nalezena odpovídající položka.

Jednou z hodnot, které můžete pro každou relaci zadat, je typ spojení. Ten sděluje Accessu, které záznamy se mají objevit mezi výsledky dotazu. Představte si třeba znovu dotaz, který spojuje tabulku Zákazníci s tabulkou Objednávky na základě společných polí, která představují kód zákazníka. Pomocí výchozího typu spojení (nazývaného vnitřní spojení) vrátí dotaz pouze řádky zákazníka a objednávky, v nichž jsou společná pole (označovaná také jako propojená pole) stejná.

Předpokládejme však, že chcete zahrnout všechny zákazníky – i takové, kteří dosud nezadali objednávky. K tomu je nutné změnit typ spojení z vnitřního na takzvané levé vnější. Levé vnější spojení vrátí všechny řádky v tabulce vlevo relace a jen odpovídající řádky z tabulky vpravo. Pravé vnější spojení vrátí všechny řádky vpravo a pouze odpovídající řádky vlevo.

Poznámka: V tomto případě vypovídají hodnoty vlevo a vpravo o pozicích tabulek v dialogovém okně Upravit relace, nikoli v okně Relace.

Měli byste vždy popřemýšlet o tom, jaký výsledek od dotazu, který propojuje tabulky v této relaci, očekáváte a podle toho nastavit typ spojení.

Nastavení typu spojení

  1. V dialogovém okně Upravit relace klikněte na tlačítko Typ spojení.

    Zobrazí se dialogové okno Vlastnosti spojení.Dialogové okno Vlastnosti spojení v Accessu se třemi možnostmi spojení je vybrána první možnost, která uvádí, že se mají zahrnout jenom řádky, ve kterých jsou spojená pole z obou tabulek stejná.

  2. Vyberte svůj výběr a klikněte na OK.

Následující tabulka (pomocí tabulky Zákazníci a objednávky) znázorňuje tři možnosti, které se zobrazují v dialogovém okně Vlastnosti spojení, typ spojení, který používají, a informaci, zda jsou pro každou tabulku vráceny všechny řádky nebo pouze odpovídající.

Přepínač

Relační spojení

Levá tabulka

Pravá tabulka

1. Zahrnout pouze řádky, v nichž jsou spojená pole z obou tabulek shodná

Vnitřní spojení

Odpovídající řádky

Odpovídající řádky

2. Zahrnout všechny záznamy z tabulky Zákazníci a z tabulky Objednávky pouze ty záznamy, ve kterých jsou spojená pole shodná

Levé vnější spojení

Všechny řádky

Odpovídající řádky

3. Zahrnout všechny záznamy z tabulky Objednávky a z tabulky Zákazníci pouze ty záznamy, ve kterých jsou spojená pole shodná

Pravé vnější spojení

Odpovídající řádky

Všechny řádky

Pokud zvolíte možnost 2 nebo 3, zobrazí se v řádku relace šipka. Ta ukazuje na stranu relace, která znázorňuje pouze odpovídající řádky.

Změny v dialogovém okně Vlastnosti spojení

  1. Na kartě Databázové nástroje klikněte ve skupině Relace na Relace.

  2. Na kartě Návrh relací klikněte ve skupině Relace na Položku Všechny relace. Zobrazí se všechny tabulky s relacemi a znázorněnými čarami relace. Skryté tabulky (tabulky, u kterých je zaškrtnuté políčko Skryté v dialogovém okně Vlastnosti tabulky) a jejich relace se nezobrazí, dokud nezaškrtnete políčko Zobrazit skryté objekty v dialogovém okně Možnosti navigace.

  3. Klikněte na čáru relace, kterou chcete změnit. Čára relace se při výběru zobrazí silněji.

  4. Poklikejte na čáru relace. Zobrazí se dialogové okno Upravit relace.

  5. Klikněte na tlačítko Typ spojení.

  6. V dialogovém okně Vlastnosti spojení vyberte možnost a klikněte na OK.Dialogové okno Vlastnosti spojení v Accessu se třemi možnostmi spojení je vybrána první možnost, která uvádí, že se mají zahrnout jenom řádky, ve kterých jsou spojená pole z obou tabulek stejná.

  7. Proveďte další změny relace a klikněte na tlačítko OK.

Začátek stránky

Zajištění referenční integrity

Účelem referenční integrity je zabránit vzniku osiřelých záznamů (tj. záznamů odkazujících na záznamy, které už neexistují). Referenční integrita se vynucuje tak, že ji povolíte pro relaci mezi tabulkami. Po nastavení vynucování Access odmítne jakoukoli operaci, která by způsobila porušení referenční integrity pro danou relaci mezi tabulkami. To znamená, že Access odmítne aktualizace, které mění cíl reference, i odstranění, která odebírají cíl reference. Pokud chcete, aby Access podporoval referenční aktualizace a odstranění tak, aby se odpovídajícím způsobem měnily všechny související řádky, přečtěte si část Nastavení kaskádových možností.

Zapnutí nebo vypnutí referenční integrity

  1. Na kartě Databázové nástroje klikněte ve skupině Relace na Relace.

  2. Na kartě Návrh relací klikněte ve skupině Relace na Položku Všechny relace. Zobrazí se všechny tabulky s relacemi a znázorněnými čarami relací. Skryté tabulky (tabulky, u kterých je zaškrtnuté políčko Skryté v dialogovém okně Vlastnosti tabulky) a jejich relace se nezobrazí, dokud nezaškrtnete políčko Zobrazit skryté objekty v dialogovém okně Možnosti navigace.

  3. Klikněte na čáru relace, kterou chcete změnit. Čára relace se při výběru zobrazí silněji.

  4. Poklikejte na čáru relace. Zobrazí se dialogové okno Upravit relace.

  5. Zaškrtněte políčko Zajistit referenční integritu nebo jeho zaškrtnutí zrušte.

  6. Proveďte další změny relace a klikněte na tlačítko OK.

Pokud vynutíte referenční integritu, platí následující pravidla:

  • Do pole cizího klíče relační tabulky nelze zadat hodnotu, pokud tato hodnota neexistuje v poli primárního klíče primární tabulky – tím by došlo k vytvoření osiřelých záznamů.

  • Z primární tabulky nelze odstranit záznamy, které mají odpovídající záznamy v související tabulce. V tabulce Zaměstnanci například nejde odstranit záznam, ke kterému existují odpovídající objednávky v tabulce Objednávky. Můžete ale odstranit primární záznam a všechny odpovídající záznamy v jedné operaci zaškrtnutím políčka Kaskádové odstranění souvisejících polí.

  • Hodnotu primárního klíče v primární tabulce nemůžete změnit, pokud by tím došlo k vytvoření osiřelých záznamů. Nejde například změnit číslo objednávky v tabulce Objednávky, pokud má tato objednávka přiřazené účetní položky v tabulce Rozpis objednávek. Můžete ale aktualizovat primární záznam a všechny odpovídající záznamy v jedné operaci zaškrtnutím políčka Kaskádová aktualizace souvisejících polí.

    Poznámky: Pokud se vám nedaří povolit referenční integritu, uvědomte si, že k jejímu vynucení jsou požadovány následující podmínky:

    • Společné pole z primární tabulky musí být primárním klíčem nebo musí mít jedinečný index.

    • Společná pole musí mít stejný datový typ. Jediná výjimka je, že pole Automatické číslo může být spojené s polem Číslo, jehož vlastnost Velikost pole má nastavení Dlouhé celé číslo.

    • Obě tabulky se nacházejí ve stejné databázi Accessu. Referenční integritu nemůžete vynucovat v propojených tabulkách. Pokud jsou ale zdrojové tabulky ve formátu Accessu, můžete otevřít databázi, ve které jsou uložené, a povolit v ní referenční integritu.

Nastavení kaskádových možností

Může nastat situace, kdy budete potřebovat změnit hodnotu na straně 1 relace. V takovém případě je nutné, aby Access automaticky aktualizoval všechny řádky, na které to má vliv, při jedné operaci. Tímto způsobem bude aktualizace kompletní, takže databáze nezůstane v nekonzistentním stavu s některými řádky aktualizovanými a jinými ne. Access vám pomůže se tomuto problému vyhnout tím, že podporuje možnost Kaskádová aktualizace souvisejících polí. Pokud vynutíte referenční integritu a zvolíte možnost Kaskádová aktualizace souvisejících polí a následně aktualizujete primární klíč, Access automaticky aktualizuje všechna pole, která na tento primární klíč odkazují.

Může být také nutné odstranit řádek a všechny související záznamy, například záznam Dopravce a všechny související objednávky tohoto dopravce. Z tohoto důvodu Access podporuje možnost Kaskádové odstranění souvisejících polí. Pokud vynutíte referenční integritu a zvolíte možnost Kaskádové odstranění souvisejících polí, Access při odstranění záznamu s primárním klíčem automaticky odstraní všechny záznamy, které na primární klíč odkazují.

Vypnutí a zapnutí nebo odstranění kaskádových aktualizací

  1. Na kartě Databázové nástroje klikněte ve skupině Relace na Relace.

  2. Na kartě Návrh relací klikněte ve skupině Relace na Položku Všechny relace. Zobrazí se všechny tabulky s relacemi a znázorněnými čarami relací. Skryté tabulky (tabulky, u kterých je zaškrtnuté políčko Skryté v dialogovém okně Vlastnosti tabulky) a jejich relace se nezobrazí, dokud nezaškrtnete políčko Zobrazit skryté objekty v dialogovém okně Možnosti navigace.

  3. Klikněte na čáru relace, kterou chcete změnit. Čára relace se při výběru zobrazí silněji.

  4. Poklikejte na čáru relace. Zobrazí se dialogové okno Upravit relace.

  5. Zaškrtněte políčko Zajistit referenční integritu.

  6. Zaškrtněte políčko Kaskádová aktualizace souvisejících polí nebo Kaskádové odstranění souvisejících polí nebo obě tato políčka.

  7. Proveďte další změny relace a klikněte na tlačítko OK.

Poznámka: Jestliže je primárním klíčem pole typu Automatické číslo, nebude mít zaškrtnutí políčka Kaskádová aktualizace souvisejících polí žádný vliv, protože hodnotu v poli typu Automatické číslo nelze změnit.

Začátek stránky

Odstranění relace mezi tabulkami

Důležité informace: Při odebrání relace odebíráte také podporu referenční integrity této relace, když je povolená. Access tak přestane automaticky bránit vytváření osiřelých záznamů na straně N relace.

Pokud chcete odebrat relaci mezi tabulkami, musíte odstranit čáru relace v okně Relace. Umístěte kurzor tak, aby ukazoval na čáru relace, a pak čáru kliknutím vyberte. Čára relace se při výběru zobrazí silněji. Nechte čáru relace vybranou a stiskněte klávesu DELETE.

  1. Na kartě Databázové nástroje klikněte ve skupině Relace na Relace.

  2. Na kartě Návrh relací klikněte ve skupině Relace na Položku Všechny relace. Zobrazí se všechny tabulky s relacemi a znázorněnými čarami relací. Skryté tabulky (tabulky, u kterých je zaškrtnuté políčko Skryté v dialogovém okně Vlastnosti tabulky) a jejich relace se nezobrazí, dokud nezaškrtnete políčko Zobrazit skryté objekty v dialogovém okně Možnosti navigace.

  3. Klikněte na čáru relace, kterou chcete odstranit. Čára relace se při výběru zobrazí silněji.

  4. Stiskněte klávesu DELETE.

  5. Access možná zobrazí dotaz, jestli chcete opravdu trvale odstranit vybranou relaci z databáze. Pokud se tato potvrzovací zpráva zobrazí, klikněte na Ano.

Poznámka: Pokud některou z tabulek použitých v relaci tabulky využívá například jiná osoba nebo proces nebo se používá v otevřeném databázovém objektu (například formuláři), nebudete tuto relaci moct odstranit. Než odeberete relaci, musíte nejdříve zavřít všechny otevřené objekty, které tyto tabulky využívají.

Začátek stránky

Viz také

Přidání vyhledávacího pole do tabulky

Co je okno Relace?

Porovnání dvou tabulek v Accessu a vyhledání shodných dat

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.