Někdy se může stát, že chcete u záznamů jedné accessové tabulky zkontrolovat, jestli odpovídají záznamům jiné accessové tabulky, která má v jednom nebo více polích shodná data. Chcete třeba zkontrolovat záznamy zaměstnanců, kteří zpracovali aspoň jednu objednávku, abyste zjistili, kteří z nich mají nárok na prémie. Nebo chcete zkontrolovat kontaktní údaje zákazníků, kteří žijí ve stejném městě jako zaměstnanci, abyste spojili zaměstnance se zákazníky kvůli osobním schůzkám.
Když chcete porovnat dvě accessové tabulky a najít shodná data, máte tyto možnosti:
-
Vytvořte dotaz, který spojí pole z každé tabulky, ve které tato pole obsahují odpovídající informace, a to buď pomocí existující relace, nebo pomocí spojení, které vytvoříte pro účely dotazu. Tato metoda zajišťuje optimální výkon (rychlost, s jakou dotaz vrací výsledky), ale nemůžete spojit pole, která mají různé datové typy.
-
Vytvořte raději dotaz, který k porovnání polí použije jedno pole jako kritérium druhého pole. Použití pole jako kritéria jiného pole je obecně pomalejší, než když použijete propojení tabulek, protože propojení vyloučí z výsledků dotazu řádky ještě před načtením zdrojových tabulek, zatímco kritéria se použijí na výsledky dotazu až po načtení zdrojových tabulek. Pole můžete použít jako kritérium, když chcete porovnat pole s různými datovými typy, protože u těchto polí nemůžete použít propojení tabulek.
Tento článek popisuje, jak porovnat dvě tabulky, abyste zjistili shodná data. Nabízí také ukázková data, která můžete použít v ukázkových postupech.
V tomto článku
Porovnání dvou tabulek jejich propojením
Když k porovnání dvou tabulek použijete spojení, vytvoříte výběrový dotaz, který zahrnuje obě tabulky. Pokud mezi tabulkami neexistuje relace založená na polích se shodnými daty, použijte k vytvoření spojení pole, u kterých chcete prověřit shodu. Můžete vytvořit libovolný počet spojení, ale každý pár propojených polí musí mít stejný nebo kompatibilní datový typ.
Předpokládejme, že jste instituce, která pracuje na vysoké škole, a chcete vidět, jak nedávné změny učiva na katedře matematiky ovlivnily známky studentů. Zajímá vás konkrétně známky studentů, kteří mají obor matematiky. Už máte tabulku, ve které jsou uložená hlavní data studentů, a tabulku, ve které jsou uložená data o registraci třídy. Údaje o známcích se ukládají v tabulce Zapište si třídu a hlavní údaje studentů se ukládají do tabulky Hlavní obory studentů. Pokud chcete vidět, jak se známky u hlavních oborů matematiky změnily od posledních změn učiva, je potřeba zkontrolovat záznamy z tabulky prováděcích příspěvků, které mají odpovídající záznamy v tabulce hlavních oborů.
Příprava ukázkových dat
V tomto příkladu vytvoříte dotaz, kterým zjistíte, jak nedávné změny učiva na katedře matematiky ovlivnily známky studentů matematiky. Použijete následující dvě ukázkové tabulky: Hlavní studijní obory a Zapsané předměty. Tyto dvě ukázkové tabulky (Hlavní obory studentů a Zapsané předměty) si přidejte do databáze.
Access nabízí několik způsobů, jak tyto ukázkové tabulky přidat do databáze. Data můžete zadat ručně, každou tabulku můžete zkopírovat do tabulkového kalkulátoru (třeba do Microsoft Office Excel 2007 ) a pak je importovat do Access nebo je můžete vložit do textového editoru (třeba do Poznámkového bloku) a potom naimportovat data z výsledných textových souborů.
Postup v této části vysvětluje ruční způsob zadávání dat do prázdného datového listu. Je tu také návod, jak zkopírovat ukázkové tabulky do Excelu a pak je naimportovat do Accessu.
Hlavní obory studentů
ID studenta |
Rok |
Hlavní obor |
123456789 |
2005 |
MATEMATIKA |
223334444 |
2005 |
ANGLIČTINA |
987654321 |
2005 |
MATEMATIKA |
135791357 |
2005 |
HISTORIE |
147025836 |
2005 |
BIOLOGIE |
707070707 |
2005 |
MATEMATIKA |
123456789 |
2006 |
MATEMATIKA |
223334444 |
2006 |
ANGLIČTINA |
987654321 |
2006 |
PSYCHOLOGIE |
135791357 |
2006 |
UMĚNÍ |
147025836 |
2006 |
BIOLOGIE |
707070707 |
2006 |
MATEMATIKA |
Zapsané předměty
ID studenta |
Rok |
Období |
Předmět |
Číslo kurzu |
Známka |
123456789 |
2005 |
3 |
MATEMATIKA |
221 |
A |
123456789 |
2005 |
3 |
ANGLIČTINA |
101 |
B |
123456789 |
2006 |
1 |
MATEMATIKA |
242 |
C |
123456789 |
2006 |
1 |
MATEMATIKA |
224 |
C |
223334444 |
2005 |
3 |
ANGLIČTINA |
112 |
A |
223334444 |
2005 |
3 |
MATEMATIKA |
120 |
C |
223334444 |
2006 |
1 |
POLITICKÉ VĚDY |
110 |
A |
223334444 |
2006 |
1 |
ANGLIČTINA |
201 |
B |
987654321 |
2005 |
3 |
MATEMATIKA |
120 |
A |
987654321 |
2005 |
3 |
PSYCHOLOGIE |
101 |
A |
987654321 |
2006 |
1 |
MATEMATIKA |
221 |
B |
987654321 |
2006 |
1 |
MATEMATIKA |
242 |
C |
135791357 |
2005 |
3 |
HISTORIE |
102 |
A |
135791357 |
2005 |
3 |
UMĚNÍ |
112 |
A |
135791357 |
2006 |
1 |
MATEMATIKA |
120 |
B |
135791357 |
2006 |
1 |
MATEMATIKA |
141 |
C |
147025836 |
2005 |
3 |
BIOLOGIE |
113 |
B |
147025836 |
2005 |
3 |
CHEMIE |
113 |
B |
147025836 |
2006 |
1 |
MATEMATIKA |
120 |
D |
147025836 |
2006 |
1 |
STATISTIKA |
114 |
B |
707070707 |
2005 |
3 |
MATEMATIKA |
221 |
B |
707070707 |
2005 |
3 |
STATISTIKA |
114 |
A |
707070707 |
2006 |
1 |
MATEMATIKA |
242 |
D |
707070707 |
2006 |
1 |
MATEMATIKA |
224 |
C |
Pokud chcete k zadání ukázkových dat použít tabulkový kalkulátor, přejděte k této části.
Ruční zadání ukázkových dat
-
Otevřete novou nebo stávající databázi.
-
Na kartě Vytvořit klikněte ve skupině Tabulky na Tabulka.
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.
-
V ukázkové tabulce poklikejte v řádku záhlaví na první buňku a zadejte název pole.
Access automaticky označuje prázdná pole v řádku záhlaví textem Přidat nové pole, třeba tady:
-
Pomocí kláves se šipkami přejděte na další prázdnou buňku záhlaví a zadejte název druhého pole. (Na novou buňku také můžete poklikejte.) Tento krok opakujte pro každý název pole.
-
Zadejte do ukázkové tabulky data.
Access při zadávání dat odvodí pro každé pole datový typ. Každé pole má určitý datový typ, třeba Číslo, Text nebo Datum a čas. Když nastavíte datové typy, zajistíte přesné zadávání dat a pomůžete zabránit takovým chybám, jako je použití telefonního čísla ve výpočtu. U těchto ukázkových tabulek nechte Access, ať odvodí datový typ každého pole, ale nezapomeňte tyto datové typy zkontrolovat.
-
Až zadávání dat dokončíte, klikněte na Uložit nebo stiskněte CTRL+S.
Zobrazí se dialogové okno Uložit jako.
-
Do pole Název tabulky zadejte název ukázkové tabulky a pak klikněte na OK.
Použijte název každé ukázkové tabulky (například Hlavní obory studentů), protože tyto názvy se používají i v dotazech uvedených v tomto článku v částech s postupy.
Jakmile zadáte ukázková data, můžete obě tabulky porovnat.
Pokud se nechcete učit vytvářet list tabulky, který je založený na ukázkových datech z tabulek v předchozí části, přeskočte následující část (Vytvoření ukázkových listů).
Vytvoření ukázkových listů
-
Spusťte tabulkový kalkulátor a vytvořte nový prázdný soubor. Pokud používáte Excel, vytvoří se nový prázdný sešit automaticky při spuštění programu.
-
Zkopírujte první ukázkovou tabulku z předchozí části a vložte ji do první buňky prvního listu. Nezapomeňte zkopírovat řádek záhlaví, protože obsahuje názvy polí ukázkové tabulky.
-
Dejte listu stejný název jako ukázková tabulka pomocí postupu, který poskytuje tabulkový procesor. Když třeba vložíte ukázková data zachytáků tříd, pojmechte list Za zápisy třídy.
-
Opakováním kroků 2 a 3 zkopírujte druhou ukázkovou tabulku do prázdného listu a přejmenujte ho.
Poznámka: Možná budete do souboru tabulkového kalkulátoru potřebovat přidat další listy. Informace o přidání dalších listů do souboru tabulky najdete v nápovědě ke svému tabulkovému kalkulátoru.
-
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ů
-
V nové nebo existující databázi:
Na kartě Externí data klikněte ve skupině Import na Excel.
– 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>.
-
Klikněte na Procházet, najděte a 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.
Průvodce automaticky vybere první list v sešitu (pokud jste postupovali podle pokynů, je to list Hlavní obory studentů). Data z listu se zobrazí v dolní části stránky průvodce.
-
Klikněte na Další.
-
Na další stránce průvodce zaškrtněte políčko První řádek obsahuje záhlaví sloupců a klikněte na Další.
-
Na další stránce můžete pomocí textových polí a seznamů v části Možnosti pole změnit názvy polí a datové typy nebo vynechat pole z operace importu. V tomto příkladu není potřeba nic měnit. Klikněte na Další.
-
Na další stránce vyberte možnost Žádný primární klíč a pak klikněte na Další.
-
Access automaticky použije jako název nové tabulky název listu. Potvrďte název v poli Importovat do tabulky a klikněte na Dokončit.
-
Dokončete průvodce tím, že na stránce Uložit kroky importu kliknete na Zavřít.
-
Opakováním kroků 1 až 7 vytvořte tabulky pro každý list, který je v souboru s tabulkami.
Porovnání ukázkových tabulek a použití spojení k vyhledání shodných záznamů
Teď můžete porovnat tabulku Zaměněné hodiny a tabulku Hlavní obory studentů. Vzhledem k tomu, že jste nedefinovali relace mezi oběma tabulkami, je nutné vytvořit spojení mezi příslušnými poli dotazu. Tabulky mají společné více než jedno pole a pro každou dvojici společných polí budete muset vytvořit spojení: ID studenta, Rok a Studijní plán (tabulka Zapište si předmět) a Tabulku Hlavní obory studentů (tabulka Hlavní obory studentů). V tomto příkladu vás zajímají jenom hlavní obory matematiky, a proto k omezení výsledků dotazu použijete taky kritérium pole.
-
Otevřete databázi, do které jste uložili ukázkové tabulky.
-
Na kartě Vytvoření klikněte na Návrh dotazu.
-
Poklikejte na tabulku obsahující záznamy, které chcete zobrazit (v tomto příkladu tabulka Zapište si třídu) a potom poklikejte na tabulku, se kterou ji porovnáváte – v tomto příkladu v tabulce Hlavní obory studentů.
-
Pole ID studenta přetáhněte z tabulky Zapsané předměty do pole ID studenta v tabulce Hlavní obory studentů. V návrhové mřížce se mezi oběma tabulkami zobrazí čára, která označuje vytvořené spojení. Poklikáním na čáru otevřete dialogové okno Vlastnosti spojení.
-
Podívejte se na tři možnosti v dialogovém okně Vlastnosti spojení. Automaticky je vybraná první možnost. V některých případech musíte upravit vlastnosti spojení tak, aby zahrnovaly další řádky z jedné tabulky. Chcete najít jenom shodná data, takže nechte spojení nastavené na první možnost. Zavřete dialogové okno Vlastnosti spojení kliknutím na Zrušit.
-
Budete muset vytvořit dvě další spojení. Vytvoříte je tak, že přetáhnete pole Rok z tabulky Zapsané předměty do pole Rok tabulky Hlavní obory studentů a pak přetáhnete pole Předmět z tabulky Zapsané předměty do pole Hlavní obor tabulky Hlavní obory studentů.
-
V tabulce Zapsané předměty poklikejte na hvězdičku (*). Tím do návrhové mřížky dotazu přidáte všechna pole tabulky.
Poznámka: Když k přidání všech polí použijete hvězdičku, zobrazí se v návrhové mřížce jenom jeden sloupec. Zobrazený sloupec má stejný název jako tabulka a za ním následuje tečka (.) a hvězdička (*). V tomto příkladu se sloupec jmenuje Zapsané předměty.*.
-
V tabulce Hlavní obory studentů poklikejte na pole Hlavní obor. Tím ho přidáte do mřížky.
-
V návrhové mřížce dotazu zrušte zaškrtnutí políčka na řádku Zobrazit ve sloupci Hlavní obor.
-
V řádku Kritéria zadejte ve sloupci Hlavní obor text MATEMATIKA.
-
Na kartě Návrh klikněte ve skupině Výsledky na tlačítko Spustit.
Po spuštění dotazu se zobrazí známky z matematiky jen těch studentů, kteří mají matematiku jako hlavní obor.
Porovnání dvou tabulek podle pole sloužícího jako kritérium
Někdy můžete chtít porovnat tabulky na základě polí, která mají shodné data, ale různé datové typy. Například v jedné tabulce může mít pole datový typ Číslo a vy ho chcete porovnat s polem v jiné tabulce, které má datový typ Text. Pole, která ještě obsahují podobná data, mohou mít různé typy polí, pokud jsou čísla uložena jako text, ať už návrhem, nebo z jiných důvodů, například importem dat z jiného programu. Protože spojení nemůžete vytvořit mezi poli s různými datovými typy, budete muset k porovnání polí použít jinou metodu. Pomocí jednoho pole jako kritéria druhého pole můžete porovnat dvě pole s různými datovými typy.
Předpokládejme, že jste instituce, která pracuje na vysoké škole, a chcete vidět, jak nedávné změny učiva na katedře matematiky ovlivnily známky studentů. Zajímá vás konkrétně známky studentů, kteří mají obor matematiky. Tabulku Hlavní obory studentů a tabulku Za registraci tříd už máte. Údaje o známcích se ukládají v tabulce Zapište si třídu a hlavní údaje studentů se ukládají do tabulky Hlavní obory studentů. Pokud chcete zobrazit změny známek u hlavních oborů matematiky, podívejte se na záznamy z tabulky prováděcích tabulek, které mají odpovídající záznamy v tabulce hlavní obory. Jedno z polí, které chcete použít k porovnání tabulek, má ale jiný datový typ než její protějšek.
Pokud chcete k porovnání dvou tabulek použít pole jako kritérium, vytvořte výběrové dotaz, který obsahuje obě tabulky. Zahrníte pole, která chcete zobrazit, a také pole odpovídající poli, které chcete použít jako kritérium. Pak vytvoříte kritérium pro porovnání tabulek. K porovnání polí můžete vytvořit tolik kritérií, kolik potřebujete.
Abyste si tento způsob vyzkoušeli, použijte ukázkové tabulky z předchozí části, ale v ukázkové tabulce Hlavní obory studentů změňte datový typ pole ID studenta z čísla na text. Protože spojení nejde vytvořit mezi dvěma poli s různými datovými typy, musíte k porovnání dvou polí ID studenta použít jedno pole jako kritérium druhého pole.
Změna datového typu pole ID studenta v tabulce Hlavní obory studentů
-
Otevřete databázi, do které jste uložili ukázkové tabulky.
-
V navigačním podokně klikněte pravým tlačítkem na tabulku Hlavní obory studentů a v místní nabídce klikněte na Návrhové zobrazení.
Tabulka Hlavní obory studentů se otevře v návrhovém zobrazení.
-
Ve sloupci Datový typ změňte nastavení ID studenta z Čísla na Text.
-
Zavřete tabulku Hlavní obory studentů. Když se zobrazí výzva k uložení změn, klikněte na Ano.
Porovnání ukázkových tabulek a použití kritérií polí k vyhledání shodných záznamů
Následující postup ukazuje, jak můžete k porovnání dvou polí s ID studenta vzít pole z tabulky Zapsané předměty a použít ho jako kritérium pole z tabulky Hlavní obory studentů. Když má každé pole jiný datový typ, můžete k jejich porovnání použít klíčové slovo Like.
-
Na kartě Vytvoření klikněte ve skupině Jiné na Návrh dotazu.
-
Poklikejte na Za registraci třídya potom poklikejte na Hlavní obory studentů.
-
Přetáhněte pole Rok z tabulky Za registraci předmětu do pole Rok v tabulce Hlavní obory studentů a potom pole Studijní plán přetáhněte z tabulky Zaškolování k předmětu do pole Hlavní obory v tabulce Hlavní obory studentů. Protože tato pole mají stejné datové typy, můžete je porovnat pomocí spojení. Upřednostňovaným způsobem porovnávání polí se stejným datovým typem jsou spojení.
-
V tabulce Zapsané předměty poklikejte na hvězdičku (*). Tím do návrhové mřížky dotazu přidáte všechna pole tabulky.
Poznámka: Když k přidání všech polí použijete hvězdičku, zobrazí se v návrhové mřížce jenom jeden sloupec. Zobrazený sloupec má stejný název jako tabulka a za ním následuje tečka (.) a hvězdička (*). V tomto příkladu se sloupec jmenuje Zapsané předměty.*.
-
V tabulce Hlavní obory studentů poklikejte na pole ID studenta. Tím ho přidáte do mřížky.
-
V návrhové mřížce zrušte zaškrtnutí políčka na řádku Zobrazit ve sloupci ID studenta. Na řádku Kritéria zadejte ve sloupci ID studenta výraz Like [Zapsané předměty].[ID studenta].
-
V tabulce Hlavní obory studentů poklikejte na pole Hlavní obor. Tím ho přidáte do mřížky.
-
V návrhové mřížce zrušte zaškrtnutí políčka na řádku Zobrazit ve sloupci Hlavní obor. Do řádku Kritéria zadejte MATEMATIKA.
-
Na kartě Návrh klikněte ve skupině Výsledky na tlačítko Spustit.
Po spuštění dotazu se zobrazí známky z matematiky jen těch studentů, kteří mají matematiku jako hlavní obor.