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 spojení, které vytvoříte pro účely dotazu. Tato metoda poskytuje optimální výkon (rychlost, s jakou dotaz vrací výsledky), ale nelze spojovat pole s rozdílnými datovými 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 institucionální výzkumník na vysoké škole a chcete zjistit, jak nedávné změny studijních plánů v matematickém oddělení ovlivnily známky studentů. Zajímáte se konkrétně o známky studentů, kteří jsou matematickými obory. Už máte tabulku, ve které jsou uložena hlavní data studentů, a tabulku, ve které jsou uložená data o zápisu předmětu. Data o známkách se ukládají v tabulce Zápisy předmětů a hlavní data studentů se ukládají do tabulky Hlavní obory studentů. Pokud chcete zjistit, jak se od nedávných změn učebních plánů změnily známky u matematických oborů, musíte zkontrolovat záznamy z tabulky registrací, které obsahují 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 přidat tyto ukázkové tabulky do databáze. Data můžete zadat ručně, každou tabulku můžete zkopírovat do tabulkového kalkulátoru a pak listy naimportovat do Access nebo můžete data vložit do textového editoru, jako je Třeba Poznámkový blok, a pak importovat 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 můžete také poklikáním.) 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.
-
Pomocí techniky poskytované tabulkovým procesorem dejte listu stejný název jako ukázkové tabulce. Když například vložíte ukázková data zápisů předmětů , pojmenujte list Zápisy tříd.
-
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 nemusíte 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ď jste připraveni porovnat tabulku Registrace předmětů a hlavní obory studentů. Vzhledem k tomu, že jste mezi těmito dvěma tabulkami nedefinovali relace, musíte vytvořit spojení mezi příslušnými poli v dotazu. Tabulky mají více než jedno společné pole a pro každou dvojici společných polí budete muset vytvořit spojení: ID studenta, Rok a Učební plán (tabulka Zápisy předmětů) a Hlavní obor (tabulka Hlavní obory studentů). V tomto příkladu vás zajímají jenom hlavní matematické obory, takže k omezení výsledků dotazu použijete také 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 na tabulku Zápisy předmětů a potom poklikejte na tabulku, se kterou ji porovnáváte – v tomto příkladu je to tabulka 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í odpovídající data, ale mají 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á obsahují podobná data, ale mají různé typy polí, mohou být výsledkem, když jsou čísla uložena jako text, a to buď záměrně, nebo z jiných důvodů, například při importu dat z jiného programu. Vzhledem k tomu, že nelze vytvořit spojení mezi poli, která mají různé datové typy, budete muset k porovnání polí použít jinou metodu. Dvě pole, která mají různé datové typy, můžete porovnat tak, že použijete jedno pole jako kritérium pro druhé.
Předpokládejme, že jste institucionální výzkumník na vysoké škole a chcete zjistit, jak nedávné změny studijních plánů v matematickém oddělení ovlivnily známky studentů. Zajímáte se konkrétně o známky studentů, kteří jsou matematickými obory. Už máte tabulku Hlavní obory studentů a tabulku Registrace předmětů. Data o známkách se ukládají v tabulce Zápisy předmětů a hlavní data studentů se ukládají do tabulky Hlavní obory studentů. Pokud chcete zjistit, jak se změnily známky u hlavních matematických studijních objektů, musíte se podívat na záznamy z tabulky registrací, které mají odpovídající záznamy v tabulce majors. Jedno z polí, které chcete použít k porovnání tabulek, má ale jiný datový typ než jeho protějšk.
Pokud chcete porovnat dvě tabulky pomocí pole jako kritéria, vytvořte výběrový dotaz, který bude obsahovat obě tabulky. Zahrnete pole, která chcete zobrazit, a také pole, které odpovídá poli, které chcete použít jako kritérium. Pak vytvoříte kritérium pro porovnání tabulek. Pro porovnání polí můžete vytvořit libovolný počet kritérií.
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 Zápisy předmětů a potom poklikejte na Hlavní obory studentů.
-
Přetáhněte pole Year z tabulky Zápisy předmětů do pole Rok v tabulce Hlavní obory studentů a potom přetáhněte pole Učební plán z tabulky Zápisy předmětů do pole Hlavní obor tabulky Hlavní obory studentů . Vzhledem k tomu, že tato pole mají stejné datové typy, můžete je porovnat pomocí spojení. Spojení jsou upřednostňovanou metodou pro porovnávání polí se stejným datovým typem.
-
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.