Vyhledání a skrytí nebo odstranění duplicitních dat

Důležité :  Tento článek je strojově přeložený – přečtěte si toto upozornění. Anglickou verzi tohoto článku pro referenci najdete tady.

Tento článek popisuje, jak pomocí aplikace Microsoft Office Access 2007 najít a skrýt nebo odstranit duplicitní data. Duplicitní hodnoty byste měli odstranit, kdykoli je to možné, abyste snížili náklady a zvýšili přesnost dat. Office Access 2007 nabízí celou řadu způsobů, jak najít a skrýt nebo odstranit duplicitní hodnoty. Tento článek popisuje, jak se nejběžnější způsoby používají.

V tomto článku

Vysvětlení duplicitních dat

Příprava ukázkových dat

Vyhledání a úprava, skrytí nebo odstranění duplicitních dat v jedné tabulce

Vyhledání a úprava, skrytí nebo odstranění duplicitních dat v několika tabulkách

Vysvětlení duplicitních dat

Jedním z hlavních důvodů používání relačních databází je to, že umožňují zabránit duplicitě dat. Jak ale databáze stárnou, často se v nich objevují duplicitní hodnoty, zvlášť když data zadává víc uživatelů. Odstraněním duplicitních dat se obvykle ušetří výdaje za úložiště a zvýší se přesnost dat. Přesnost dat může následně přispět k přijímání lepších obchodních rozhodnutí. Když třeba zadáte nějakou prodejní objednávku víc než jednou, může zákazník dostat nevyžádané zboží a tato redundance může vyvolat další výdaje za dopravu a účetnictví.

Co duplicita skutečně znamená

Než něco podniknete, abyste identifikovali a odstranili duplicitní záznamy, pamatujte na to, že musíte vycházet ze znalosti dat. Na rozdíl od navrhování databáze nemůžete k přesnému vyhledání a odstranění duplicitních záznamů použít žádnou sadu konkrétních pravidel nebo postupů. Při hledání duplicit pamatujte na jednu věc: Databázové dotazy můžou vracet výsledky, které vypadají jako duplicitní záznamy, ale ve skutečnosti jde o platná data. Ke zdánlivé duplicitě obvykle dochází, když do dotazu nezahrnete pole, která jednoznačně identifikují jednotlivé záznamy. Další informace o tom, jak do dotazu zahrnout nezbytná pole a zabránit falešným duplicitám, najdete dál v tomto článku v části Vysvětlení, kdy nejsou záznamy duplicitní.

Musíte taky pamatovat na to, že nemůžete odstranit všechna duplicitní data, protože určitá duplicita je nutná k tomu, aby databáze správně fungovala. Jinými slovy – databáze může obsahovat nutné i zbytečné redundance a odstranit byste měli jenom ty zbytečné.

Nutné redundance obvykle spadají do dvou kategorií. První typ redundance umožňuje fungování databáze. Můžete například duplikovat data z pole primárního klíče, když potřebujete vytvořit mezi tabulkami relaci 1:N nebo relaci M:N.

Druhý typ nutné redundance vzniká při používání databáze. Můžete třeba víckrát zadat název města, jméno dodavatele nebo časté jméno, jako je Jan Novák. Pokud se to stane, nebezpečí duplicity dat nehrozí, protože ostatní pole v databázi (například hodnoty primárního klíče, adresy a poštovní směrovací čísla) obsahují dost jedinečných informací, které brání tomu, aby byly záznamy považovány za duplicitní.

Zbytečné redundance můžou vznikat různými způsoby:

  • Dva nebo více záznamů mohou obsahovat duplicitní pole.    Dva záznamy mohou být považovány za duplicitní, i když ne všechna pole těchto záznamů obsahují shodné hodnoty. Například na tomto obrázku jsou zobrazeny dva záznamy zákazníka Antonio Moreno Taquería.

    Duplicitní záznamy zákazníka v tabulce Zákazníci

    I když má každý záznam jedinečný kód zákazníka (hodnotu ve sloupci úplně vlevo), hodnoty v polích Jméno, Adresa a Město jsou shodné. V takových situacích může být i částečná shoda dobrým důvodem k tomu, abyste s využitím svých znalostí zkontrolovali, jestli nejsou záznamy duplicitní.

  • Dvě nebo více tabulek můžou obsahovat podobná data.    Můžete například zjistit, že tabulky Zákazníci a Klienti obsahují záznamy o stejných zákaznících.

    Tabulky Klienti a Zákazníci se stejnými daty

    I když tabulky můžou mít odlišnou strukturu, obě obsahují stejný druh informací – data o zákaznících, takže byste měli zvážit sloučení jedinečných (neduplicitních) hodnot do jedné tabulky a odstranění nadbytečné tabulky.

  • Dvě nebo více databází můžou obsahovat podobná data.    Pokud zjistíte, že dvě nebo více databází obsahují podobná data, nebo převezmete databázi, jejíž data se překrývají s údaji aktuální databáze, měli byste porovnat data a struktury obou databází a pak podniknout nezbytné kroky pro jejich sloučení.

    Ruční porovnání databází není jednoduchý úkol, i když jsou databáze malé. Potřebujete-li s porovnáním pomoci, různí prodejci nabízejí nástroje pro porovnávání obsahů a struktur databází aplikace Access.

Poznámka : Pokud jste podnikli kroky k odstranění duplicitních dat z tabulek, ale ve formuláři nebo sestavě se přesto zobrazují duplicitní data, může to být způsobeno nesprávným návrhem formuláře nebo sestavy. Zkontrolujte, jestli jsou podkladové tabulky a dotazy správně propojené a jestli oddíly formuláře nebo sestavy neobsahují více než jeden ovládací prvek, který je vázaný na stejný zdroj.

Další informace o návrhu sestavy najdete v článku Změna nebo úprava sestavy.

Vysvětlení, kdy nejsou záznamy duplicitní

V některých situacích, třeba když se díváte na data vrácená dotazem, to může vypadat jako duplicitní záznamy, i když se zdá, že podkladové tabulky obsahují jenom jedinečné záznamy. Takové problémy můžou nastat, když vaše zobrazení neobsahuje pole, která jednoznačně identifikují záznamy. Například tento obrázek ukazuje data vrácená dotazem.

Zobrazení, které neobsahuje pole, podle něhož by bylo možné záznamy jednoznačně identifikovat

V tomto zobrazení to vypadá, že několik záznamů je duplicitních. Pokud ale do dotazu přidáte jedno nebo několik dalších polí, třeba jména zákazníků nebo pole primárního klíče pro každou objednávku (Kód objednávky), uvidíte, že každý záznam je ve skutečnosti jedinečný, například:

Zobrazení nyní obsahuje pole Kód objednávky, které odstraňuje duplicitu záznamů

Při vytváření dotazu byste měli zpravidla zahrnout pole, která jednoznačně identifikují každý záznam. K tomuto účelu obvykle slouží pole primárního klíče, místo toho ale můžete použít kombinaci jiných polí. Pokud například výsledek dotazu obsahuje víckrát běžné jméno kontaktní osoby a název města, zkuste do dotazu zahrnout telefonní číslo a adresu – tato kombinace by měla stačit k tomu, aby byl každý záznam jedinečný.

Faktory ke zvážení při řešení duplicit

Jak budete zacházet s duplicitními záznamy, záleží na několika faktorech:

  • Podstata a rozsah duplicity.    Pozorujete duplicitní data v jedné tabulce nebo vidíte dvě podobné tabulky (ve stejné databázi nebo ve dvou různých databázích) s překrývajícími se daty? Nebo vidíte duplicitní záznamy v zobrazení, které je založené na dvou nebo více souvisejících tabulkách?

  • Vaše konkrétní požadavky.    Co chcete s duplicitními daty udělat? Chcete záznamy odstranit z databáze nebo je jenom skrýt v zobrazení? Nebo chcete zjistit počet, průměr nebo součet hodnot v duplicitních záznamech? Záleží na tom, které z duplicitních záznamů odstraníte nebo skryjete? Pokud ano, chcete tyto záznamy kontrolovat a odstraňovat ručně nebo je chcete odstranit na základě podmínky? Chcete před odstraňováním záznamů některé záznamy ještě upravit nebo sloučit?

Na základě odpovědí na tyto (a podobné) otázky a na základě vašich znalostí dat můžete vytvořit plán pro zacházení s redundantními daty.

Obecné přípravy na odstranění duplicit

Pokud se rozhodnete duplicitní záznamy odstranit, musíte vzít v úvahu existující relace tabulek. U většiny databází se obvykle používají relace 1:N. Můžete mít třeba malý počet zákazníků, ale každý zákazník vystavuje několik objednávek. Tabulka dat zákazníků je proto v relaci 1:N na straně „1“ a tabulka dat objednávek je na straně „N“.

Až budete pokračovat, pamatujte na toto pravidlo: Pokud jsou data, která chcete odstranit, v relaci 1:N na straně „N“, nemusíte podnikat další kroky a můžete je odstranit. Pokud jsou ale data na straně „1“, musíte v relaci nastavit určitou vlastnost, jinak Access odstranění zabrání.

Další informace o odstraňování dat v relaci 1:N na straně „1“ najdete v článku Odstranění jednoho nebo více záznamů z databáze pomocí odstraňovacího dotazu.

Než začnete redundantní data odstraňovat, zvažte některé z těchto způsobů přípravy databáze:

  • Zajistěte, aby databáze nebyla jen pro čtení.

  • Zajistěte, abyste měli potřebná oprávnění k úpravě nebo odstranění záznamů v databázi.

  • Požádejte ostatní uživatele databáze, aby zavřeli objekty, se kterými chcete pracovat. Tak se vyhnete problémům s uzamknutými záznamy.

    Tip : Pokud se k databázi připojuje mnoho uživatelů, doporučujeme databázi zavřít a znovu ji otevřít ve výhradním režimu. Uděláte to takto: V aplikaci Access klikněte na tlačítko Microsoft Office Obrázek tlačítka a pak klikněte na Otevřít. Vyhledejte a vyberte databázi, klikněte na šipku u tlačítka Otevřít a potom klikněte na Výhradní přístup.

    Otevření souboru ve výhradním režimu

  • Než budete odstraňovat záznamy, zálohujte databázi. Operaci odstranění nelze vrátit zpět. Jedinou možností, jak odstraněné záznamy zachránit, je obnovit je ze záložní kopie. Při operaci odstranění se také mohou odstranit záznamy z relačně propojených tabulek, proto je nejvhodnější před spuštěním této operace zálohovat celou databázi.

    Zálohování databáze

    1. Klikněte na tlačítko Microsoft Obrázek tlačítka , klikněte na šipku u možnosti Spravovat a potom klikněte na Zálohovat databázi.

      Zobrazí se dialogové okno Uložit jako a Access připojí k názvu souboru aktuální datum. Pokud například chcete zálohovat databázi Aktiva, vytvoří se název souboru v tomto tvaru: Aktiva_2006-10-29.

    2. Přijměte výchozí název a umístění nebo vyberte jiný název nebo umístění a potom klikněte na Uložit.

      Access zavře původní soubor, vytvoří jeho záložní kopii a znovu otevře původní soubor.

      Pokud se budete chtít vrátit k verzi v záloze, zavřete původní soubor a přejmenujte ho, abyste záložní kopii mohli dát název původní verze. Přiřaďte záložní kopii název původní verze a otevřete ji v Accessu.

Začátek stránky

Příprava ukázkových dat

Části tohoto článku s postupy obsahují tabulky ukázkových dat. Ukázkové tabulky se v postupech používají k tomu, abyste pochopili, jak fungují dotazy. Když budete chtít, můžete ukázkové tabulky zadat nebo importovat do nové nebo existující databáze.

Access nabízí několik způsobů, jak tyto ukázkové tabulky přidat do databáze. Můžete data zadat ručně, můžete každou tabulku zkopírovat do tabulkového kalkulátoru (jako je Office Excel 2007) a potom listy importovat do Accessu nebo můžete data zkopírovat do textového editoru, jako je Poznámkový blok, a potom je importovat z vytvořených textových souborů.

Postupy v této části popisují, jak zadávat data ručně do prázdného datového listu a taky jak kopírovat ukázkové tabulky do Excelu a potom tyto tabulky importovat do Accessu 2007. Další informace o vytváření a importu textových dat najdete v článku Import a propojení dat z textového souboru.

V postupech v tomto článku se používají tyto tabulky:

Tabulka Zákazníci:

Název společnosti

Jméno kontaktu

Adresa

Město

PSČ

Telefon

Baldwin Museum of Science

Josh Barnhill

1 Main St.

New York

12345

(505) 555-2122

Blue Yonder Airlines

Waleed Heloo

52 1st St.

Boston

23456

(104) 555-2123

Coho Winery

Pica Guido

3122 75th Ave. S.W.

Seattle

34567

(206) 555-2124

Contoso Pharmaceuticals

Jean Philippe Bagel

1 Contoso Blvd.

Londýn

NS1 EW2

(171) 555-2125

Fourth Coffee

Julian Price

Calle Smith 2

Mexico City

56789

(7) 555-2126

Coho Winery

Christine Hughes

3122 75th St. S.

Seattle

34567

(206) 555-2125

Humongous Insurance

Steve Riley

67 Big St.

Tampa

01234

(916) 555-2128

Trey Research

Dana Birkby

2 Nosey Pkwy

Portland

43210

(503) 555-2129

Fourth Coffee

Reshma Patel

Calle Smith 2

Mexico City

56789

(7) 555-2233

Tabulka Zaměstnanci:

Příjmení

Jméno

Adresa

Město

Datum narození

Datum přijetí

Barnhill

Josh

1 Main St.

New York

5. 2. 1968

10. 6. 1994

Heloo

Waleed

52 1st St.

Boston

22. 5. 1957

22. 11. 1996

Guido

Pica

3122 75th Ave. S.W.

Seattle

11. 11. 1960

11. 3. 2000

Bagel

Jean Philippe

1 Contoso Blvd.

Londýn

22. 3. 1964

22. 6. 1998

Price

Julian

Calle Smith 2

Mexico City

5. 6. 1972

5. 1. 2002

Hughes

Christine

3122 75th St. S.

Seattle

23. 1. 1970

23. 4. 1999

Riley

Steve

67 Big St.

Tampa

14. 4. 1964

14. 10. 2004

Birkby

Dana

2 Nosey Pkwy

Portland

29. 10. 1959

29. 3. 1997

Bagel

Jean Philippe

1 Contoso Blvd.

Londýn

22. 3. 1964

20. 6. 1998

Tabulka Dlužné částky:

Název společnosti

Jméno kontaktu

Adresa

Město

PSČ

Telefon

Dlužná částka

Baldwin Museum of Science

Josh Barnhill

1 Main St.

New York

12345

(505) 555-2122

556,78 USD

Blue Yonder Airlines

Waleed Heloo

52 1st St.

Boston

23456

(104) 555-2123

1 893,24 USD

Coho Winery

Pica Guido

3122 75th Ave. S.W.

Seattle

34567

(206) 555-2124

321,79 USD

Contoso Pharmaceuticals

Jean Philippe Bagel

1 Contoso Blvd.

Londýn

NS1 EW2

(171) 555-2125

457,68 GBP

Fourth Coffee

Julian Price

Calle Smith 2

Mexico City

56789

(7) 555-2126

98,75 USD

Coho Winery

Christine Hughes

3122 75th St. S.

Seattle

34567

(206) 555-2125

321,79 USD

Humongous Insurance

Steve Riley

67 Big St.

Tampa

01234

(916) 555-2128

297,45 USD

Trey Research

Dana Birkby

2 Nosey Pkwy

Portland

43210

(503) 555-2129

509,09 USD

Fourth Coffee

Reshma Patel

2 Calle Smith

Mexico City

56789

(7) 555-2233

98,75 USD

Tabulka Klienti:

Název

Adresa

Město

Telefon

Fax

Baldwin Museum of Science

1 Main St.

New York

(505) 555-2122

(505) 555-2122

Blue Yonder Airlines

52 1st St.

Boston

(104) 555-2123

(104) 555-2123

Coho Winery

3122 75th Ave. S.W.

Seattle

(206) 555-2124

(206) 555-2124

Contoso Pharmaceuticals

1 Contoso Blvd.

Londýn

(171) 555-2125

(171) 555-2125

Fourth Coffee

Calle Smith 2

Mexico City

(7) 555-2126

(7) 555-2126

Consolidated Messenger

3122 75th St. S.

Seattle

(206) 555-2125

(206) 555-2129

Graphic Design Institute

67 Big St.

Tampa

(916) 555-2128

(916) 555-2128

Litware, Inc.

3 Microsoft Way

Portland

(503) 555-2129

(503) 555-2110

Tailspin Toys

4 Microsoft Way

Portland

(503) 555-2233

(503) 555-2239

Ruční zadání ukázkových dat

  1. Na kartě Vytvořit klikněte ve skupině Tabulky na Tabulka.

    Obrázek pásu karet

    Access přidá do databáze novou prázdnou tabulku.

    Poznámka : Pokud otevřete novou prázdnou databázi, nemusíte tento krok dělat. Tento krok ale musíte udělat, kdykoli budete potřebovat přidat do databáze tabulku.

  2. Poklikejte v ukázkové tabulce na první buňku v řádku záhlaví a zadejte název pole.

    Access ve výchozím nastavení označuje prázdná pole v řádku záhlaví textem Přidat nové pole, jako tady:

    Nové pole v datovém listu

  3. Pomocí šipkových kláves se přesuňte na další prázdnou buňku záhlaví a zadejte název druhého pole (můžete taky stisknout klávesu TAB nebo poklikat na novou buňku). Tento krok opakujte, dokud nezadáte všechny názvy polí.

  4. Zadejte do ukázkové tabulky data.

    Access při zadávání dat odvodí pro každé pole datový typ. Pokud jsou pro vás relační databáze něčím novým: U každého z polí v tabulkách je potřeba nastavit určitý datový typ, například Číslo, Text nebo Datum a čas. Nastavení datových typů pomáhá zajistit správné zadávání dat a taky pomáhá zabránit chybám, jako je použití telefonního čísla ve výpočtu. U těchto ukázkových tabulek to nechte na aplikaci Access, aby odvodila datové typy.

  5. Až zadávání dat dokončíte, klikněte na Uložit.

    Klávesová zkratka: Stiskněte CTRL+S.

    Zobrazí se dialogové okno Uložit jako.

  6. Do pole Název tabulky zadejte název ukázkové tabulky a pak klikněte na OK.

    Použijte uvedené názvy jednotlivých ukázkových tabulek, protože dotazy v částech s postupy tyto názvy používají.

Vytvoření ukázkových listů

  1. Spusťte tabulkový kalkulátor a vytvořte nový prázdný soubor. Pokud používáte Excel, vytvoří se automaticky nový prázdný sešit.

  2. Zkopírujte první ukázkovou tabulku z předchozí části a vložte ji do prvního listu, počínaje první buňkou.

  3. Způsobem, který nabízí váš tabulkový kalkulátor, dejte listu stejný název, jako má ukázková tabulka. Pokud má ukázková tabulka například název Kategorie, dejte listu stejný název.

  4. Opakováním kroků 2 a 3 zkopírujte jednotlivé ukázkové tabulky do prázdných listů a každý list přejmenujte.

    Poznámka : Může se stát, že bude do souboru tabulkového kalkulátoru potřeba přidat další listy. Informace o tom, jak to udělat, najdete v nápovědě vašeho tabulkového kalkulátoru.

  5. Uložte sešit do vhodného umístění v počítači nebo v síti a přejděte k další skupině kroků.

Vytvoření databázových tabulek z listů

  1. V nové nebo existující databázi:

    Na kartě Externí data klikněte ve skupině Import na Excel.

    Obrázek pásu karet

    – nebo –

    Klikněte na Další a v seznamu vyberte tabulkový kalkulátor.

    Zobrazí se dialogové okno Načíst externí data – Tabulka aplikace <Název aplikace>.

  2. Klikněte na Procházet, otevřete soubor tabulkového kalkulátoru, který jste vytvořili v předchozích krocích, a klikněte na OK.

    Spustí se Průvodce importem z tabulkového kalkulátoru.

  3. Průvodce automaticky vybere první list sešitu (pokud jste postupovali podle pokynů v předchozí části, je to list Zákazníci). Data z listu se zobrazí v dolní části stránky průvodce. Klikněte na tlačítko Další.

  4. Na další stránce průvodce zaškrtněte políčko První řádek obsahuje hlavičky sloupců a potom klikněte na tlačítko Další.

  5. Na další stránce můžete v případě potřeby pomocí textových polí a seznamů ve skupinovém rámečku Možnosti pole změnit názvy a datové typy polí nebo vynechat pole z operace importu. Jinak klikněte na tlačítko Další.

  6. Nechte možnost Primární klíč přidá aplikace Access vybranou a klikněte na tlačítko Další.

  7. Access automaticky navrhne jako název nové tabulky název listu. Název přijměte nebo zadejte jiný název a klikněte na Dokončit.

  8. Opakováním kroků 1 až 7 vytvořte tabulky pro všechny listy excelového sešitu.

Začátek stránky

Vyhledání a úprava, skrytí nebo odstranění duplicitních dat v jedné tabulce

Postupy v následujících částech popisují nejčastější způsoby, jak najít, upravit, skrýt nebo odstranit duplicitní hodnoty v jedné tabulce.

Vyhledání záznamů, ve kterých se některá pole úplně nebo částečně shodují

Zobrazení jedinečných záznamů skrytím duplicit

Zobrazení jedinečných záznamů tím, že určíte, které duplicity se mají ve výsledcích objevit

Použití agregačních funkcí (Count, Sum, Average) pro duplicitní záznamy

Odstranění duplicitních záznamů pomocí odstraňovacího dotazu

Zabránění uživatelům v zadávání duplicitních hodnot

Vyhledání záznamů, ve kterých se některá pole úplně nebo částečně shodují

Postup vyhledání záznamů, které obsahují plně nebo částečně shodné hodnoty, zahrnuje tyto obecné kroky:

  • Vytvořte dotaz pomocí Průvodce vyhledávacím dotazem na duplicitní položky. Dotaz standardně vrací shodné záznamy pouze v případě, že se hodnoty v každém poli shodují znak po znaku. Pokud chcete najít částečné shody, můžete použít v dotazu výraz nebo můžete upravit kód jazyka SQL (Structured Query Language).

  • Volitelně můžete při prohlížení výsledků dotazu v zobrazení Datový list upravit hodnoty polí nebo odstranit některé záznamy.

  • Můžete taky upravit kód jazyka SQL (Structured Query Language) v dotazu a vyhledat hodnoty, které se shodují částečně. Pokud kód jazyka SQL neupravíte, vrátí dotaz jenom ty záznamy, u kterých se hodnoty v určených polích shodují znak po znaku.

Postup v této části popisuje, jak vytvořit dotaz na duplicitní položky a jak tento dotaz upravit, aby hledal částečné shody. V postupu se používá tabulka Zákazníci uvedená v následující tabulce. Pokud chcete tuto tabulku použít v databázi, podívejte se do části Příprava ukázkových dat, kterou najdete výše v tomto článku. Postup můžete upravit podle vašich dat.

Název společnosti

Jméno kontaktu

Adresa

Město

PSČ

Telefon

Baldwin Museum of Science

Josh Barnhill

1 Main St.

New York

12345

(505) 555-2122

Blue Yonder Airlines

Waleed Heloo

52 1st St.

Boston

23456

(104) 555-2123

Coho Winery

Pica Guido

3122 75th Ave. S.W.

Seattle

34567

(206) 555-2124

Contoso Pharmaceuticals

Jean Philippe Bagel

1 Contoso Blvd.

Londýn

NS1 EW2

(171) 555-2125

Fourth Coffee

Julian Price

Calle Smith 2

Mexico City

56789

(7) 555-2126

Coho Winery

Christine Hughes

3122 75th St. S.

Seattle

34567

(206) 555-2125

Humongous Insurance

Steve Riley

67 Big St.

Tampa

01234

(916) 555-2128

Trey Research

Dana Birkby

2 Nosey Pkwy

Portland

43210

(503) 555-2129

Fourth Coffee

Reshma Patel

Calle Smith 2

Mexico City

56789

(7) 555-2233

Vytvoření dotazu na duplicitní položky

  1. Na kartě Vytvořit klikněte ve skupině Jiné na Průvodce dotazem.

    Obrázek pásu karet aplikace Access

  2. V dialogovém okně Nový dotaz klikněte na položku Průvodce vyhledávacím dotazem na duplicitní položky a poté klikněte na tlačítko OK.

    Pokud se zobrazí zpráva s upozorněním, že tato funkce není nainstalovaná, klikněte na Ano a průvodce nainstalujte.

  3. V seznamu tabulek vyberte tabulku, která obsahuje duplicitní data, a klikněte na tlačítko Další.

  4. V seznamu dostupných polí vyberte jenom pole, která obsahují duplicitní informace. Pokud používáte tabulku Zákazníci, přidejte jenom pole Název společnosti, Adresa a Město, protože jenom tato pole obsahují hodnoty, které se shodují znak po znaku. Klikněte na tlačítko Další.

    Poznámka : Pokud by pole, která přidáte v tomto kroku, neobsahovala shody znak po znaku, nemusel by dotaz vrátit žádné výsledky.

  5. V dalším seznamu dostupných polí vyberte pole obsahující data, která chcete zobrazit nebo aktualizovat, nebo pole obsahující data, která vám pomohou odlišit duplicitní záznamy od neduplicitních. Pokud jste použili tabulku Zákazníci, přidejte pole Jméno kontaktu a Telefon, protože data v těchto polích vám mohou pomoci najít duplicitní hodnoty a případně zjistit, proč byly tyto hodnoty zadány. Klikněte na tlačítko Další.

  6. Přijměte navržený název dotazu (Duplicitní hodnoty v tabulce Zákazníci) nebo zadejte vlastní název a spusťte dotaz kliknutím na tlačítko Dokončit. Pokud jste použili tabulku Zákazníci, zobrazí se tento výsledek:

Název společnosti

Adresa

Město

Jméno kontaktu

Telefon

Fourth Coffee

Calle Smith 2

Mexico City

Julian Price

(7) 555-2126

Fourth Coffee

Calle Smith 2

Mexico City

Reshma Patel

(7) 555-2233

  1. Při vytváření tabulky Zákazníci jste si možná všimli více než dvou duplicitních záznamů (tabulka obsahuje čtyři). Ostatní duplicitní záznamy se nezobrazí, protože hodnoty v poli Adresa se neshodují znak po znaku. Dotaz můžete upravit tak, aby vracel hodnoty, které se shodují částečně – postup je popsán v následujících krocích.

Úprava dotazu pro vyhledání částečných shod

  1. Přepněte dotaz do Zobrazení SQL. Můžete to provést dvěma způsoby:

    • Klikněte pravým tlačítkem myši na kartu dotazu a vyberte příkaz Zobrazení SQL.

    • V pravém dolním rohu okna dotazu klikněte na tlačítko Zobrazení SQL.

  2. Upravte kód v jazyku SQL tak, aby vyhledával a porovnával částečné hodnoty.

    Pokud jste v předchozích krocích použili tabulku Zákazníci, zobrazí se tento příkaz SQL:

    SELECT Zákazníci.[Název společnosti], Zákazníci.[Adresa], Zákazníci.[Město], Zákazníci.[Jméno kontaktu], Zákazníci.[Telefon]
    FROM Zákazníci
    WHERE (((Zákazníci.[Název společnosti]) In (SELECT [Název společnosti] FROM [Zákazníci] As Tmp GROUP BY [Název společnosti],[Adresa],[Město] HAVING Count(*)>1 And [Adresa] = [Zákazníci].[Adresa] And [Město] = [Zákazníci].[Město])))
    ORDER BY Zákazníci.[Název společnosti], Zákazníci.[Adresa], Zákazníci.[Město];

    V tomto případě klauzule WHERE používá druhý příkaz SELECT k porovnání každého záznamu se všemi ostatními záznamy v tabulce ke zjištění skupin duplicitních položek.

    Předpokládejme, že potřebujete změnit v dotazu pole Adresa tak, aby dotaz vrátil částečné shody. Následující tabulka ukazuje, jak změnit příkaz tak, aby se muselo shodovat jenom prvních sedm znaků pole. Změny jsou zobrazené tučně:

Příkaz SQL

Popis

SELECT Zákazníci.[Název společnosti], Zákazníci.[Adresa], Zákazníci.[Město], Zákazníci.[Jméno kontaktu], Zákazníci.[Telefon]

Žádné změny. Pro každou skupinu duplicitních záznamů chcete zobrazit stejná pole, včetně celého pole Adresa.

FROM Zákazníci

Beze změny

WHERE (((Zákazníci.[Název společnosti]) In (SELECT [Název společnosti] FROM [Zákazníci] As Tmp GROUP BY [Název společnosti],Left([Adresa],7), [Město] HAVING

Nahraďte pole([Adresa]) voláním funkce, která zpracuje pole Adresa (Left([Adresa],7)), aby zjistila duplicitu. Místo celé hodnoty pole se bude testovat prvních sedm znaků pole Adresa. Pokud byste chtěli porovnávat méně znaků, zadejte menší číslo. Pokud byste chtěli porovnávat víc znaků, zadejte větší číslo.

Count(*)>1 And Left([Adresa],7) =Left([Zákazníci].[Adresa],7) And [Město] = [Zákazníci].[Město])))

Aby se porovnávalo prvních sedm znaků v poli Adresa jednoho záznamu s prvními sedmi znaky v poli Adresa jiného záznamu, nahraďte pole [Adresa] voláním funkce Left([Adresa],7) a taky nahraďte pole [Zákazníci].[Adresa] voláním funkce Left([Zákazníci].[Adresa],7).

ORDER BY Zákazníci.[Název společnosti], Zákazníci.[Adresa], Zákazníci.[Město];

Beze změny

  1. Po dokončení úprav příkazu klikněte na tlačítko Spustit Obrázek tlačítka . Tím dotaz spustíte a zobrazíte výsledky v zobrazení Datový list.

    Dotaz teď vrátí všechny čtyři duplicitní záznamy, protože porovnává jenom prvních 7 znaků v poli Adresa (zleva):

Název společnosti

Adresa

Město

Jméno kontaktu

Telefon

Coho Winery

3122 75th Ave. S.W.

Seattle

Pica Guido

(206) 555-2124

Coho Winery

3122 75th St. S.W

Seattle

Christine Hughes

(206) 555-2125

Fourth Coffee

Calle Smith 2

Mexico City

Julian Price

(7) 555-2126

Fourth Coffee

Calle Smith 2

Mexico City

Reshma Patel

(7) 555-2233

Ruční úpravy záznamů

  1. Dotaz, který jste vytvořili předchozím postupem, otevřete v zobrazení Datový list.

  2. Proveďte jednu z následujících akcí:

    • Pokud chcete upravit hodnotu v poli, vyberte pole a zadejte novou hodnotu.

    • Pokud chcete odstranit celý záznam (řádek), klikněte na volič řádku (prázdné pole na levé straně řádku) a stiskněte klávesu DELETE.

      Poznámka : Pokud najdete velký počet duplicitních záznamů (víc, než byste chtěli odstraňovat ručně), můžete tyto záznamy odstranit vytvořením a spuštěním odstraňovacího dotazu. Základní kroky pro vytvoření a spuštění odstraňovacího dotazu najdete dál v tomto tématu v části Odstranění duplicitních záznamů pomocí odstraňovacího dotazu.

      Podrobnější informace o používání odstraňovacích dotazů, včetně informací o tom, jak naplánovat odstranění a jak změnit relace tabulky, najdete v článku Odstranění jednoho nebo více záznamů z databáze pomocí odstraňovacího dotazu.

Na začátek této části

Zobrazení jedinečných záznamů skrytím duplicit

Většina databázových tabulek obsahuje pole, které jednoznačně identifikuje každý záznam – obvykle pole primárního klíče. Pokud navrhnete dotaz a tyto typy polí skryjete nebo vynecháte, můžete získat výsledky, které vypadají jako duplicitní záznamy, protože se hodnoty ve všech vrácených polích shodují.

Například tento obrázek ukazuje výsledek dotazu, ve kterém dvě objednávky (v červeném rámečku) vypadají jako duplicitní.

Dotaz založený na tabulce Zákazníci, ve kterém dva záznamy obsahují ve všech vrácených polích shodné hodnoty

Pokud by ale dotaz zahrnoval pole primárního klíče, jako třeba Kód objednávky, nebo některé jiné pole, které jednoznačně identifikuje každý záznam, jako třeba datum vyřízení, viděli byste, že záznamy nejsou duplicitní. Postup v této části popisuje, jak skrýt duplicitní záznamy, když se shodují hodnoty ve všech polích vrácených dotazem. Můžete třeba skrýt jeden ze záznamů pro zákazníka Antonio Moreno Taqueria, ale nemůžete skrýt záznamy pro zákazníka Blauer See Delikatessen, protože pole Adresa obsahují různé hodnoty.

Až budete pokračovat, pamatujte na toto pravidlo: Dva nebo více záznamů jsou považované za duplicitní jenom v případě, že všechna pole ve výsledcích dotazu obsahují stejné hodnoty. Pokud se hodnoty liší třeba jenom v jednom poli, je každý záznam jedinečný a pomocí způsobů zde popsaných nemůžete tyto záznamy skrýt. Pokud byste chtěli tento druh duplicitních záznamů skrýt, můžete to udělat pomocí souhrnného dotazu s agregační funkcí, jako je FIRST, MIN, MAX a podobně. Informace o tom, jak to udělat, najdete dál v tomto článku v části Zobrazení jedinečných záznamů tím, že určíte, které duplicity se mají ve výsledcích objevit.

Access nabízí dva způsoby, jak v sadě výsledků dotazu zobrazit jenom jedinečné hodnoty:

  • Pokud jste skryli pole primárního klíče (nebo některé jiné pole, které zajišťuje jedinečnost záznamů), zase tento sloupec zobrazte.

  • Vytvořte výběrový dotaz a nastavte u něho vlastnost Jedinečné hodnoty na Ano. Když takový dotaz najde duplicitní hodnoty, zobrazí z těchto duplicit jenom jednu (první, kterou najde) a zbývající skryje.

Postupy v této části popisují použití obou těchto způsobů.

Zobrazení skrytých polí

  1. Když máte dotaz otevřený v zobrazení Datový list, klikněte pravým tlačítkem na řádek záhlaví (řádek obsahující záhlaví sloupců) a pak klikněte na Zobrazit skryté sloupce.

  2. V dialogovém okně Zobrazit skryté sloupce zaškrtněte políčko vedle každého pole, které chcete přidat do datového listu, a pak klikněte na OK.

Nastavení vlastnosti Jedinečné hodnoty

Poznámka : Když u dotazu nastavíte vlastnost Jedinečné hodnoty na Ano, nepůjdou u dotazu v zobrazení Datový list upravovat hodnoty polí nebo odstraňovat data. Abyste mohli data upravit nebo odstranit, otevřete v zobrazení Datový list podkladovou tabulku dotazu.

  1. Na kartě Vytvořit klikněte ve skupině Jiné na Průvodce dotazem.

    Obrázek pásu karet aplikace Access

  2. V dialogovém okně Nový dotaz klikněte na Průvodce jednoduchým dotazem a potom na OK.

    Pokud se zobrazí zpráva s upozorněním, že tato funkce není nainstalovaná, klikněte na Ano a průvodce nainstalujte.

  3. V seznamu tabulek vyberte tabulku, která obsahuje duplicitní data, a klikněte na tlačítko Další.

  4. V seznamu dostupných polí vyberte jenom pole, která obsahují duplicitní informace, a klikněte na tlačítko Další.

  5. Nevybírejte žádná další pole a klikněte znova na tlačítko Další. Přidáním dalších polí byste mohli způsobit, že Access by některé duplicitní záznamy považoval za jedinečné.

  6. Přijměte navržený název dotazu nebo zadejte vlastní název, klikněte na Změnit návrh dotazu a kliknutím na Dokončit otevřete dotaz v návrhovém zobrazení.

  7. Klikněte pravým tlačítkem myši do prázdné oblasti v horní polovině návrháře dotazu a potom klikněte na Vlastnosti.

  8. V seznamu vlastností najděte vlastnost Jedinečné hodnoty a změňte ji na Ano.

    Zobrazení seznamu vlastností dotazu

  9. Kliknutím na tlačítko Spustit Obrázek tlačítka spusťte dotaz a zobrazte výsledky v zobrazení Datový list. Pokud data obsahují duplicitní záznamy, zobrazí se jenom jeden z těchto záznamů.

Na začátek této části

Zobrazení jedinečných záznamů tím, že určíte, které duplicity se mají ve výsledcích objevit

Když máte duplicitní záznamy, můžete chtít vidět jenom jedinečné hodnoty – jeden záznam z každé sady duplicitních záznamů. K zobrazení určitého duplicitního záznamu můžete použít typ dotazu, který se nazývá souhrnný dotaz. Když do souhrnného dotazu přidáte pole, bude dotaz považovat každé pole za skupinu a vy můžete pro data ve skupině použít typ funkce, která se nazývá agregační funkce. Tyto funkce můžou následně ze sady duplicitních záznamů vrátit jeden záznam.

Souhrnný dotaz a agregační funkci můžete použít pro tato data několika způsoby:

  • Pomocí funkce First můžete zobrazit jenom záznam, který byl vložený jako první.

  • Pomocí funkce Last můžete zobrazit jenom záznam, který byl vložený jako poslední.

  • Pomocí funkce Max nebo Min můžete zobrazit jenom záznam s největší nebo nejmenší hodnotou v určitém poli. Například pomocí funkce Max můžete zobrazit záznam s nejnovějším datem a pomocí funkce Min záznam s nejstarším datem.

    Poznámka : Data vrácená tímto typem dotazu nelze upravovat. Abyste mohli data upravit nebo odstranit, otevřete v zobrazení Datový list podkladovou tabulku dotazu.

Postupy v této části popisují, jak zobrazit původní, nejnovější a nejstarší záznamy. V postupech se používá tabulka Zaměstnanci.

Příjmení

Jméno

Adresa

Město

Datum narození

Datum přijetí

Barnhill

Josh

1 Main St.

New York

5. 2. 1968

10. 6. 1994

Heloo

Waleed

52 1st St.

Boston

22. 5. 1957

22. 11. 1996

Guido

Pica

3122 75th Ave. S.W.

Seattle

11. 11. 1960

11. 3. 2000

Bagel

Jean Philippe

1 Contoso Blvd.

Londýn

22. 3. 1964

22. 6. 1998

Price

Julian

Calle Smith 2

Mexico City

5. 6. 1972

5. 1. 2002

Hughes

Christine

3122 75th St. S.

Seattle

23. 1. 1970

23. 4. 1999

Riley

Steve

67 Big St.

Tampa

14. 4. 1964

14. 10. 2004

Birkby

Dana

2 Nosey Pkwy

Portland

29. 10. 1959

29. 3. 1997

Bagel

Jean Philippe

1 Contoso Blvd.

Londýn

22. 3. 1964

20. 6. 1998

Pokud chcete tuto tabulku použít v databázi, podívejte se na postup v části Příprava ukázkových dat, kterou najdete výše v tomto článku.

Použití souhrnného dotazu

  1. Na kartě Vytvořit klikněte ve skupině Jiné na Návrh dotazu.

    Obrázek pásu karet aplikace Access

  2. V dialogovém okně Zobrazit tabulku poklikejte na tabulku, která obsahuje duplicitní data, a potom klikněte na Zavřít.

    Tabulka se zobrazí v horní části návrháře dotazu.

  3. Přidejte jenom pole, která obsahují duplicitní data. Na pole můžete poklikat nebo ho můžete z okna tabulky přetáhnout do řádku Pole v návrhové mřížce.

    Pokud používáte ukázkovou tabulku Zaměstnanci, přidejte pole Příjmení, Jméno a Datum narození, protože tato pole určují duplicitu.

  4. Přidejte pole, které bude určovat vaše kritérium výběru.

    U ukázkové tabulky Zaměstnanci přidáte pole Datum přijetí, protože toto pole obsahuje pro zaměstnance dvě různé hodnoty.

    Poznámka : Další pole do mřížky nepřidávejte. Souhrnný dotaz musí obsahovat jenom jedno nebo víc polí, která obsahují duplicitní data, a jedno další pole, které obsahuje data pro vaši podmínku.

  5. Na kartě Návrh klikněte ve skupině Zobrazit či skrýt na tlačítko Souhrny Obrázek tlačítka . V návrhové mřížce se objeví řádek Souhrn a ve sloupcích obsahujících sloupce tabulky se objeví Seskupit.

  6. Nechte řádek Souhrn nastavený pro všechna pole na Seskupit a kliknutím na tlačítko Spustit Obrázek tlačítka spusťte dotaz a zobrazte tak výsledky v zobrazení Datový list. Pokud jste použili data z výše uvedené tabulky, dotaz vrátí zaměstnance Jean Philippe Bagel dvakrát, protože jeho duplicitní záznamy obsahují různá data přijetí.

  7. Přepněte zpátky do návrhového zobrazení a zadejte podmínku pro výběr jednoho z duplicitních záznamů. Když používáte ukázková data, změňte hodnotu ve sloupci Datum přijetí v řádku Souhrn takto:

    • Pokud chcete zobrazit původní záznam, změňte hodnotu na First.

    • Pokud chcete zobrazit nejnověji vložený záznam, změňte hodnotu na Last.

    • Pokud chcete vybrat záznam na základě hodnoty v konkrétním poli, použijte funkci Max nebo Min. V tomto příkladu chcete zobrazit záznam s nejstarším datem přijetí. Uděláte to tak, že hodnotu změníte na Min.

  8. Kliknutím na tlačítko Spustit Obrázek tlačítka spusťte dotaz a zobrazte výsledky v zobrazení Datový list.

Pokud dotaz vrací požadované výsledky, můžete ho změnit na odstraňovací dotaz a jeho spuštěním pak snadno a rychle odstranit duplicitní záznamy. Další informace o spuštění odstraňovacího dotazu najdete dál v tomto článku v části Odstranění duplicitních záznamů pomocí odstraňovacího dotazu.

Na začátek této části

Použití agregačních funkcí (Count, Sum, Average) pro duplicitní záznamy

Pomocí souhrnného dotazu můžete nejen vrátit určitý záznam ze skupiny duplicitních záznamů, ale použitím agregačních funkcí můžete taky spočítat počet duplicitních záznamů nebo vypočítat pro skupinu duplicitních záznamů souhrn dat. Tyto funkce obvykle použijete dřív, než podniknete nějaké kroky ke sloučení nebo odstranění duplicitních dat.

Uděláte to tak, že vytvoříte souhrnný dotaz, který pomocí agregačních funkcí (Count, Sum a Average) shrne duplicitní data tabulky.

Poznámka : Když souhrnný dotaz zobrazíte v zobrazení Datový list, nemůžete upravovat hodnoty polí nebo odstraňovat záznamy. Abyste mohli data upravit nebo odstranit, otevřete v zobrazení Datový list podkladovou tabulku dotazu.

Postup v této části využívá tabulku Dlužné částky.

Název společnosti

Jméno kontaktu

Adresa

Město

PSČ

Telefon

Dlužná částka

Baldwin Museum of Science

Josh Barnhill

1 Main St.

New York

12345

(505) 555-2122

556,78 USD

Blue Yonder Airlines

Waleed Heloo

52 1st St.

Boston

23456

(104) 555-2123

1 893,24 USD

Coho Winery

Pica Guido

3122 75th Ave. S.W.

Seattle

34567

(206) 555-2124

321,79 USD

Contoso Pharmaceuticals

Jean Philippe Bagel

1 Contoso Blvd.

Londýn

NS1 EW2

(171) 555-2125

457,68 GBP

Fourth Coffee

Julian Price

Calle Smith 2

Mexico City

56789

(7) 555-2126

98,75 USD

Coho Winery

Christine Hughes

3122 75th St. S.

Seattle

34567

(206) 555-2125

321,79 USD

Humongous Insurance

Steve Riley

67 Big St.

Tampa

01234

(916) 555-2128

297,45 USD

Trey Research

Dana Birkby

2 Nosey Pkwy

Portland

43210

(503) 555-2129

509,09 USD

Fourth Coffee

Reshma Patel

2 Calle Smith

Mexico City

56789

(7) 555-2233

98,75 USD

Pokud chcete tuto tabulku použít v databázi, podívejte se na postup v části Příprava ukázkových dat, kterou najdete výše v tomto článku.

Vytvoření souhrnného dotazu

  1. Na kartě Vytvořit klikněte ve skupině Jiné na Návrh dotazu.

    Obrázek pásu karet aplikace Access

  2. V dialogovém okně Zobrazit tabulku poklikejte na tabulku, kterou chcete v dotazu použít, (nebo klikněte na Přidat) a pak zavřete dialogové okno kliknutím na Zavřít. Pokud používáte ukázková data, přidejte do dotazu tabulku Dlužné částky.

  3. Přidejte pole, která obsahují duplicitní data.

    Pokud používáte tabulku Dlužné částky, přidejte pole Název společnosti a Město, protože tato pole určují duplicitu.

  4. Přidejte pole, které bude určovat kritérium výběru. Pokud používáte tabulku Dlužné částky, přidejte pole Dlužná částka.

  5. Na kartě Návrh klikněte ve skupině Zobrazit či skrýt na tlačítko Souhrny Obrázek tlačítka . V návrhové mřížce se objeví řádek Souhrn a pro každé pole se v tomto řádku objeví Seskupit.

  6. Udělejte jednu z těchto věcí:

    • Pokud chcete spočítat počet záznamů, vyberte pole obsahující hodnoty, které chcete spočítat, a změňte u tohoto pole hodnotu v řádku Souhrn na Count. Pokud používáte ukázková data, nastavte na Count hodnotu v poli Dlužná částka.

    • Pokud chcete spočítat celkovou částku, nastavte hodnotu v poli na Sum.

      Poznámka : Souhrnný dotaz může zobrazit jenom souhrnné informace. Neumožňuje zobrazit jednotlivé hodnoty.

  7. Kliknutím na tlačítko Spustit Obrázek tlačítka spusťte dotaz a zobrazte výsledky v zobrazení Datový list.

Na začátek této části

Odstranění duplicitních záznamů pomocí odstraňovacího dotazu

Po ověření, že tabulka obsahuje duplicitní záznamy, můžete odstranit nežádoucí data vytvořením a spuštěním odstraňovacího dotazu. Postup vytvoření a spuštění odstraňovacího dotazu obvykle zahrnuje tyto obecné kroky:

  • Naplánujte odstranění. V tomto kroku určíte, jestli data, která chcete odstranit, souvisejí s daty v jiné tabulce. Pokud ano, musíte zjistit, jestli jsou tato data v relaci 1:N na straně „1“, nebo na straně „N“. Pokud jsou data na straně „1“, musíte u relace povolit určitou vlastnost, která umožňuje data odstranit. Pokud jsou data na straně „N“, nemusíte nic dělat a můžete odstraňovací dotaz vytvořit a spustit. Relace v databázi můžete prozkoumat pomocí nástroje Relace. Nástroj Relace spustíte tak, že na kartě Databázové nástroje ve skupině Zobrazit či skrýt kliknete na tlačítko Vztahy.

    Další informace o plánování a spouštění odstraňovacích dotazů najdete v článku Odstranění jednoho nebo více záznamů z databáze pomocí odstraňovacího dotazu.

  • Vytvořte dotaz, například výběrový dotaz nebo dotaz vracející jedinečné hodnoty, a pak přidejte nebo změňte kritéria tak, aby dotaz vrátil jenom data, která chcete odstranit.

  • Změňte tento dotaz na odstraňovací dotaz a jeho spuštěním pak odstraňte nežádoucí data.

Důležité : Výsledek spuštění odstraňovacího dotazu nejde vrátit zpět. Z tohoto důvodu byste měli před spuštěním odstraňovacího dotazu zálohovat databázi. Informace o zálohování databáze najdete výše v tomto článku v části Zálohování databáze.

Následující postupy ukazují, jak vytvořit výběrový dotaz, jak ho změnit na odstraňovací dotaz a spuštěním dotazu odstranit data.

Vytvoření výběrového dotazu

  1. Na kartě Vytvořit klikněte ve skupině Jiné na Návrh dotazu.

    Obrázek pásu karet aplikace Access

    Otevře se návrhář dotazu a zobrazí se dialogové okno Zobrazit tabulku.

  2. Vyberte tabulku na straně "1" relace, klikněte na Přidat a potom klikněte na Zavřít.

    Tabulka se zobrazí v podobě okna v horní části návrhové mřížky dotazu. Okno obsahuje seznam všech polí v tabulce. Na tomto obrázku je znázorněna typická tabulka v návrháři dotazu.

    Tabulka v Návrháři dotazu

  3. Poklikáním na hvězdičku (*) přidejte do návrhové mřížky všechna pole tabulky.

    Všechna pole tabulky přidáte proto, aby odstraňovací dotaz mohl odstranit z tabulky celé záznamy (řádky).

  4. Můžete taky přidat další sloupec pro zadání kritéria.

    Předpokládejme například, že zákazník s vámi ukončí spolupráci a vy potřebujete odstranit všechny nevyřízené objednávky tohoto zákazníka. Abyste mohli najít jenom tyto záznamy, přidáte do návrhové mřížky pole Kód zákazníka a Datum objednávky.

  5. Pokud jste udělali předchozí krok, zadejte kritérium v návrhové mřížce do řádku Kritéria.

    Kritérium musíte použít, aby dotaz vracel jenom ty záznamy, které chcete odstranit. Jinak by odstraňovací dotaz odstranil všechny záznamy tabulky. Když budete pokračovat v příkladu z předchozího kroku, zadáte kód zákazníka, který s vámi ukončil spolupráci, a datum, kdy přestaly být objednávky tohoto zákazníka platné.

    Další informace o používání kritérií najdete v článku Odstranění jednoho nebo více záznamů z databáze pomocí odstraňovacího dotazu.

  6. Pokud jste udělali předchozí krok, zrušte u všech polí kritérií zaškrtnutí políček Zobrazit.

  7. Na kartě Návrh klikněte ve skupině Výsledky na tlačítko Spustit.

    Ověřte, jestli dotaz vrací záznamy, které chcete odstranit.

  8. Nechte dotaz otevřený a přejděte na následující postup.

Změna výběrového dotazu na odstraňovací dotaz a odstranění dat spuštěním dotazu

  1. Kliknutím na Návrhové zobrazení přepněte ze zobrazení datového listu na zobrazení návrháře dotazu.

  2. Na kartě Návrh klikněte ve skupině Typ dotazu na tlačítko Odstranit.

    Access změní výběrový dotaz na odstraňovací, skryje řádek Zobrazit ve spodní části návrhové mřížky a přidá do ní řádek Odstranit.

    Zkontrolujte, jestli řádek Odstranit ve sloupci * (všechna pole) zobrazuje možnost From. Ve všech sloupcích kritérií by se mělo zobrazit slovo Kde.

  3. Pokud chcete opravdu data odstranit, klikněte na Spustit Obrázek tlačítka , abyste dotaz spustili.

    Access vás vyzve, abyste požadavek na odstranění záznamů potvrdili.

    Když kliknete na Ano, data se odstraní.

Skrytí potvrzovací zprávy

Tyto kroky proveďte, pokud nechcete, aby se při každém spuštění odstraňovacího nebo jiného akčního dotazu zobrazovala potvrzovací zpráva.

  • Klikněte na tlačítko Microsoft Office Obrázek tlačítka a pak klikněte na Možnosti aplikace Access.

    Zobrazí se dialogové okno Možnosti aplikace Access.

  • Klikněte na Upřesnit a v části Úpravy pod položkou Potvrzení zrušte zaškrtnutí políčka Akční dotazy.

  • Kliknutím na OK zavřete dialogové okno Možnosti aplikace Access.

Na začátek této části

Zabránění uživatelům v zadávání duplicitních hodnot

Uživatelům můžete zabránit v zadávání duplicitních dat implementací několika pravidel:

  • Nastavte pole tak, aby mohlo obsahovat jenom jedinečné hodnoty.    Toto pravidlo můžete implementovat některým z těchto způsobů:

    • Nastavte, že toto pole bude primárním klíčem. To lze provést pouze v případě, že tabulka dosud nemá určený primární klíč. Chcete-li nastavit pole jako primární klíč, otevřete tabulku v návrhovém zobrazení, klikněte na požadované pole pravým tlačítkem myši a v místní nabídce klikněte na příkaz Primární klíč Obrázek tlačítka . Pole s primárním klíčem akceptuje pouze jedinečné hodnoty a upozorní uživatele, chtějí-li do něho zadat duplicitní hodnotu.

    • Pokud už tabulka primární klíč má, v návrhovém zobrazení tabulky nastavte u pole vlastnost Indexovat na Ano (bez duplicity). Takto nastavená vlastnost bude bránit tomu, aby pole přijalo stejnou hodnotu ve víc než jednom záznamu. Uvědomte si ale, že v některých případech, jako třeba u polí obsahujících jméno nebo název města, jsou duplicity nutné.

  • Nastavte, že kombinace hodnot v několika polích musí být v každém záznamu jedinečná.    Předpokládejme například, že máte tabulku dat kontaktů. U takové tabulky můžete jako primární klíč určit kombinaci polí, například Jméno kontaktu, Adresa a Město.

    Tento přístup funguje, protože je velmi nepravděpodobné, že by dvě kontaktní osoby se stejným jménem měly taky stejnou adresu a město.

    Při vytváření primárního klíče tvořeného více poli postupujte takto:

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

    2. Kliknutím na volič řádku nalevo od prvního pole vyberte celý řádek.

    3. Podržte stisknutou klávesu CTRL a klikněte na voliče řádků dalších polí, která chcete zahrnout do primárního klíče.

    4. Klikněte pravým tlačítkem myši a potom v místní nabídce klikněte na Primární klíč Obrázek tlačítka .

      Tímto postupem se pro kombinaci polí primárního klíče nastaví vlastnost Indexovat na hodnotu Ano (duplicita povolena), takže je pak například možné zadat do více záznamů stejné jméno, adresu nebo město, ale nelze do více záznamů zadat stejnou kombinaci jména, adresy a města. Můžete mít například dvě kontaktní osoby se jménem Jean Philippe Bagel, které bydlí na adrese 2345 Main Street, pokud obě nežijí v Londýně.

Na začátek této části

Začátek stránky

Vyhledání a úprava, skrytí nebo odstranění duplicitních dat v několika tabulkách

V následujících částech popíšeme některé způsoby, jak můžete najít a upravit, skrýt nebo odstranit duplicitní záznamy, které existují ve více tabulkách. Takové duplicity obvykle vzniknou, když spojíte dvě databáze do jedné.

Zobrazení duplicit ze dvou tabulek za sebou

Zobrazení jenom jednoho duplicitního záznamu ze dvou tabulek

Zobrazení jenom duplicitních záznamů existujících v obou tabulkách

Zobrazení jenom těch záznamů z jedné tabulky, které nemají odpovídající záznam v druhé tabulce

Odstranění duplicitních záznamů z jedné tabulky a připojení zbývajících záznamů k druhé tabulce

Zobrazení jenom jedinečných záznamů při zobrazování dat ze souvisejících tabulek

Zobrazení určitého záznamu nebo shrnutí duplicitních dat v souvisejících tabulkách

Zobrazení duplicit ze dvou tabulek za sebou

Často můžete mít ve stejné databázi dvě tabulky, které obsahují duplicitní nebo překrývající se data. Předpokládejme například, že máte tabulku Klienti a tabulku Zákazníci:

Tabulka Klienti    

Název

Adresa

Město

Telefon

Fax

Baldwin Museum of Science

1 Main St.

New York

(505) 555-2122

(505) 555-3123

Blue Yonder Airlines

52 1st St.

Boston

(104) 555-2123

(104) 555-2124

Coho Winery

3122 75th Ave. S.W.

Seattle

(206) 555-2124

(206) 555-2125

Contoso Pharmaceuticals

1 Contoso Blvd.

Londýn

(171) 555-2125

(171) 555-2126

Fourth Coffee

Calle Smith 2

Mexico City

(7) 555-2126

(7) 555-2127

Consolidated Messenger

3122 75th St. S.

Seattle

(206) 555-2125

(206) 555-2129

Graphic Design Institute

67 Big St.

Tampa

(916) 555-2128

(916) 555-2128

Litware, Inc.

3 Microsoft Way

Portland

(503) 555-2129

(503) 555-2110

Tailspin Toys

4 Microsoft Way

Portland

(503) 555-2233

(503) 555-2239

Tabulka Zákazníci    

Název společnosti

Jméno kontaktu

Adresa

Město

PSČ

Telefon

Baldwin Museum of Science

Josh Barnhill

1 Main St.

New York

12345

(505) 555-2122

Blue Yonder Airlines

Waleed Heloo

52 1st St.

Boston

23456

(104) 555-2123

Coho Winery

Pica Guido

3122 75th Ave. S.W.

Seattle

34567

(206) 555-2124

Contoso Pharmaceuticals

Jean Philippe Bagel

1 Contoso Blvd.

Londýn

NS1 EW2

(171) 555-2125

Fourth Coffee

Julian Price

Calle Smith 2

Mexico City

56789

(7) 555-2126

Adventure Works

Christine Hughes

3122 87th Way S.W.

Seattle

34567

(206) 555-2125

Humongous Insurance

Steve Riley

67 Big St.

Tampa

01234

(916) 555-2128

Trey Research

Dana Birkby

2 Nosey Pkwy

Portland

43210

(503) 555-2129

Fabrikam, Inc.

Jesper Aaberg

9 Empire Way

Seattle

56789

(206) 555-2233

Všimněte si, že v tomto případě jednotlivé tabulky neobsahují duplicitní hodnoty, ale pole v obou tabulkách obsahují některé překrývající se hodnoty – třeba data v poli Název v tabulce Klienti a data v poli Název společnosti v tabulce Zákazníci.

Data z obou tabulek můžete kdykoli spojit tak, že obě tabulky sloučíte. Tabulka Klienti ale může obsahovat novější informace o některých zákaznících a tabulka Zákazníci zase o jiných. Nejlepší je postupovat tak, že si prohlédnete obsah obou tabulek a pak se rozhodnete, co chcete zachovat a co odstranit.

Záznamy z obou tabulek můžete zobrazit najednou pomocí sjednocovacího dotazu. Dotaz zobrazí duplicitní záznamy za sebou, takže je můžete snadno porovnat.

Poznámka : Data vrácená sjednocovacím dotazem nemůžete upravovat ani odstraňovat. Abyste mohli data upravit nebo odstranit, otevřete v zobrazení Datový list podkladové tabulky dotazu.

  1. Na kartě Vytvořit klikněte ve skupině Jiné na Návrh dotazu.

    Obrázek pásu karet aplikace Access

    Access vytvoří nový dotaz. Objeví se dialogové okno Zobrazit tabulku.

  2. Dialogové okno Zobrazit tabulku zavřete, aniž byste přidávali do návrhové mřížky tabulky nebo dotazy.

  3. Klikněte pravým tlačítkem myši na kartu dotazu a vyberte příkaz Zobrazení SQL.

  4. Pokud jste používali předchozí ukázkové tabulky, zkopírujte do okna následující příkaz SQL. Pokud používáte vlastní data, použijte následující příkaz jako pomůcku. Použijte následující klauzule SELECT, UNION ALL SELECT a ORDER BY, ale názvy tabulek a polí nahraďte názvy vašich tabulek a polí.

    SELECT [Název společnosti], [Adresa], [Město], [Telefon] FROM [Zákazníci]
    UNION ALL SELECT [Název], [Adresa], [Město], [Telefon] FROM [Klienti]
    ORDER BY [Název společnosti];

    První příkaz SELECT načte záznamy z tabulky Zákazníci. Druhý příkaz SELECT načte záznamy z tabulky Klienti. Klauzule UNION ALL spojí záznamy z obou tabulek. Klauzule ORDER BY seřadí záznamy tak, aby duplicitní záznamy následovaly za sebou a bylo možné je snadno porovnat.

    Poznámka : Každý příkaz SELECT musí vracet shodný počet polí ve stejném pořadí. Odpovídající pole musí mít kompatibilní datové typy s jedinou výjimkou: jako odpovídající pole lze použít pole typů Číslo a Text. Názvy polí se mohou lišit.

  5. Kliknutím na tlačítko Spustit Obrázek tlačítka spusťte dotaz a zobrazte výsledky v zobrazení Datový list.

    Pokud používáte záznamy z výše uvedených tabulek, bude zobrazení obsahovat 18 záznamů – všech 9 záznamů z tabulky Zákazníci a všech 9 záznamů z tabulky Klienti.

    Dotaz uložte a zavřete zobrazení. Tento dotaz použijeme v další části.

Na začátek této části

Zobrazení jenom jednoho duplicitního záznamu ze dvou tabulek

Někdy můžete chtít zobrazit jenom jedinečné záznamy ze dvou podobných tabulek. Pokud nějaký záznam existuje v obou tabulkách, můžete do výsledků zahrnout záznam z první tabulky a ignorovat odpovídající záznam z druhé tabulky.

Access považuje záznamy z různých tabulek za duplicitní jenom v případě, že se shodují hodnoty ve všech vybraných polích. Pokud do dotazu například zahrnete pole Název společnosti, Město, Adresa, Telefon a Fax, musí se shodovat hodnoty ve všech pěti polích, aby Access považoval záznamy za duplicitní.

Postup v této části popisuje, jak můžete upravit dotaz z předchozí části, aby zobrazil všechny záznamy z tabulky Zákazníci a jenom jedinečné záznamy z tabulky Klienti.

Poznámka : Data vrácená sjednocovacím dotazem nemůžete upravovat. Abyste mohli data upravit nebo odstranit, otevřete v zobrazení Datový list podkladové tabulky dotazu.

Úprava dotazu

  1. Otevřete dotaz, který jste vytvořili v předchozí části.

  2. Klikněte pravým tlačítkem myši na kartu dotazu a vyberte příkaz Zobrazení SQL.

  3. Z obou příkazů SELECT odstraňte pole [Telefon].

  4. Odstraňte slovo ALL, které je za slovem UNION. To způsobí, že dotaz bude ignorovat duplicitní záznamy z tabulky Klienti. Příkaz SQL bude vypadat následovně.

    SELECT [Název společnosti], [Adresa], [Město] FROM [Zákazníci]
    UNION SELECT [Název], [ Adresa], [Město] FROM [Klienti]
    ORDER BY [Název společnosti];

  5. Kliknutím na tlačítko Spustit Obrázek tlačítka spusťte dotaz a zobrazte výsledky v zobrazení Datový list.

    Pokud používáte ukázková data z předchozí části, vrátí tento dotaz místo 18 záznamů jenom 14.

Na začátek této části

Zobrazení jenom duplicitních záznamů existujících v obou tabulkách

Když potřebujete dotaz jenom na odpovídající hodnoty ze dvou tabulek, použijte vnitřní spojení. Pokud se s aplikací Access teprve seznamujete: Vnitřní spojení je operace, která propojí řádky ve dvou nebo více tabulkách jenom v případě, že se hodnoty ve spojených polích shodují.

Vnitřní spojení vytvoříte tak, že vytvoříte výběrový dotaz, který obsahuje obě tabulky, a pak vytvoříte relaci mezi poli obsahujícími duplicitní hodnoty. Když relaci vytvoříte, aplikace Access vytvoří ve výchozím nastavení vnitřní spojení.

Poznámka : Pole nebo řádky vrácené výběrovým dotazem, který má vnitřní spojení, nemůžete upravovat. Pokud chcete data upravit, otevřete podkladové tabulky a změňte hodnoty v jednotlivých tabulkách.

Vytvoření dotazu, který má vnitřní spojení

  1. Na kartě Vytvořit klikněte ve skupině Jiné na Návrh dotazu.

    Obrázek pásu karet aplikace Access

  2. V dialogovém okně Zobrazit tabulku poklikejte na tabulku Zákazníci a na tabulku Klienti a potom zavřete dialogové okno kliknutím na Zavřít.

  3. Zjistěte, která pole obsahují shodné hodnoty v duplicitních záznamech. Pokud používáte ukázkové tabulky, je vidět, že pole Název společnosti v tabulce Zákazníci odpovídá poli Název v tabulce Klienti.

  4. Přetáhněte pole Název společnosti z první tabulky na pole Název v druhé tabulce. Access spojí obě pole čárou.

    Spojnice mezi tabulkami, která označuje, že tabulky Zákazníci a Klienti jsou relačně propojeny na základě názvů zákazníků

    Ve výchozím nastavení se mezi oběma tabulkami vytvoří vnitřní spojení. Vnitřní spojení vybere jenom ty záznamy, u kterých se pole Název společnosti shoduje s polem Název.

  5. Poklikejte na pole Název společnosti. Tak ho přidáte do návrhové mřížky dotazu. Toto pole vám pomůže identifikovat záznamy v zobrazení Datový list.

  6. Poklikejte na další požadovaná pole z tabulek Zákazníci a Klienti a přidejte je tak do návrhové mřížky dotazu. V tomto případě přidejte pole Telefon z tabulky Zákazníci a pole Telefon z tabulky Klienti.

  7. Kliknutím na tlačítko Spustit Obrázek tlačítka spusťte dotaz a zobrazte výsledky v zobrazení Datový list. Dotaz vrátí pět záznamů – jeden pro každého zákazníka se záznamem v obou tabulkách.

Název společnosti

Telefon (Zákazníci)

Telefon (Klienti)

Baldwin Museum of Science

(505) 555-2122

(505) 555-3123

Blue Yonder Airlines

(104) 555-2123

(104) 555-2124

Coho Winery

(206) 555-2124

(206) 555-2124

Contoso Pharmaceuticals

(171) 555-2125

(171) 555-2125

Fourth Coffee

(7) 555-2126

(7) 555-2126

Na začátek této části

Zobrazení jenom těch záznamů z jedné tabulky, které nemají odpovídající záznam v druhé tabulce

Dál budeme pokračovat ve scénáři, ve kterém tabulky Zákazníci a Klienti obsahují duplicitní data. Teď se dozvíte, co máte udělat, abyste zobrazili ty záznamy z tabulky Zákazníci, které nemají duplicitní záznam v tabulce Klienti. Budete se tak moct rozhodnout, co uděláte s určitými zákazníky, na základě obsahu samotné tabulky Zákazníci – dřív než podniknete kroky ke sloučení obou tabulek.

Když chcete zobrazit jenom ty záznamy z tabulky Zákazníci, které nemají odpovídající záznam v tabulce Klienti, vytvořte dotaz na chybějící záznamy. Pokud použijete ukázková data, načte tento typ dotazu všechny záznamy z tabulky Zákazníci, které nemají odpovídající záznam v tabulce Klienti.

Poznámka : Když tento dotaz zobrazíte v zobrazení Datový list, můžete upravovat hodnoty polí nebo odstraňovat záznamy.

Vytvoření dotazu na chybějící záznamy

  1. Na kartě Vytvořit klikněte ve skupině Jiné na Průvodce dotazem.

    Obrázek pásu karet aplikace Access

  2. V dialogovém okně Nový dotaz klikněte na položku Průvodce vyhledávacím dotazem na chybějící záznamy a poté klikněte na tlačítko OK.

  3. Klikněte na tabulku Zákazníci – obsahuje záznamy, které vás zajímají. Klikněte na tlačítko Další.

  4. Klikněte na tabulku Klienti – to je tabulka, se kterou chcete tabulku Zákazníci porovnávat. Klikněte na tlačítko Další.

  5. Klikněte na pole Název společnosti v tabulce Zákazníci, klikněte na pole Název v tabulce Klienti a potom klikněte na tlačítko <=>. Tím se tabulky propojí přes názvy zákazníků. Klikněte na tlačítko Další.

  6. Vyberte pole, která se mají v zobrazení objevit. V tomto případě přidejte pole Název společnosti, Adresa, Město a Telefon. Klikněte na tlačítko Další.

  7. Zadejte název dotazu a kliknutím na Dokončit zobrazte záznamy v zobrazení Datový list. Pokud používáte ukázkové tabulky, vrátí dotaz čtyři záznamy – v tomto případě jsou to záznamy z tabulky Zákazníci, které nemají odpovídající záznam v tabulce Klienti.

Název společnosti

Adresa

Město

Telefon

Adventure Works

3122 87th Way S.W.

Seattle

(206) 555-2125

Humongous Insurance

67 Big St.

Tampa

(916) 555-2128

Trey Research

2 Nosey Pkwy

Portland

(503) 555-2129

Fabrikam, Inc.

9 Empire Way

Seattle

(206) 555-2233

Na začátek této části

Odstranění duplicitních záznamů z jedné tabulky a připojení zbývajících záznamů k druhé tabulce

Po prohlídce duplicitních dat v podobných tabulkách můžete duplicitní záznamy odstranit a zbývající data sloučit do jedné tabulky. Tento postup zahrnuje následující obecné kroky:

  • V tabulce, kterou budete chtít odstranit, můžete v případě potřeby aktualizovat data, která chcete sloučit. Popis toho, jak se data aktualizují, přesahuje rámec tohoto tématu.

    Informace o způsobech aktualizace dat najdete v článku Aktualizace dat v databázi.

  • Pokud je třeba, zobrazte a zkontrolujte případné relace mezi tabulkou, kterou chcete odstranit, a dalšími tabulkami v databázi. Pokud relace existují, obvykle je potřeba je odstranit a potom vytvořit pro druhou tabulku nové relace (pro tabulku obsahující sloučená data). Musíte ale zajistit, aby hodnoty primárního klíče v nové tabulce odpovídaly hodnotám primárních klíčů v ostatních tabulkách.

  • Vytvořte odstraňovací dotaz, který k nalezení a odstranění odpovídajících záznamů využívá vlastnost Jedinečné hodnoty. Přitom musíte zajistit, abyste neporušili relace mezi tabulkami v databázi. Předpokládejme například, že chcete přesunout jedinečné záznamy z tabulky Klienti do tabulky Zákazníci a potom tabulku Klienti odstranit. Pokud má tabulka Klienti relace na nějaké další tabulky v databázi, musíte podniknout kroky k tomu, aby tyto relace převzala tabulka Zákazníci. Úplné vysvětlení relací přesahuje rámec tohoto tématu.

    Další informace najdete v článku Vytvoření, úprava a odstranění relace.

  • Vytvořte přidávací dotaz pro přidání zbývajících záznamů z tabulky, kterou chcete odstranit, do tabulky, kterou chcete zachovat. Přitom bude nejspíš potřeba do tabulky, kterou chcete zachovat, přidat pole a hodnoty primárního klíče pro připojovaná data.

  • Odstraňte nežádoucí tabulku.

Postupy v této části popisují, jak vytvořit a použít odstraňovací dotaz a přidávací dotaz a jak odstranit tabulku. V postupech se používají tabulky Zákazníci a Klienti.

Tabulka Zákazníci    

Název společnosti

Jméno kontaktu

Adresa

Město

PSČ

Telefon

Baldwin Museum of Science

Josh Barnhill

1 Main St.

New York

12345

(505) 555-2122

Blue Yonder Airlines

Waleed Heloo

52 1st St.

Boston

23456

(104) 555-2123

Coho Winery

Pica Guido

3122 75th Ave. S.W.

Seattle

34567

(206) 555-2124

Contoso Pharmaceuticals

Jean Philippe Bagel

1 Contoso Blvd.

Londýn

NS1 EW2

(171) 555-2125

Fourth Coffee

Julian Price

Calle Smith 2

Mexico City

56789

(7) 555-2126

Adventure Works

Christine Hughes

3122 87th Way S.W.

Seattle

34567

(206) 555-2125

Humongous Insurance

Steve Riley

67 Big St.

Tampa

01234

(916) 555-2128

Trey Research

Dana Birkby

2 Nosey Pkwy

Portland

43210

(503) 555-2129

Fabrikam, Inc.

Jesper Aaberg

9 Empire Way

Seattle

56789

(206) 555-2233

Tabulka Klienti    

Název

Adresa

Město

Telefon

Fax

Baldwin Museum of Science

1 Main St.

New York

(505) 555-2122

(505) 555-3123

Blue Yonder Airlines

52 1st St.

Boston

(104) 555-2123

(104) 555-2124

Coho Winery

3122 75th Ave. S.W.

Seattle

(206) 555-2124

(206) 555-2125

Contoso Pharmaceuticals

1 Contoso Blvd.

Londýn

(171) 555-2125

(171) 555-2126

Fourth Coffee

Calle Smith 2

Mexico City

(7) 555-2126

(7) 555-2127

Consolidated Messenger

3122 75th St. S.

Seattle

(206) 555-0170

(206) 555-0171

Graphic Design Institute

67 Big St.

Tampa

(916) 555-2128

(916) 555-2128

Litware, Inc.

3 Microsoft Way

Portland

(503) 555-0192

(503) 555-0193

Tailspin Toys

4 Microsoft Way

Portland

(503) 555-2233

(503) 555-2239

Pokud chcete tyto tabulky použít v databázi, podívejte se na část Příprava ukázkových dat, kterou najdete výše v tomto článku. Pro účely tohoto cvičení předpokládejme, že novější informace obsahuje tabulka Zákazníci – proto budete chtít odstranit odpovídající záznamy z tabulky Klienti a následně přidat zbývající záznamy z tabulky Klienti do tabulky Zákazníci.

Odstranění nežádoucích dat

  1. Na kartě Vytvořit klikněte ve skupině Jiné na Návrh dotazu.

    Obrázek pásu karet aplikace Access

  2. V dialogovém okně Zobrazit tabulku poklikejte na tabulku Zákazníci a na tabulku Klienti a potom dialogové okno zavřete.

  3. Propojte obě tabulky tím, že přetáhnete pole Název společnosti z tabulky Zákazníci na pole Název v tabulce Klienti.

  4. Klikněte pravým tlačítkem myši do prázdné oblasti v horní polovině okna a potom klikněte na Vlastnosti. Nastavte hodnotu vlastnosti Jedinečné záznamy na Ano.

    Tím, že jste obě tabulky propojili a nastavili vlastnost dotazu Jedinečné záznamy na hodnotu Ano, nezobrazí se při spuštění dotazu zpráva Nebylo možné odstranit ze zadaných tabulek, která by se jinak objevila.

  5. Na kartě Návrh klikněte ve skupině Typ dotazu na tlačítko Odstranit.

  6. Přetáhněte hvězdičku (*) z tabulky Klienti do řádku Pole v prvním sloupci návrhové mřížky dotazu.

    Hvězdička (*) v seznamu polí představuje všechny pole tabulky

    V řádku Tabulka se objeví Klienti a v řádku Odstranit se objeví From. Znamená to, že dotaz odstraní řádky z tabulky Klienti.

  7. Teď je potřeba zadat, které řádky má dotaz odstranit. Pokud používáte ukázkové tabulky, budete chtít odstranit záznamy, u kterých se hodnoty v polích Název, Adresa a Město v tabulce Klienti shodují s hodnotami v odpovídajících polí tabulky Zákazníci.

    Přetáhněte pole Název z tabulky Klienti do první prázdné buňky v řádku Pole návrhové mřížky dotazu. To samé udělejte s poli Adresa a Město z tabulky Klienti.

  8. Pokud používáte ukázkové tabulky, zadejte do řádku Kritéria pro pole Název toto: [Zákazníci].[Název společnosti]. Do řádku Kritéria pro pole Adresa zadejte toto: [Zákazníci].[Adresa]. Do řádku Kritéria pro pole Město zadejte toto: [Zákazníci].[Město]. Návrhová mřížka dotazu by měla vypadat takto:

    Pole a kritéria určující duplicitní záznamy

    Až dotaz spustíte, měl by odstranit všechny záznamy, které splňují kritéria dotazu – záznamy, které mají shodné hodnoty ve všech třech polích obou tabulek.

  9. Kliknutím na Zobrazení Obrázek tlačítka zobrazíte náhled záznamů, které se odstraní, až dotaz spustíte. Uvidíte pět duplicitních záznamů z tabulky Klienti.

  10. Kliknutím na Spustit Obrázek tlačítka spusťte dotaz. Po zobrazení žádosti o potvrzení odstranění klikněte na tlačítko Ano.

  11. Přejděte na následující postup, ve kterém vytvoříte přidávací dotaz.

Připojení zbývajících dat

  1. Na kartě Vytvořit klikněte ve skupině Jiné na Návrh dotazu.

    Obrázek pásu karet aplikace Access

  2. V dialogovém okně Zobrazit tabulku poklikejte na zdrojovou tabulku (tabulku obsahující záznamy, které chcete připojit) a klikněte na Zavřít. Pokud používáte ukázková data, poklikáte na tabulku Klienti.

  3. Na kartě Návrh klikněte ve skupině Typ dotazu na tlačítko Připojit.

  4. V dialogovém okně Přidat vyberte v seznamu Název tabulky cílovou tabulku (tabulku, ke které chcete data připojit). Pokud používáte ukázkové tabulky, vyberte tabulku Zákazníci. Potom klikněte na Zavřít.

  5. Pole, která chcete připojit, přetáhněte ze zdrojové tabulky do řádku Pole v návrhové mřížce.

    Důležité : Přetáhněte jenom ta pole, která mají odpovídající pole v cílové tabulce.

    Pokud používáte ukázková data, přetáhněte pole Název, Adresa a Telefon.

  6. U každého pole klikněte na řádek Přidat do a vyberte název odpovídajícího pole v cílové tabulce. Pokud používáte ukázková data, vyberete pole Název společnosti, Adresa a Telefon.

  7. Protože chcete do tabulky Zákazníci přidat všechny záznamy z tabulky Klienti, nemusíte zadávat žádná kritéria. Kliknutím na Zobrazení Obrázek tlačítka zobrazíte náhled záznamů, které se přidají do tabulky Zákazníci, až dotaz spustíte.

  8. Uložte dotaz a zavřete zobrazení.

  9. Najděte přidávací dotaz, který jste právě vytvořili, a poklikejte na něj. Potvrďte operaci přidání kliknutím na tlačítko Ano.

    Když nechcete, aby se při každém spuštění takových dotazů zobrazovaly potvrzovací zprávy:

    • Klikněte na tlačítko Microsoft Office Obrázek tlačítka a pak klikněte na Možnosti aplikace Access.

    • V dialogovém okně Možnosti aplikace Access klikněte na Upřesnit.

    • V části Úpravy pod položkou Potvrzení zrušte zaškrtnutí políčka Akční dotazy.

Odstranění tabulky

  1. Ujistěte se, že máte potřebná oprávnění k odstraňování tabulek v databázi, že databáze není jen pro čtení a že tabulku, kterou chcete odstranit, nemá otevřenou jiný uživatel.

  2. V navigačním podokně klikněte na tabulku, kterou chcete odstranit.

  3. Stiskněte klávesu DELETE a potom kliknutím na tlačítko Ano potvrďte, že chcete tabulku odstranit.

    Poznámka : Odstraněním tabulek databáze můžete částečně nebo úplně narušit fungování databáze. Z tohoto důvodu musíte odstranění naplánovat tak, aby databáze zůstala funkční. Před odstraňováním dat nebo jiných součástí byste měli databázi vždy zálohovat.

    Další informace o odstraňování dat najdete v článku Odstranění jednoho nebo několika záznamů z databáze.

Na začátek této části

Zobrazení jenom jedinečných záznamů při zobrazování dat ze souvisejících tabulek

Dotaz, který zobrazuje data ze dvou souvisejících tabulek, může ukazovat záznamy, které vypadají, jako by všechna pole byla shodná. Když si ale tabulky prohlédnete, můžete zjistit, že ve skutečnosti neobsahují duplicitní záznamy. Tento problém může vzniknout, když dotaz nezahrnuje určitá pole, jako třeba pole primárního klíče, která můžou jednoznačně identifikovat každý záznam. V takových případech nebudete chtít záznamy odstranit, ale můžete skrýt položky, které vypadají jako duplicitní.

Předpokládejme například, že máte dotaz, který shromažďuje údaje objednávek zákazníků ze dvou tabulek a slouží ke kontrole, jestli vaši zaměstnanci vyplňují objednávky včas. Zákazníci můžou zadat objednávku na několik produktů, takže každý produkt se stane v podkladových tabulkách samostatným záznamem (řádkem). Protože se objednávka zadá v jednom dni a pak se v jednom dni vyřídí, můžou záznamy pro danou objednávku obsahovat velký počet duplicitních dat, například:

Pole s jedinečnými hodnotami odebraná z dotazu pro vyřizování objednávek

Protože víte, že objednávky v daném dni dorazí a v daném dni je vyřídíte, potřebujete pro každou objednávku vidět jenom jeden záznam (jeden řádek). Abyste z tabulek obsahujících data objednávek zobrazili jedinečné záznamy, můžete u dotazu nastavit vlastnost Jedinečné záznamy na hodnotu Ano. Když je tato vlastnost nastavená na Ano, dotaz se podívá na všechny záznamy v tabulkách, a pokud najde shodné řádky (nejen pole), vyloučí ze sady výsledků všechny tyto duplicitní záznamy kromě jednoho.

Nastavení vlastnosti Jedinečné záznamy na hodnotu Ano

  1. Když máte dotaz otevřený v návrhovém zobrazení, zobrazte stisknutím klávesy F4 seznam vlastností.

  2. V seznamu vlastností nastavte vlastnost Jedinečné záznamy na hodnotu Ano a potom seznam vlastností zavřete.

    Zobrazení seznamu vlastností dotazu

Až budete pokračovat, pamatujte na to, že když je vlastnost Jedinečné záznamy nastavená na hodnotu Ano, bude dotaz porovnávat celé řádky. Aby tedy dotaz nějaká data vyloučil ze sady výsledků, musí se řádky ve všech zúčastněných tabulkách shodovat. Nastavení vlastnosti Jedinečné záznamy můžete použít jenom v případě, že dotaz obsahuje dvě nebo víc tabulek.

Když přepnete do zobrazení Datový list, uvidíte pro každou objednávku jenom jeden záznam.

Jeden záznam pro každou objednávku z tabulky Objednávky

Uvědomte si ale, že když vlastnost Jedinečné záznamy nastavíte na hodnotu Ano a dotaz spustíte, můžete i tak uvidět záznamy, které vypadají jako duplicitní. Když navážeme na předchozí příklad, můžete i tak najít záznamy se shodnými daty objednávky a jejího vyřízení, například:


Zobrazení výsledků dotazu s duplicitními záznamy

K tomu dojde, když vám přijdou ve stejný den dvě různé objednávky a vy je vyřídíte ve stejném dni. Když nastavíte vlastnost Jedinečné záznamy na hodnotu Ano, takové záznamy se ve výsledcích dotazu neskryjí, protože tyto záznamy nejsou v podkladových tabulkách ve skutečnosti duplicitní.

Pokud chcete zobrazit jenom jednu instanci takových záznamů (to znamená jeden záznam objednávky na den), měli byste u dotazu nastavit na hodnotu Ano vlastnost Jedinečné hodnoty. Když je vlastnost Jedinečné hodnoty nastavená na Ano, nebude dotaz hledat duplicity v podkladových tabulkách. Místo toho bude sledovat hodnoty polí, která zahrnete do dotazu, a pokud se budou u dvou záznamů shodovat všechna pole, dotaz jeden ze záznamů nezobrazí.

Vlastnost Jedinečné hodnoty se nastavuje stejným způsobem jako vlastnost Jedinečné záznamy – zobrazíte seznam vlastností dotazu a změníte nastavení vlastnosti na Ano. V listu vlastností je pole vlastnosti Jedinečné hodnoty přímo nad polem vlastnosti Jedinečné záznamy.

Vlastnost Jedinečné hodnoty nastavená na hodnotu Ano

Když budeme pokračovat v předchozím příkladu, uvidíte teď jenom data, kdy bylo přijatých nebo vyřízených jedna nebo víc objednávek. Neuvidíte jeden záznam na objednávku.


Kalendářní data, ve kterých byly objednávky přijaty a vyřízeny

Poznámka : Protože nastavení vlastnosti Jedinečné záznamy na Ano se týká řádků v tabulkách poskytujících data pro dotaz a nastavení vlastnosti Jedinečné hodnoty na Ano se týká jenom polí v dotazu, nemůžete nastavit na hodnotu Ano obě vlastnosti zároveň. Pokud jednu vlastnost nastavíte na Ano, Access automaticky nastaví druhou vlastnost na Ne. Můžete ale obě vlastnosti nastavit na Ne, aby dotaz vrátil všechny záznamy.

Následující tabulka nabízí přehled, který vám pomůže při volbě nastavení vlastností dotazu Jedinečné záznamy a Jedinečné hodnoty.

Základ dotazu

Plánované zobrazení

Potřebné nastavení

Výsledek

Dvě nebo více tabulek, ale všechna pole dotazu pocházejí z jedné tabulky

Jedinečné záznamy z tabulky (aby byly dva záznamy považovány za duplicitní, musí se shodovat všechna pole v tabulce)

Vlastnost Jedinečné záznamy nastavená na Ano (Access automaticky nastaví vlastnost Jedinečné hodnoty na Ne.)

Pokud tabulka obsahuje duplicitní záznamy, dotaz duplicity ignoruje. Ve výsledcích dotazu se ale můžou objevit i záznamy, pro které se všechna pole shodují – v případě, že dotaz nezahrnuje pole, které jednoznačně identifikuje záznamy.

Jedna nebo více tabulek

Jedinečné záznamy v zobrazení datového listu dotazu (aby byly dva záznamy považovány za duplicitní, musí se v zobrazení datového listu shodovat všechna pole)

Vlastnost Jedinečné hodnoty nastavená na Ano (Access automaticky nastaví vlastnost Jedinečné záznamy na Ne.)

Dotaz vyloučí duplicitní záznamy (u kterých se shodují všechna pole) v zobrazení datového listu. Uvědomte si ale, že se nemusí zobrazit všechny jedinečné záznamy z podkladové tabulky.

Jedna nebo více tabulek

Všechny záznamy

Vlastnost Jedinečné hodnoty nastavená na Ne a vlastnost Jedinečné záznamy nastavená na Ne

Zobrazí se všechny jedinečné i duplicitní záznamy z obou tabulek.

Na začátek této části

Zobrazení určitého záznamu nebo shrnutí duplicitních dat v souvisejících tabulkách

Když zobrazujete duplicitní data ze souvisejících tabulek, můžete chtít zobrazit určitý záznam ze skupiny duplicit nebo můžete chtít shrnout duplicitní data pomocí funkcí Count, Sum nebo některé z dalších agregačních funkcí.

Podobně jako v situaci, kterou jsme popisovali v předchozí části, nemusíte mít v tabulkách ve skutečnosti duplicitní data, ale když zobrazíte data ze dvou tabulek, které jsou spojené relací 1:N, jako jsou například tabulky Objednávky a Rozpis objednávek, můžete najít několik záznamů, u kterých se shoduje několik polí. Zaměstnanec může například dostat několik objednávek od stejného zákazníka nebo může prodat stejný produkt stejný den v rámci různých objednávek a podobně. Pokud potřebujete zobrazit data způsoby, které splňují následující požadavky, musíte data shrnout, místo abyste odstraňovali duplicitní data.

  • Chcete zjistit celkové množství jednotlivých produktů prodaných každým zaměstnancem.

  • Chcete spočítat celkový počet objednávek, které každý zaměstnanec zpracoval pro jednotlivé zákazníky.

  • Chcete zjistit největší objednávku dne pro každého zaměstnance.

Ke shrnutí dat použijete souhrnný dotaz, který se podobá dotazům popsaným v části Zobrazení jedinečných záznamů tím, že určíte, které duplicity se mají ve výsledcích objevit dříve v tomto článku. Popisovali jsme tam použití souhrnného dotazu s jednou tabulkou. Abyste vytvořili souhrnný dotaz, který bude obsahovat několik tabulek, postupujte takto:

  • Když v dialogovém okně Zobrazit tabulku přidáte první tabulku, nezapomeňte přidat i druhou tabulku.

  • Když budete přidávat pole, která určují duplicitu, přetáhněte požadovaná pole z obou tabulek do návrhové mřížky a pro všechna pole nastavte v příslušném sloupci hodnotu v řádku Souhrn na Seskupit.

  • Pole, které identifikuje záznam určený k zobrazení nebo které obsahuje hodnoty určené ke shrnutí, může pocházet z libovolné z obou tabulek.

Na začátek této části

Začátek stránky

Poznámka : Upozornění ke strojovému překladu: Tento článek přeložil počítačový systém bez zásahu člověka. Společnost Microsoft nabízí tyto strojové překlady proto, aby umožnila uživatelům, kteří nemluví anglicky, získat informace o produktech, službách a technologiích této společnosti. Protože je tento článek strojově přeložený, může obsahovat slovní, syntaktické nebo gramatické chyby.

Sdílení Facebook Facebook Twitter Twitter E-mail E-mail

Byly tyto informace užitečné?

Výborně! Je ještě něco dalšího, co byste nám chtěli dát vědět?

Jak bychom ho mohli vylepšit?

Děkujeme vám za zpětnou vazbu.

×