247
Databázový systém Microsoft Access 2007 Tomáš Kubálek Markéta Kubálková Manažerská informatika Vysoká škola ekonomická v Praze Fakulta mezinárodních vztahů

Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

  • Upload
    lamkhue

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Databázový systém

Microsoft Access

2007

Tomáš Kubálek

Markéta Kubálková

Manažerská informatika

Vysoká škola ekonomická v Praze

Fakulta mezinárodních vztahů

Page 2: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

© Vysoká škola ekonomická v Praze, Nakladatelství Oeconomica – Praha 2009 ISBN 978-80-245-1518-2

Page 3: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Obsah 3

Obsah Úvod (Východiska skript. Okruh čtenářů. Rozsah skript. Uspořádání skript. Jak

číst skripta. Terminologie. Úprava skript. Ilustrativní příklady. E-learning. Záznamy výuky. Poděkování. Připomínky ke skriptům. Předměty FMV zaměřené na aplikaci PC.) 7

1 Databáze 9 1.1 Databázový systém (Databáze. Databázový systém. Databázové modely.

Access 2007. Access v MS Office. Objekty Accessu. Šíření aplikací připravených v Accessu.) 9

1.2 Firma Encián (Personal. Oddělení. Podniky. Stadia. NACE. Oddíly_sekce. Sekce. Faktury. Licence. Programy. Cesty. Výjezdy. Místnosti. Majetek_typy. Majetek_umístění.) 10

1.3 Seznámení s aplikací Access (Spuštění Accessu. Místní šablony. Šablony Online. Vytvoření databáze. První tabulka. Vytvoření tabulky. Vytvoření dotazu. Tlačítko Office. Panel nástrojů Rychlý přístup. Titulkový pruh. Pás karet. Skupiny příkazů. Spouštění dialogového okna. Navigační podokno. Podokno objektu. Stavový řádek.) 15

1.4 Návrhové zobrazení tabulky (Návrhové zobrazení.) 21

2 Relace 23 2.1 Typy a význam vztahů (Návrh databáze. Normalizace. Typy relací.

Typy spojení. Referenční integrita.) 23 2.2 Základní relace v databázi Encián (Ukládání relací. Vnořený datový

list. Duplikace hodnoty z předchozí věty. Podmínky referenční integrity. Typy spojení.) 25

2.3 Import dat z Excelu do databáze Encián (Import dat z Excelu. Skupiny tabulek.) 28

2.4 Další relace v databázi Encián (Nekonzistentnost dat. Vícenásobná relace. Relace tabulky ke stejné tabulce. Relace dotazu a tabulky.) 30

2.5 Další možnosti zobrazení vztahů (Opakované spojení tabulky. Skrytí tabulky v relacích. Zobrazení tabulky v relacích. Rozložení v relacích. Úprava relace. Nová relace. Tisk relací.) 32

2.6 Databáze školení MIN (Normalizace. Propojení tabulek.) 34 2.7 Databáze Bankovní účet BAN 36

3 Tabulky 39 3.1 Způsoby tvorby a zobrazení tabulky (Tvorba tabulky. Zobrazení

tabulky.) 39 3.2 Tvorba tabulky (Tvorba tabulky ze šablony. Tvorba tabulky vyplněním

prázdné tabulky. Tvorba tabulky návrhem tabulky. Seznam serveru SharePoint.) 39

3.3 Návrhové zobrazení (Definice pole. Velikost textového pole. Velikost číselného pole. Nové hodnoty. Formát. Přesnost a měřítko. Počet desetinných míst. Vstupní maska. Titulek. Výchozí hodnota. Ověřovací pravidlo. Ověřovací text. Nutnost zadat. Nulová délka. Indexování. Komprese kódu. Inteligentní značky. Zarovnání textu. Výběr data. Pouze přidat. Formát textu. Ovládací prvek. Typ zdroje řádků. Zdroj řádků. Vázaný sloupec. Počet sloupců. Hlavičky sloupců. Šířka seznamu. Šířky sloupců. Počet řádků seznamu. Omezit na seznam. Úpravy seznamu hodnot. Úpravy tabulky pro seznam. Pole s více hodnotami. Zobrazené hodnoty. Průvodce vyhledáváním. Vlastnosti tabulky. Popis tabulky. Výchozí zobrazení. Ověřovací pravidlo tabulky. Ověřovací text. Filtr. Řazení. Orientace. Vnořený datový list. Zobrazení SharePointu.) 42

Page 4: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Obsah 4

3.4 Zobrazení datového listu (Hypertextový odkaz. Objekt OLE. Výchozí

hodnoty v nové větě. Schránka. Formát zobrazení datového listu. RTF formátování. Operace se záznamy. Souhrny. Kontrola pravopisu. Kontakty do a z Outlooku. Výška řádku. Vnořený datový list. Skrytí sloupce. Zmrazení sloupce. Šířka sloupce. Řazení a filtrování. Hledání. Nahrazování. Změny návrhu tabulky v datovém listu. Modifikace fungování kláves. Modifikace hledání. Automatické opravy názvů polí.) 57

3.5 Kontingenční tabulka (Kontingenční tabulka. Automatický přepočet. Skrýt podrobnosti. Titulky.) 65

3.6 Kontingenční graf (Kontingenční graf.) 67 3.7 Další úpravy databáze Encian 67

4 Dotazy 69 4.1 Druhy dotazů (Druhy dotazů. Formulace dotazu. Zobrazení výsledků.) 69 4.2 Výběrové dotazy z jedné tabulky (Přidání tabulky do konstrukce

dotazu. Přidání pole do návrhové mřížky. Výsledky dotazu. Dynamická sada a snímek. Uložení dotazu. Řazení výsledků dotazu. Vlastnosti dotazu. Or. >=. And. Zástupný symbol *. Zástupný symbol ?. Not. Null. Between. Month. Tvůrce výrazu. Titulek výrazu. Left. &. Len. HyperLinkPart. Switch.) 69

4.3 Výběrové dotazy z více tabulek (Spojení tabulky do sebe. Navazující dotazy.) 79

4.4 Výpočty (Výpočty ve větě. Souhrnné dotazy. Sum. Kde. Val. Min. Max. Omezení počtu vět.) 83

4.5 Parametrické dotazy (Parametrický dotaz.) 86 4.6 Křížové dotazy (Křížový dotaz. Pořadí sloupců. Formát výsledného

pole.) 87 4.7 Akční dotazy (Akční dotazy. Typy dotazů. Vytvářecí dotaz. Kontrola

dotazu a spuštění. Aktualizační dotaz. Odstraňovací dotaz. Přidávací dotaz.) 90

4.8 Jazyk SQL (Jazyk SQL. Sjednocovací dotaz. ) 93 4.9 Kontingenční tabulka a graf z výsledku dotazu (Kontingenční tabulka

a graf z dotazu. Kontingenční tabulka v procentech. Seskupení řádků a sloupců kontingenční tabulky. Řazení a filtrování v kontingenční tabulce. Automatický přepočet. Vypočtené celkové hodnoty a pole.) 94

5 Formuláře 101 5.1 Druhy formulářů (Význam formulářů. Druhy formulářů. Zobrazení

formuláře. Struktura formuláře. Ovládací prvky. Tlačítka tvorby formuláře.) 101

5.2 Samostatný formulář (Návrhové zobrazení. Vlastnosti. Pole ve formuláři. Úpravy ovládacích prvků. Rozložení ovládacích prvků. Formulářové zobrazení. Zobrazení rozložení. Uzamčení pole. Pole se seznamem. Odebrání rozložení. Automatická velikost. Seskupování ovládacích prvků. Označování více objektů. Výraz ve formuláři. Kopírování formátu. Výchozí nastavení prvku. Funkce Len. Modifikace seznamu. Pořadí prvků ve formuláři. Barvy ve formuláři. Automatický formát. Velikost formuláře.) 103

5.3 Další samostatný formulář (Úprava uložení podkladového dotazu. Rozdělení formuláře.) 113

5.4 Nekonečný formulář (Nekonečný formulář. Funkce IIf.) 116 5.5 Formulář se souhrny (Souhrn ve formuláři.) 117 5.6 Podformulář (Podformulář.) 119 5.7 Graf (Graf.) 123

Page 5: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Obsah 5

5.8 Formulář s kartami (Karta. Vytvoření a přejmenování stránky.

Odstranění stránky. Pořadí stránek.) 126

6 Sestavy 129 6.1 Druhy sestav (Význam sestav. Druhy sestav. Zobrazení sestavy.

Struktura sestavy. Ovládací prvky. Tlačítka tvorby sestavy.) 129 6.2 Sestava s výrazy (Výraz v sestavě. Funkce HyperLinkPart. Formát

písma. Velikost těla sestavy. Možnost zmenšení. Náhled. Snapshot Viewer. Tisk na tiskárně. Uložení sestavy.) 130

6.3 Sestava dle upravené šablony (Výchozí nastavení prvku. Šablona sestavy. Aktuální datum a čas. Počet stránek a počet vět. Automatická velikost.) 136

6.4 Sestava o více sloupcích (Výplň ovládacího prvku. Možnost zvětšení a zmenšení. Řazení. Tisk vět ve sloupcích.) 138

6.5 Hlavní sestava a podsestavy (Podsestava.) 141 6.6 Sestava bez duplikátů (Průvodce sestavou. Blokové rozložení sestavy.

Skrytí duplikátů. Vložení obrázku.) 143 6.7 Sestava nad více dotazy (Průvodce dotazem. Seskupení dle prvního

znaku. Odsazované rozložení sestavy. Název písma.) 144 6.8 Sestava s podíly (Obrysové rozložení sestavy. Seskupování a řazení.

Součty za sekce a sestavu. Mřížka v rozložení. Podíly v sestavě. Průběžný součet.) 146

6.9 Štítky (Štítky. Hromadná korespondence.) 150

7 Makra 153 7.1 Druhy a struktura maker (Makro. Akce dle zabezpečení. Skupiny

maker. Podmínka akce. Argumenty. Spouštění maker. Ukládání maker.) 153 7.2 Makro spustitelné samostatně (Akce Otevřít formulář. Akce Najít

záznam. Akce Přejít na ovládací prvek. Akce Najít další. Akce Zvukový signál. Podmínka akce. Opakování podmínky. Akce Okno se zprávou. Akce Zavřít. Akce Zrušit událost. Akce Otevřít sestavu. Krokování. Akce Krok.) 153

7.3 Makro filtrující sestavu (Podmínka Where.) 158 7.4 Makro ve formuláři (Makro ve formuláři. Akce Nastavit vlastnost.

Událostní vlastnosti. Vlastnost Při události Current. Vlastnost Při ztrátě fokusu.) 159

7.5 Makro v sestavě (Makro v sestavě.) 161 7.6 Skupina maker (Skupina maker.) 162

8 Moduly 163 8.1 Druhy modulů (Visual Basic for Applications. Moduly. Procedury.

Deklarace. Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména (Editace funkce. Přiřazovací příkaz.

Uložení modulu.) 163 8.3 Funkce konverze textu do textu bez háčků a čárek (For – Next. If –

Then – Else.) 166 8.4 Funkce kontroly rodného čísla 167 8.5 Funkce kontroly čísla účtu 168 8.6 Lokální podprogram výpočtu ve větě (Tlačítko s obrázkem. Výpočet ve

větě.) 170 8.7 Lokální podprogram výpočtu mezi větami (Objekty, metody,

vlastnosti. Objektová funkce CurrentDb. Do – Loop. With. Překreslení formuláře. Dialogové okno se zprávou.) 173

8.8 Globální podprogram formátování čísla účtu (Select – Case.) 179

Page 6: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Obsah 6

9 Externí data 181

9.1 Možnosti exportu a importu (Směry komunikace.) 181

9.2 Word (Word Access. Vlastnosti textového pole. Nápověda ve

formuláři. Rozevírací pole. Zaškrtávací políčko. Zámek dokumentu. Tisk

formuláře. Ukládání dat z formuláře. Průvodce importem textu.

Specifikace importu. Přidání obsahu tabulky do jiné tabulky. Access

Word. Export datové sady. Export sestavy. Export části datové sady. Data

z Accessu jako zdroj dat hromadné korespondence Wordu. Access

textový soubor. Textový soubor Access.) 181

9.3 Excel (Excel Access. Access Excel.) 191

9.4 PowerPoint (Access PowerPoint.) 192

9.5 Access (Access Access. Propojení.) 193

9.6 Visio (Access Visio. Organizační diagram. Visio Access.

Kontingenční diagram.) 195

9.7 Další aplikace (Project Access. Outlook Access. Access

Outlook. Shromáždění dat. Access OneNote. Access Publisher.) 197

9.8 Hypertextové odkazy (Cíl odkazů. Vazba odkazů. Nesvázané odkazy.

Svázané odkazy. Ovládací prvek ActiveX. Navigate.) 201

9.9 Web a SharePoint (Statické stránky. Access web. Web Access.

Import tabulky z webu. Připojení tabulky z webu. Dynamické stránky.

SharePoint. Přesun na server SharePoint. Aktualizace dat na webu.

Aktualizace dat v Accessu. Aktualizace databáze na webu.) 206

10 Databázové nástroje 211

10.1 Přehled (Databázové nástroje.) 211

10.2 Skupina Makro (Převod makra do Visual Basicu. Místní nabídka

formuláře. Globální místní nabídka. Karty Doplňky ve formuláři.) 211

10.3 Skupina Zobrazit či skrýt (Vztahy. Sestava relací. Seznam vlastností.

Závislosti objektů. Panel zpráv.) 212

10.4 Skupina Analyzovat (Analýza tabulky. Analýza výkonu. Dokumentace.) 213

10.5 Skupina Přesunout data (Přesun na SQL server. Přesun do databáze

Accessu.) 216

10.6 Skupina Databázové nástroje (Správce propojených tabulek. Správce

přepínacích panelů. Šifrování databáze. Formát ACCDE. Formát

ACCDR. Formulář s nabídkou objektů. Automatické spuštění formuláře.) 217

10.7 Možnost aplikace Access (Oblíbené možnosti. Možnosti aktuální

databáze. Možnosti datového listu. Možnosti návrhářů objektů. Možnosti

kontroly pravopisu a mluvnice. Možnosti upřesnění.) 220

10.8 Tlačítko Office (Tlačítko Office.) 221

A Použité objekty 223

B Náměty samostatných cvičení 225

C Dodatek ke kap. 4: Dotazy z databáze Banka 234

Rejstřík 244

Page 7: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Úvod 7

Úvod Znalost práce s osobním počítačem bývá uváděna jako jeden z předpokladů úspěšnosti

manažerů a ekonomů vůbec. Každý absolvent VŠE by měl ovládat přinejmenším práci s textovým procesorem, tabulkovým programem, prezentačním programem a databázovým systémem. Tato skripta nabízejí výklad databázového systému Microsoft Office Access verze 2007 CZ. Skripta byla napsána na základě několikaleté zkušenosti z výuky předmětů Manažerská informatika 1 – 3 na Fakultě podnikohospodářské a Fakultě mezinárodních vztahů, na základě školení uživatelů z podnikové praxe a také s přihlédnutím k intenzivnímu využívání databázového systému v denní práci autorů.

Skripta jsou určena především studentům volitelného předmětu 2OP483 Manažerská informatika 3. Pro předmět Manažerská informatika 3 se předpokládá zvládnutí všech popisovaných funkcí, které je vhodné doplnit si studiem dalších učitelem doporučených materiálů. Skripta jsou připravena tak, aby je k samostudiu mohli využít i další zájemci, kteří se chtějí podrobněji seznámit s databázovým systémem Access.

Omezený rozsah skript neumožňuje popsat Access do všech detailů. Zaměřuje se na základy, s nimiž se bude absolvent setkávat v praxi. Skripta neobsahují zejména výklad témat: − některé vlastnosti ovládacích prvků, − práce více uživatelů a její zabezpečení, − příkazy Visual Basicu.

Skripta jsou rozdělena do 10 kapitol převážně dle objektů Accessu. Pořadí kapitol umožňuje čtenáři postupné studium Accessu. Kapitoly dříve uvedené nepředpokládají znalost později uvedených kapitol. Kapitoly nemají stejný rozsah. Uspořádání textu dle objektů Accessu usnadňuje návrat pokročilému uživateli k detailním informacím o Accessu.

Skripta jsou napsána tak, aby čtenář mohl pochopit podstatu i bez výkladu učitele, tj. samostudiem. Je vhodné, aby si čtenář příklady zkoušel u počítače s instalovaným Accessem v popisované verzi 2007 CZ. Po výkladu látky učitelem je možné prohloubit si znalosti domácím samostudiem i bez počítače, neboť skripta obsahují obrázky většiny dialogových oken Accessu. V závěru obsahují skripta příklady k procvičení, vypracování těchto příkladů je pro studenty předmětu Manažerská informatika 3 povinné. Předpokládá se, že čtenář se po prvním prostudování skript bude vracet k dílčím kapitolám v kontextu konkrétní aplikace Accessu.

Terminologie použitá ve skriptech se drží co nejvíce terminologie nápovědy Accessu. Při popisu ovládání Windows používá mj. pojmů: − Klepnutí (do ikony, tlačítka, objektu): Stiskneme a potom uvolníme levé tlačítko myši.

Někdy je klepnutí nazýváno kliknutí. − Poklepání (na ikonu, tlačítko, objekt): Stiskneme dvakrát za sebou levé tlačítko myši. Někdy

je poklepání nazýváno dvojité kliknutí. − Tažení: Ukazovátko myši přemístíme pohybem myši na přesouvaný objekt. Držíme levé

tlačítko myši a objekt táhneme jinam. − Schránka (clipboard): Pomocí schránky můžeme kopírovat data, grafy nebo objekty. Zdroj

můžeme do schránky vložit (Ctrl C, zdroj zůstane na původním místě, tj. zdroj kopírujeme do schránky) nebo zdroj můžeme do schránky vyjmout (Ctrl X, zdroj nezůstane na původním místě, tj. zdroj přesunujeme do schránky). Potom můžeme obsah schránky vložit (Ctrl V) většinou na pozici kurzoru. (Obsah schránky po vložení zůstane stejný až do dalšího vložení či vyjmutí do schránky.)

Úprava skript dodržuje následující pravidla: − Klávesy jsou odlišeny ohraničením (např. Enter). − Základní pojmy jsou vypisovány na levém okraji textu formou marginálií a jsou shrnuty

v obsahu a v rejstříku. − Názvy karet z pásu karet jsou vypisovány KAPITÁLKAMI, pojmy jsou v textu odlišeny

kurzívou. − Obdobně jsou odlišeny další objekty výkladu: tlačítka, dialogová okna, dílčí karty, sekcee. dialogová okna sekc− Obrázky jsou číslovány dle jednotlivých kapitol.

Východiska skript

Okruh čtenářů

Rozsah skript

Uspořádání skript

Jak číst skripta

Terminologie

Úprava skript

Page 8: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Úvod 8

− Detailní poznámky, jejichž pochopení není povinné, jsou uvedeny pod čarou přímo na

stránce, k jejímuž textu se vztahují, a jsou číslovány průběžně v celých skriptech. − Odkazy na ilustrativní objekty databáze Encian jsou vypisovány na levém okraji se

symbolem a názvem objektu. − V příloze A je uveden seznam objektů využitých ve výkladu. − Úkoly k procvičení příloze B jsou uspořádány dle jednotlivých kapitol.

Výklad je uveden na cvičné databázi firmy Encián, která tvoří a prodává programy zaměřené na podnikové finance. Firma má 20 zaměstnanců v 6 odděleních. Zaměstnanci prodávají podnikům na faktury licence vyvinutého softwaru. Zaměstnanci v rámci své činnosti vyjíždějí na služební cesty. Databáze obsahuje data o 69 odběratelích firmy Encián. V databázi jsou také podrobná data o inventáři firmy.

Příklady uvedené ve skriptech jsou k dispozici na webu předmětů Manažerské informatiky http://min.vse.cz v sekci Ke stažení.

Studentům předmětu Manažerská informatika 3 jsou k dispozici četné e-learningové materiály v rámci Integrovaného studijního informačního systému (ISIS). Po přihlášení k ISIS na adrese http://isis.vse.cz student vybere v sekci Moje studium volbu Portál studenta. V portálu studenta klepne do odkazu E-osnovy předmětů. V řádku Manažerská informatika 3 klepne do tlačítka šipky pro vstup. V opoře Access nalezne příklady ze skript, učební text (bez možnosti tisku a kopírování), výukové prezentace promítané na výuce, odkaz na záznamy výuky a další informace.

Z výuky předmětu Manažerská informatika 3 byly pořízeny záznamy (kombinace videa, zvuku, záznamu promítaných snímků a pracovní plochy učitelského počítače), které jsou publikovány na adrese http://multimedia.vse.cz v části 2OP483 Manažerská informatika 3. Je možné prohlédnout celý záznam jednotlivé vyučovací hodiny či vyhledat část záznamu dle promítnutého snímku.

Autoři děkují prvním čtenářům skript za jejich připomínky: − Recenze skript připravili: − Ing. Michaela Seghmanová (externí spolupracovník), − Ing. Ivana Topolová z katedry managementu VŠE.

− Kontrolní čtení textu provedla: − Ing. Kateřina Keslerová (absolventka předmětu Manažerská informatika 3).

Na základě zájmu o databázový systém Microsoft Access lze předpokládat dotisk, popř. další vydání skript. Autoři budou vděčni za jakékoliv připomínky a náměty jak k formální stránce (překlepy), tak k obsahové stránce (nepřesné či nesrozumitelné formulace), aby v dalších dotiscích či vydáních mohly být chyby opraveny. Připomínky a náměty můžete zasílat na elektronickou adresu [email protected]. Na tutéž adresu můžete posílat připomínky, náměty, přání k výuce předmětu 2OP483 Manažerská informatika 3.

Zájemcům o navazující výuku na Fakultě mezinárodních vztahů je určen následující přehled předmětů zaměřených na aplikaci osobních počítačů: − 2OP381 Manažerská informatika 1 (textový procesor Word, tabulkový program Excel,

prezentační program PowerPoint, program na organizaci poznámek OneNote), − 2OP482 Manažerská informatika 2 (program pro řízení projektů Project, program pro tvorbu

diagramů Visio, organizátor osobních informací Outlook), − 2OP483 Manažerská informatika 3 (databázový systém Access).

Hodně úspěchů při studiu databázového systému Access a dalších programů pro osobní počítače!

Text byl zpracován v červnu 2008 – únoru 2009 v textovém editoru Microsoft Word verze 2003. 1. vydání vyšlo v v dubnu 2009 v nákladu 100 výtisků.

Ilustrativní příklady

E-learning

Záznamy výuky

Poděkování

Připomínky ke skriptům

Předměty FMV zaměřené na aplikaci PC

Page 9: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 9

1. Databáze

1.1 Databázový systém Databáze je souhrn dat vztahujících se k určitému tématu nebo účelu. Databázi lze

chápat jako množinu dat popisujících určitou část objektivní reality, udržovanou a využívanou prostřednictvím databázového systému.

Databázový systém – systém řízení báze dat (SŘBD) – Database Management System (DBMS) je programové vybavení pro vytvoření a využití databází (bází dat). Často se slovem databáze rozumí jak uložená data, tak i software (SŘBD).

Postupně vznikly různé databázové modely odlišné dle způsobu ukládání dat a vazeb mezi nimi: − hierarchické databáze: Logické uspořádání dat je omezeno na stromovou strukturu. Vztahy

mezi daty v záznamech jsou vyjádřeny prostřednictvím ukazatelů (pointerů). Ukazatele obsahují odkaz na související záznam.

− síťové databáze: Každý záznam může být spojený s libovolným počtem dalších záznamů. − relační databáze: Je založena na tabulkách. Tabulka shromažďuje údaje o jednom druhu

objektů (např. o zaměstnancích, odběratelích). Řádky tabulky zastupují záznamy (věty, např. jednotlivé zaměstnance či jednotlivé podniky). Sloupce tabulky se nazývají atributy (položky), vyjadřují vlastnosti záznamu (např. jméno, příjmení zaměstnance). Sloupce mají různé datové typy (např. textový, číselný). Atributy jsou pojmenovány (např. Jméno, Příjmení). Mezi tabulkami existují vztahy (relace), slouží ke svázání dat, která spolu souvisejí.

− objektové databáze: Základem není tabulka, ale objekt. Každý objekt má atributy (vlastnosti, obdobně jako mají záznamy v relační databázi) a metody, které pracují s hodnotami vlastností. Mezi objekty se využívá dědičnost, zapouzdřenost, polymorfismus.

− objektově-relační databáze: Data jsou uchovávána v tabulkách, některé položky mohou mít složitější datovou strukturu (uživatelem definované typy), rysy objektového přístupu se promítají do tabulek.

Řadu databází je možné vytvořit i využívat na úrovni kancelářského balíku. Jedním z programů pro systém řízení relační databáze (RDBMS) je Microsoft Office Access, který je nyní dostupný ve verzi 2007 lokalizované do češtiny.

Microsoft Office Access lze zakoupit jako jednotlivý program nebo v rámci kancelářského balíku Microsoft Office a to v sadách Professional, Professional Plus, Enterprise a Ultimate.

Access ukládá data formou tabulek do jediného souboru databáze s příponou accdb. Do stejného souboru se ukládají také další objekty databáze. Access pracuje s několika typy objektů: − Tabulka je souhrn dat týkající se určitého objektu. Datové věty (záznamy) jsou uvedeny

v řádcích, jednotlivá pole (atributy, položky, vlastnosti) ve sloupcích. Tabulky lze v databázi vytvořit, můžeme je také importovat nebo připojit z Excelu, z SharePointu, Outlooku, jiné databáze Accessu a dalších zdrojů.

− Relace specifikují vztahy mezi tabulkami, např. můžeme omezit vkládání identifikačního čísla odběratele do faktury (tj. věty v tabulce faktur) na seznam daný tabulkou odběratelů.

− Dotaz je otázka, kterou se tážeme na výskyt určitých dat v databázi. Lze se ptát na obsah jedné či více tabulek spojených relacemi, výsledkem často bývá tzv. datová sada.

− Formulář slouží k pohodlnému vkládání, opravě či prohlížení dat. V návrhu formuláře určujeme, v jaké formě chceme zobrazit data. Formulář může zobrazovat data z jedné či více tabulek.

− Sestava se využívá při prezentaci dat na obrazovce či na tiskárně. Do sestavy můžeme snadno zařadit souhrny skupin dat, např. dílčí a celkové součty.

− Makro je seznam akcí, které často provádíme v sekvenci za sebou. Makro umožňuje sekvenci uchovat a snadno opakovaně provádět.

− Modul obsahuje příkazy jazyka Visual Basic. Pomocí jazyka Visual Basic lze automatizovat složitější operace než v makrech.

Databáze

Databázový systém

Databázové modely

Access 2007

Access v MS Office

Objekty Accessu

Page 10: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 10

Spouštění objektů může být v Accessu automatizované např. pomocí formuláře

s výchozí nabídkou operací. Řešení v databázovém systému Access můžeme šířit dalším uživatelům, kteří nemusí mít možnost měnit naše návrhy objektů.

1.2 Firma Encián Výklad bude v publikaci proveden na příkladu databáze firmy Encián. Fiktivní firma Encián vyvíjí a distribuuje programy zaměřené na podnikové finance

zejména pro malé a střední podniky. Jedná se o 6 programů (Bonita, Finanční analýza, Investice, Kauzální analýza, Podnikatel, SAFI). V roce 2008 vytvořila nové verze programů.

V databázi bude firma Encián sledovat informace v tabulkách (vztah tabulek je uveden v diagramu relací v obr. 1-1):

OBR. 1-1: VZTAHY (RELACE) TABULEK V DATABÁZI FIRMY ENCIÁN

− personální data • Personal

» Osobní data 20 zaměstnanců včetně fotografií a odkazů na jejich osobní webovou stránku.

» Každý zaměstnanec má přiděleno uživatelské jméno, kterým je dán také jeho e-mailový účet. V tabulce budeme jako jednoznačný identifikátor používat zkrácený e-mail, např. Novak.Petr pro ředitele Petra Nováka s e-mailem [email protected]. Zkrácený e-mail uvedeme do pole E_mail.

» Většina zaměstnanců má určenu místnost, s výjimkou Ondřeje Světlého, který je externím programátorem.

» Každý zaměstnanec, který má určenu místnost, má k dispozici telefon, který je uveden ve větě zaměstnance v poli Telefon. Dříve byl do každé kanceláře zaveden jediný telefon. Ten je dosud uváděn v tabulce Místnosti v poli Původní_telefon.

» Každý zaměstnanec je zařazen do jednoho z 6 oddělení a má určeného nadřízeného. » Jen někteří zaměstnanci mají právo fakturovat.

• Oddělení » Zaměstnanci jsou rozděleni do 6 oddělení (ředitelství, analýza, programování, reklama,

distribuce, konzultace). » Jednoznačným identifikátorem oddělení je třípísmenná zkratka názvu oddělení v poli

Oddělení. » Pro každé oddělení je jmenován vedoucí. » Organizační diagram firmy Encián (připravený programem Microsoft Office Visio) je

uveden v obr. 1-2

Šíření aplikací připravených v Accessu

Personal (E_mail)

Oddělení (Oddělení)

Page 11: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 11

OBR. 1-2: ORGANIZAČNÍ DIAGRAM FIRMY ENCIÁN

V organizačním diagramu: • Jsou barevně odlišena oddělení. • Pro každého zaměstnance je uvedeno příjmení, kód oddělení, charakteristika. • V levém horním rohu je uvedeno číslo kanceláře, v levém dolním rohu je uvedeno

telefonní číslo. • V pravém horním rohu je pro zaměstnance s oprávněním fakturovat uvedeno zaškrtnutí. • V pravém horním rohu je pro zaměstnance na částečný úvazek uvedena ikona grafu. • V pravém dolním rohu je zobrazen pro ženy červený praporek.

− data o odběratelích • Podniky

» Základní data o odběratelích, kterými je 69 malých a středních podniků. » Podniky jsou nazvány krátkými fiktivními názvy vytvořenými ze smyšlených křestních

jmen, mají jednoznačné identifikační číslo (IČ). » Podniky jsou rozděleny dle stádia vývoje. Na základě dotazníku zařadila firma Encián

svých 69 odběratelů do stadií životního cyklu. Jedná se o 5 základních vývojových stadií podniku (koncepce, existence, růst, rozvoj, vyspělost) a 3 vedlejší statická stadia (životní styl, zastavený růst, zastavený rozvoj).

» Každému podniku je přiřazeno až 6 kódů klasifikace ekonomických činností (NACE) pro převažující činnosti.

» Pro odběratele sledujeme jeho adresu, telefon, bankovní účet a kód banky. • Stadia

» V samostatné tabulce je pro každé stadium upřesněn jeho stupeň, charakteristika a dynamika.

» Jednoznačným identifikátorem stadia je název stadia v poli Stadium. » Využíváme celkem 8 stadií (viz obr. 1-3, v němž jsou u stadií znázorněny teploměrem

počty odběratelů v jednotlivých stadiích).

OBR. 1-3: STADIA

Podniky (IČ)

Stadia (Stadium)

Page 12: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 12

• NACE

» V samostatné tabulce je doplněno pro každý kód NACE1 jeho slovní vysvětlení. Čtyřciferný kód NACE je systematický (viz obr. 1-4):

OBR. 1-4: STRUKTURA KLASIFIKCE NACE

První dvě číslice vyjadřuje oddíl, např. 47 Maloobchod, kromě motorových vozidel. První tři číslice vyjadřují skupinu, např. 472 Maloobchod s potravinami, nápoji a tabákovými výrobky ve specializovaných prodejnách.

První čtyři číslice vyjadřují třídu, např. 4721 Maloobchod s ovocem a zeleninou. Ve výjimečných případech se pro národní účely používá pět číslic. Pátá úroveň vyjadřuje podtřídy. V databázi firmy Encián pátou úroveň nevyužijeme.

V případech, kdy daná úroveň klasifikace níž už dále není členěna, používá se na nižších úrovních číslice 0, např. 1200 Výroba tabákových výrobků.

Všude, kde je to možné, se v označení skupin a tříd typu ostatní používá v kódu číslice 9, např. 4729 Ostatní maloobchod s potravinami ve specializovaných prodejnách.

» Tabulka je převzata z oficiálního číselníku České statistického úřadu. Obsahuje 88 oddílů, 272 skupin, 615 tříd a 160 podtříd, tj. 1135 vět.2

• Oddíly_Sekce » V tabulce jsou převáděny oddíly činností (např. 47) na méně členité sekce označené

písmeny (např. oddíl 47 Maloobchod, kromě motorových vozidel je zařazen do sekce G Velkoobchod a maloobchod; opravy a údržba motorových vozidel). 88 oddílů NACE je tak redukováno na 21 sekcí NACE dle převodní tabulky: A B C D E F G H I J K 01-03 05-09 10-33 35 36-39 41-43 45-47 49-53 55-56 58-63 64-66

L M N O P Q R S T U 68 69-75 77-82 84 85 86-88 90-93 94-96 97-98 99

» Jednoznačným identifikátorem je pole Oddíl. • Sekce

» V tabulce je pro každý kód sekcí v poli Sekce doplněno jeho slovní vysvětlení. » Jednoznačným identifikátorem je pole Sekce.

− data o prodejích firmy Encián v prvním pololetí roku 2009 • Faktury

» Každé faktuře je přiděleno jednoznačné číslo v poli Faktura a upřesněno pro ni, kdo (zaměstnanec z tabulky Personal), kdy a komu (podnik z tabulky Podniky) ji vystavil.

» Za sledované období bylo vydáno 102 faktur. • Licence

» Jednou fakturou můžeme prodávat více licencí programů. Každá licence má v rámci jednotlivých programů jednoznačné sériové číslo. V jednotlivé větě je upřesněn kód programu, sériové číslo a číslo faktury, kterou byla licence prodána.

1 Zkratka NACE je odvozena z francouzského názvu Nomenclature générale des Activités économiques dans

lesCommunautés Européennes. Tuto statistickou klasifikaci ekonomických činností používá Evropská unie od roku 1970. Klasifikace NACE roku 2008 nahradila odvětvovou klasifikaci ekonomických činností (OKEČ) dříve používanou v ČR.

2 Aktuální číselník NACE je dostupný na webu České statistického úřadu http://www.czso.cz po klepnutí volby Klasifikace, Číselníky/Klasifikace a výběru volby Klasifikace ekonomických činností (CZ-NACE). Klasifikace je dostupná také formou tabulky Excelu.

NACE (NACE)

Oddíly_Sekce (Oddíl)

Sekce (Sekce)

Faktury (Faktura)

Licence (Program a Sériové_číslo)

Page 13: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 13

» Na fakturách byl fakturován různých počet licencí:

licencí 6 5 4 3 2 1 celkem faktur 1 1 3 17 24 56 102

» Vyskytly se případy, kdy na jedné faktuře bylo prodáno více licencí stejného programu: program BON FIN INV KAU POD SAF faktura 1010 2 faktura 1011 2 faktura 1044 2 faktura 1061 2 faktura 1072 2 faktura 1095 2 faktura 1097 3 2 faktura 1101 2 2 faktura 1102 2

» Jednoznačným identifikátorem je dvojice polí Program a Sériové_číslo. » Za sledované období se prodalo 178 licencí programů.

• Programy » Pro každý z 6 programů je ke kódu programu v poli Program doplněn název a cena. Pro

jednoduchost předpokládáme, že cena je jednotná pro všechny odběratele v celém období, není tedy diferencována dle jednotlivých faktur.

− data o služebních cestách zaměstnanců firmy Encián • Cesty

» Každá cesta je jednoznačně určena rokem a číslem cesty v rámci roku. Pro cestu je uvedeno datum zahájení, datum dokončení a místo cesty.

» Jednoznačným identifikátorem je dvojice polí Rok a Cesta. • Výjezdy

» V každé větě je uvedena identifikace zaměstnance zkráceným e-mailem, rok a číslo cesty.

» Jednoznačným identifikátorem je trojice polí E_mail, Rok a Cesta. » Za první pololetí sledovaného roku 2009 se ve firmě uskutečnilo 30 výjezdů

jednotlivých zaměstnanců v rámci 15 služebních cest, tj. jedné cesty se v průměru zúčastnili 2 zaměstnanci (viz obr. 1-5).

OBR. 1-5: SLUŽEBNÍ CESTY FIRMY ENCIÁN

Programy (Program)

Cesty (Rok a Cesta)

Výjezdy (E_mail, Rok a Cesta)

Page 14: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 14

− data o inventáři firmy • Místnosti

» Firma Encián sídlí v třípodlažním domě (viz obr. 1-6). V prvním a druhém podlaží jsou dvoučlenné kanceláře zaměstnanců, zasedací a školící počítačová místnost, zázemí (kuchyňka, WC, umývárna). Ve třetím podlaží v podkroví sídlí ředitel a sekretářka firmy.

OBR. 1-6: MÍSTNOSTI FIRMY ENCIÁN

» Pro každou místnost ve firmě je uvedeno její číslo, popis, oddělení, které zodpovídá za místnost.

» Jednoznačným identifikátorem je pole Místnost. » Místnosti jsou číslovány systematicky, desítková číslice vyjadřuje podlaží, případné

písmeno za číslem místnosti vnitřní místnost (např. 26a je sklad na 2. podlaží dostupný z místnosti 26), popř. obslužnou místnost číslovanou dle nejbližší kanceláře (např. 16b je umývárna pro muže na 1. podlaží blízko kanceláře 16). Celkem je ve firmě 40 číslovaných prostor (včetně chodeb 10a, 20a, 30a).

• Majetek_typy. » Firma je vybavena mobiliářem (nábytkem), výpočetní, audiovizuální a komunikační

technikou. Vybavení je nakupováno hromadně, často se vyskytují společné typy vybavení.

» V každé větě je pro typ majetku uveden jeho druh (Skříň, Stůl, Židle, Křeslo, Výpočetní technika, LCD, Audiovizuální technika, Komunikační technika, Reprografická technika, Vyvolávací systém, Kuchyň3), popis majetku, pořizovací cena a datum pořízení.

» Jednoznačným identifikátorem typu je pole Typ_majetku. » Firma má 57 typů inventáře.

• Majetek_umístění » Každý kus inventáře má přiděleno inventární číslo, k němuž je upřesněn typ majetku,

zodpovědná osoba a místnost, v níž je majetek umístěn. » Jednoznačným identifikátorem je pole Inventární_číslo. » Tabulka obsahuje 625 kusů inventáře. » Inventarizovaný majetek firmy má hodnotu dle pořizovací ceny 5 775 208 Kč.

Odpadkové koše, telefony a květiny nejsou vzhledem k jejich nízké pořizovací ceně (koš za 213 Kč, telefon za 302 Kč, květina za 325 Kč) inventarizovány. Nejvyšší podíl na inventáři tvoří výpočetní technika 1 509 298 Kč (bez LCD, jejichž pořizovací hodnota činila 407 222 Kč) a židle (1 216 622 Kč).

3 Druh inventáře určuje vrstvu v diagramu v programu Microsoft Office Visio, v němž je připraven prostorový plán

budovy firmy Encián.

Místnosti (Místnost)

Majetek_typy (Typ_majetku)

Majetek_ umístění (Inventární_ číslo)

Page 15: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 15

1.3 Seznámení s aplikací Access

Program Access spustíme z prostředí Windows např.: − poklepáním na ikonu Accessu na pracovní ploše nebo − z menu Windows START, dále volbou VŠECHNY PROGRAMY a nalezením Accessu v seznamu

programů. Otevře se obrazovka ZZaaččíínnáámmee (obr. 1-7).

OBR. 1-7: OBRAZOVKA ZAČÍNÁME

V levém podokně můžeme vybrat z kategorií šablon místní šablony nebo některou kategorii šablon z webu Microsoft Office Online.

Pokud vybereme kategorii Místní šablony, nabídne se 11 výchozích databází, které můžeme rozdělit na tři druhy dle jejich účelu: − podnikání • Aktiva: Databáze pro sledování aktiv a kontaktů. Obsahuje tabulky Aktiva a Kontakty. • Kontakty: Databáze kontaktů pro uchovávání informací o osobách (zákaznících a

partnerech). Obsahuje jedinou tabulku Kontakty. • Marketingové projekty: Databáze ke sledování průběhu marketingových projektů.

Obsahuje tabulky Běžné úkoly, Prodejci, Projekty, Úkoly, Zaměstnanci. • Problémy: Databáze evidence problémů, které můžeme přiřazovat řešitelům a sledovat

průběh jejich plnění. Obsahuje tabulky Kontakty a Problémy. • Prodejní kanál: Databáze prodejních kanálů, umožňuje sledovat vývoj obchodních

příležitostí. Obsahuje tabulky Příležitosti, Zákazníci, Zaměstnanci.

Spuštění Accessu

Místní šablony

Page 16: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 16

• Události: Databáze událostí pro sledování schůzek, termínů a dalších událostí. Obsahuje tabulku Události.

• Úkoly: Databáze úkolů a sledování jejich plnění. Obsahuje tabulku Kontakty a Úkoly. − studium • Studenti: Databáze studentů pro sledování informací o studentech včetně kontaktních

informací pro naléhavé případy, informací o používaných lécích a opatrovnících. Struktura tabulek vhodná pro evidenci na základních a středních školách. Obsahuje tabulky Opatrovníci a Studenti.

• Vyučující: Databáze vyučujících pro udržování informací o členech pedagogického soboru včetně informací pro naléhavé případy a informací o vzdělání vyučujících. Struktura tabulek vhodná pro evidenci na základních a středních školách. Obsahuje tabulku Vyučující.

− demonstrace možností Accessu • Northwind 2007: Databáze demonstrující využití Accessu na agendě fiktivní firmy.

Obsahuje tabulky Faktury, Informace o dodavatelích, Inventář transakcí, Objednávky, Objednávky nákupu, Oprávnění, Oprávnění zaměstnance, Přepravci, Rozpis objednávek, Rozpis objednávek nákupu, Řetězce, Stav daně objednávek, Stav objednávek, Stav objednávky nákupu, Stav rozpisu objednávek, Typy transakcí inventáře, Výkazy o prodeji, Výroby, Zákazníci, Zaměstnanci. Databáze obsahuje řadu ukázkových dotazů, formulářů, sestav, maker a modulů.

Pokud vybereme šablonu z Microsoft Office Online, je nejdříve otestováno, zda používáme pravou licenci Microsoft Office. Nabídka šablon databází ke stažení je totožná s místními šablonami.

Na rozdíl od ostatních programů Microsoft Office nemůžeme pracovat s prázdnou neuloženou databází. Již při výběru šablony musíme proto v pravém podokně upřesnit umístění a název souboru.

Pro účely databáze firmy Encián nevyhovuje žádná připravená šablona. Proto v levém podokně zadáme volbu Nabídka možností a v prostředním podokně volbu Prázdná databáze. Do pole Název souboru zapíšeme název Encian4. Klepneme do tlačítka Vyhledat umístění pro databázi napravo od pole Název souboru a vyhledáme vhodnou složku pro umístění databázového souboru5.

Prázdnou databázi vytvoříme klepnutím do tlačítka Vytvořit. Ve vybrané složce se vytvořil soubor Encian.accdb.

V databázi se zahájila automaticky tvorba první tabulky. Do tabulky zapíšeme základní osobní data vybraných zaměstnanců firmy Encián: − Každý zaměstnanec je identifikován jednoznačně uživatelským jménem, které se stane

součástí jeho firemního e-mailu. Do sloupce Přidat nové pole do prvního řádku (na jehož začátku je hvězdička) zapíšeme zkrácený e-mail (bez koncovky [email protected]) ředitele firmy Novak.Petr.

− Po odeslání se přichystá další sloupec nadepsaný Přidat nové pole. − Poklepeme na název Pole1 a zapíšeme název E_mail. Názvy polí budeme volit krátké, místo

mezer či uvozovek budeme používat podtržítko. − Do dalšího sloupce zapíšeme hodnotu Novák a sloupec přejmenujeme na Příjmení. − Další sloupec nejprve přejmenujeme na Místnost a zapíšeme do něj hodnotu 31. − Další sloupec přejmenujeme na Oddělení a zapíšeme do něj hodnotu RED (kód oddělení ředitelství).

− Po odeslání hodnoty RED zahájíme zápis nové věty ve sloupci E_mail. Zapíšeme sem hodnotu Sladka.Marie.

− Obdobně doplníme další hodnoty do věty sekretářky ředitele Marie Sládké: příjmení Sladká, místnost 32, oddělení RED.

− Obdobně doplníme dalšího zaměstnance, e-mail Kolinska.Eva, příjmení Kolínská, místnost 23, oddělení PRG (viz obr. 1-8).

4 Odkazy na soubory příkladů jsou vypisovány na levém okraji se symbolem a názvem databáze. 5 Výchozí složku pro ukládání a otevírání databází můžeme upřesnit klepnutím do tlačítka Office a tlačítka Možnosti

aplikace Access. V kartě Oblíbené v sekci VVyyttvváářřeenníí ddaattaabbáázzíí nastavíme pole Výchozí složka pro databáze.

Šablony Online

Vytvoření databáze

ENC-01-01 První tabulka

Page 17: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 17

OBR. 1-8: TABULKA PERSONAL

− Zavřeme objekt tabulky klepnutím do ukončovacího tlačítka s křížkem v řádku s názvem

tabulky Tabulka1. − Access ukládá hodnoty vět průběžně do souboru Encian.accdb. Přesto se nás ptá, zda má

uložit změny v návrhu objektu. Jedná se o název tabulky. Klepneme do tlačítka Ano. − V dialogovém okně Uložit jako vyplníme název tabulky. Navrhovaný název Tabulka1

změníme na Personal. Uložit jako

Vytvoříme druhou tabulku. V pásu karet klepneme do záložky VYTVOŘIT. Ve skupině TTaabbuullkkyy klepneme do tlačítka Tabulka. Opět se vytvořila tabulka s názvem Tabulka1, kterou vyplníme: − V tabulce přejmenujeme nové sloupce na Oddělení (kam budeme vkládat kód oddělení) a

Oddělení_v (kam budeme vkládat textovou vysvětlivku kódu oddělení). − Vložíme dvě věty: RED, ředitelství a PRG, programování. − Tabulku uložíme klepnutím do tlačítka Uložit v panelu nástrojů Rychlý přístup nebo

kombinací kláves Ctrl S. Při ukládání modifikujeme název tabulky na Oddělení. − Tabulku zavřeme zavíracím tlačítkem. Vzhledem k tomu, že jsme již tabulku ukládali

(přesněji její návrh, obsah se ukládá průběžně), nejsme již vyzváni k zápisu názvu tabulky. Mezi tabulkami mohou být v Accessu relace – vazby, které pomáhají při konstrukci

dotazů. Nejčastěji se využívají výběrové dotazy, které vybírají data z jedné či více tabulek, výsledkem je tzv. datová sada ve formě tabulky, která může být kombinací data z více tabulek.

Zkombinujeme data z tabulky Personal a Oddělení formou jednoduchého dotazu. Ke každému zaměstnanci chceme vypsat jeho příjemní, kód a vysvětlivku oddělení, do něhož je zařazen: − V kartě VYTVOŘIT ve skupině Jinéé klepneme do tlačítka Návrh dotazu. Jin− V dialogovém okně Zobrazit tabulku vybereme tabulky, kterou budou zdrojem dotazu. Zobrazit tabulku• Poklepeme na tabulku Oddělení. • Klepneme na tabulku Personal a klepneme do tlačítka Přidat. • Klepneme do tlačítka Zavřít.

OBR. 1-9: DIALOGOVÉ OKNO ZOBRAZIT TABULKU

− Návrhové zobrazení dotazu se skládá ze dvou podoken (viz obr. 1-10, kde je již návrh dotazu

dokončen): • V horním podokně Diagram je diagram tabulek, z nichž dotaz čerpá data. Diagram

Personal

Vytvoření tabulky

Oddělení

Vytvoření dotazu

Page 18: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 18

• V dolním podokně Mřížka je návrhová mřížka dotazu, do níž budeme vybírat z podokna

Diagram pole tabulek, popř. upřesňovat kritéria výběr, řazení a další. Mřížka

Diagram− Do podokna Diagram jsme umístili tabulky Oddělení a Personal. Diagram− Poklepeme na pole Příjmení z tabulky Personal. Příjmení se zapíše do prvního sloupce

dotazovací mřížky. − Poklepeme na pole Oddělení v tabulce Personal a pole Oddělení_v v tabulce Oddělení. − V kartě NÁVRH ve skupině Výsledky klepneme do tlačítka Zobrazení. Výsledky− Zobrazil se výsledek dotazu. Pro každého zaměstnance se ve výsledné datové sadě vypsaly

dvě věty. Access vytvořil všechny kombinace 3 vět tabulky Personal se 2 větami tabulky Oddělení, tj. 3 x 2 = 6 kombinací.

− My však chceme zobrazit jen vhodné kombinace, tj. kombinace, kde je shodné pole Oddělení v tabulce Personal a pole Oddělení v tabulce Oddělení.

− V kartě DOMŮ ve skupině Zobrazení klepneme do tlačítka Zobrazení. Zobrazení− V podokně Diagram návrhu dotazu tažením přesuneme pole Oddělení z tabulky Personal na

pole Oddělení tabulky Oddělení. Vytvoříme tak relaci mezi tabulkami. Diagram

− Znovu zobrazíme výsledek dotazu klepnutím do tlačítka Zobrazení. Ve výsledku se zobrazí již jen 3 kombinace, pro něž platí rovnost pole Oddělení v tabulkách Personal a Oddělení.

OBR. 1-10: DOTAZ VYPISUJÍCÍ K ZAMĚSTNANCŮM ODDĚLENÍ

− Kombinací kláves Ctrl S uložíme návrh dotazu pod názvem P13 Zaměstnanci s oddě

učásti okna Accessu (viz obr. 1-11, v němž je otevřen dotaz P13 Zam

le frekvence příkazů

báze, otevření dříve vytvořené databáze, komprimace databáze, nastavení

lepnutím do tlačítka Office a

it, tlačítko pro návrat zpět o jeden vykonaný příkaz a tlačítko pro opakování kroku postupu8.

leními.6 Podívejme se nyní na soěstnanci s odděleními). Access 2007 využívá uživatelské rozhraní Microsoft Office Fluent7. Dřívější nabídka

a panely nástrojů byly modifikovány na pás karet uspořádaný dzastoupených tlačítky v kartách. Popišme nejdříve úvodní obrazovku: − Vlevo nahoře je tlačítko Office, které zprostředkovává příkazy pro práci se soubory (založení

nové dataAccessu). Aby databáze nezabírala příliš místa a aby byl její provoz rychlý, budeme vždy po úpravě databáze (např. jednou denně) provádět komprimaci databáze kpříkazem SPRAVOVAT, ZKOMPRIMOVAT A OPRAVIT DATABÁZI.

− Napravo od tlačítka Office je panel nástrojů Rychlý přístup, který obsahuje základní příkazy na trvale zobrazených tlačítkách. Po instalaci Accessu je to tlačítko Ulož

6 Název objektů s výjimkou tabulek budeme zahajovat písmenem P (publikace), číslem kapitoly, tj. v kap. 1.3

vytváříme objekty P13 Zaměstnanci s odděleními. Bude-li v kapitole objektů více, odlišíme je malým písmenem za číslem kapitoly, např. P31a Dotaz. Čtenář zakládá stejně nazvané objekty avšak bez úvodního písmena P. Čtenářovy objekty tak budou v seznamech objektů řazených dle abecedy uvedeny dříve.

7 Obdobné rozhraní mají aplikace Word 2007, Excel 2007, PowerPoint 2007 a z části Outlook 2007. 8 V je navíc uživatelské tlačítko, které zobrazíme v souvislosti s navrhováním formulářů. obr. 1-11

P13 Zaměstnanci s odděleními

Tlačítko Office

Rychlý přPanel nástrojů

ístup

Page 19: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 19

OBR. 1-11: SOUČÁSTI OKNA ACCESSU

− Na konci panelu nástrojů Rychlý přístup je úzké tlačítko Přizpůsobit panel nástrojů Rychlý

přístup. Klepnutím do tlačítka se zobrazí nabídka: • Nejprve jsou nabídnuty časté příkazy, které lze zařadit do panelu nástrojů Rychlý přístup

(Nová, Otevřít, ..., Aktualizovat vše). • Dále můžeme zobrazit další příkazy, které lze zařadit do panelu nástrojů Rychlý přístup.

Otevře se okno Možnosti aplikace Access, v němž je možné zobrazit vybranou kategorii příkazů a přidávat je do panelu nástrojů Rychlý přístup. V ostatních kartách jsou další možnosti modifikace Accessu.

Možnosti aplikace Access

• Volbou ZOBRAZIT POD PÁSMEM KARET můžeme panel nástrojů Rychlý přístup zobrazit pod pásem karet.

• Volbou MINIMALIZOVAT PÁS KARET můžeme potlačit zobrazení pásu karet a zvětšit tak prostor pro podokna Accessu.

− V titulkovém pruhu okna je název otevřené databáze. Za názvem databáze je v závorce formát uložení databáze (v našem případě Access 2007) a název aplikace Microsoft Access. Na konci titulkového pruhu jsou běžná tlačítka aplikací Windows (Minimalizovat, Maximalizovat, Zavřít). Pod tlačítky Windows je tlačítko pro otevření nápovědy.

− Pod titulkovým pruhem je zobrazen pás karet s příkazy pro program Access. Příkazy jsou rozděleny do karet. Standardní karty (DOMŮ, VYTVOŘIT, EXTERNÍ DATA, DATABÁZOVÉ NÁSTROJE) se zobrazují stále, kontextové karty (např. NÁVRH) se zobrazují jen v kontextu některých činností (např. návrh dotazu). V některých situacích se potlačí zobrazení standardních karet a zobrazí se aplikační karty (např. NÁHLED při zobrazení náhledu tisku výsledku dotazu). Návrat z aplikačních karet bývá klepnutím do tlačítka Zavřít v závěru aplikační karty.

− Příkazy v kartách jsou pro přehlednost rozděleny do skupin. Názvy skupin jsou uvedeny v spodní části karty (např. v kartě NÁVRH skupiny Výsledky, Typ dotazu, Nastavení dotazu, Zobrazit či skrýtt).

Výsledky, Typ dotazu, Nastavení dotazu,Zobrazit či skrý

− Pokud je v pásu karet dost místa (záleží na rozlišení zobrazování a na šíři okna), jsou u příkazových tlačítek jejich názvy. Vzhled karty se může se změnou velikost okna měnit.

Titulkový pruh

Pás karet

Skupiny příkazů

Page 20: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 20

− Řada tlačítek zastupuje nabídku, která se vyklopí klepnutím do tlačítka. Zastupování nabídky

je vyznačeno na konci tlačítka ikonou nabídky (trojúhelníkem, viz např. tlačítko vše ve skupině Nastavení dotazu). Klepnutím do některých tlačítek (např. Barva písma ve skupině Písmoo v kartě DOMŮ) zadáme naposledy použité nastavení tlačítka (např. barvu písma) na rozdíl od klepnutí do ikony nabídky, kterým zobrazíme další varianty (např. výběr jiné barvy), z nichž jednu můžeme vybrat a zároveň tak nastavit tlačítko pro další použití.

Nastavení dotazuPísm

− Některé skupiny příkazů zastupují řadu příkazů, které lze přehledně zobrazit v dialogovém okně. Toto dialogové okno lze zobrazit klepnutím do spouštěče dialogového okna v pravém dolním rohu skupiny (např. pro skupinu Písmoo v kartě DOMŮ). Písm

− Některá tlačítka se skládají ze dvou částí (např. tlačítko Zobrazení ve skupině Výsledkyy). Klepnutím do horní části přímo zadáme nejčastější variantu příkazu, klepnutím do dolní části vyklopíme detailní nabídku možností.

Výsledk

− Na levém kraji pod pásem karet je zobrazeno navigační podokno. • Zobrazuje seznam objektů databáze. Navigační podokno lze minimalizovat či obnovit

klepnutí do tlačítka se symbolem << v jeho pravém horním rohu. • Tažením můžeme upravit polohu svislé příčky, která odděluje navigační podokno od

zbývajících podoken. • V navigačním podokně jsou zobrazeny tabulky a s nimi související objekty ve skupinách.

Dotaz P13 souvisí s oběma tabulkami, je proto zařazen do obou skupin. Klepnutím do tlačítka na konci nadpisu skupiny můžeme sbalit či rozbalit skupinu.

• Objekty můžeme kategorizovat do skupin i jinak, můžeme také zobrazit jen některé objekty, tj. použít filtr. Klepneme do záhlaví navigačního podokna nadepsaného Všechny tabulky. Zobrazí se nabídka, v níž můžeme vybírat:

Všechnytabulky» kategorie

VLASTNÍ: Objekty jsou rozděleny do námi vytvořených skupin9. TYP OBJEKTU: Objekty jsou rozděleny do skupin dle typu objektu (tabulky, dotazy, formuláře, sestavy, makra, moduly).

TABULKY A SOUVISEJÍCÍ ZOBRAZENÍ: Objekty jsou rozděleny do skupin dle tabulek, do skupiny jsou zařazeny související objekty. Tato kategorie je nastavena jako výchozí při zakládání databáze.

DATUM VYTVOŘENÍ: Objekty jsou rozděleny do skupin dle data vytvoření. DATUM ZMĚNY: Objekty jsou rozděleny do skupin dle data poslední změny objektu.

» filtry: Můžeme vybrat jedinou skupinu a zobrazit pouze její objekty. Potom je v záhlaví navigačního podokna název skupiny.

• V našem případě vybereme kategorizaci dle typu objektů. − Objektů může být v databázi velké množství, Access proto nabízí četné modifikace

Navigačního podokna: Navigačního podokna• Z místní nabídky navigačního podokna můžeme:

» vybrat kategorizaci objektů do skupin, » vybrat kritérium řazení objektů ve skupinách a vzestupné či sestupné řazení, » vybrat způsob zobrazení objektů.

PODROBNOSTI: Pro každý objekt je zobrazeno kromě názvu objektu jeho typ, datum vytvoření a datum poslední změny objektu, popř. popis objektu10. Každá vlastnost je zobrazena na jednom řádku, úplný řádek lze zobrazit tažením za příčku navigačního podokna.

IKONA: Před názvem objektu je zobrazena větší ikona. SEZNAM: Před názvem objektu je zobrazena menší ikona.

» zobrazit či potlačit Panel hledání: Panel hledání je zobrazen v druhém řádku navigačního podokna. Může do něj zadávat úplný název či část názvu objektu. V navigačním podokně se potom zobrazí pouze odpovídající objekty.

» zobrazit podrobné okno Možnosti navigace (viz Možnosti navigace

obr. 1-12).

9 Vlastní skupiny můžeme vytvářet, když klepneme pravým tlačítkem myši kamkoliv v NNaavviiggaaččnníímm ppooddookknněě a

z místní nabídky vybereme MMoožžnnoossttii nnaavviiggaaccee. V dialogovém okně můžeme potom do kategorie Vlastní přidávat další skupiny, přejmenovávat a odebírat skupiny. Můžeme také vytvořit další kategorizaci.

10 Vlastnost objektu lze zadat, když na název objektu klepneme pravým tlačítkem a z místní nabídky vybereme VLASTNOSTI OBJEKTU. V dialogovém okně VVllaassttnnoossttii oobbjjeekkttuu vyplníme pole Popis. Můžeme také zaškrtnout pole Skrytý, pokud se jedná o pomocný objekt, který běžně nechceme zobrazit v seznamu objektů. Popis je jednou z vlastností objektu, můžeme jej proto také zadat v rámci návrhu objektu.

Spouštění dialogového okna

Navigační podokno

Page 21: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 21

OBR. 1-12: DIALOGOVÉ OKNO MOŽNOSTI NAVIGACE

V dialogovém okně MMoožžnnoossttii nnaavviiggaaccee můžeme: • přidat, odstranit, přejmenovat či změnit pořadí položek kategorizací, • v rámci vybrané kategorizace můžeme přidat, odstranit, přejmenovat či změnit pořadí

skupiny, zaškrtnutím můžeme potlačit zobrazení některých skupin, • zadat zobrazování skrytých objektů11, • zadat zobrazování systémových objektů12, • zobrazit panel hledání, • ovlivnit způsob otevírání objektu (klepnutí či poklepání). V našem případě přidáme kategorizaci Struktura publikace, v níž budeme třídit objekty dle jednotlivých kapitol. Okno MMoožžnnoossttii nnaavviiggaaccee zavřeme klepnutím do tlačítka OK.

Napravo od navigačního podokna jsou zobrazena podokna otevřených objektů. Každý otevřený objekt je zastoupen záložkou13. V případě návrhového režimu zobrazení dotazu jsou k objektu dotazu zobrazena dvě podokna Diagram a Mřížka. Dělící mřížky navigačního podokna a podoken DDiiaaggrraamm a MMřříížžkkaa můžeme tažením posouvat a měnit tak velikost podoken.

Ve stavovém řádku jsou: − vlevo informace různé dle kontextu, např. při vyplňování tabulek zde budou zobrazeny

popisy polí, pokud budou definovány, jinak je zde zobrazen režim zobrazení, − vpravo stav zapnutí kláves (např. NumLock) a tlačítka režimů zobrazení, jejichž počet je pro

různé objekty různý (např. pro dotazy je uvedeno 5 tlačítek zobrazení).

1.4 Návrhové zobrazení tabulky Dosud jsme navrhovali strukturu tabulky a naplňovali její obsah v zobrazení datového

listu. Nyní zobrazíme tabulku Personal v návrhovém zobrazení jedním ze čtyř postupů: − Klepneme pravým tlačítkem myši na název tabulky Personal v navigačním podokně a

z místní nabídky vybereme NÁVRHOVÉ ZOBRAZENÍ. − Poklepáním v navigačním podokně zobrazíme tabulku Personal. Z místní nabídky záložky

tabulky Personal zadáme NÁVRHOVÉ ZOBRAZENÍ. 11 Skrytí objektu lze zadat z místní nabídky názvu objektu výběrem volby VLASTNOSTI OBJEKTU. 12 Access ukládá některé informace do pomocných tabulek, které standardně nezobrazuje. 13 Objekty můžeme zobrazit také v překrývajících se oknech (tak, jak to bylo ve starších verzích Accessu), když

klepneme do tlačítka Office a tlačítka Možnosti aplikace Access a v kartě Aktuální databáze v sekci MMoožžnnoossttii aapplliikkaaccee zaškrtneme pole Překrývající se okna.

Podokno objektu

Stavový řádek

Návrhové zobrazení

Page 22: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 1: Databáze 22

− Poklepáním v navigačním podokně zobrazíme tabulku Personal. V kartě DOMŮ klepneme ve

skupině Zobrazení na horní část tlačítka Zobrazení. Zobrazení− Poklepáním v navigačním podokně zobrazíme tabulku Personal. V pravém dolním rohu

klepneme do tlačítka Návrhové zobrazení. Úpravy struktury tabulky Personal14:

− Jako první pole doplnil Access do tabulky pole ID, do něhož se automaticky doplňuje pořadové číslo věty. Pokud větu smažeme, číslo věty zůstane nevyužito. V našem případě využijeme k jednoznačné identifikaci věty pole E_mail. Odstraníme pole ID. Klepnutím do voliče řádku (prázdného čtverce se symbolem klíče) označíme řádek pole ID a stiskneme klávesu Delete. Na oba varující dotazy Accessu odpovíme klepnutím do tlačítka Ano.

− Pole E_mail naopak povýšíme na primární klíč. Hodnota v poli (popř. ve více polích) primárního klíče musí být jednoznačná. Podle primárního klíče jsou také věty seřazeny při zobrazování tabulky. Kurzor umístíme do řádku pole E_mail a klepnutím do tlačítka Primární klíč ve skupině Nástroje zadáme primární klíč. Nástroje

− Pro pole E_mail omezíme ještě maximální délku textu na 20 znaků. Do spodního podokna se přepneme klávesou F6 15 nebo klepnutím myší do spodního podokna.

− Hodnotu vlastnosti pole E_mail nazvanou Velikost pole změníme z hodnoty 255 na 20. − Obdobně maximální délku pole Příjmení změníme na 15. − Datový typ pole Místnost odhadnul Access na Číslo, protože jsme do tabulky zatím zadali

označení místností pouze ve formě čísel. V označení místností se však budou vyskytovat také písmena, proto změníme datový typ na Text, délku omezíme na 3 znaky.

− Také délku pole Oddělení změníme na 3 znaky. − Okno tabulky zavřeme klepnutím do uzavíracího tlačítka na konci řádku se záložkami názvů

tabulek. Potvrdíme uložení změn v návrhu tlačítkem Ano. Access nás upozorní na možnou ztrátu dat zkrácením polí. Potvrdíme svůj úmysl tlačítkem Ano.

Obdobně upravíme tabulku Oddělení: − Odstraníme pole ID. − Pole Oddělení bude primárním klíčem s délkou 3 znaky. − Pole Oddělení_v zkrátíme na 15 znaků.

Shrnutí 1. Dle způsobu ukládání dat se rozdělují databázové modely na hierarchické, síťové, relační,

objektové a objektově-relační databáze. 2. Access je relační databází, pracuje se několika druhy objektů, kterými jsou: tabulky,

relace, dotazy, formuláře, sestavy, makra, moduly. 3. Databázi v Accessu lze vytvořit využitím místní nebo on-line šablony (Aktiva, Kontakty,

Marketingové projekty, Problémy, Prodejní kanál, Události, Úkoly, Studenti, Vyučující, Nortwind 2007) nebo vycházet z prázdné databáze.

4. Data jsou v databázích Accessu uložena formou tabulek. 5. Tabulku můžeme vytvořit v zobrazení tabulky nebo v návrhovém zobrazení. 6. Dotaz vybírá data z tabulky nebo kombinuje data z více tabulek s možností akceptování

relací (vztahů) mezi tabulkami. 7. Okno dotazu se skládá z podokna Diagramu tabulek a podokna Mřížky, do níž se ze

seznamu polí tabulek vybírají některá pole. 8. Příkazy Accessu se vybírají z pásu karet. Pás karet obsahuje standardní, kontextové a

aplikační karty. 9. Tlačítka jsou v kartách rozdělena do skupin.

10. Seznam objektů Accessu je zobrazen v navigačním podokně. Objekty v něm mohou být různě kategorizovány, např. podle typu objektů či podle vlastní kategorizace.

11. Ve stavovém řádku jsou zobrazeny pomocné informace a tlačítka různých zobrazení objektů Accessu (např. zobrazení datového listu, návrhové zobrazení).

12. V návrhovém zobrazení můžeme odstraňovat, doplňovat, modifikovat pole. Jedno či více polí můžeme povýšit na primární klíč.

14 O způsobech tvorby a zobrazení tabulky podrobněji viz kap. 3. 15 Klávesa F6 přepíná mezi čtyřmi částmi obrazovky Access: podokno s poli tabulky, podokno s vlastnostmi polí,

navigační podokno, tlačítka zobrazení, pás karet.

ENC-01-02

Page 23: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 23

2. Relace

2.1 Typy a význam vztahů V průběhu návrhu databáze postupujeme v následujících krocích:

− Určíme účel databáze. V našem případě je účelem databáze evidence zaměstnanců, jejich služebních cest, inventárního majetku firmy a prodejů včetně evidence odběratelů.

− Vyhledáme a uspořádáme požadované informace. V našem případě jsme zvážili, které informace chceme uchovávat v databázi, vytipovali jsme pole vět.

− Rozdělíme informace do tabulek. Dodržujeme dvě základní zásady rozdělení do tabulek: • Udržujeme data vždy jen na jednom místě, bráníme vzniku duplicitních (redundantních)

dat, která zabírají místo a mohou být příčinou chyb. V našem případě by bylo nevhodné do věty zaměstnance uvádět název oddělení. Při změně názvu oddělení bychom museli změnu provádět ve více větách.

• Data vkládáme správná a úplná. V našem případě připustíme při zadávání nového zaměstnance či úpravy věty stávajícího zaměstnance výběr kódu oddělení (třípísmenné zkratky) jen z nabídky v tabulce Oddělení, v níž je seznam všech oddělení včetně názvů oddělení.

− Zadáme primární klíče. Pokud je to možné, pro každou tabulku zvolíme primární klíč, který jednoznačně identifikuje větu tabulky. Primárním klíčem může být jedno pole (např. E_mail v tabulce Personal) či více polí (např. pole Rok, Cesta v tabulce Cesty nebo E_mail, Rok, Cesta v tabulce Výjezdy).

− Ověříme splnění normalizačních pravidel. Normalizace je proces zjednodušování a optimalizace struktury tabulek v databázi především za účelem minimalizace redundantních (nadbytečných) dat. Správnost návrhu se vyhodnocuje tzv. normálními formami: • První normální forma (1NF)

Všechny sloupce nelze dále dělit na části nesoucí nějakou informaci. V poli nesmí být data, která lze rozdělit do více polí. V našem případě by první normální forma byla porušena v tabulce Podniky, kdyby v jednom poli bylo PSČ i název města. Byla by také porušena, kdyby v tabulce Personal byl sloupec Výjezd a v něm by se mohlo vyskytovat více hodnot (např. oddělených čárkami).

• Druhá normální forma (2NF) Tabulka obsahuje pouze sloupce, které jsou závislé na celém klíči. Pokud by tabulka Licence obsahovala pole Cena, pole Cena by záviselo pouze na části klíče, tj. na poli Program, nikoliv na poli Sériové_číslo, čímž by nebyla splněna druhá normální forma. Ceny programů proto uvádíme v tabulce Programy.

• Třetí normální forma (3NF) Nesmí existovat závislost mezi neklíčovými poli tabulky. Pokud by tabulka Personal obsahovala pole Oddělení_v, bylo by pole Oddělení_v závislé na poli Oddělení a nikoliv na klíčovém poli E_mail, čímž by nebyla splněna třetí normální forma. V našem případě např. každý zaměstnanec patří do nanejvýš jednoho oddělení. Pokud bychom připustili zařazení do více oddělení, museli bychom vytvořit můstkovou tabulku mezi tabulkami Personal a Oddělení nazvanou např. Zařazení, v níž by k zaměstnancům (pole E_mail) byla přiřazována jejich oddělení (pole Oddělení). Takovouto můstkovou tabulku máme v databázi použitou jako zprostředkovatele vazeb tabulek: » Personal a Cesty (můstek Výjezdy), » Faktury a Programy (můstek Licence), » Místnosti a Majetek_typy (můstek Majetek_umístění).

Návrh databáze

Normalizace

Page 24: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 24

• Čtvrtá normální forma (4NF) Nesmi existovat tzv. multizávislost. Multizávislost je případ, kdy v tabulce jsou dvě skupiny polí a kdy k jedné hodnotě první skupiny polí se přiřadí více hodnot druhé skupiny polí. Pokud by v tabulce Faktury byla uvedena pole Program, Sériové_číslo (v tom případě by klíčovými poli byla pole Faktura a Program), bylo by ke skupině polí Faktura, E_mail, Datum, IČ přiřazeno více hodnot skupiny Program, Sériové číslo, čímž by nebyla splněna čtvrtá normální forma. 16

− Vytvoříme relace mezi tabulkami. Vytipujeme relace, které vzniknou mezi tabulkami, a definujeme je do relací databáze tak, abychom je mohli opakovaně využít v dotazech. Do relací doplníme referenční integritu, která zajistí, že nevyplníme do databáze nekonzistentní data (např. zamezí vložení oddělení neexistujícího v tabulce Oddělení pro zaměstnance v tabulce Personal). Relace slouží ke svazování dat, existují čtyři typy relací: • Mezi tabulkami neexistuje spojitost, nedefinujeme žádný vztah. • 1:1

Jedné větě z první tabulky odpovídá právě jedna věta z druhé tabulky. Obě tabulky jsou obvykle sloučeny do jedné tabulky. Důvodem k rozdělení na dvě tabulky může být: » Struktura sloučené tabulky by byla příliš složitá. » Stupeň utajení je u tabulek různý. Např. v tabulce Personal máme uvedena data

zveřejňovaná na webu, v tabulce Kontakty budou také data pro jednotlivé zaměstnance, avšak dostupná pouze řídícím pracovníkům firmy. Věty tabulky Personal a Kontakty bude možné spojit prostřednictvím pole E_mail (viz kap. 3.2).

V našem případě se v databázi firmy Encián vazba 1:1 nevyskytuje. • 1:N

Jedné větě z první tabulky odpovídá žádná, jedna či více vět z druhé tabulky. Naopak větě z druhé tabulky odpovídá právě jedna věta z první tabulky. V našem případě je takový vztah např. mezi tabulkami Oddělení a Personal. V každém oddělení může být zaměstnáno více zaměstnanců, každý zaměstnance je však zaměstnán právě v jednom oddělení.

• M:N Jedné větě z první tabulky může odpovídat více vět z druhé tabulky. Také k jedné větě z druhé tabulky může odpovídat více vět z první tabulky. V našem případě bude takový vztah mezi tabulkami Personal a Cesty. Zaměstnanec mohl vyjet na více služebních cest. Na jednu služební cestu mohlo jet více zaměstnanců. V databázi je vhodné vytvořit můstkovou tabulku, která převede jednu vazbu M:N na dvě vazby 1:M a 1:N. V našem případě vytvoříme tabulku Výjezdy, která bude ve vazbě 1:M k tabulce Personal a ve vazbě 1:N k tabulce Cesty.

Ve výsledku dotazů využívajících relace jsou vypisovány pouze kombinace spojení vět, které mají shodné propojující jedno či více polí. Pomocí typu spojení můžeme vypisovat i věty, které nemají protějšek ve vybrané spojované tabulce. V případě relace tabulky Personal a Oddělení můžeme tak využít tři typy spojení: • Vybereme pouze kombinace, v nichž jsou spojená pole Oddělení z tabulek Personal i

Oddělení shodná. • Vybereme i kombinace obsahující věty z tabulky Personal, která nemají spojení v tabulce

Oddělení, tj. zaměstnance, kteří nejsou zařazeni do žádného oddělení nebo do oddělení, které není uvedeno v tabulce Oddělení.

• Vybereme i kombinace obsahující věty z tabulky Oddělení, které nemají spojení v tabulce Personal, tj. oddělení, do nichž nejsou zařazeni žádní zaměstnanci.17

16 Někdy se zkoumají ještě další stupně normální formy: Boyce-Coddova normální forma (BCNF) a pátá normální

forma. 17 Varianta oddělení s nevyplněnou zkratkou oddělení nemůže nastat, neboť v tabulce Oddělení je pole Oddělení

klíčovým polem. Pro úplnost dodejme, že není možné zadat typ spojení, které by do výsledků zahrnovalo nespojené věty z obou

tabulek Personal a Oddělení současně.

Typy relací

Typy spojení

Page 25: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 25

Pro jednotlivou relaci můžeme zajistit v databázi referenční integritu. Můžeme tak např. zabezpečit, abychom nemohli vložit v tabulce Personal pro zaměstnance oddělení, které není uvedeno v tabulce Oddělení. Referenční integrita hlídá všechny souvislosti: • V tabulce Personal:

» Nemůžeme vložit nového zaměstnance s neexistujícím oddělením. » Nemůžeme změnit oddělení u stávajícího zaměstnance, pokud upravené oddělení

neexistuje. • V tabulce Oddělení:

» Nemůžeme změnit zkratku oddělení, pokud je do oddělení zařazen alespoň jeden zaměstnanec.

» Nemůžeme odstranit oddělení, pokud je do oddělení zařazen alespoň jeden zaměstnanec. Úpravy dat v tabulce Oddělení můžeme modifikovat: » Při povolení Aktualizace souvisejících polí v kaskádě můžeme změnit zkratku oddělení,

změna se promítne do vět všech zaměstnanců změnou zkratky názvu jejich oddělení. » Při povolení Odstranění souvisejících polí v kaskádě můžeme odstranit oddělení,

z tabulky Personal budou odstraněni zaměstnanci oddělení odstraňovaného v tabulce Oddělení.

2.2 Základní relace v databázi Encián (ENC) Abychom nemuseli relace doplňovat do dalších dotazů a abychom udrželi integritu

dat, doplníme do databáze Encián relace včetně referenční integrity. Nejprve doplníme relaci tabulek Personal a Oddělení:

− V kartě DATABÁZOVÉ NÁSTROJE ve skupině Zobrazit či skrýt klepneme do tlačítka Vztahy. Zobrazit či skrýt− V dialogovém okně Zobrazit tabulku poklepeme na tabulku Personal a potom na tabulku

Oddělení. Dialogové okno Zobrazit tabulku zavřeme klepnutím do tlačítka Zavřít. Zobrazit tabulku

Zobrazit tabulku− Pole Oddělení z tabulky Oddělení táhneme na pole Oddělení v tabulce Personal. − Zobrazí se dialogové okno Upravit relace, v němž zaškrtneme pole Zajistit referenční

integritu (viz Upravit relace

obr. 2-1). Klepneme do tlačítka Vytvořit.

OBR. 2-1: DIALOGOVÉ OKNO UPRAVIT RELACE

− Pro relace se otevřela aplikační karta Návrh, kterou zavřeme klepnutím do tlačítka Zavřít ve

skupině Vztahyy. Relace se ukládají v okamžiku jejich definování či úprav automaticky, neukládá se však rozložení tabulek v diagramu relací, proto musíme ještě potvrdit změny v rozložení relací tlačítkem Ano.

Vztah

− Do tabulky Personal doplníme nového zaměstnance, e-mail: Svetly.Ondrej, příjmení: Světlý, místnost: nevyplníme, oddělení: PRG.

− Do tabulky Personal doplníme dalšího zaměstnance, e-mail: Smetana.Milan, příjmení: Smetana, místnost: 16, oddělení: PRO (propagace). Po odeslání oddělení se zobrazí chybové hlášení Nelze přidat nebo změnit záznam, protože je vyžadován související záznam v tabulce Oddělení. Klepneme do tlačítka OK. Klávesou Delete umažeme oddělení PRO a odesláním ukončíme vložení věty Milana Smetany18.

− Do tabulky Oddělení doplníme nové oddělení PRO s vysvětlivkou reklama. 18 Stisknutím klávesy Esc bychom ztratili obsah celé rozepsané věty.

Referenční integrita

ENC-02-01

Ukládání relací

Page 26: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 26

− Všimněme si, že za voličem řádku je rozbalovací tlačítko, kterým můžeme ve vnořeném

datovém listu k větě z tabulky Oddělení zobrazit odpovídající věty tabulky Personal (pracovníky, kteří patří do daného oddělení). Využití vnořeného datového listu umožnilo definování primárního klíče v tabulce Oddělení a relace tabulky Personal a Oddělení včetně referenční integrity. Díky primárnímu klíči jsou věty v tabulce Oddělení zobrazeny v pořadí dle hodnoty primárního klíče.

− Vrátíme se do tabulky Personal, kde do věty Milana Smetany doplníme oddělení PRO.19 − Oddělení reklamy má však označení REK. Pokusíme se změnit hodnotu pole Oddělení

v tabulce Oddělení z PRO na REK. Při přechodu na další větu se zobrazí chybové hlášení Záznam nelze odstranit nebo změnit, protože tabulka Personal obsahuje související záznamy. Klepneme do tlačítka OK a vzdáme se změny hodnot v rozepsané větě klávesou Esc.

− Zavřeme tabulku Oddělení.20 − Otevřeme znovu relace, když v kartě DATABÁZOVÉ NÁSTROJE ve skupině Zobrazit či skrýtt

klepneme do tlačítka Vztahy. Zobrazit či skrý

− Poklepeme na relaci mezi tabulkami Personal a Oddělení. V dialogovém okně Upravit relace zaškrtneme pole Aktualizace souvisejících polí v kaskádě. Práci s oknem ukončíme klepnutím do tlačítka OK a zavřeme okno relací.

Upravitrelace

− V tabulce Oddělení změníme hodnotu PRO na REK. Změna se promítne do všech (v našem případě jedné) vět v tabulce Personal.

− V tabulce Oddělení se pokusíme odstranit větu REK. Označíme ji klepnutím do voliče záznamů na začátku řádku věty a stiskneme klávesu Delete. Access nás upozorní, že větu nelze smazat hlášením Záznam nelze odstranit nebo změnit, protože tabulka Personal obsahuje související záznamy. Zavřeme tabulku Oddělení.

− Ve vztazích upravíme relaci mezi tabulkami Personal a Oddělení. Tentokrát zaškrtneme pole Odstranění souvisejících polí v kaskádě.

− V tabulce Oddělení odstraníme větu REK. Varovné hlášení o odstranění jednoho záznamu odsouhlasíme. V tabulce Personal se odstraní věta Milana Smetany.

− Ve vztazích potlačíme zaškrtnutí pole Odstranění souvisejících polí v kaskádě. Do tabulky Oddělení doplníme větu oddělení reklamy a do tabulky Personal větu Milana Smetany.

Do databáze doplníme třetí tabulku Místnosti, v níž pro každou místnost budeme zaznamenávat: − popis jejího účelu, − oddělení, kterému je místnost přiřazena, − původní telefonní linku, která byla do kanceláře vedena před reorganizací telefonních linek,

když (téměř) do každé kanceláře vedla jediná telefonní linka (do některých kanceláří nevedla žádná).

Postup tvorby tabulky Místnosti: − V kartě VYTVOŘIT ve skupině Tabulky klepneme do tlačítka Tabulka. Tabulky− Vyplněním názvů sloupců přidáme sloupce Místnost, Popis, Oddělení, Původní_telefon. − Vyplníme první dvě věty:

Místnost Popis Oddělení Původní_telefon 16 kancelář REK 806 23 kancelář PRG 809

Při vyplňování hodnoty pole Popis shodné s hodnotou v předchozí větě zkopírujeme hodnotu z předchozí věty kombinací kláves Ctrl ”.

− Klepnutím do tlačítka Zobrazení ve skupině Zobrazeníí v kartě DATOVÝ LIST přejdeme po upřesnění názvu tabulky Místnosti do zobrazení návrhu.

Zobrazen

− V tabulce Místnosti odstraníme pole ID a tabulku zavřeme (s uložením změn v návrhu). − Otevřeme relace.

19 Věta se ukládá až přechodem na další větu či zavřením tabulky. Kdybychom ponechali kurzor na právě zapsané větě

PRO tabulky Oddělení, nebylo by možné doplnit oddělení pro Smetanu, neboť by ještě nebyla uložena věta oddělení PRO.

20 Pokud bychom tabulku nezavřeli, nemohli bychom upravovat relaci tabulky. Access by při úpravě relace oznámil chybové hlášení Tabulku Oddělení nelze uzamknout, protože ji právě používá jiný uživatel nebo proces.

Vnořený datový list

Místnosti

Duplikace hodnoty z předchozí věty

Page 27: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 27

− Chceme doplnit do relací další tabulku. Klepneme v kartě NÁVRH ve skupině Vztahyy do

tlačítka Zobrazit tabulku. V seznamu tabulek poklepeme na tabulku Místnosti a zavřeme okno Zobrazit tabulku.

Vztah

Zobrazit tabulku− Ve vztazích se pokusíme doplnit relaci mezi tabulkami Personal a Místnosti. Táhneme pole

Místnost z tabulky Místnosti na pole Místnost v tabulce Personal. V dialogovém okně Upravit relace zaškrtneme pole Zajistit referenční integritu a klepneme do tlačítka Vytvořit. Zobrazí se chybové hlášení Nenalezen žádný jedinečný index pro odkazované pole primární tabulky. Předpokladem zajištění referenční integrity je totiž existence primárního klíče v tabulce na straně 1 vztahu 1:N. Klepneme do tlačítka OK a v dialogovém okně Upravit relaci do tlačítka Storno.

Upravit relace

Upravitrelaci

− Návrh tabulky můžeme otevřít přímo ze vztahů. Klepneme pravým tlačítkem do tabulky Místnosti a z místní nabídky vybereme NÁVRH TABULKY. K poli Místnost přidáme klíč klepnutím do tlačítka Primární klíč ve skupině Nástroje v kartě NÁVRH. Zavřeme návrh tabulky s uložením změn.

Nástroje

− Znovu se pokusíme připravit relaci včetně referenční integrity. Tentokrát Access zobrazí chybové hlášení Relace musí být ve stejném počtu polí, se stejnými typy dat.

− Tabulku Místnosti jsme vytvořili v tabulkovém zobrazení. Access určil typy polí na základě vložených hodnot. Do označení místnosti v poli Místnost jsme zapsali zatím jen čísla, proto Access do typu pole Místnost uvedl Číslo, což je v rozporu s typem stejnojmenného pole v tabulce Personal.

− Chybové hlášení zavřeme klepnutím do tlačítka OK. Zavřeme dialogové okno Upravit relace tlačítkem Storno.

Upravitrelace

− Ze vztahů opět z místní nabídky tabulky Místnosti zobrazíme návrh tabulky, v němž změníme datový typ pole Místnost z Číslo na Text s velikostí pole 3. Zavřeme okno tabulky Místnosti s uložením změn.

− Znovu se pokusíme připravit relaci včetně referenční integrity. Tentokrát Access zobrazí chybové hlášení Aplikace Microsoft Office Access nemůže vytvořit tuto relaci a vynutit referenční integritu. V tabulce Personal jsou totiž uvedeni zaměstnanci s místnostmi dosud nezapsanými do tabulky Místnosti.

− Chybové hlášení zavřeme klepnutím do tlačítka OK. Zavřeme dialogové okno Upravit relace tlačítkem Storno.

Upravitrelace

− Ze vztahů opět z místní nabídky tabulky Místnosti zobrazíme návrh tabulky. Z návrhu tabulky přejdeme tlačítkem Zobrazení ve skupině Zobrazeníí do zobrazení datového listu. Doplníme čtyři další kanceláře:

Zobrazen

Místnost Popis Oddělení Původní_telefon 25 kancelář PRG 26 kancelář PRG 31 kancelář RED 812 32 kancelář RED 813

− Zavřeme tabulku Místnosti. − Nyní se nám již podaří zajistit relaci včetně referenční integrity. Zaškrtneme také pole

Aktualizace souvisejících polí v kaskádě. Zavřeme diagram relací s uložením rozložení. Vytvoříme nyní dotaz, který bude k zaměstnancům vypisovat původní telefony:

− V kartě VYTVOŘIT ve skupině Jinéé klepneme do tlačítka Návrh dotazu. Jin− Klepnutím do tlačítka Zavřít zavřeme dialogové okno Zobrazit tabulku. Tabulky přidáme

do podokna Diagram tažením názvů tabulek z navigačního podokna. Takto přetáhneme tabulky Personal a Místnosti. Tažením za jejich titulkové pruhy můžeme měnit později umístění tabulek v diagramu. Do diagramu se dle dříve definovaných vztahů doplnilo příslušné spojení tabulek. Poklepáním na názvy polí v diagramu umístíme do podokna Mřížka pole Příjmení, Místnost z tabulky Personal a Původní_telefon z tabulky Místnosti.

Zobrazit tabulkuDiagram

Mřížka− Klepnutím do tlačítka Zobrazení datového listu v pravém dolním rohu okna Accessu

zobrazíme výsledek dotazu. Pro 4 zaměstnance (Kolínská, Novák, Sladká, Smetana) se zobrazí jejích místnosti a původní telefony.

− Do výsledku bychom chtěli uvést všechny zaměstnance, tj. i ty, kteří nemají přidělenu kancelář. Klepnutím do tlačítka Návrhové zobrazení se vrátíme zpět k návrhu. V diagramu poklepeme na spojení tabulek a v dialogovém okně Vlastnosti spojení vybereme volbu Zahrnout všechny záznamy z tabulky Personal... (viz

Vlastnosti spojeníobr. 2-2).

Podmínky referenční integrity

P22a Zaměstnanci s původními telefony

Typy spojení

Page 28: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 28

OBR. 2-2: DIALOGOVÉ OKNO VLASTNOSTI SPOJENÍ

− Ve výsledku dotazu je nyní uvedeno 5 zaměstnanců včetně Světlého, který neměl přiřazenu

kancelář. Dotaz uložíme pod názvem P22a Zaměstnanci s původními telefony. − Zkusme změnit ještě typ spojení na Zahrnout všechny záznamy z tabulky Místnosti... Ve

výsledku bude uvedeno 6 vět, avšak 2 věty bez vyplněných sloupců. Doplníme proto do návrhu ještě pole Místnost z tabulky Místnosti. Vidíme, že do seznamu místností (jedna místnost může být zastoupena více větami) přibyly i místnosti neobsazené žádným zaměstnancem (25 a 26).

− Typ spojení lze v návrhu dotazu měnit. V novém návrhu dotazu se přebírá ze vztahů. Je proto vhodné ve vztazích nastavit častější typ spojení. V našem případě ve vztazích nastavíme typ Zahrnout všechny záznamy z tabulky Personal... (Poklepeme na relaci, v okně Upravit relace klepneme na tlačítko Typ spojení.) Typ spojení je znázorněn v diagramu dotazu i ve vztazích šipkou. Upravit relace

2.3 Import dat z Excelu do databáze Encián (ENC) Relace je vhodné definovat v databázi dříve, než vložíme data tak, abychom včas

pohlídali referenční integritu. Pozdější doplňování vztahů může narazit na nekonzistentnost dat, její odstranění může být pracné.

Často přechází uživatelé na řešení v databázovém systému z řešení evidence v tabulkovém programu Excel. V Excelu je možné ukládat data ve formě dílčích tabulek, které však lze jen stěží a nepružně zpracovávat v jejich vztazích (relacích). Přechod na zpracování v Accessu může proto výrazně zjednodušit zpracování dat.

V našem případě byla data firmy Encián původně uchovávána v sešitu Excelu. Každá z 15 tabulek byla zaznamenána v samostatném listu. Na prvním listu Tabulky je seznam tabulek uspořádaný do pěti skupin tabulek: − I. Lidské zdroje (modré listy): Personal, Oddělení − II. Odběratelé (červené listy): Podniky, Stadia, NACE, Oddíly_sekce, Sekce − III. Prodeje (zelené listy): Faktury, Licence, Programy − IV. Služební cesty (fialové listy): Cesty, Výjezdy − V. Inventář (oranžové listy): Místnosti, Majetek_typy, Majetek_umístění Barvy jsou pro přehlednost použity pro záložky listů (barvy karet) a pozadí buněk v listech.

Založíme novou databázi, do níž budeme později data importovat. − Klepneme do tlačítka Office a zadáme příkaz NOVÁ. − Zvolíme vhodné umístění, do pole název souboru zadáme Encian. − Vybereme novou prázdnou databázi. − V nové databázi zavřeme prázdný návrh tabulky.

Postupně importujeme všech 15 tabulek: − V kartě EXTERNÍ DATA ve skupině Import klepneme do tlačítka Excel. Import− V dialogovém okně Načíst externí data – Tabulka aplikace Excel klepnutím do tlačítka

Procházet vybereme umístění souboru Excelu (ENC-02-02.xlsx). Ve spodní části okna ponecháme vybránu volbu Importovat zdrojová data do nové tabulky v aktuální databázi. Klepneme do tlačítka OK.

Načíst externí data – Tabulka aplikace Excel

− Zobrazí se první okno průvodce importem z tabulkového kalkulátoru. Zde můžeme vybrat importovanou část sešitu:

P22b Místnosti se zaměstnanci

Import dat z Excelu

ENC-02-02 xlsx

ENC-02-03

Page 29: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 29

• ze seznamu tabulek (přesněji listů): v seznamu jsou zobrazeny listy sešitu v uspořádání dle

pořadí listů v Excelu, • ze seznamu oblastí: v seznamu jsou zobrazeny nazvané oblasti a listy v sešitu Excelu dle

abecedního uspořádání Ze seznamu tabulek vybereme list Personal a klepneme do tlačítka Další.

− V druhém okně průvodce zaškrtneme pole První řádek obsahuje hlavičky sloupců, první řádek tabulky bude použit jako názvy sloupců vytvářené tabulky. Klepneme do tlačítka Další.

− Ve třetím okně průvodce bychom mohli změnit název, datový typ jednotlivých polí nebo přeskočit při importu některá pole. V našem případě neprovedeme žádné změny a klepneme do tlačítka Další.

− Ve čtvrtém okně můžeme vybrat primární klíč. Do pole Vlastní primární klíč vybereme E_mail. Klepneme do tlačítka Další.

− V pátém okně ponecháme název tabulky převzatý z názvu listu a nezaškrtneme pole Analyzovat strukturu tabulky po importu dat. Klepneme do tlačítka Dokončit.

− Access provede import dat a nabídne nám možnost uložit kroky importu tak, abychom mohli později aktualizovanou tabulku importovat. V dialogovém okně Uložit kroky importu nezaškrtneme pole Uložit kroky importu, protože aktualizaci budeme provádět již jen v Accessu.

Uložit kroky importu

− Obdobně budeme importovat další tabulky: • V případě tabulky Oddělení však importujeme oblast Redukovaná_oddělení. Do této

oblasti není v sešitu Excelu zahrnuto oddělení programování, abychom se později naučili odstranit nekonzistentnost dat. Jako primární klíč zvolíme Oddělení. Název importované tabulky změníme na Oddělení.

• Pro tabulku Podniky vybereme primární klíč IČ. • Pro tabulku Stadia vybereme primární klíč Stadium. • Pro tabulku NACE vybereme primární klíč NACE. • Pro tabulku Oddíly_sekce vybereme primární klíč Oddíl. • Pro tabulku Sekce vybereme primární klíč Sekce. • Pro tabulku Faktury vybereme primární klíč Faktura. • Pro tabulku Licence neurčíme primární klíč, později to budou dvě pole. • Pro tabulku Programy vybereme primární klíč Program. • Pro tabulku Cesty neurčíme primární klíč, později to budou dvě pole. • Pro tabulku Výjezdy neurčíme primární klíč, později to budou tři pole. • Pro tabulku Místnosti vybereme primární klíč Místnost. • Pro tabulku Majetek_typy vybereme primární klíč Typ_majetku. • Pro tabulku Majetek_umístění vybereme primární klíč Inventární_číslo.

Ve struktuře jednotlivých tabulek upřesníme datový typ klíčových polí a na ně navazující pole21: − Personal: E_mail je text o velikosti pole 20. Místnost je text o velikosti 3. Oddělení je text

o velikosti 3. Nadřízený je text o velikosti 20. − Oddělení: Oddělení je text o velikosti pole 3. − Podniky: IČ je text o velikosti 8. Stadium je text o velikosti 16. NACE1, NACE2, NACE3,

NACE4, NACE5, NACE6 jsou texty o velikosti 5. − Stadia: Stadium je text o velikost 16. − NACE: NACE je text o velikosti 5. − Oddíly_sekce: Oddíl je text o velikosti 2. Sekce je text o velikosti 1. − Sekce: Sekce je text o velikosti 1. − Faktury: Faktura je číslo s velikostí pole celé číslo. E_mail je text o velikosti 20. IČ je text

o velikosti 8. − Licence: Ve struktuře tabulky tažením za navigační pole označíme pole Program a

Sériové_číslo a klepneme ve skupině Nástrojee do tlačítka Primární klíč. Program je text o velikosti 3. Sériové_číslo je celé číslo. Faktura je také celé číslo.

Nástroj

− Programy: Program je text o velikosti 3. − Cesty: V tabulce definujeme dva primární klíče Rok a Cesta. Rok i Cesta jsou celá čísla.

21 Nelze měnit typ či velikost pole, když bude součástí vztahu. Po importu z Excelu je délka textových polí 255.

Page 30: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 30

− Výjezdy: V tabulce definujeme tři primární klíče E_mail, Rok, Cesta. E_mail je text

o velikosti 20 znaků. Rok a Cesta jsou celá čísla. − Místnosti: Místnost je text o velikosti 3. Oddělení je text o velikosti 3 znaky. − Majetek_typy: Typ_majetku je text o velikosti 30. − Majetek_umístění: Inventární_číslo je dlouhé celé číslo. Typ_majetku je text o velikosti 30.

Místnost je text o velikosti 3. Založíme novou kategorii objektů a roztřídíme do ní tabulky:

− Klepnutím pravým tlačítkem myši do titulku Navigačního podokna otevřeme místní nabídku, v níž zadáme příkaz MOŽNOSTI NAVIGACE.

Navigačního podokna

− V levé části klepneme do tlačítka Přidat položku. Vytvoříme kategorii Skupiny tabulek. − V pravé části postupně přidáme skupiny: • I. Lidské zdroje • II. Odběratelé • III. Prodeje • IV. Služební cesty • V. Inventář

− Klepneme do titulku navigačního podokna levým tlačítkem a přejdeme ke kategorii Skupiny tabulek.

− Tabulky roztřídíme tažením do jednotlivých skupin tabulek.

2.4 Další relace v databázi Encián (ENC) Nyní vytvoříme relace mezi tabulkami:

− V kartě DATABÁZOVÉ NÁSTROJE ve skupině Zobrazit či skrýt klepneme do tlačítka Vztahy. Zobrazit či skrýt− Tažením rozmístíme tabulky do vztahů dle obr. 2-3.

OBR. 2-3: RELACE V DATABÁZI ENCIÁN

− Tažením za spodní kraj můžeme přizpůsobit výšku tabulek ve vztazích. − Tažením za pravý kraj můžeme tabulku zúžit nebo rozšířit. − Ve všech relacích zajišťujeme referenční integritu a aktualizaci souvisejících polí v kaskádě.

ENC-02-04

Skupiny tabulek

Page 31: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 31

− Nejprve se pokusíme připravit relaci mezi tabulkami Personal a Oddělení. Táhneme pole

Oddělení z tabulky Oddělení (tj. z budoucí strany 1 vztahu 1:N) do tabulky Personal na pole Oddělení.22 Po zaškrtnutí polí Zajistit referenční integritu a Aktualizace souvisejících polí v kaskádě a klepnutí do tlačítka OK se zobrazí chybové hlášení obsahující upozornění Data v tabulce Personal nesplňují pravidla referenční integrity. Řešíme nekonzistentnost dat: • Zřejmě se vyskytují věty v tabulce Personal s vyplněným polem Oddělení, které nemá

související větu v tabulce Oddělení. • Potlačíme chybové hlášení klepnutím do tlačítka OK. Zrušíme zaškrtnutí pole Zajistit

referenční integritu. • Tlačítkem Vytvořit vytvoříme relaci bez referenční integrity. • Vytvoříme dotaz, který dohledá nekonzistentní věty:

» V kartě VYTVOŘIT ve skupině Jinéé klepneme do tlačítka Návrh dotazu. Jin» V dialogovém okně Zobrazit tabulku přidáme tabulky Personal a Oddělení. Zobrazit tabulku» Poklepáním v diagramu vybereme pole E_mail, Oddělení z tabulky Personal a

Oddělení_v z tabulky Oddělení. V zobrazení datového listu se zobrazí pouze 13 z 20 zaměstnanců.

» Poklepeme na spojení mezi tabulkami Personal a Oddělení a zvolíme typ spojení Zahrnout všechny záznamy z tabulky Personal... V zobrazení datového listu se zobrazí již všech 20 zaměstnanců.

» Chceme zobrazit pouze problematické zaměstnance. V návrhové mřížce doplníme do sloupce Oddělení_v do řádku kritéria Null, tj. nevyplněný (viz obr. 2-4). Zobrazí se jen 7 zaměstnanců, kteří nemají spojení do tabulky Oddělení.

OBR. 2-4: DOTAZ P23 HLEDÁNÍ NEKONZISTENCÍ

» Vidíme, že se jedná o 5 zaměstnanců oddělení PRG, Milana Smetanu z oddělení PRO a Evu Kolínskou bez oddělení.

» Otevřeme tabulku Oddělení a doplníme větu PRG s názvem programování a vedoucí Kolinska.Eva. Zavřeme tabulku Oddělení.

» Při opětovném zobrazení výsledku dotazu se zobrazí již jen dvě věty Evy Kolínské a Milana Smetany.

» Milan Smetana má uvedeno špatné označení oddělení. Změníme přímo v dotazu hodnotu PRO na REK. Zobrazí se příslušné Oddělení_v.

» Eva Kolínská nemá vyplněno pole Oddělení. Doplníme hodnotu PRG přímo do výsledku dotazu. Zobrazí se příslušné Oddělení_v.

» Při opětovném zobrazení výsledku dotazu (přechodem na návrh a zpět do zobrazení datového listu) se nezobrazí již žádná věta. Dotaz zavřeme.

− Nyní již můžeme doplnit referenční integritu do relace Oddělení a Personal. − Obdobně se pokusíme doplnit relaci včetně referenční integrity mezi tabulkami Personal a

Místnosti. Referenční integritu nelze zajistit, neboť Ondřej Světlý nemá vyplněnu místnost.

22 Směr tažení není povinný, ovlivní však později číslování typu spojení.

Nekonzistentnost dat

P23 Hledání nekonzistencí

ENC-02-05

Page 32: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 32

Dočasně mu v tabulce doplníme místnost 18. Po definování relace a doplnění referenční integrity místnost pro Ondřeje Světlého odstraníme v jeho větě v tabulce Personal.

− Obdobně doplníme jednoduché relace, které spojují tabulky jedním polem. (Dodržíme tažení ze strany 1 relace 1:N.) Zde se již nesetkáme s problémy.

Komentář ke složitějším relacím: − Dvojitá relace Výjezdy – Cesty: • Táhneme pole Rok z tabulky Cesty na pole Rok v tabulce Výjezdy. • Zobrazí se dialogové okno Upravit relace, v němž ručně doplníme výběrem z polí druhý řádek na straně tabulky Cesty i na straně související tabulky Výjezdy. Dále postupujeme stejně jako u jednoduchých relací.

Upravit relace

23 − Relace tabulky Personal k tabulce Personal: • Nadřízený pro každého zaměstnance s výjimkou ředitele Petra Nováka bude čerpán ze

stejné tabulky Personal. Tabulku Personal tažením z navigačního podokna znovu umístíme do relací, bude nadepsána Personal_1. Vytvoříme relaci včetně referenční integrity z pole E_mail tabulky Personal_1 na pole Nadřízený z tabulky Personal.

− Relace tabulek Podniky a Oddíly_Sekce a dotazu NACE_Oddíly: • Pole NACE1 chceme připojit na pole Oddíl. K tomu připravíme formou dotazu převodník

mezi kódem NACE a jeho oddílem, tj. prvními dvěma znaky. Dotaz vychází pouze z tabulky NACE. Ke každému NACE vypíše jeho první dva znaky pod názvem Oddíl24 (viz obr. 2-5).

OBR. 2-5: DOTAZ NACE_ODDÍLY

• Dotaz NACE_Oddíly zařadíme v navigačním podokně do skupiny tabulek II. Odběratelé a

tažením jej umístíme do relací. • Tažením vytvoříme relaci mezi polem NACE v dotazu NACE_Oddíly a polem NACE1

z tabulky Podniky. Pro relaci s dotazem nelze zajistit referenční integritu. V relacích nejsou upraveny typy spojení, které budeme případně upřesňovat až

v návrhu dotazů.

2.5 Další možnosti zobrazení vztahů Ve vztazích tabulky Podniky je vazba prvního NACE na tabulku NACE. Pokud

podnik uvádí více činností, které realizuje v rámci svého podnikání, mohou být vyplněné také další kódy NACE. Také další kódy musí být v souladu s tabulkou NACE. Nemůžeme táhnout kód NACE2 z tabulky Podniky opět na kód NACE z tabulky NACE. Znamenalo by to, že požadujeme spojení kódů NACE1 a NACE2 se stejnou větou tabulky NACE, což nikdy nenastane, neboť NACE1 a NACE2 nemohou být shodné. Postup definování opakovaných spojení stejné tabulky: − Tažením z navigačního podokna umístíme tabulku NACE do vztahů ještě pětkrát. − Ve vztazích se zobrazí stejná tabulka s doplněnou číslicí, tj. NACE_1, NACE_2, ..., NACE_5. − Postupně vytvoříme relace mezi polem NACE2 a tabulkou NACE_1, mezi polem NACE3 a

tabulkou NACE_2,..., mezi polem NACE6 a tabulkou NACE_5 včetně zajištění referenční integrity. Pro NACE2 a další zadáme typ spojení Zahrnout všechny záznamy z tabulky

23 Můžeme také označit v tabulce Cesty klepnutím pole Rok a s klávesou Shift pole Cesta a táhnout je na pole E_mail

v tabulce Výjezdy. Potom musíme v dialogovém okně UUpprraavviitt rreellaaccee doplnit pole v související tabulce Výjezdy. 24 Funkci Left a nazývání výsledných sloupců podrobněji probereme v kap. 4 Dotazy.

Vícenásobná relace

Relace tabulky ke stejné tabulce

Relace dotazu a tabulky

NACE_Oddíly

Opakované spojení tabulky

Page 33: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 33

Podniky... Výsledný stav spojení tabulky Podniky a NACE je naznačen v obr. 2-6. Na takové grafické uspořádání relací však v okně relací není místo.

OBR. 2-6: RELACE TABULEK PODNIKY A NACE

− Zobrazení doplněných relací by bylo nepřehledné. Proto po definici relací a referenční

integrity skryjeme tabulku NACE. Do tabulky v okně relací klepneme a klepneme v kartě NÁVRH ve skupině Vztahyy do tlačítka Skrýt tabulku nebo stiskneme klávesu Delete. Takto Vztahskryjeme tabulku NACE a duplikáty jejího zobrazení NACE_1, NACE_2, ..., NACE_5. Potlačili jsme tak zobrazení tabulky NACE v relacích, relace s referenčními integritou zůstaly zachovány.25

Spojení nezobrazená v relacích můžeme kdykoliv později zobrazit: − spojení k označené tabulce tlačítkem Přímé relace ze skupiny Vztahyy, Vztah− spojení ke všem tabulkám tlačítkem Všechny relace ze skupiny Vztahyy. Vztah

Pokud do relací chceme přidávat další tabulku, můžeme využít dva způsoby: − tažením tabulky z navigačního podokna do okna relací, − klepnutím do tlačítka Zobrazit tabulku ve skupině Vztahyy a výběrem tabulky v dialogovém

okně Zobrazit tabulku, v níž můžeme vybrat tabulku a klepnout do tlačítka Přidat nebo přímo na tabulku poklepat.

VztahZobrazit tabulku

Relace tedy nemusí být v okně relací zobrazena. Zobrazené tabulky můžeme vhodně rozložit – změnit velikosti tabulek, jejich umístění, zobrazení či skrytí tabulek. Při zavírání relací se rozložení ukládá. Rozložení můžeme vymazat klepnutím do tlačítka Vymazat rozložení ve skupině NNáássttrroojjee.

Relaci můžeme upravit: − poklepáním na relaci nebo − klepnutím do relace a klepnutím do tlačítka Upravit relace ve skupině Nástrojee. NástrojZobrazí se okno UUpprraavviitt rreellaaccee. Výběr relace znázorněné v okně relací vodorovnou čarou je těžší než výběr relace znázorněné šikmou čarou. Můžeme si pomoci posunutím některé tabulky tak, aby relace nebyla znázorněna vodorovnou čarou. Pokud nevybereme žádnou relaci (či nepřesně relaci s vodorovnou čarou), zobrazí se okno UUpprraavviitt rreellaaccee bez relace. Můžeme potom vytvořit novou relaci výběrem tabulek i spojujících polí. Novou relaci je možné také vytvořit klepnutím do tlačítka Vytvořit novou v dialogovém okně UUpprraavviitt rreellaaccee.

Přehled relací můžeme vytisknout prostřednictvím sestavy: − V kartě NÁVRH ve skupině Nástrojee klepneme do tlačítka Sestava relací. Nástroj− Vytvoří se sestava relací.26 − V našem případě upravíme orientaci sestavy, v kartě NÁHLED ve skupině Rozložení stránkyy

klepneme do tlačítka Na šířku. Rozložení stránk

− Tlačítkem Zavřít náhled ve skupině Zavřít náhledd přejdeme do návrhu sestavy. Zavřít náhle

− Okno sestavy zavřeme bez uložení.

25 Musíme kromě zobrazení NACE_2, NACE_3, ..., NACE_5 potlačit zobrazení tabulky NACE, jinak by se po

opětovném otevření okna relací zobrazila nejen tabulka NACE, ale také duplikáty jejího zobrazení. 26 Podrobný výklad sestav je proveden v kap. 6 Sestavy. Podrobnosti o sestavě relací jsou uvedeny v kap. 10.3.

Skrytí tabulky v relacích

Zobrazení tabulky v relacích

Rozložení v relacích

Úprava relace

Nová relace

Tisk relací

Page 34: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 34

2.6 Databáze školení (MIN)

Převeďme si návrh databáze na další databázi firmy Encián: − Určíme účel databáze.

Firma Encián pořádá školení. Vypisuje 3 předměty, které opakuje každý semestr v několika paralelkách – kurzech. Kurz se koná celý semestr. V rámci týdne se může konat ve více časových polohách daných v rozvrhu hodin školení. Jednu paralelku může učit více vyučujících – zaměstnanců firmy Encián. Pro účely sledování pracovního výkonu vyučujících sledujeme počet hodin odučených v kurzu.

− Vyhledáme a uspořádáme požadované informace. Pro ukázku jsme shromáždili data za jeden semestr – letní semestr roku 2009. Předmět jednoznačně identifikujeme čtyřznakovým identem. Paralelku označujeme jako kurz tříznakovým kódem. Každý kurz učíme 13 týdnů, tj. 52 hodin ve dvou časových polohách, tj. každou časovou polohu 26 hodin převážně odučených jediným učitelem. Data jsme uspořádali do polí tabulky Rozvrh:

Iden

t

Kur

z

Kap

acita

Dob

a

Mís

tnos

t

Popi

s

E_m

ail

Hod

in

MIN1 001 18 st 07:30-09:00 28 školící místnost Klimova.Jana 26 MIN1 001 18 st 09:15-10:45 28 školící místnost Klimova.Jana 26 MIN1 002 18 st 11:00-12:30 28 školící místnost Kolinska.Eva 26 MIN1 002 18 st 12:45-14:15 28 školící místnost Kolinska.Eva 26 MIN1 003 18 čt 11:00-12:30 28 školící místnost Kolinska.Eva 26 MIN1 003 18 čt 12:45-14:15 28 školící místnost Kolinska.Eva 26 MIN1 004 18 pá 11:00-12:30 28 školící místnost Kolinska.Eva 26 MIN1 004 18 pá 09:15-10:45 28 školící místnost Kolinska.Eva 26 MIN2 001 18 út 11:00-12:30 28 školící místnost Kolinska.Eva 14 MIN2 001 18 út 11:00-12:30 28 školící místnost Skoda.Petr 12 MIN2 001 18 út 12:45-14:15 28 školící místnost Kolinska.Eva 14 MIN2 001 18 út 12:45-14:15 18 školící místnost Skoda.Petr 12 MIN2 002 18 út 16:15-17:45 18 školící místnost Svetly.Ondrej 26 MIN2 002 18 út 18:00-19:30 18 školící místnost Svetly.Ondrej 26 MIN2 003 18 čt 07:30-09:00 18 školící místnost Skoda.Petr 26 MIN2 003 18 čt 09:15-10:45 18 školící místnost Skoda.Petr 26 MIN3 001 18 út 07:30-09:00 18 školící místnost Skoda.Petr 26 MIN3 001 18 út 09:15-10:45 17 zasedací místnost Skoda.Petr 26

− Zadáme primární klíče V tabulce Rozvrh bude primárním klíčem kombinace Ident, Kurz, Doba.

− Rozdělíme informace do tabulek. Kromě uvedené tabulky Rozvrh využíváme další dvě tabulky: • Personal

Struktura i obsah jsou stejné jako v databázi Encian. • Předměty

Ident Název Anotace MIN1 Manažerská informatika 1 Word, Excel, PowerPoint, OneNote MIN2 Manažerská informatika 2 Project, Visio, Outlook MIN3 Manažerská informatika 3 Access

− Ověříme splnění normalizačních pravidel • První normální forma

V poli Doba jsou data, která lze rozdělit do více polí. Jednotlivé části budeme chtít později využívat zvlášť. Pole Doba proto rozdělíme na pole Den a Čas. Pro další zpracování doplníme dvě tabulky Dny a Časy:

Normalizace

Page 35: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 35

Dny Časy Den Den_v Den_p Čas po pondělí 1 07:30-09:00 st středa 2 09:15-10:45 út úterý 3 11:00-12:30 čt čtvrtek 4 12:45-14:15 pá pátek 5 14:30-16:00

16:15-17:45 18:00-19:30

V poli Den_p je pořadí dne pro účely řazení sestav dle chronologie. • Druhá normální forma

Tabulka obsahuje sloupce, které nejsou závislé na celém klíči. Pole Kapacita závisí na polích Ident a Kurz, nikoliv na klíčových polích tabulky Ident, Kurz, Den, Čas. Vytvoříme tabulku Kurzy, v níž k Identu a Kurzu bude přiřazena Kapacita. Pole Kapacita naopak nebude již součástí tabulky Rozvrh.

• Třetí normální forma Existuje závislost mezi neklíčovými poli tabulky. Popis místnosti je závislý na poli Místnost, nikoliv na klíči věty tabulky Rozvrh (Ident, Kurz, Den, Čas). Data o místnostech proto oddělíme do tabulky Místnosti, která bude obsahovat pole Místnost (klíčové pole), Popis, Oddělení a Původní_telefon. Struktura bude tedy shodná s tabulkou Místnosti v databázi Encian. V tabulce Rozvrh zbude pouze pole Místnost.

• Čtvrtá normální forma Existuje multizávislost, v tabulce Rozvrh jsou dvě skupiny polí: » Ident, Kurz, Den, Čas, Místnost » E_mail, Hodin K první skupině polí je přiřazeno více hodnot druhé skupiny polí. Z tabulky Rozvrh vyčleníme tabulku Vyučující. Tabulky budou obsahovat shodná spojující pole Ident, Kurz, Den, Čas. Tabulka Rozvrh navíc bude obsahovat pole Místnost. Tabulka Vyučující bude navíc obsahovat pole E_mail a Hodin.

− Doplníme další tabulky. Vytvoříme relace mezi tabulkami. Evidenci chceme sledovat po semestrech. Proto doplníme do databáze tabulku Semestry se dvěma poli: Semestr (kód semestru, např. 2009L) a Semestr_v (vysvětlivka semestru, např. Letní semestr 2008/09). Pole Semestr doplníme jako další klíč do tabulek Kurzy, Rozvrh, Vyučující.

OBR. 2-7: RELACE V DATABÁZI MIN (ŠKOLENÍ)

• Chceme vkládat vyučující z tabulky zaměstnanců firmy Encián. V návrhu použijeme tabulku Personal se stejnou strukturou jako v databázi Encian.

Page 36: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 36

• V databázi vytvoříme relace dle obr. 2-7.

V dalším výkladu vyjdeme z připravené databáze MIN (školení manažerské informatiky), v níž jsou připraveny uvedené tabulky s výjimkou tabulek Personal a Místnosti.

V databázi MIN chceme využívat data z databáze Encian včetně využívání aktuálního stavu dat. Data neimportujeme, ale připravíme propojení tabulek Personal a Místnosti z databáze Encian: − V kartě Externí data klepneme ve skupině Importt do tlačítka Access. Externí data Impor− V dialogovém okně Načíst externí data – Databáze aplikace Access vybereme pomocí

tlačítka Procházet umístění souboru databáze Encian a vybereme volbu Vytvořit odkaz na zdroj dat vytvořením propojené tabulky. Klepneme do tlačítka OK.

Načíst externí data – Databáze aplikace Access

− V dialogovém okně Propojit tabulky vybereme klepnutím tabulky Personal a Místnosti a klepneme do tlačítka OK.

Propojit tabulky

− Tabulky jsou zobrazeny v navigačním podokně s ikonou tabulky se šipkou, která naznačuje propojení do jiného zdroje dat.

− Změny provedené v propojených tabulkách v databázi Encian se zobrazí také v databázi MIN.

− Změny provedené v propojených tabulkách v databázi MIN se provádějí do databáze Encian. − V databázi MIN nelze měnit strukturu propojených tabulek, strukturu lze pouze prohlížet.

Vložíme propojené tabulky do relací: − Otevřeme relace. − Tažením umístíme do diagramu relací tabulku Personal. Současně se umístila kopie

zobrazení tabulky Personal_1 včetně spojující relace. − Tažením umístíme do diagramu relací tabulku Místnosti. Současně se doplnila relace mezi

tabulkami Personal a Místnosti. − Tabulky v diagramu relací vhodně umístíme. − Tažením pole Místnost z tabulky Místnosti na pole Místnost v tabulce Rozvrh vytvoříme

relaci. V relaci propojené tabulky nemůžeme zajistit referenční integritu.27 − Obdobně vytvoříme relaci tažením pole E_mail z tabulky Personal na pole E_mail v tabulce

Vyučující. Access ukládá umístění propojené databáze. Pokud by se změnilo, je nutné jej

upřesnit v kartě DATABÁZOVÉ NÁSTROJE ve skupině DDaattaabbáázzoovvéé nnáássttrroojjee klepnutím do tlačítka Správce propojených tabulek. V dialogovém okně SSpprráávvccee pprrooppoojjeennýýcchh ttaabbuulleekk můžeme vybrat současně více tabulek, jejichž umístění upřesňujeme a potom klepneme do tlačítka OK. V dalším okně vybereme umístění propojené databáze.

2.7 Databáze Bankovní účet (BAN) Vedoucí oddělení reklamy Milan Smetana analyzuje své osobní příjmy a výdaje.

Pohyby na osobním účtu stahuje v rámci internetového bankovnictví do tabulky Pohyby v databázi BAN. V následující tabulce jsou uvedena data za únor 2009:

Po- hyb

Zaúčto- váno

Zpraco- váno

Částka Položka Účet Název_účtu Konst_symbol

...

18 1.2.2009 1.2.2009 -1800 vybráno z ATM 122 XXXXXXXXXXXX2884 1559 19 1.2.2009 1.2.2009 -1450,8 platba kartou 3101 931187 supermarket XXXXXXXXXXXX2884 1178 20 5.2.2009 4.2.2009 4000 úhrada z ČS, a.s. 0- 12345678/0800 Smetanová Jana 558 21 5.2.2009 4.2.2009 -1500 TP k úhradě 2 0-3092910207/0100 na účet v jiné bance 3558 22 10.2.2009 12.2.2009 -715,2 platba kartou 0702 Čerpací stanice XXXXXXXXXXXX2884 1178 23 10.2.2009 9.2.2009 30000 spoření/mzda spoření 12345 Encián Praha 138 24 15.2.2009 15.2.2009 -4907 inkaso SIPO SIPO1234567890 Česká pošta, s.p. 308 25 17.2.2009 19.2.2009 -352,8 platba kartou 1402 supermarket XXXXXXXXXXXX2884 1178 26 20.2.2009 20.2.2009 930 úhrada z jiné banky 27-4603660217/0100 MŠ Praha 3 308 27 20.2.2009 19.2.2009 -1500 TP k úhradě 3 0-6226459313/7990 na účet v jiné bance 558 28 20.2.2009 19.2.2009 -1500 TP k úhradě 1 0-6204564630/7990 na účet v jiné bance 558 29 20.2.2009 20.2.2009 -1800 vybráno z ATM 201 XXXXXXXXXXXX2884 1559 30 24.2.2009 26.2.2009 -1808,4 platba kartou 2102 supermarket XXXXXXXXXXXX2884 1178 31 25.2.2009 25.2.2009 -12000 vybráno z ATM 122 XXXXXXXXXXXX2884 1559

27 V tabulce Vyučující tak nemůžeme přímo zajistit vkládání učitelů do pole E_mail pouze z tabulky Personal. Později

(v kap. 3 Tabulky) však uvidíme, že je možné vyhledávat vyplňovanou hodnotu ze seznamu a omezit vkládané hodnoty pouze na seznam.

MIN-02-06

Propojení tabulek

MIN-02-07

BAN-02-08

Page 37: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 37

Po- hyb

Zaúčto- váno

Zpraco- váno

Částka Položka Účet Název_účtu Konst_symbol

...

32 25.2.2009 24.2.2009 -520 TP k úhradě 4 27-4603660217/0100 na účet v jiné bance 308 33 25.2.2009 24.2.2009 -500 TP k úhradě 5 27-4603660217/0100 na účet v jiné bance 308 34 26.2.2009 26.2.2009 -8000 vybráno z ATM 122 XXXXXXXXXXXX2884 1559 35 28.2.2009 28.2.2009 -45 za účetní položky pol.: 9 / 5.00 Kč 898 36 28.2.2009 28.2.2009 -997 platba kartou 2802 920028 supermarket XXXXXXXXXXXX2884 1178 37 28.2.2009 28.2.2009 -90 za vedení účtu 898

Význam jednotlivých polí: − Pohyb: Číslo pohybu, které připraví Access automaticky (tzv. automatické číslo). Pole je

nutné pro navázání tabulky, která bude podrobněji analyzovat pohyb na účtu. Pohyby banka v exportu pro zákazníka jednoznačně neidentifikuje.

− Zaúčtováno: Datum, kdy byl pohyb zaúčtován. Zpravidla je shodné s datem zpracování. V případě platby kartou může být pohyb zpracován později, než byl zaúčtován. V případě příkazu k úhradě může být pohyb naopak zaúčtován později než zpracován.

− Zpracováno: Datum, kdy byl pohyb zpracován. − Částka: Zaúčtovaná částka. V případě výdajů je záporná. − Položka: Textové vyjádření pohybu. Některé typy pohybů zde mají další informace: • vybráno z ATM 201: výběr z automatu, kde 201 je číslo automatu • TP k úhradě 4: trvalý příkaz k úhradě, kde 4 je číslo trvalého příkazu

− Účet: Číslo účtu, na nějž je zaslána částka. V případě nákupu je zde název prodejny. V případě inkasa ze sdruženého inkasa plateb obyvatelstva (SIPO) je zde uvedeno tzv. spojovací číslo.

− Název_účtu: Název účtu, pokud již nebyl uveden v poli Účet. V případě poplatků za vedení účtu je zde uveden stručně způsob výpočtu v pohybu, např. pol. 9/ 5.00 Kč znamená 9 položek po 5 Kč, tj. za 45 Kč.

− Konst_symbol, Spec_symbol, Var_symbol1, Var_symbol2: Upřesnění platby (v tabulce je naznačeno jen pole Konst_symbol).

V databázi budou další tabulky: − Milan Smetana doplňuje do tabulky Detaily podrobnosti k pohybům (výdajům i příjmům).

Tabulka Detaily má pouze 4 pole Pohyb (pro spojení s tabulkou Pohyby), Účel, Kategorie (umožňuje kategorizaci výdajů a příjmů), Částka. K jedné větě z tabulky Pohyby může existovat více vět v tabulce Detaily.

− V tabulce Kategorie budou kategorie účelů výdajů či příjmů uvedených v tabulce Detaily. V poli Charakter je hodnota výdaj nebo příjem.

− V tabulce Automaty je seznam automatů banky stažený z jejich webových stránek. Pro každý automat je uvedeno jeho jednoznačné číslo, město, ulice a upřesnění umístění automatu. Dále je evidována provozní doba automatu.

− V tabulce Příkazy jsou uvedeny trvalé příkazy k platbě Milana Smetany. Pro každý příkaz je uvedena vysvětlivka a výše platby.

Vzhledem k tomu, že v tabulce Pohyby je v případě výběru z hotovosti uvedeno číslo automatu ve tvaru vybráno z ATM 123, kde 123 je číslo automatu, nelze přímo spojit tabulky Pohyby a Automaty. Za účelem spojení tabulek relací je připraven pomocný dotaz Automaty – rozšířené, v němž ke každé větě z tabulky Automaty je doplněno pole Položka. V poli Položka je sečten konstantní text vybráno z ATM a hodnota pole Automat (viz obr. 2-8).

OBR. 2-8: POMOCNÝ DOTAZ AUTOMATY – ROZŠÍŘENÉ

Automaty – rozšířené

Page 38: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 2: Relace 38

Obdobně je připraven dotaz Příkazy – rozšířené, v němž ke každé větě z tabulky

Příkazy je doplněno pole Položka. V poli Položka je sečten konstantní text TP k úhradě (včetně 4 mezer za textem) a hodnota pole Příkaz.

Tabulky potom můžeme spojit relacemi dle obr. 2-9.

OBR. 2-9: RELACE V TABULCE BAN (BANKOVNÍ ÚČET)

Shrnutí 1. Je vhodné dobře promyslet návrh databáze dříve, než budeme naplňovat její obsah.

Postupujeme v několika krocích: Určíme účel databáze. Vyhledáme a uspořádáme požadované informace. Rozdělíme informace do tabulek. Zadáme primární klíče. Ověříme splnění normalizačních pravidel. Vytvoříme relace mezi tabulkami.

2. První normální forma žádá, aby žádný sloupec nebylo možné dále dělit na části nesoucí samostatnou informaci.

3. Druhá normální forma žádá, aby tabulka obsahovala sloupce, které jsou závislé na celém klíči.

4. Třetí normální forma nepřipouští závislost mezi neklíčovými poli tabulky. 5. Čtvrtá normální forma nepřipouští multizávislost, při níž k hodnotě jedné skupiny polí se

váže více hodnot druhé skupiny polí. 6. Existují čtyři typy relací: bez vztahu tabulek, 1:1, 1:N, M:N. 7. Relace M:N je vhodné převést na dvě vazby 1:M a 1:N s můstkovou tabulkou. 8. V základním typu spojení tabulek se vybírají kombinace vět se stejným obsahem

spojujícího pole či více polí. Benevolentnější typy spojení připouštějí výběr i vět, které nemají spojení v opačné tabulce.

9. Referenční integrita hlídá souvislosti. Předpokladem zajištění referenční integrity je definování klíčových polí a výchozí konzistentnost dat.

10. Po zajištění referenční integrity není možné měnit klíčové pole v tabulce, pokud k němu existují věty v spojených tabulkách. Výjimkou je připuštění aktualizace svázaných polí v kaskádě, kdy po změně klíčového pole dojde ke změně hodnot příslušných polí ve spojených tabulkách.

11. Výjimečně lze uplatnit možnost odstranění souvisejících polí v kaskádě. V tom případě však budou odstraněny všechny související věty při odstranění věty s klíčovým polem.

12. Pokud definujeme referenční integritu v databázi s naplněnými daty, je obvykle nutné opravit nekonzistentnost dat změnou některých hodnot s využitím vhodných výběrových dotazů.

13. Tabulky je možné do databáze Accessu importovat ze sešitu Excelu. Tabulky jsou vymezeny listy nebo nazvanými rozsahy.

14. Tabulky mohou být spojeny jedním či více poli. 15. Tabulka může být spojena sama se sebou, pokud je zdrojem seznamu pro některé své pole. 16. Referenční integritu není možné definovat pro tabulky propojené z jiné databáze a ke

vztahům vytvořeným z dotazů.

Příkazy – rozšířené

Page 39: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 39

3. Tabulky

3.1 Způsoby tvorby a zobrazení tabulky Tabulky jsou jedním z objektů Accessu. Jsou v nich uložena data. Vztahy mezi

tabulkami jsou popsány formou relací. Tabulku můžeme vytvořit několika způsoby:

− ze šablony tabulky: Access nabízí několik připravených vzorových tabulek bez obsahu. − vyplněním prázdné tabulky: Vyplníme obsah prázdné tabulky. Změnou názvů sloupců

změníme názvy polí tabulky. Typ polí a jejich vlastnosti Access nastaví sám. − úpravou návrhu tabulky: Můžeme detailně definovat pole tabulky, vlastnosti polí a tabulky. − z Excelu či jiného zdroje: Tabulku můžeme importovat ze sešitu Excelu, jiné databáze

Accessu nebo jiných zdrojů. − jako seznam serveru SharePoint: Tabulka nemusí být uložena přímo v databázi, můžeme ji

uložit na serveru SharePoint ať už vytvoříme nový tzv. seznam či využijeme na webu SharePointu dříve vytvořený seznam.

Práci s tabulkou provádíme v několika zobrazeních tabulky: − návrhové zobrazení: Můžeme v něm měnit strukturu, upřesňovat vlastnosti polí či celé

tabulky. − zobrazení datového listu: Slouží k prohlížení dat. Data můžeme v listu řadit, filtrovat, hledat

v datech, doplnit základní souhrny dat (např. součty). − zobrazení kontingenční tabulky: V kontingenční tabulce analyzujeme vizuálně data,

v řádcích jsou varianty hodnot prvního pole (či kombinace více polí), ve sloupcích varianty druhého pole (či kombinace více polí). V tabulce jsou uvedeny shrnující hodnoty třetího pole (či více polí).

− zobrazení kontingenčního grafu: V kontingenčním grafu jsou graficky zobrazena data z kontingenční tabulky.

3.2 Tvorba tabulky Pro účely demonstrace různých způsobů tvorby tabulky založíme novou databázi

Důvěrné (DUV), v níž budou data o zaměstnancích firmy Encián, která nechceme zveřejňovat: − Klepneme do tlačítka Office zadáme příkaz NOVÁ. − Klepneme do tlačítka Procházet a vybereme vhodné umístění databáze. Vyplníme název

souboru DUV. − Klepneme do tlačítka Vytvořit. − Zavřeme tabulku Tabulka1.

Postupně využijeme tlačítka ze skupiny TTaabbuullkkyy v kartě VYTVOŘIT. První tabulku vytvoříme na základě šablony Accessu: − Klepneme do tlačítka Šablony tabulky. Nabídne se pět šablon Kontakty, Úkoly, Problémy,

Události, Aktiva. Vybereme šablonu KONTAKTY. − Otevřela se tabulka zatím nazvaná Tabulka1, v níž vyplníme některé sloupce v prvním řádku: • Společnost: Encián • Příjmení: Novák • Jméno: Petr • E-mailová adresa: [email protected] • Funkce: ředitel • Telefon do zaměstnání: +420 123 456 311 • Telefon domů: +420 234 657 890 • Mobilní telefon: +420 654 321 311 • Číslo faxu: nevyplněno • Adresa: Cihlářská 18 • Město: Praha 9 • Kraj: Hl. m. Praha

Tvorba tabulky

Zobrazení tabulky

DUV-03-01

Tvorba tabulky ze šablony

Page 40: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 40

• PSČ: 190 00 • Země: Česká republika • Webová stránka: http://min.vse.cz/encian/novak • Poznámky: Absolvoval VŠE v Praze. Je testerem ECDL.

− Tabulku zavřeme, uložíme změny, tabulku nazveme Kontakty. − Tabulku poklepáním na její název v navigačním podokně otevřeme a přejdeme klepnutím do

tlačítka vpravo dole do návrhového zobrazení. − Ve struktuře tabulky klepneme do řádku ID a v kartě NÁVRH ve skupině Nástrojee klepneme

do tlačítka Odstranit řádky. Odsouhlasíme odstranění vybraného pole a primárního klíče. Nástroj

− Klepnutím do tlačítka Vložit řádky ve skupině Nástrojee vložíme nový řádek, do nějž zapíšeme název pole E_mail a upravíme velikost pole na 20

Nástroj28.

− Do pole E_mail vložíme v první větě hodnotu Novak.Petr. − Vrátíme se do návrhového zobrazení a klepnutím do tlačítka Primární klíč ve skupině

Nástrojee povýšíme pole na klíčové.Nástroj 29 Pole E-mail umožní spojit relací 1:1 tabulku Kontakty s tabulkou Personal v databázi Encian. Návrh tabulky zavřeme s uložením změn.

V tabulce Dovolené budeme evidovat dovolenou zaměstnanců. Tabulku vytvoříme z prázdné tabulky: − V kartě VYTVOŘIT ve skupině Tabulky klepneme do tlačítka Tabulka. Tabulky− Poklepeme na název druhého sloupce a vyplníme název E_mail. − Do druhého sloupce doplníme do první věty Novak.Petr. − Připravíme třetí sloupec s názvem Zahájení a doplníme do první věty hodnotu 8. 7. 2009. − Připravíme čtvrtý sloupec Dokončení a doplníme do první věty hodnotu 22. 7. 2009. − Tabulku nazveme Dovolené. − Ve struktuře tabulky odstraníme pole ID. Upravíme délku textového pole E_mail na 20. Typ

polí Zahájení a Dokončení Access správně určil jako Datum a čas. Za klíčové pole prohlásíme kombinaci polí E_mail a Zahájení.

V tabulce Děti budeme evidovat děti zaměstnanců. Tabulku vytvoříme v návrhovém zobrazení: − V kartě VYTVOŘIT ve skupině Tabulky klepneme do tlačítka Návrh tabulky. Tabulky− Do prvního řádku vyplníme do názvu pole E_mail, v datovém typu ponecháme Text. Délku

omezíme na 20 znaků. Do popisu vyplníme Zkrácený e-mail (uživatelské jméno). − Do druhého řádku vyplníme Jméno_dítěte, v datovém typu ponecháme Text. Délku pole

omezíme na 10 znaků. Do popisu vyplníme Křestní jméno dítěte. − Tažením ve voliči záznamů označíme obě pole a klepneme do tlačítka Primární klíč. − Klepnutím do tlačítka v pravém dolním rohu přejdeme do Zobrazení datového listu. Tabulku

uložíme pod názvem Děti. − Pro Petra Nováka doplníme dvě děti Lukáše a Eriku.

V tabulce Úkoly budeme evidovat úkoly projektu Start, v jehož rámci proběhla rekonstrukce zasedací místnosti 18 firmy Encián na školící počítačovou místnost. Tabulku vytvoříme formou seznamu na serveru SharePoint propojenou s databází Důvěrné: − V kartě VYTVOŘIT ve skupině Tabulky klepneme do tlačítka Seznamy serveru SharePoint.

Nabídne se šest typů seznamu Kontakty, Úkoly, Problémy, Události, Vlastní, Existují seznam serveru SharePoint. Vybereme typ ÚKOLY.

Tabulky

− SharePoint je integrovaná platforma pro intranet i internet firmy. Předpokladem využití je instalace SharePointu na serveru30. V rámci SharePointu je možné snadno vytvářet seznamy (databázové tabulky) a aktualizovat je prostřednictvím webového rozhraní či prostřednictvím Accessu. Z Accessu je možné seznam také vytvořit.

− V dialogovém okně Vytvořit nový seznam vyplníme tři pole (viz Vytvořit nový seznam

obr. 3-1):

28 Typ nově vkládaného pole lze nastavit po klepnutí do tlačítka Office a tlačítka Možnosti aplikace Access v kartě

Návrháři objektů v poli Výchozí typ pole. Obdobně můžeme nastavit ve stejné kartě v poli Výchozí velikost textového pole.

29 Pole jsme mohli přejmenovat přímo při vyplňování první věty. Typ pole můžeme však měnit jen v návrhovém zobrazení.

30 K dispozici je verze Windows SharePoint Services např. ve verzi 3, která je zdarma součástí Windows Serveru 2003. Větší rozsah funkcí nabízí SharePoint Server např. ve verzi 2007. Data ukládá SharePoint do vlastní databáze nebo do databáze Microsoft SQL serveru např. ve verzi 2005.

Tvorba tabulky vyplněním prázdné tabulky

Tvorba tabulky návrhem tabulky

Seznam serveru SharePoint

Page 41: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 41

OBR. 3-1: DIALOGOVÉ OKNO VYTVOŘIT NOVÝ SEZNAM

• Adresa webu: Zde zadáme adresu serveru, na němž je nainstalován SharePoint. Access

nám nabízí naposledy použité adresy, můžeme vyplnit novou adresu. V našem případě využijeme testovací web na serveru fmv.vse.cz.

• Dále vyplníme název nového seznamu Ukoly a popis Úkoly projektu Start31. • Ponecháme zaškrtnuté pole Otevřít seznam při dokončení.

− V dalším dialogovém okně se musíme k serveru přihlásit, tj. zapsat uživatelské jméno a heslo.

− Na serveru se vytvoří seznam, který je propojen do databáze Accessu. − Tabulka Ukoly se otevře. Vyplníme alespoň některá pole první věty: • Nadpis: koncepce vybavení místnosti • Priorita: (2) Normální • Stav: Dokončeno • Datum zahájení: 7. 4. 2008 • Termín splnění: 16. 4. 200832

− Tabulku Ukoly v Accessu zavřeme a přejmenujeme příkazem PŘEJMENOVAT z místní nabídky názvu na název Úkoly.

− Do databáze Accessu se propojil dále Seznam informací o uživatelích týmového webu test. − Seznam Ukoly můžeme potom zobrazit ve webovém prostředí SharePointu, které čerpá

z uložených dat. Můžeme upravovat věty či přidávat nové ve webovém prostředí či v Accessu. Data se ukládají v databázi SharePointu.

− V prohlížeči otevřeme příslušný web SharePointu (http://fmv.vse.cz/weby/test). − V SharePointu přejmenujeme seznam. Ze zobrazení seznamu zadáme příkaz NASTAVENÍ,

SEZNAM NASTAVENÍ. V něm zadáme v rámci skupiny Obecné nastaveníí odkaz Nadpis, popis a navigace. Upravíme hodnotu pole Název z Ukoly na Úkoly a klepneme do tlačítka Uložit.

Obecné nastaven

− V SharePointu můžeme připravit účelová zobrazení Úkoly. Vytvoříme např. zobrazení Projekt, v němž budou zobrazeny námi vyplněná pole (viz obr. 3-2).

OBR. 3-2: ZOBRAZENÍ PROJEKT TABULKY ÚKOLY V SHAREPOINTU

31 Název Úkoly jsme zapsali bez čárky, aby výsledná webová adresa pro práci se seznamem byla přehledná. 32 Pole Hotovo (%), Přiřazeno, Skupina úkolů. Popis. Přílohy nevyplníme.

Page 42: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 42

− Obdobně bychom mohli vytvořit vlastní seznam, který by po založení obsahoval pouze pole ID, Nadpis, Přílohy. Strukturu seznamu bychom mohli upravit v SharePointu33.

− Z Accessu se můžeme propojit i na existující seznam SharePointu. Ve skupině Tabulkyy můžeme klepnout do tlačítka Seznamy serveru SharePoint a zadat EXISTUJÍCÍ SEZNAM SERVERU SHAREPOINT. Dále zadáme, ze kterého serveru seznam čerpáme, zda jej importujeme či propojíme. V dalším dialogovém okně se zobrazí seznam tabulek serveru, v němž můžeme zaškrtnout další tabulky k propojení či importu.

Tabulk

− Můžeme také exportovat seznam z Accessu do SharePointu. Otevřeme tabulku Děti. Na kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Seznam SharePoint. V dialogovém okně Exportovat data do seznamu SharePoint vybereme web, ponecháme název seznamu Děti, doplníme popis Děti zaměstnanců firmy Encián. Z tabulky se vytvoří seznam, který se zobrazí v datovém listu SharePointu. Tabulka je v tomto případě exportována, není propojena s tabulkou Accessu. Pozdější změny seznamu SharePointu se nepromítnou do Accessu ani naopak.

ExportExportovat data do seznamu SharePoint

3.3 Návrhové zobrazení V kap. 1 jsme se nezabývali detailně strukturou tabulek. Strukturu tabulek jsme tvořili

převážně importem z Excelu. Upřesněme pro ilustraci definici struktury tabulky Personal z databáze Encian. Otevřeme databázi Encian, v navigačním podokně klepneme pravým tlačítkem do tabulky Personal a z místní nabídky vybereme NÁVRHOVÉ ZOBRAZENÍ (nebo otevřeme tabulku a klepneme vpravo dole do tlačítka Návrhové zobrazení). Struktura tabulky se zobrazí ve třech sloupcích (v obr. 3-3 jsou již provedeny úpravy struktury tabulky):

OBR. 3-3: STRUKTURA TABULKY PERSONAL

33 V SharePointu můžeme upravit i strukturu seznamu Úkoly. Seznam měl však již při založení připravena pole

typická pro úkoly.

ENC-03-02

Page 43: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 43

− Název pole: Název pole se může skládat až z 64 znaků (písmen, číslic, mezer, pomlček).

Pokud název obsahuje mezery, je vhodné (z důvodu pozdějších složitějších výrazů tvořených z polí) nahradit je podtržítky.

− Datový typ: Typ značně ovlivňuje způsob uložení dat v databázi a nabídku operací, které lze s polem později provádět. Typ zapíšeme (většinou stačí zapsat první písmeno) nebo vybereme z nabídky, kterou zobrazíme klepnutím do tlačítka na konci sloupce v řádku příslušného pole. Access nabízí několik datových typů: • Text: Používá se pro text a čísla, s nimiž nebudou prováděny výpočty. Délka textu může

být maximálně 255 znaků. • Memo: Dlouhý text, který může být formátován. Délka textu je prakticky neomezená

(1 024 milióny znaků). Podle pole typu Memo nelze řadit. • Číslo: Číslo (zejména, jsou-li s ním prováděny výpočty). • Měna: Modifikace číselné hodnoty. Zobrazuje navíc měnovou jednotku.34 • Automatické číslo: Je automaticky doplňováno Accessem při vložení nové věty. Používá se

ke generování hodnoty primárního klíče. Pokud později větu odstraníme, číslo již není použito, řada není souvislá.

• Datum a čas: Kalendářní datum a čas. Datum se ukládá jako sériové číslo dne (pořadí od počátku 20. století, přesněji počet dnů, které uplynuly od 30. 12. 1899), čas se ukládá jako desetinná část dne (zlomek 24 hodin). Zabraňuje vložení neexistujícího data. Umožňuje výpočty. (Např. rozdílem dvou dat je počet dní mezi daty.)

• Ano/ne: Připouští uložení hodnoty pouze ano nebo ne. • Objekt OLE: Do pole je možné vložit objekt jiného programu. • Hypertextový odkaz: Používá se k uložení hypertextových odkazů. Adresa odkazu se

skládá ze čtyř částí oddělených mřížkami: » zobrazený text, » adresa, » podadresa, » nápovědný text.

Pokud je uvedena jen jedna část, je považována za zobrazený text i adresu. • Příloha: Umožňuje uložit do věty soubory, např. fotografie. • Průvodce vyhledáváním: Nejedná se o datový typ. Spouští Průvodce vyhledáváním, který

umožňuje vytvořit pole se seznamem k vyhledání hodnot v jiné tabulce či výsledku dotazu. − Popis: Popis není povinný, usnadňuje porozumění významu polí. Popis má význam pro

tvůrce databáze (pozdější změny struktury tabulky) i pro uživatele (popis je zobrazován ve stavovém řádku Accessu).

Každé pole má ve spodním podokně definovány vlastnosti. Přesun kurzoru do spodní části lze provést klepnutím myší nebo stisknutím klávesy F6.35 Různé typy polí mají dostupné různé vlastnosti (viz obr. 3-4).

K jednotlivým vlastnostem: − Velikost pole pro textové pole udává počet znaků, který maximálně připouštíme vyplnit

v poli. Typ pole a jeho vlastnosti tak zpřesňují data ukládaná do tabulek. V tabulce Personal zadáme hodnoty Velikost pole:

E_mail: 20 Příjmení: 15 Místnost: 3 Titul1: 10 Titul2: 7 Oddělení: 3 Jméno: 10 Pohlaví: 1 Nadřízený: 20

V případě nedostatku místa pro texty můžeme velikost textového pole později zvětšit. Naopak zmenšení velikosti může vést k „utržení“ konců textů, tj. ke ztrátě již vložených dat. Minimální únosnou velikost textového pole v poli s naplněnými větami můžeme zjistit dotazem, v němž vytvoříme sloupec Délka:Len(Pole) seřazený sestupně.

34 Měnová jednotka je převzata z nastavení Windows. Lze ji tedy změnit příkazem START, NASTAVENÍ, OVLÁDACÍ

PANELY, poklepáním na ikonu Místní a jazykové nastavení. V dialogovém okně MMííssttnníí aa jjaazzyykkoovvéé nnaassttaavveenníí v kartě Formáty klepneme do tlačítka Vlastní nastavení tohoto formátu. Měna se nastavuje v kartě Měna v poli Symbol měny.

35 Dalším stisknutím klávesy F6 se přesune kurzor do navigačního podokna, dalším stisknutím se přesune do pásu karet. Teprve následujícím stisknutím se vrátí zpět do podokna vlastností tabulky.

Definice pole

Velikost textového pole

Page 44: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 44

OBR. 3-4: VLASTNOSTI DLE TYPU POLÍ

Vlastnost

Text

Mem

o

Čís

lo

Měn

a

Aut

om. č

íslo

Dat

um a

čas

Ano

/ne

Obj

ekt O

LE

Hyp

erte

xt

Přílo

ha

Velikost pole Nové hodnoty Formát Přesnost * Měřítko * Počet desetinných míst Vstupní maska Titulek Výchozí hodnota Ověřovací pravidlo Ověřovací text Je nutno zadat Povolit nulovou délku Indexovat Komprese kódu Unicode Režim IME Režim sentence IME Inteligentní značky Zarovnání textu Zobrazit výběr data Pouze přidat Formát textu

* pouze pro desetinná čísla − Velikost pole pro číslo udává rozsah velikosti a přesnosti čísla dle obr. 3-5.36

OBR. 3-5: VARIANTY VELIKOSTI POLE TYPU ČÍSLO

Velikost pole Rozsah Desetinných míst Velikost Bajt <0;255> 0 1 byte Celé číslo <–32768;32767> 0 2 byty Dlouhé celé číslo <–2,1*109;2,1*109> 0 4 byty Jednoduchá přesnost <–3,4*1038;3,4*1038> 7 platných číslic 4 byty Dvojitá přesnost <–1,8*109;1,8*109> 15 platných číslic 8 bytů Desetinné číslo <–9,9*1027;9,9*1027> 12 bytů

Menší velikost pole urychluje práci s databází a snižuje nároky na velikost databáze.37 V tabulce Personal upravíme Velikost pole číselného pole Úvazek na Desetinné číslo.

36 Do pole o velikosti 1 bit [vysloveno bit] by se vešla informace 0 nebo 1 (ne či ano). Pokud bychom sdružili dva

bity, můžeme zaznamenat čtyři kombinace 00, 01, 10, 11, tj. obecně 2n, kde n je počet sdružených bitů. Můžeme tak zaznamenat celá čísla <0; 2n–1>. Byte [bajt] sdružuje 8 bitů, můžeme zaznamenat 28 = 256 kombinaci, tj. celá čísla v intervalu <0; 255>. Pro Velikost pole o hodnotě Celá čísla vyhrazujeme 1 ze 16 bitů na znaménko, tj. můžeme zaznamenat celá čísla z intervalu <–215; 215–1>. Zvýšením počtu bytů se zvyšuje rozsah čísla nebo jeho přesnost. Pro velká a desetinná čísla se ukládá do části bitů mantisa a do části bitů exponent.

37 Typ Jednoduchá přesnost má velikost uložení stejnou jako Dlouhé celé číslo (4 byty). Typ Jednoduchá přesnost má sice větší rozsah, avšak menší přesnost čísla. Např. číslo 123 456 789 bude v poli typu Jednoduchá přesnost uloženo jako 123 456 800. Pozor při modifikaci velikosti číselných polí. Je-li nově zvolené nastavení nedostatečné pro existující uložené hodnoty, zobrazí se při ukládání tabulky varování. Po jeho odsouhlasení tlačítkem Ano jsou příliš velká čísla vymazána. Při definici relací mezi tabulkami musí být odpovídající si pole stejného typu a velikosti. Navíc může být pole v jedné tabulce typu Automatické číslo, v druhé tabulce odpovídající pole typu Číslo, musí být však velikosti Dlouhé celé číslo.

Velikost číselného pole

Page 45: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 45

Výchozí velikost pro textová a číselná pole můžeme určit klepnutím do tlačítka Office a Možnosti aplikace Access v dialogovém okně MMoožžnnoossttii aapplliikkaaccee AAcccceessss v kartě Návrháři objektů v sekci NNáávvrrhh ttaabbuullkk

yy v polích Výchozí velikost textového pole a Výchozí velikost číselného pole.

− Vlastnost Nové hodnoty je dostupná jen pro pole typu Automatické číslo. Má pouze dvě varianty vyplnění: • Přírůstek: První věta má hodnotu 1, další nové věty mají hodnotu o 1 větší než předchozí

věta. Při odstranění věty zůstane původní číslo nevyužito. • Náhodný: Větě je přiřazena náhodná hodnota dlouhých celých čísel, tj. celá čísla

z intervalu <–2 147 483 648;2 147 483 647>. − Formát: Ovlivňuje pouze způsob zobrazení dat. Nemá vliv na to, jakým způsobem jsou data

uložena. Pro některé datové typy nabízí Access předdefinované formáty, pro všechny datové typy s výjimkou typů Objekt OLE a Příloha můžeme tvořit vlastní formáty: • Pro textová a memo pole nenabízí Access předdefinované formáty. Po importu z Excelu je

pro textová a memo pole uveden formát @, který zobrazuje vložený text. Pro pole Titul1 zapíšeme formát @;"žádný", který vypíše pro vyplněné pole text vložený do pole (zástupný symbol @), pro nevyplněné pole (ať už nevyplněné nebo vyplněné řetězcem "", tj. řetězcem nulové délky) vypíše slovo žádný. Stejnou hodnotou formátu vyplníme pro pole Titul2.

• Pro číselná pole nabízí Access běžné formáty (obecné číslo, měna, Euro, pevný, standardní, procenta, vědecký).38 Pro pole Úvazek vybereme formát procenta. V zobrazení datového listu jsou potom zobrazeny hodnoty pole Úvazek vynásobené 100 a doplněné znakem %. Do pole nadále vkládáme hodnoty ve tvaru 1 při plném úvazku, můžeme však také zadat 100 %, které Access uloží jako hodnotu 1.

• Pro pole typu Ano/ne Access nabízí tři způsoby zobrazení hodnoty (true/false, ano/ne, zapnuto/vypnuto). Abychom mohli ověřit funkčnost formátu, je nutné v kartě Vyhledávání zvolit v poli Zobrazit ovládací prvek hodnotu Textové pole. V tabulce Personal chceme měnit barvu pole Oprávnění podle zadaných hodnot. Zadáme proto formát ;"oprávněn"[zelená];"neoprávněn"[červená] (včetně počátečního středníku). Parametr před středníkem není nikdy funkční, po středníku zadáváme text, který se zobrazí při hodnotě ano, po dalším středníku text zobrazený při hodnotě ne. Navíc jsme doplnili barevné odlišení hodnot.

− Vlastnosti Přesnost a Měřítko lze zadat pouze pro desetinná čísla. Přesnost udává celkový počet číslic napravo i nalevo od desetinné čárky, které lze ukládat. Měřítko upřesňuje počet číslic, které lze ukládat napravo od desetinné čárky. Pro číselné pole Úvazek zadáme hodnotu Přesnosti 4, Měřítka 3. Nemůžeme potom vložit dvou a víceciferná čísla (Access ohlásí chybu) ani čísla s větším počtem desetinných míst než 3 (Access další číslice neakceptuje). Formát procent ovlivňuje pouze zobrazování, můžeme proto vložit úvazek jen s přesností na desetiny procent a to nejvýše 999,9 %. Bohužel při změně Úvazku z dvojité přesnosti na desetinné číslo bylo prvotně nastaveno Měřítko na 0, proto se částečný úvazek Miloše Adamce snížil z 0,5 na 0. Nyní jej zvýšíme opět na 0,5 (tj. 50 %).

− Počet desetinných míst: Vlastností můžeme pro vhodná číselná pole nastavit počet zobrazovaných desetinných míst. Zároveň však musíme do vlastnosti Formát vybrat Pevný nebo Procenta. Pro číselné pole Úvazek zadáme hodnotu 0, aby se procentuální vyjádření vypisovalo bez desetinné části procent.39 Pokud bychom Úvazek nezobrazovali ve formátu procent, ale pevném, museli bychom při stejné podrobnosti zobrazení zadat do vlastnosti Počet desetinných míst hodnotu 2. Další příklady jsou uvedeny v obr. 3-6.

38 Další formáty si může připravit uživatel, např. ve tvaru 0,0 nebo 0,0%. 39 Pokud chceme, aby se akceptoval počet desetinných míst nastavených ve vlastnosti Formát, musíme ponechat ve

vlastnosti Počet desetinných míst nastavení automatický. (Pokud bychom zadali Formát o hodnotě 0% a Počet desetinných míst o hodnotě 2, zobrazovala by se dvě desetinná místa. Při formátu 0% a vlastnosti Počtu desetinných míst o hodnotě automatický by se zobrazovala pouze celá část procent.)

Nové hodnoty

Formát

Přesnost a měřítko

Počet desetinných míst

Page 46: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 46

OBR. 3-6: VARIANTY UKLÁDANÝCH A ZOBRAZOVANÝCH HODNOT ČÍSLA

Vel

ikos

t pol

e

Form

át

Přes

nost

Měř

ítko

Des

etin

ných

m

íst

Vlo

žená

ho

dnot

a

Ukl

ádan

á ho

dnot

a

Zobr

azen

á ho

dnot

a

automat. 1234,1234 obecné číslo 1 1234,1234

automat. 1 234,12 standardní* 1 1 234,1 automat. 1234,12 pevný 1 1234,1 automat. 123412,34%

desetinné číslo

procento

9 4

1

1234,123456 1234,1234

123412,3% *Standardní formát zobrazuje mezi tisíci a jednotkami mezeru. − Vstupní maska: Vlastností můžeme pro textová a číselná pole usnadnit zadávání dat a

kontrolovat hodnoty, které povolíme zadávat. Vstupní maska umožňuje některé vkládané znaky omezit na číslice nebo naopak na písmena, umožňuje také některé znaky automaticky vkládat, aniž by je uživatel musel editovat. Vstupní masku tvoří řetězec zástupných znaků.

OBR. 3-7: ZNAKY ZASTUPUJÍCÍ JEDNOTLIVÉ POZICE VE VSTUPNÍ MASCE

Povinné Nepovinné Význam 0 9 číslice nebo mezera (znaménka nepovolena) # číslice, mezera nebo znaménka

L ? písmeno (A až Z) A a písmeno nebo číslice & C libovolný znak nebo mezera

, desetinná čárka (např. maska 0,099 automaticky po vložení první číslice vloží desetinnou čárku)

> následující znaky se zobrazí jako velká písmena < následující znaky se zobrazí jako malá písmena

"text"40 zobrazí text v uvozovkách

\p zobrazí písmeno za lomítkem heslo41

místo vkládaných hodnot se zobrazují hvězdičky Na pozicích zastoupených znaky ze sloupce povinné musí uživatel zapsat stanovený znak. Na pozicích zastoupených znaky ze sloupce nepovinné může uživatel zapsat jen stanovený znak nebo pozici nevyužít. V tabulce Personal zadáme vstupní masky: • E_mail: Maska ACCCCCCCCCCCCCCCCCCC umožňuje na začátku e-mailu zadat

jedině písmeno nebo číslici, na dalších pozicích libovolné znaky. E_mail může být dlouhý 1 až 20 znaků.

• Jméno: Maska >L<L???????? umožňuje zadat ve jménu pouze písmena. Jméno může být dlouhé 2 až 10 znaků. První písmeno se automaticky zapisuje jako velké písmeno, ostatní jako malá písmena.

• Příjmení: Maska >L<L????????????? umožňuje zadat v příjmení pouze písmena. Příjmení může být dlouhé 2 až 15 znaků. První písmeno se automaticky zapisuje jako velké písmeno, ostatní jako malá písmena.

Bohužel neexistuje zástupný znak, který by ukončil zobrazování textu velkými či malými písmeny. Nemůžeme proto např. požadovat, aby první písmeno bylo velké, další velká či malá.

40 Text bude zobrazen pouze při vkládání hodnoty. V případě, že bychom chtěli zobrazovat text v tabulce, museli

bychom text vložit také do formátu. 41 Zobrazování hesla bude potlačeno pouze při vkládání hodnoty. Do formátu bychom měli zapsat vhodné potlačení

zobrazení např. "*****" tak, aby heslo nebylo zobrazeno v tabulce.

Vstupní maska

Page 47: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 47

V tabulce Podniky zadáme vstupní masky: • PSČ: Maska 000 00 zajistí automatické vložení mezery po třetím znaku.42 Pole PSČ musí

být textové. Access upraví vstupní masku na tvar 000\ 00. (Znak za obráceným lomítkem je zobrazen vždy jako znak, není chápán jako zástupný znak.)

• Telefon: Maska +000-000 000 000 zajistí automatické vložení znaménka plus na začátek mezinárodního tvaru telefonního čísla, dále musíme zapsat tři číslice (např. 420 pro Českou republiku), na další pozici se vloží pomlčka, za níž musíme napsat tři trojice číslic. Access upraví vstupní masku na tvar \+000\-000\ 000\ 000

Vstupní maska může mít další dva doplňující parametry oddělené středníkem, které v našem případě neaplikujeme: • Druhý parametr určuje, zda se při zadávání dat ukládají zobrazované znaky do tabulky.

Použijeme-li pro tento parametr hodnotu 0, všechny zobrazované znaky (například počáteční plus ve vstupní masce telefonního čísla) se uloží spolu s hodnotou. Zadáme-li hodnotu 1 nebo ponecháme-li tuto volbu prázdnou, ukládají se pouze znaky, které byly do ovládacího prvku napsány.43

• Třetí parametr určuje znak, který se zobrazí místo mezery, do které bychom měli ve vstupní masce napsat znak. Jako třetí parametr je možné použít libovolný znak. Chceme-li zobrazit prázdný řetězec, použijeme mezeru uzavřenou v uvozovkách (" ").

V tabulce Personal bychom mohli např. doplnit vstupní masku pole Jméno na tvar: >L<L????????;0;"." Pokud pro pole definujeme jak zobrazovací formát, tak vstupní masku, použije se vstupní maska při zadávání nebo úpravě dat, zatímco nastavení vlastnosti Formát určuje způsob zobrazení dat po uložení záznamu. Vlastnosti Formát a Vstupní maska mohou být i v rozporu. Např. když bychom pro Zahájení v tabulce Cesty zadali hodnoty: • Formát: datum (střední) • Vstupní maska: 99.99.0000;0;_, tj. v průvodci vstupní maskou datum (krátké). Zadávali bychom potom hodnotu 13.1.2009 a zobrazila by se hodnota 13-I-09.

− Titulek (využitelný pro všechny datové typy): Text, který bude použit pro nadpisy sloupců v zobrazení datového listu a bude prvotně nabídnut jako popisek pole ve formulářích a sestavách.44 V tabulce Personal zadáme vlastnost Titulek pro pole: • E_mail: E-mail, • Titul1: Titul před jménem, • Titul2: Titul za jménem, • Oprávnění: Oprávnění fakturovat.

− Výchozí hodnota (využitelná pro všechny datové typy s výjimkou automatického čísla, objektu OLE a přílohy): Výchozí hodnota bude automaticky vyplněna do nových vět. (Nastavení výchozí hodnoty neovlivní již zapsaná data.) V tabulce Personal zadáme výchozí hodnotu: • pro pole Pohlaví: M (muž), • pro pole Úvazek: 1 (100 %, výchozí hodnota číselných hodnot je prvotně nastavena na 0). V tabulce Faktury zadáme výchozí hodnotu: • pro pole Datum: =Date(), což je obecné vyjádření aktuálního data. Při vkládání dat do nové

věty je prvotně vloženo aktuální datum, které můžeme přepsat. − Ověřovací pravidlo (využitelné pro všechny datové typy s výjimkou automatického čísla,

objektu OLE a přílohy): Při vkládání dat Access automaticky ověřuje zadané hodnoty dle typu dat, např. nedovolí zadat text do pole typu Číslo. Ověřovací pravidla mohou kontrolu zpřísnit. Klepnutím do tlačítka na konci řádku zadávání pravidla můžeme vyvolat Tvůrce výrazů45, který usnadní zápis pravidla. Pro tabulku Personal zadáme následující ověřovací pravidla: • pro pole Pohlaví: M or Z (pohlaví musí nabývat hodnotu M nebo Z), • pro pole Úvazek: >=0 And <=1 (nepřipouštíme větší úvazek než 100 %).

42 Přípravu masky si lze usnadnit Průvodcem vstupní maskou, kterého lze vyvolat klepnutím do tlačítka Tvůrce na

konci řádku vlastnosti Vstupní maska. Do seznamu připravených masek lze doplnit další např. masku pro zadávání telefonního čísla dle konvencí ČR.

43 Rozdíl se projeví, když později masku odstraníme. 44 Popis se na rozdíl od titulku zobrazuje ve stavovém řádku. 45 Tvůrce výrazů poznáme podrobněji při konstrukci dotazů v kap. 4.2.

Titulek

Výchozí hodnota

Ověřovací pravidlo

Page 48: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 48

Pro tabulku Faktury zadáme ověřovací pravidlo: • pro pole Datum: <=Date() (nutno zadat menší nebo stejné datum jako aktuální, není možné

zapsat fakturu s datem pozdějším než aktuálním). Po zadání ověřovacího pravidla a uložení struktury tabulky Access může (po souhlasu uživatele) prověřit stávající obsah tabulky. Pokud některá věta nevyhovuje, Access na to upozorní. Nevyhovující věty však ani nesmaže, ani neopraví. Jestliže však nově zadaná hodnota nesplní podmínku, objeví se chybové hlášení a větu není možné uložit.

− Ověřovací text (využitelný pro všechny datové typy s výjimkou automatického čísla, objektu OLE a přílohy): Text chybového hlášení po nesplnění podmínky ověřovacího pravidla můžeme sami nadefinovat. Pro tabulku Personal definujeme texty: • pro pole Pohlaví: Do pole Pohlaví lze zadat pouze M (muž) nebo Z (žena)! • pro pole Úvazek: Do pole Úvazek lze zadat pouze hodnoty z intervalu <0;1>! Pro tabulku Faktury definujeme text: • pro pole Datum: Datum faktury nesmí být pozdější než dnešní!

− Je nutno zadat (využitelné pro všechny datové typy s výjimkou automatického čísla a ano/ne): Volbou Ano můžeme vyžadovat vždy zadání hodnoty. Access nedovolí pokračovat v editaci další věty, pokud ponecháme pole prázdné. V tabulce Personal takto zpřísníme vstup polí Jméno a Příjmení. Pole Jméno může být obecně dočasně nevyplněné. Access rozlišuje mezi prázdnými hodnotami (nevyplněná hodnota) a texty nulové délky. Text nulové délky se zapisuje jako dvojice uvozovek "" bez mezery mezi uvozovkami. Textem nulové délky zapisujeme, že jsme neopomněli pole vyplnit, avšak vyplnili jsme je pouze textem nulové délky.

− Povolit nulovou délku (využitelné pro textová a memo pole a hypertextové odkazy): Možnost zakázat vyplnění pole textem nulové délky. V tabulce Personal pro pole Příjmení zadáme hodnotu Ne, aby nebylo možné vložit do pole text nulové délky.

− Indexovat: Indexováním (textového, číselného, datumového nebo ano/ne) pole můžeme urychlit řazení či vyhledávání dle hodnot obsahu. Jsou tři možnosti nastavení indexování: • ne: Výchozí hodnota. Index se nevytvoří. • ano (duplicita povolena): Vytvoří se index pro pole. • ano (bez duplicity): Vytvoří se jedinečný index. Do pole nebude možné zadat duplicitní

hodnoty. V tabulce Personal jsme vytvořili pro jedinečné pole E_mail primární klíč. Pole, které tvoří primární klíč, je již zbytečné indexovat. Vzhledem k tomu, že každý zaměstnanec má svou telefonní linku, aplikujeme index (bez duplicity) na pole Telefon. Zajistíme tak, abychom nevložili stejný telefon pro různé zaměstnance. Indexy zavedené v tabulce lze snadno vypsat v přehledné tabulce v samostatném dialogovém okně. Zobrazíme návrh tabulky a klepneme do tlačítka Indexy ze skupiny ZZoobbrraazziitt ččii sskkrrýýtt. V tabulce indexů můžeme definovat i klíč skládající se z více položek. V tabulce Cesty zapíšeme do tabulky indexů index s názvem Cesta obsahující pole Zahájení, Dokončení a Místo (viz obr. 3-8). Nemůžeme tak zadat služební cestu, která by měla pole Zahájení, Dokončení a Místo shodné s jinou služební cestou, i když by byla v polích Rok a Cesta identifikována odlišně.

OBR. 3-8: DIALOGOVÉ OKNO INDEXY

Ověřovací text

Nutnost zadat

Nulová délka

Indexování

Page 49: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 49

Index doplníme také do tabulky Podniky. Zde je již index nachystán pro pole Bankovní_kód, neboť název pole obsahuje slovo kód46. Označíme index klepnutím do voliče záznamů a odstraníme klávesou Delete. Naopak doplníme index Účet s poli Bankovní_účet a Bankovní_kód. Index bude jedinečný, čímž zabráníme vložení stejného čísla bankovního účtu v kombinaci s bankovním kódem pro dva různé podniky. Dále doplníme index Název_podniku pro pole Název_podniku. Index bude jedinečný, čímž zabráníme vložení stejného názvu pro dva různé podniky.

− Komprese kódu Unicode (využitelné pro textová a memo pole a hypertextové odkazy): Access používá k uložení dat v polích typu text, memo a hypertextový odkaz kódové schéma Unicode, v němž je každý znak uložen do dvou bytů (65 536 variant) na rozdíl od kódování Latin, které ukládalo znak do jednoho bytu (256 variant). Unicode podporuje nejen základní evropské jazyky, ale také řečtinu, ruštinu, asijské jazyky. Většinou však pracujeme s běžnými písmeny (anglickými a českými) a vystačíme s uložením písmen do jednoho bytu. Je proto vhodné zapnout kompresi kódu Unicode, aby každý znak byl uložen v jednom bytu.

− Vlastnosti Režim IME a Režim Sentence IME řídí převod znaků a převod vět ve východoasijských verzích Windows.47

− Inteligentní značky: Inteligentní značku je možné zobrazit v situacích, kdy očekáváme návaznost dat Outlooku na data databáze Accessu. V tabulce Personal doplníme inteligentní značku ke dvěma polím: • pro pole E_mail:

» Klepneme na tlačítko na konci vlastnosti Inteligentní značky pole E_mail. Zobrazí se dialogové okno Inteligentní značky (viz Inteligentní značky obr. 3-9).

OBR. 3-9: DIALOGOVÉ OKNO INTELIGENTNÍ ZNAČKY

» Zaškrtneme inteligentní značku Jméno osoby. » V zobrazení datového listu je v pravém dolním rohu buňky u pole E_mail fialový

trojúhelník. Ve větě, na níž je ukazatel myši, je u pole zobrazena inteligentní značka. Klepnutím do značky se otevře nabídka operací využívajících hodnotu aktuální věty: ODESLAT POŠTU: Otevře novou zprávu v Outlooku a vyplní v ní adresáta v poli Komu dle hodnoty pole E_mail v aktuální větě. V našem případě bychom museli rozšířit e-mail doplněním např. [email protected].

NAPLÁNOVAT SCHŮZKU: Otevře pozvánku na schůzku v programu Outlook a vyplní v ní adresáta v poli Komu dle hodnoty pole E_mail v aktuální větě.

OTEVŘÍT KONTAKT: Pokusí se otevřít kontakt v Outlooku se shodou hodnoty pole E_mail a polem Celé jméno kontaktů.

46 Slova, která způsobí automaticky indexování, lze nastavit klepnutím do tlačítka Office a Možnosti aplikace Access

v kartě Návrháři objektů v sekci NNáávvrrhh ttaabbuullkkyy v poli Automaticky indexovat při importu či vytváření. 47 IME (Input Method Editor) je program, který převádí stisknuté klávesy na asijské znaky a umožňuje tak zadávat do

aplikací asijský text. Editor IME je součástí jazykových verzí sady Microsoft Office pro zjednodušenou čínštinu, tradiční čínštinu, japonštinu a korejštinu.

Komprese kódu

Inteligentní značky

Page 50: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 50

PŘIDAT DO KONTAKTŮ: Otevře nový kontakt v Outlooku a vyplní v něm pole Celé jméno hodnotou z pole E_mail.

• pro pole Telefon: » Klepneme na tlačítko na konci vlastnosti Inteligentní značky pole Telefon. Zobrazí se

dialogové okno Inteligentní značky. Inteligentní značky» Zaškrtneme inteligentní značku Telefonní číslo. » V zobrazení datového listu je v pravém dolním rohu u pole Telefon fialový trojúhelník.

Ve větě, na níž je ukazatel myši, je u pole zobrazena inteligentní značka. Klepnutím do značky se otevře nabídka operací využívajících hodnotu aktuální věty: ZAVOLAT: Prostřednictvím Outlooku se pokusí vytočit telefonní číslo. Vytáčení funguje, pokud je počítač propojen s vhodným telefonem a propojení patřičně parametrizováno.48

PŘIDAT DO KONTAKTŮ: Otevře nový kontakt v Outlooku a vyplní v něm pole telefon do zaměstnání hodnotou z pole Telefon. V našem případě bychom museli rozšířit telefonní linku doplněním počátečních číslic.

V tabulce Cesty doplníme inteligentní značku k jednomu poli: • Zahájení:

» Klepneme na tlačítko na konci vlastnosti Inteligentní značky pole Zahájení. Zobrazí se dialogové okno Inteligentní značky. Inteligentní značky

» Zaškrtneme inteligentní značku Datum. » V zobrazení datového listu je v pravém dolním rohu u pole Zahájení fialový trojúhelník.

Ve větě, na níž je ukazatel myši, je u pole zobrazena inteligentní značka. Klepnutím do značky se otevře nabídka operací využívajících hodnotu aktuální věty: NAPLÁNOVAT SCHŮZKU: Otevře pozvánku na schůzku v programu Outlook a vyplní v ní Počáteční čas a Konec dle hodnoty pole Zahájení v aktuální větě.

ZOBRAZIT KALENDÁŘ: Otevře v Outlooku kalendář v příslušném období dle hodnoty pole Zahájení v aktuální větě.

Úplnější aplikaci inteligentních značek budeme demonstrovat na jednoduchém dotazu, který vychází z tabulky Personal (viz obr. 3-10):

OBR. 3-10: NÁVRH DOTAZU P33A INTELIGENTNÍ ZNAČKY

• V návrhu dotazu můžeme klepnutím do tlačítka Seznam vlastností ve skupině Zobrazit či

skrýtt zobrazit vlastnosti sloupce, v němž je umístěn kurzor v podokně mřížky. Zobrazit či

skrý

• K prvním dvěma sloupcům doplníme inteligentní značky Jméno osoby, k třetímu sloupci doplníme Telefonní číslo.

− Zarovnání textu (pro všechny datové typy s výjimkou příloh): Hodnoty polí jsou zarovnány ve sloupcích datového listu standardně dle typu pole (zleva s výjimkou čísla, měny, automatického čísla, data a času, ano/ne, které jsou zarovnány zprava). Výchozí obecné zarovnání můžeme změnit na zarovnání Vlevo, Střed, Vpravo, Rozmístit. Zarovnání Rozmístit rozmístí znaky hodnoty pole tak, aby vyplnilo celou šířku sloupce. V tabulce Personal upravíme zarovnání textu: • pole Pohlaví: Střed, • pole Oprávnění: Vlevo.

48 Parametrizace vytáčení se provádí ve Windows příkazem START, NASTAVENÍ, OVLÁDACÍ PANELY, Možnosti

telefonu a modemu v kartě Pravidla vytáčení.

P33a Inteligentní značky

Zarovnání textu

Page 51: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 51

− Zobrazit výběr data (pouze pro datum a čas): Umožňuje potlačit zobrazení tlačítka kalendáře

pro pole typu datum a čas. Klepnutím do tlačítka kalendáře se zobrazí kalendář, v němž můžeme vybrat datum. Lze v něm snadno listovat mezi jednotlivými měsíci.

− Formát textu (pouze pro memo): Pokud místo hodnoty Prostý text vybereme RTF, budeme moci formátovat text v poli. V tabulce Personal zadáme RTF do vlastnosti Formát textu pole Charakteristika. Poklepáním označíme charakteristiku Petra Nováka přemýšlivý. Formát můžeme měnit v kartě DOMŮ ve skupině PPííssmmoo nebo v minipanelu, který se zobrazí u pole Charakteristika. Charakteristiky pozitivní pro práci dochvilná, přemýšlivý, systematická, vynalézavý, pracovitý zvýrazníme tučně, negativní charakteristiky panovačný, nedochvilný, unavená, rozčílená zvýrazníme kurzívou.

− Pouze přidat (pouze pro memo a hypertextový odkaz): Pokud nastavíme vlastnost na hodnotu Ano, zaznamenává se historie hodnot pole. Historii pole zobrazíme klepnutím pravým tlačítkem myši na hodnotu pole a výběrem příkazu ZOBRAZIT HISTORII SLOUPCE. Změnou vlastnosti na hodnotu Ne historii hodnot vymažeme. V tabulce Personal nastavíme hodnotu pole Pouze přidat pro pole Charakteristika. Změníme formát charakteristiky veselá na tučný a charakteristiky smutný na kurzívu. Zobrazíme jejich historii z místní nabídky. V historii je pro každou změnu uveden čas a nová hodnota.

Další vlastnosti pole můžeme upřesnit v kartě Vyhledávání. Zde můžeme určit typ ovládacího prvku, který se použije v datovém listu i nově připravovaném formuláři (viz kap. 5). Tuto vlastnosti budeme ilustrovat v tabulce Personal na poli Pohlaví (viz obr. 3-11).

OBR. 3-11: VYHLEDÁVÁNÍ PRO POLE POHLAVÍ

V řádku Zobrazit ovládací prvek můžeme vybírat ze tří možností: − Textové pole: Standardní nastavení, které nenabízí další řádky parametrizace vyhledávání. − Seznam: Ve formuláři se vypíše seznam dále uvedených hodnot jako nabídka pro výběr. − Pole se seznamem: Ve formuláři se rozbalí seznam až po klepnutí do příslušného tlačítka. V obou dvou posledních možnostech se v zobrazení datového listu po klepnutí do tlačítka s trojúhelníkem na konci pole rozbalí seznam.

Výběrem seznamu nebo pole se seznamem se zobrazí další vlastnosti: − Typ zdroje řádků:

V seznamu mohou být uváděny podle pole Typ zdroje řádků tři zdroje: • Tabulka či dotaz: V seznamu se zobrazí pole z tabulky vybrané v řádku Zdroj řádků. • Seznam hodnot: V seznamu se zobrazí hodnoty zapsané v řádku Zdroj řádků. • Seznam polí: V seznamu se zobrazí seznam polí tabulky vybrané v řádku Zdroj řádků.

(Tento případ je výjimečný.) Pro pole Pohlaví zobrazíme ovládací prvek seznam a vybereme zdroj řádků Seznam hodnot.

− Zdroj řádků: V řádku Zdroj řádků vybereme v případě volby Tabulka či dotaz nebo Seznam polí některou z tabulek či dotazů. Avšak pro pole Pohlaví vypíšeme varianty hodnoty, které nabízíme. Hodnoty oddělujeme středníky: M;Z. Hodnoty se budou nabízet při vyplňování pole. Pokud by se jednalo o víceznakové hodnoty, doplňoval by se text automaticky při vyplňování pole ve chvíli, kdy by jednoznačně zastupoval některou hodnotu ze seznamu49.

49 Navíc musí být splněno Ověřovací pravidlo a dodržena vlastnost Velikost pole.

Výběr data

Formát textu

Pouze přidat

Ovládací prvek

Typ zdroje řádků

Zdroj řádků

Page 52: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 52

− Vázaný sloupec: Čerpáme-li údaje z tabulky, můžeme určit, ze kterého sloupce se hodnota vyplní do pole, tzv. Vázaný sloupec. Většinou je to první sloupec, protože nejčastěji takto čerpáme primární klíč z jiné tabulky.

− Počet sloupců: V řádku Počet sloupců můžeme zadat, kolik sloupců ze zdrojové tabulky bude při vybírání zobrazeno v seznamu. Pokud bychom zadali více než jeden sloupec v případě zdroje daného seznamem hodnot, byly by chápány hodnoty ze zdroje řádků jako dvojice, trojice apod. (V našem případě bychom mohli zadat počet sloupců 2 a do zdroje řádků uvést M;muž;Z;žena. Ponecháme však stávající jeden sloupec zdroje.)

− Hlavičky sloupců: Pokud v řádku Hlavičky sloupců zadáme ano, budou se zobrazovat při vybírání hodnot nadpisy sloupců ze struktury zdrojové tabulky. (V našem případě bychom mohli zadat hodnotu ano a do zdroje řádků doplnit pohlaví;M;Z. První hodnota by byla chápána jako nadpis sloupce. Ponecháme však původní stav.)

− Šířka seznamu: Pokud jsme vybrali ve vlastnosti Zobrazit ovládací prvek hodnotu Pole se seznamem, je dostupná vlastnost Šířka seznamu. Pokud v ní ponecháme hodnotu automatická, je seznam široký dle šířky sloupce pole. Upřesnění šířky seznamu provedeme v tabulce Personal v poli Nadřízený. Zadáme pro něj: • Zobrazit ovládací prvek: Pole se seznamem, • Typ zdroje řádků: tabulka či dotaz, • Zdroj řádků: Personal, • Počet sloupců: 4. Zobrazíme tabulku v zobrazení datového listu. Rozbalíme seznam zaměstnanců pro pole Nadřízený. Šířka seznamu je shodná se šířkou sloupce. Šířky sloupců seznamu jsou totožné. Pokud rozšíříme sloupec pole, rozšíří se i šířka seznamu a jeho sloupců. Nechceme rozšiřovat sloupce, ale pouze seznam, upřesníme další vlastnost: • Šířka seznamu: 10 Proporce šířky sloupců seznamu můžeme zadat ve vlastnosti Šířky sloupců.

− Šířky sloupců: Ve vlastnosti Šířky sloupců můžeme zadat, jak široké budou jednotlivé sloupce seznamu hodnot. Šířky zapisujeme v centimetrech, oddělujeme od sebe středníky. Pro pole Nadřízený zadáme: • Šířky sloupců: 3,5; 1,5; 250 Šířku posledního sloupce již nemusíme zadávat, dopočte se dle šířky seznamu. Pokud některý sloupec nechceme zobrazovat, zadáme pro něj nulovou šířku, např. v seznamu nezobrazíme Titul1, když zadáme hodnoty vlastnosti: • Šířky sloupců: 3,5; 0; 2 První sloupec s nenulovou délkou je zobrazen v tabulce. Zadáme hodnoty vlastnosti: • Šířky sloupců: 0; 0; 2 V tabulce je nyní zobrazena hodnota křestního jména, do tabulky se nadále ukládá E_mail. V tabulce chceme nadále zobrazit E_mail, v seznamu jej však nechceme uvést. Zadáme proto hodnoty vlastností: • Šířky sloupců: 0,01; 0; 2 Šířku seznamu upravíme na 5.

− Počet řádků seznamu: Pro pole se seznamem lze zadat počet řádků, které se zobrazí při rozbalení seznamu. Pro pole Nadřízený změníme počet z 16 na 20 řádků, aby se v seznamu nezobrazoval svislý posuvník.

− Omezit na seznam: Pokud zadáme v řádku Omezit na seznam hodnotu ano, nebude možné do pole zapsat jinou hodnotu, než je uvedená ve zdroji řádků.51 Omezení hodnot zajišťuje také referenční integrita. Můžeme tak nepřímo řešit případy, kdy referenční integritu nelze zadat (relace dotazů či propojených tabulek). V tabulce Personal doplníme vyhledávání pro pole Úvazek:

50 Access mírně modifikuje šířky sloupců na hodnoty 3,507cm;1,507cm;2cm;2cm. 51 V případě omezení vkládání hodnot na seznam pole Pohlaví je již zbytečné definovat ověřovací pravidlo typu M or

Z.

Vázaný sloupec

Počet sloupců

Hlavičky sloupců

Šířka seznamu

Šířky sloupců

Počet řádků seznamu

Omezit na seznam

Page 53: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 53

• Zobrazit ovládací prvek: Pole se seznamem • Typ zdroje řádků: Seznam hodnot • Zdroj řádků: 100%; 50%; 0% • Omezit na seznam: ano Nyní nemůžeme zadat jiný úvazek než úvazek uvedený v seznamu hodnot.

− Povolit úpravy seznamu hodnot: V průběhu editace tabulky uživatel může pocítit potřebu rozšířit seznam hodnot. V případě, že zdrojem řádků je seznam hodnot (nikoliv tabulka či dotaz) a v seznamu je jediný sloupec (vlastnost Počet sloupců má hodnotu 1), můžeme uživateli umožnit editaci seznamu hodnot. Do vlastnosti Povolit úpravy seznamu hodnot zadáme ano. Pod rozbaleným seznamem je potom tlačítko pro úpravu seznamu hodnot, které otevře dialogové okno Upravovat položky seznamů (viz Upravovat položky seznamů obr. 3-12).

OBR. 3-12: DIALOGOVÉ OKNO UPRAVOVAT POLOŽKY SEZNAMŮ

V tabulce Personal doplníme možnost úpravy seznamu pro pole Úvazek. Do seznamu doplníme hodnotu 33%. V dialogovém okně můžeme také upravit výchozí hodnotu, kterou však zadáváme jako číslo, nikoliv procenta.

− Formulář pro úpravu položek seznamu: V případě, že je seznam generován z tabulky či dotazu, může se stát, že chceme v průběhu vkládání hodnoty doplnit či upravit zdrojovou tabulku či dotaz. V tom případě je nutné mít připraven pro editaci tabulky či dotazu formulář. V tabulce Personal doplníme vyhledávání pro pole Místnost: • Zobrazit ovládací prvek: Pole se seznamem • Typ zdroje řádků: tabulka či dotaz • Typ zdroje řádků: Místnosti Připravíme jednoduchý formulář pro tabulku Místnosti: • Zobrazíme tabulku Místnosti. • V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Formulář. Vytvoří se

jednoduchý formulář s názvem Místnosti. Zavřeme formulář. Odpovíme kladně na dotaz Accessu, zda má uložit formulář, uložíme jej pod názvem P33b Místnosti.

Formulář

V návrhu tabulky Personal doplníme vlastnosti vyhledávání: • Formulář pro úpravy položky: P33b Místnosti52 Obdobně připravíme vkládání hodnot do pole Oddělení na základě hodnot v tabulce Oddělení s využitím formuláře P33c Oddělení.

− Povolit více hodnot: Pokud změníme vlastnost na hodnotu ano, nenávratně se změní pole na pole s více hodnotami. Můžeme tak do pole zadat více hodnot a realizovat tak vazbu M:N bez můstkové tabulky.53 V tabulce Podniky doplníme před pole NACE1 pole NACE, do nějž můžeme uložit více hodnot NACE, do nějž budeme vkládat hodnoty všech činností podniku54. Hodnoty jsou ukládány v řazení dle hodnoty, ztratí se tak význam první, druhé a dalších činností, činnosti jsou rovnocenné. Pro pole NACE jsou doplněny vlastnosti vyhledávání:

52 Pokud se tlačítko pro zobrazení formuláře nezobrazí, je nutné tabulku zavřít a znovu otevřít. 53 Access neukládá hodnoty do jednoho pole, hodnoty jsou ukládány samostatně a spravovány v systémových

tabulkách. Pole s více hodnotami jsou v Accessu možná také kvůli integraci s Windows SharePoint Services, protože seznamy SharePoint podporují pole s více hodnotami.

54 Pole NACE je možné před povolením více hodnot naplnit vhodným aktualizačním dotazem z hodnoty NACE1, další činnosti musíme doplnit ručně. V databázi ENC-03-02 je pole již vyplněné všemi hodnotami.

Úpravy seznamu hodnot

Úpravy tabulky pro seznam

P33b Místnosti

P33c Oddělení Pole s více hodnotami

Page 54: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 54

• Zobrazit ovládací prvek: Pole se seznamem • Zdroj řádků: NACE • Počet sloupců: 2 • Šířky sloupců: 1,2 cm • Počet řádků seznamu: 30 • Šířka seznamu: 13 cm • Povolit více hodnot: ano Když nyní rozbalíme pro pole NACE seznam, můžeme zaškrtnout libovolné množství hodnot.

− Zobrazit pouze hodnoty zdroje řádku: Vlastnost se uplatní jen pro pole, pro něž je povoleno vkládat více hodnot. Vhodným zdrojem řádků můžeme potom omezit zobrazované hodnoty pole. V tabulce Podniky omezíme zobrazované hodnoty zadáním hodnoty vlastnosti: • Zdroj řádků: P33d NACE4000 • Zobrazit pouze hodnoty zdroje řádku: ano P33d NACE4000 je dotaz, kterým vybíráme pouze věty, v nichž pole NACE začíná číslicí 4 (v řádku Kritéria je ve sloupci NACE hodnota 4*). Po prohlédnutí změníme vlastnost: • Zdroj řádků: NACE.

Nyní v zobrazení datového listu můžeme vyhledávání a další vlastnosti polí vyzkoušet. Seznam a pole se seznamem se zatím neliší. Odlišnost bude jasná, až budeme pole vkládat do návrhu formuláře (viz kap. 5.2).

Pro úplnost dodejme, že přípravu vyhledávání nám může usnadnit průvodce. Když definujeme nové pole s uvedením datového typu Průvodce vyhledáváním, průvodce nám pomůže vyhledávání parametrizovat. Výsledným datovým typem bude podle užitého zdroje seznamu některý z předchozích datových typů. Pole, jehož typ bude určen v Průvodci vyhledáváním, můžeme vložit také klepnutím do tlačítka Vyhledávací sloupec ve skupině NNáássttrroojjee.

Dosud jsme se zabývali vlastnostmi jednotlivých polí. Tabulka jako celek má také své vlastnosti. Zobrazíme je v samostatném podokně návrhového zobrazení, když v kartě NÁVRH ve skupině ZZoobbrraazziitt ččii sskkrrýýtt

klepneme do tlačítka Seznam vlastností. Vlastností tabulky je patnáct: − Popis: Dokumentační popis obsahu či účelu tabulky. Zobrazuje se v navigačním podokně,

když z místní nabídky názvu skupiny tabulek (např. I. Lidské zdroje) zadáme ZPŮSOB ZOBRAZENÍ, PODROBNOSTI. Pro tabulku Personal zadáme popis Zaměstnanci firmy.

− Výchozí zobrazení: Můžeme vybrat zobrazení, které bude využito po poklepání na název tabulky v navigačním podokně. Nabízí se datový list, kontingenční tabulka a kontingenční diagram. V nabídce není návrhové zobrazení. Kontingenční tabulku připravíme v kap. 3.5, kontingenční graf v kap. 3.6. Pro tabulku Personal ponecháme výchozí zobrazení Datový list.

− Ověřovací pravidlo: Pravidlo, které se ověřuje před uložením věty tabulky, může např. sledovat logickou souvislost obsahu polí. V databázi Encian připravíme dvě ověřovací pravidla: • Pro tabulku Personal zadáme pravidlo: [Příjmení] Not Like "*á" Or [Pohlaví]="Z".

(Názvy polí zapisujeme do hranatých závorek. Uvozovky není nutné psát, Access je sám doplní.) Do tabulky není nyní možné uložit větu se zaměstnancem, jehož příjmení končí na písmeno á a není žena, tj. musí platit: buď příjmení nekončí na písmeno á, nebo se jedná o ženu.55

• Pro tabulku Cesty zadáme podmínku [Zahájení] <= [Dokončení]. Do tabulky není nyní možné zapsat cestu, která byla dokončena dříve, než byla zahájena.

− Ověřovací text: Text, který se zobrazí při nedodržení ověřovacího pravidla tabulky. • Pro tabulku Personal zadáme text: Zaměstnanec, jehož příjmení končí písmenem "á", musí

být ženského pohlaví! Text se zobrazí při nedodržení pravidla až při pokusu přejít na další větu.

55 Nevylučujeme tím případ, kdy žena má příjmení, které končí na jiné písmeno než á. Funkčnost můžeme ověřit

pokusem přepsat příjmení Světlý na Světlá.

Zobrazené hodnoty

P33d NACE4000

Průvodce vyhledáváním

Vlastnosti tabulky

Popis tabulky

Výchozí zobrazení

Ověřovací pravidlo tabulky

Ověřovací text

Page 55: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 55

• Pro tabulku Cesty zadáme text: Zahájení musí předcházet Dokončení nebo si musí být

rovny! Ověřovací pravidla jsou funkční až po jejich definování. Stávající věty v tabulce můžeme zkontrolovat klepnutím do tlačítka Testovat ověřovací pravidla ve skupině NNáássttrroojjee.

− Filtr: Formou podmínky můžeme zadat filtr, kterým budou omezeny zobrazované věty. Obvykle filtr zadáváme v zobrazení datového listu. Po tabulku Personal zadáme filtr Pohlaví ="M". Zobrazíme tabulku v zobrazení datového listu. Filtr aplikujeme (popř. potlačíme) klepnutím do tlačítka Přepnout filtr ve skupině SSeeřřaaddiitt aa ffiillttrroovvaatt v kartě DOMŮ nebo klepnutím do tlačítka Nefiltrováno ve spodním řádku okna tabulky.

− Filtrovat při zavedení: Zadáme-li hodnotu ano, aplikuje se filtr při otevření tabulky. (Výchozí hodnota je ne.)

− Řadit podle: Můžeme zadat formou názvu pole či seznamu polí oddělených čárkami kritérium, podle nějž budou věty řazeny. Obvykle řazení zadáváme v zobrazení datového listu. Pro tabulku Personal zadáme řazení dle polí Místnost, Příjmení. V zobrazení tabulky v zobrazení datového listu je tabulka již seřazena. Nemůžeme však potlačit řazení na rozdíl od filtrování. Můžeme tabulku seřadit podle jiného kritéria tlačítkem Vzestupně či Sestupně ze skupiny SSeeřřaaddiitt aa ffiillttrroovvaatt nebo můžeme tlačítkem Vymazat veškerá řazení vlastnost Řadit podle anulovat.

− Seřadit podle hodnoty při zavedení: Zadáme-li hodnotu ne, neaplikuje se řazení při otevření tabulky. (Výchozí hodnota je ano.) Pro tabulku Personal zadáme hodnotu ne. Věty jsou řazeny podle klíčového pole.

− Orientace: Umožňuje změnit orientaci tabulky v zobrazení datového listu. Sloupce polí mohou být zobrazovány zprava doleva. Vlastnost je vhodné upravit pro národy zvyklé psát zprava.

− Název vnořeného datového listu: Vnořený (druhý) datový list je vnořen uvnitř jiného (prvního) datového listu a obsahuje data související s prvním datovým listem. Access automaticky nabízí vnořený datový list pro tabulky v relaci 1:N. Vnořený datový list otevřeme v zobrazení datového listu klepnutím do rozbalovacího tlačítka + na začátku věty. Pokud k tabulce existuje jediná relace 1:N, lze ve vlastnosti Název vnořeného datového listu zadat hodnotu auto. Pokud je k tabulce více relací 1:N, je vhodné do vlastnosti vybrat (z rozbalovacího seznamu) nejčastěji používanou tabulku. Výběr lze provést také v zobrazení datového listu. V databázi Encian lze automatické vnořené datové listy použít pro tabulky: • Oddělení: K jednomu oddělení zobrazuje věty zaměstnanců tohoto oddělení. • Oddíly_Sekce: K oddílu zobrazí příslušné NACE. • Podniky: K podniku zobrazí příslušné faktury. V druhé úrovni ke každé faktuře zobrazí

příslušné licence. • Sekce: K sekci zobrazí příslušné oddíly. V druhé úrovni k oddílu zobrazí příslušné NACE. • Stadia: K stadiu zobrazí příslušné podniky. V druhé úrovni k podniku zobrazí příslušné

faktury. Ve třetí úrovni ke každé faktuře zobrazí příslušné licence. • Faktury: Ke každé faktuře zobrazí příslušné licence. • Programy: Ke každému programu zobrazí příslušné licence. • Cesty: Ke každé cestě zobrazí příslušné zaměstnance. • Majetek_typy: Ke každému typu zobrazí příslušná umístění dle inventárních čísel. Název vnořeného datového listu musíme upřesnit pro dvě tabulky: • Personal: Z vhodných tabulek Výjezdy a Faktury vybereme Faktury. V druhé úrovni se

k faktuře vypíší licence. • Místnosti: Z vhodných tabulek Personal a Majetek_umístění vybereme Personal. V druhé

úrovni se k zaměstnanci vypíší faktury. Ve třetí úrovni se k faktuře vypíší licence. Výběr vnořeného datového listu se provádí v dialogovém okně VVlloožžiitt vvnnoořřeennýý ddaattoovvýý lliisstt, kde se nabízí všechny tabulky a dotazy. V spodních polích se automaticky díky relacím doplní Podřízená pole propojení a Řídící propojovací pole (viz obr. 3-13). Název vnořeného datového listu můžeme později upravit. Můžeme také znovu vybrat hodnotu auto, aby se uživatel rozhodl pro výběr tabulky do vnořeného datového listu, nebo hodnotu žádné, aby se rozbalení nenabízelo.

Filtr

Řazení

Orientace

Vnořený datový list

Page 56: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 56

OBR. 3-13: DIALOGOVÉ OKNO VLOŽIT VNOŘENÝ DATOVÝ LIST

− Dceřinné propojovací pole: Pole z vnořené tabulky (např. E_mail z tabulky Faktury pro řídící tabulku Personal). Ve vnořeném datovém listu se zobrazují věty se shodou v dceřinném propojovacím polí a v řídícím propojovacím poli.

− Řídící propojovací pole: Pole z řídící tabulky (např. E_mail z tabulky Personal). − Vnořený datový list rozevřen: Po zadání hodnoty ano se rozbalí při otevření řídící tabulky

všechny věty propojené tabulky v rámci jednotlivých vět řídící tabulky. − Výška vnořeného datového listu: Nastavíme maximální výšku vnořeného datového listu

rozbaleného pro jednotlivé věty či pro všechny věty. Při výchozí hodnotě 0 cm výška není omezena.

Příklad rozbalení více úrovní je pro tabulku Místnosti v obr. 3-14.

OBR. 3-14: VNOŘENÉ DATOVÉ LISTY K TABULCE MÍSTNOSTI

− Zobrazit zobrazení na webu služby SharePoint: Tabulku můžeme zobrazovat v SharePointu.

K tabulce (seznamu SharePointu) se zobrazují také odpovídající další objekty dotazy, formuláře, sestavy. Pokud zadáme hodnotu vlastnosti Nezobrazovat, bude nabídka dalších objektů v SharePointu potlačena.56

56 Postup publikace tabulky na web SharePointu:

Tabulku exportujeme do webu SharePointu (z místní nabídky tabulky zadáme EXPORT, SEZNAM SHAREPOINT, zadáme adresu dostupného webu http://...). Odstraníme tabulku z databáze Accessu. Vytvořený seznam SharePointu propojíme do databáze Accessu (v kartě EXTERNÍ DATA ve skupině IImmppoorrtt klepneme do tlačítka Seznam SharePoint, vybereme web a pole Vytvořit odkaz na zdroj dat vytvořením propojené tabulky) a tabulku zaškrtneme v přehledu seznamů. K tabulce vytvoříme související objekty (např. formulář v kartě VYTVOŘIT ve skupině FFoorrmmuulláářřee klepnutím do tlačítka Formulář). Databázi publikujeme na web SharePointu (tlačítkem Office, PUBLIKOVAT, SERVER SPRÁVY DOKUMENTŮ, později můžeme aktualizovat publikaci přímo tlačítkem Publikovat na web služby SharePoint nad navigačním podoknem.) U příslušného seznamu v SharePointu jsou související objekty dostupné jako samostatné zobrazení (v rozbalovací nabídce vpravo nahoře). Předpokladem využití souvisejících objektů je instalace Accessu na počítači, na němž je seznam SharePointu zobrazován.

Zobrazení SharePointu

Page 57: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 57

3.4 Zobrazení datového listu

V zobrazení datového listu doplníme cvičně do tabulky Personal 21. zaměstnance: − Do pole E_mail, které je již dle titulku nadepsáno E-mail, zapíšeme Zimova.Pavla. − Do pole Titul1, které je nadepsáno Titul před jménem, zapíšeme Ing. − Do pole Jméno zapíšeme hodnotu pavla. Díky vstupní masce Access sám opraví první

písmeno na velké P. Podtržítky Access vyznačuje, jak může být jméno dlouhé. − Pole Příjmení a Titul2 (Titul za jménem) ponecháme nevyplněné. − Do pole Pohlaví zapíšeme P. Access vypíše námi definované chybové hlášení (ověřovací

text). Stisknutím klávesy Esc vrátíme do pole původní hodnotu M. − Do pole Místnost chceme vložit hodnotu z předchozí věty Martina Zemana. Stiskneme

kombinaci kláves Ctrl ", čímž zkopírujeme hodnotu 22 z předchozí věty. − Do pole Telefon zapíšeme hodnotu 223. − Do pole Oddělení opět kombinací kláves Ctrl " zkopírujeme hodnotu ANA z předchozí věty. − Obdobně zkopírujeme hodnotu z předchozí věty do pole Nadřízený. − Do pole Charakteristika zapíšeme složitější charakteristiku:

„Pavla je adaptabilní. V případě potřeby může pracovat také v oddělení programování nebo konzultací.“ Abychom text rozdělili do více řádků, zapíšeme jej v samostatném dialogovém okně ZZoooomm, které zobrazíme stisknutím kombinace kláves Shift F2.Nejprve napíšeme neformátovaný text, nový řádek vložíme kombinací kláves Shift Enter . Potom poklepeme na slovo adaptabilní a stiskneme kombinaci kláves Ctrl B. Poklepeme na slovo programování a minipanelu formátování klepneme do tlačítka Kurzíva. Obdobně zformátujeme slovo konzultací. Práci s oknem ZZoooomm ukončíme klepnutím do tlačítka OK.

− Do pole Úvazek zapíšeme 120 %. Zobrazí se ověřovací text. Klepneme do tlačítka OK a stisknutím klávesy Esc nastavíme výchozí hodnotu 100 %.

− Do pole Web zapíšeme odkaz na webovou stránku57: Internet – Pavla Zímová#http://min.vse.cz/encian/zimova/index.htm##Osobní stránka První část odkazu se zobrazí v tabulce Personal, druhá část je použita jako adresa stránky, třetí část (upřesnění adresy záložkou na stránce) nevyužijeme, čtvrtá část se zobrazí v obdélníku, když se přiblížíme v tabulce k odkazu.

− Do pole Foto datového typu Objekt OLE nemůžeme přímo psát. Když na pole poklepáme, zobrazí se hlášení s návodem na vložení obsahu pole. Klepneme do pole pravým tlačítkem myši a z místní nabídky zadáme příkaz VLOŽIT OBJEKT. Dále vybereme typ objektu: • Vytvořit nový: Můžeme vytvořit objekt pomocí některé aplikace dostupné na počítači,

např. Bimap Image (Malování)58. • Vytvořit ze souboru: Můžeme převzít objekt z dříve vytvořeného souboru. Objekt může být

propojen tak, aby se automaticky aktualizoval a nezabíral místo v databázi. Poklepáním na text s názvem programu můžeme kdykoliv vyvolat editaci obrázku původním programem, pokud je na počítači nainstalován. Obrázek lze odstranit klepnutím na text s názvem programu a stisknutím klávesy Delete.

− Do pole Oprávnění (Oprávnění fakturovat) musíme zapsat hodnotu Ano či Ne (popř. –1 či 0, True či False, Zapnuto či Vypnuto). Dle vlastnosti Formát, kterou jsme dříve definovali, se zobrazí hodnota oprávněn či neoprávněn. Zapíšeme hodnotu Ano, není možné zapsat oprávněn.

− Do pole Příloha nic nevkládáme.

57 Změnou typu pole Web nedošlo k vhodné transformaci webových adres, všechny je po vložení věty Pavly Zímové

ručně opravíme na formát dle Pavly Zímové. Adresu editujeme přímo ve sloupci, nikoliv v dialogovém okně ZZoooomm. Využíváme k tomu klávesy F2 . Zaměstnanci s příjmením Škoda mají adresy osobních webových stránek doplněny prvním písmenem křestního jména.

58 Obrázek můžeme namalovat nebo jej můžeme do malování vložit příkazem ÚPRAVY, VLOŽIT Z. Před vložením je vhodné příkazem OBRÁZEK, ATRIBUTY zmenšit kreslený obrázek, aby jej vložený obrázek překryl. Obrázek vložíme do Accessu příkazem SOUBOR, AKTUALIZOVAT PERSONAL. Do vzorové databáze byly vloženy obrázky programem Microsoft Clip Gallery. (V galerii klipů byla vybrána kategorie Lidé a v ní vhodné obrázky. Klepnutím do obrázku a v dílčí nabídce do prvního tlačítka Vložit klip byl klip vložen.) Tím bylo dosaženo úsporného uložení obrázků, které by nebylo možné při vkládání programem Malování.

Hypertextový odkaz

Objekt OLE

ENC-03-03

Page 58: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 58

− Po odeslání posledního pole věty se zobrazí chybové hlášení V poli Personal.Příjmení musí

být zadána hodnota. Vrátíme se proto do pole Příjmení a zapíšeme hodnotu Zímová. − Po pokusu přejít na další větu např. posunem kurzoru na další řádek se zobrazí ověřovací text

Zaměstnanec, jehož příjmení končí písmenem "á", musí být ženského pohlaví! Vrátíme se proto do pole Pohlaví a zapíšeme hodnotu Z. Nyní již můžeme přejít na novou větu či ukončit práci s tabulkou.

− Vkládání hodnoty do pole Oprávnění typu Ano/ne je poněkud nepřehledné, vkládáme totiž jinou hodnotu, než se zobrazuje. Vrátíme se proto do návrhu struktury tabulky Personal a ve vlastnosti pole Oprávnění v kartě Vyhledávání vybereme v poli Zobrazit ovládací prvek hodnotu Zaškrtávací políčko. Vrátíme se do zobrazení datového listu. Pole Oprávnění fakturovat ve větě Pavly Zímové odškrtneme klepnutím myší nebo stisknutím mezerníku.

V zobrazení datového listu je přichystán výchozí stav nové (22.) věty tabulky Personal. Vyplněna jsou již pole Pohlaví a Úvazek, pro něž jsme definovali vlastnost Výchozí hodnota. Nová věta (s hvězdičkou ve voliči záznamů) není ještě součástí tabulky. Teprve po napsání prvního znaku do libovolného pole nové věty se ve voliči záznamů objeví symbol tužky. Věta není ještě zaznamenána. Teprve odesláním na posledním poli či jiným úspěšným přechodem na jinou větu či ukončením zobrazení tabulky (za splnění ověřovacího pravidla tabulky) se symbol tužky ztratí, věta je uložena. Obdobně se symbol tužky zobrazuje při pozdější úpravě věty. Pokud stiskneme klávesu Esc při editaci, ztratí se obsah upravovaného pole, při dalším stisknutí klávesy Esc se ztratí všechny změny v editované větě. Větu můžeme v průběhu její editace uložit bez přechodu na jinou větu tlačítkem Uložit ze skupiny ZZáázznnaammyy v kartě DATOVÝ LIST nebo kombinací kláves Shift Enter .

Podívejme se nyní na nabídku karty DOMŮ, která se po přechodu do zobrazení datového listu zobrazila.

Ve skupině SScchhrráánnkkaa je kromě tradičních operací se schránkou možnost zkopírovat jakoukoliv větu do nové tabulky: − V tabulce Personal klepnutím do voliče záznamů označíme větu Evy Kolínské a

zkopírujeme ji do schránky kombinací kláves Ctrl C nebo klepnutím do tlačítka Kopírovat. − Klepneme do spodní části tlačítka Vložit a vybereme příkaz PŘIDAT. − Věta ze schránky se přidá jako nová. Nebude ji však možné uložit, neboť by vznikla

duplicitní hodnota primárního klíče (stejný E_mail). Klepneme do tlačítka OK a klávesou Esc se zřekneme uložení věty.

Klepnutím do spouštěče dialogového okna v pravém dolním rohu skupiny SScchhrráánnkkaa zobrazíme nalevo od navigačního podokna podokno s obsahem schránek. Podokono zavřeme klepnutím do uzavíracího tlačítka.

Ve skupině PPííssmmoo můžeme modifikovat formát zobrazení datového listu: − Písmo, Velikost písma: Změna písma či velikosti písma pro zobrazenou tabulku. − Zarovnat text (vlevo, na střed, vpravo): Změna zarovnání jednotlivého pole (sloupce).

Promítá se do vlastnosti pole Zarovnání textu. − Tučné, Kurzíva, Podtržení: Změna řezu písma pro zobrazenou tabulku. − Barva písma: Barva písma v tabulce.59 − Barva výplně či pozadí: Barva pozadí řádků tabulky a tabulky (tj. volných řádků). Každý

druhý řádek má pro lepší čitelnost jinou alternativní barvu, kterou lze nastavit tlačítkem Alternativní barva výplně či pozadí.

− Mřížka: Parametrizace rozsahu zobrazení mřížky v tabulce (oba směry, vodorovná, svislá, žádná).

Další detailní parametry formátování datového listu (např. efekty buněk tabulky) lze zobrazit ve speciálním dialogovém okně po klepnutí do spouštěče dialogových oken v pravém dolním rohu skupiny PPííssmmoo. Modifikované parametry se ukládají v rámci ukládání rozložení tabulky. Při zavírání tabulky jsme dotázáni, zda změnu rozložení pro tabulku uložit.

Ve skupině TTeexxtt vvee ffoorrmmááttuu RRTT

FF můžeme upravit formát textu v polích typu Memo, pokud je ve vlastnosti Formát textu hodnota RTF. Jedná se o vybraná tlačítka, která jsou

59 Podrobněji o výběru barev v kap. 5.2.

Výchozí hodnoty v nové větě

Schránka

Formát zobrazení datového listu

RTF formátování

Page 59: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 59

dostupná také v minipanelu formátování (číslování, odrážky, úroveň textu, směr textu, barva zvýraznění textu).

Ve skupině ZZáázznnaammyy jsou k dispozici různorodá tlačítka: − Volba SYNCHRONIZOVAT je dostupná ve spodní části tlačítka Aktualizovat vše pro seznamy

SharePointu propojené do databáze Accessu. Můžeme tak synchronizovat data aktualizovaná v Accessu a SharePointu, tj. promítnout změny provedené v seznamu SharePointu do Accessu i změny provedené v Accessu promítnout do seznamu SharePointu.

− Tlačítkem Nový můžeme přejít na vyplňování nové věty v tabulce. Stejného efektu dosáhneme, když klepneme v spodním řádku tabulky do tlačítka Nový (prázdný) záznam.

− Tlačítkem Uložit můžeme kdykoliv uložit editovanou větu, aniž přecházíme na jinou větu. Tlačítko či kombinaci kláves Shift Enter je vhodné využít při editaci vět s rozsáhlou strukturou.

− Tlačítkem Odstranit můžeme odstranit označenou část pole či celou větu označenou ve voliči záznamů. Celou větu můžeme bez označení ve voliči záznamů odstranit rozbalením nabídky tlačítka Odstranit a výběrem volby ODSTRANIT ZÁZNAM. Obdobně můžeme dílčí volbou ODSTRANIT SLOUPEC odstranit ze struktury tabulky pole. V tabulce Personal takto odstraníme větu Pavly Zímové.

− Tlačítkem Souhrny přidáme do tabulky Personal součtový řádek. Pro některé sloupce (pole) doplníme typ souhrnu: • Pro pole Pohlaví, Místnost, Oprávnění vybereme POČET. Do počtu se počítají jen vyplněné

věty s vyplněnou hodnotou pole, popř. s hodnotou ano. • Pro pole Úvazek vybereme SOUČET. Můžeme tak snadno vyčíst, že ve firmě máme 20 zaměstnanců na celkový úvazek 17,5 (přepočtený počet pracovníků), 19 z nich má přidělenu místnost, 13 má oprávnění fakturovat.

− Access umožňuje kontrolu pravopisu. V tabulce Personal připravíme záměrně překlep do pole Charakteristika Evy Kolínské. Upravíme text na rozčlená a uložíme kombinací kláves Shift Enter. Tlačítkem Pravopis nebo stisknutím klávesy F7 spustíme kontrolu pravopisu: • Zobrazí se hodnota Adamec.Milos. Klepneme do tlačítka Přeskakovat pole E_mail. • Zobrazí se hodnota vse.cz. Klepneme do tlačítka Přeskakovat pole Web. • Zobrazí se hodnota rozčlená (viz obr. 3-15)

OBR. 3-15: DIALOGOVÉ OKNO KONTROLA PRAVOPISU

• Access nás upozorňuje, že v hlavním slovníku nenašel slovo rozčlená. Předkládá nám

nabídku návrhů změny, vybereme změnu na rozčílená. Obdobně jako ve Wordu či Excelu můžeme využívat (pro celý Office) společný uživatelský slovník a definovat automatické opravy (časté překlepy, které se automaticky opraví již při psaní textu). Význam tlačítek v dialogovém okně Kontrola pravopisu: Kontrola pravopisu» Přeskočit: Slovo nenalezené ve slovníku je ponecháno, při příštím výskytu bude opět

považováno za chybné. » Přeskakovat: Slovo nenalezené ve slovníku bude v rámci kontroly této databáze

považováno za správné a při příštím výskytu nebude považováno za chybné. » Zaměnit: Slovo je zaměněno slovem uvedeným v poli Není ve slovníku. Při příštím

výskytu bude opět považováno za chybné. » Zaměňovat: Slovo bude v rámci celé kontroly (tj. i ve všech dalších výskytech)

zaměněno slovem uvedeným v poli Není ve slovníku.

Operace se záznamy

Souhrny

Kontrola pravopisu

Page 60: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 60

» Přidat: Slovo bude přidáno do uživatelského slovníku. Bude tak považováno za správné

při dalším použití uživatelského slovníku nejen v Accessu, ale i ve Wordu a dalších programech.

» Automatické opravy: Navržená oprava bude zařazena do automatických oprav tak, aby se automaticky prováděla již při vyplňování tabulky.

» Jazyk slovníku: Výběr jazyka hlavního slovníku. » Možnosti: Zobrazí dialogové okno Možnosti aplikace Access, v němž můžeme změnit

parametry kontroly pravopisu a automatických oprav. Možnosti aplikace Access

» Zpět: poslední: Můžeme se zpětně vrátit k poslední již provedené změně např. při zbrklém klepnutí do tlačítka Zaměnit při rychlé kontrole pravopisu.

V našem případě vybereme třetí návrh opravy a klepneme do tlačítka Zaměnit. Pro úplnost dodejme, že pokud označíme část tabulky (vybrané sloupce či řádky), bude kontrola provedena jen v označené části.

• Zobrazí se hodnota Ph.D. Klepneme do tlačítka Přeskakovat. • Zobrazí se hlášení o dokončení kontroly pravopisu.

− Tlačítko Další obsahuje další operace se záznamy: • Pokud máme na počítači nainstalovaný Outlook, můžeme v databázi Duv-03-01 vyzkoušet

přidání kontaktu z Outlooku do tabulky Kontakty: » Tabulka Kontakty musí mít vhodnou strukturu, což je v našem případě splněno, neboť

jsme ji vytvářeli s použitím šablony Kontakty. » Potlačíme primární klíč v poli E_mail. » Klepnutím do tlačítka Přidat z aplikace Outlook se zobrazí dialogové okno Vybrat

jména pro přidání, v němž můžeme přidat jeden či více kontaktů. Po klepnutí do tlačítka OK se kontakty načtou do tabulky Kontakty.

Vybratjména pro přidání

• Obdobně můžeme poslat kontakt z tabulky Kontakty, např. na ředitele Petr Nováka, do kontaktů Outlooku: » Kurzor umístíme do věty Petra Nováka v tabulce Kontakty. » Klepneme do tlačítka Uložit jako kontakt aplikace Outlook. » Zobrazí se okno s kontakty Petr Nováka připravené na uložení do Outlooku. Můžeme

upravit některá pole. » Tlačítkem Uložit a zavřít kontakt uložíme do Outlooku.

• Tlačítkem Výška řádku můžeme zadat v bodech výšku řádku v otevřené tabulce. Zaškrtnutím pole Standardní výška můžeme nastavit původní výšku dle Accessu. Modifikovaná výška řádků se ukládá v rámci ukládání rozložení tabulky.

• Tlačítko Vnořený datový list nabízí 4 volby: » VNOŘENÝ DATOVÝ LIST: Zobrazí dialogové okno, v němž můžeme upřesnit tabulku,

která je zobrazována ve vnořeném datovém listu. V případě tabulky Personal bychom tak mohli místo tabulky Faktury vybrat tabulku Cesty.

» ODEBRAT: Nebudou zobrazována rozbalovací tlačítka pro práci s vnořeným datovým listem.

» ROZBALIT VŠE: Rozbalí vnořený datový list pro všechny věty. » SBALIT VŠE: Sbalí vnořený datový list pro všechny věty.

• V tabulce Personal označíme klepnutím do názvu sloupec Titul1 (Titul před jménem) a klepneme do tlačítka Skrýt sloupce. Obdobně skryjeme sloupec Titul2 (Titul za jménem). Sloupce nebyly odstraněny, pouze nejsou pro přehlednost zobrazovány.

• Tlačítkem Zobrazit skryté sloupce zobrazíme dialogové okno se seznamem polí tabulky, v němž můžeme zaškrtnutím či nezaškrtnutím zobrazit či potlačit zobrazení jednotlivých polí. Pro tabulku Personal opět zobrazíme sloupce Titul před jménem a Titul za jménem zaškrtnutím.

• V tabulce Personal označíme klepnutím do názvu sloupec E_mail (E-mail). Klepneme do tlačítka Zmrazit. Sloupec se přesunul na začátek zobrazení a zůstává zobrazen i při pohybu vodorovným posuvníkem doprava. Takto můžeme zmrazit i další sloupce, zmrazíme sloupec Pohlaví. Přidávají se k původně zmrazeným sloupcům.

• Tlačítkem Uvolnit zrušíme zmrazení sloupců. Sloupec Pohlaví zůstal v původním pořadí zobrazení. Přesuneme jej za Titul za jménem tažením za jeho název.

• Tlačítkem Šířka sloupce můžeme nastavit v bodech šířku aktuálního sloupce. Optimální šířku dle maximální šířky obsahu lze nastavit také poklepáním na hranice sloupce.

Kontakty do a z Outlooku

Výška řádku

Vnořený datový list

Skrytí sloupce

Zmrazení sloupce

Šířka sloupce

Page 61: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 61

Řazení a filtrování vět se provádí rozbalením nabídky názvu sloupce a tlačítky ve

skupině SSeeřřaaddiitt aa ffiillttrroovvaatt. Chceme zobrazit pouze zaměstnance z oddělení KON, ANA a PRG a to v pořadí dle místností a dle pohlaví (ženy a potom muže): − Rozbalíme nabídku názvu sloupce Pohlaví (druhé kritérium řazení), vybereme ŘADIT OD

Z PO A. − Rozbalíme nabídku názvu sloupce Místnost (první kritérium řazení), vybereme ŘADIT OD A

PO Z. − Rozbalíme nabídku názvu sloupce Oddělení. Klepnutím do volby VYBRAT VŠE zrušíme

výběr všech polí. Zaškrtneme pole ANA, KON a PRG (viz obr. 3-16).

OBR. 3-16: ZADÁNÍ FILTRU

Klepnutím do volby TEXTOVÉ FILTRY bychom mohli využít další typy filtrů. − V návrhovém zobrazení ověříme, že se nastavily vlastnosti tabulky: • Filtr: ([Personal].[Oddělení] In ("ANA","KON","PRG")) • Řadit podle: [Personal].[Místnost], [Personal].[Pohlaví] DESC Upravíme vlastnost: • Seřadit podle hodnoty při zavedení: Ano

− Zavřeme tabulku s potvrzením uložení změn v návrhu. − Po znovuotevření je tabulka seřazena dle místnosti a dle pohlaví, což je patrné ze šipek

u rozbalovacího tlačítka u názvu polí Pohlaví a Místnost. − Klepnutím do tlačítka Přepnout filtr aktivujeme filtr, zobrazí se pouze zaměstnanci

z vybraných oddělení. Přehled tlačítek ve skupině SSeeřřaaddiitt aa ffiillttrroovvaatt:

− Vzestupně, Sestupně: Přidá řazení dle aktuálního sloupce. (Postupujeme od druhotného řazení k prvotnímu řazení.)

− Vymazat veškerá řazení: Anuluje řazení. (Odstraní obsah vlastnosti tabulky Řadit podle.) − Filtr: Zobrazí zadání filtru pro aktuální sloupec. Dosáhneme tak stejného efektu jako, když

rozbalíme nabídku názvu sloupce. − Výběr: Zadá filtr pro aktuální sloupec dle hodnoty v aktuální větě. Nabízí se čtyři možnosti:

ROVNÁ SE, NEROVNÁ SE, OBSAHUJE, NEOBSAHUJE. − Tlačítko Upřesnit nabízí speciální formy filtrů a řazení: • VYMAZAT VŠECHNY FILTRY: Anuluje filtry pro všechny sloupce. (Odstraní obsah vlastnosti

tabulky Filtrovat). • FILTROVAT PODLE FORMULÁŘE: Zobrazí formulář se stejnou strukturou jako v tabulce.

Kritérium se zapisuje do jediného řádku, kritéria ve stejném řádku musí být splněna současně. Jednotlivé karty Nebo umožňují alternativní filtr. Můžeme např. připravit filtr pro zobrazení zaměstnanců mužů z oddělení KON a žen z oddělení PRG: » Vybereme volbu FILTROVAT PODLE FORMULÁŘE. » Vyplníme do sloupce Pohlaví hodnotu M a do Oddělení hodnotu KON. » Klepneme do spodní záložky Nebo. » Vyplníme do sloupce do Pohlaví hodnotu Z a Oddělení hodnotu PRG (viz obr. 3-17).

Řazení a filtrování

Page 62: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 62

OBR. 3-17: DRUHÁ KARTA FILTRU PODLE FORMULÁŘE

» Klepneme do tlačítka Přepnout filtr. • Kdykoliv později se můžeme do formuláře vrátit volbou FILTROVAT PODLE FORMULÁŘE. • Volbou ODSTRANIT KARTU můžeme ve filtru dle formuláře odstranit aktuální kartu Nebo. • Volbou ULOŽIT JAKO DOTAZ můžeme připravený filtr z formuláře uložit do dotazu,

abychom jej později mohli načíst volbou NAČÍST Z DOTAZU. V našem případě jej uložíme do dotazu P34 Filtr podle formuláře. Volba NAČÍST Z DOTAZU je dostupná pouze z formuláře pro filtr nebo z rozšířeného filtru a řazení.

• Volba ROZŠÍŘENÝ FILTR ČI ŘAZENÍ zobrazí filtr a řazení formou dotazu, např. kombinace námi nastaveného řazení a filtru dle formuláře je zobrazena formou dotazu v obr. 3-18.

OBR. 3-18: PŘÍKLAD ROZŠÍŘENÉHO FILTRU ČI ŘAZENÍ

• Volba VYMAZAT MŘÍŽKU vymaže filtr při práci s formuláře filtru nebo rozšířeným filtrem. • Volba ZAVŘÍT zavře otevřený formulář filtru či dotaz rozšířeného filtru.

− Tlačítkem Přepnout filtr zapneme či potlačíme nastavené filtrování, což můžeme provést také klepnutím do tlačítka Filtrováno/Nefiltrováno ve spodním řádku okna tabulky.60

Poslední skupina NNaajjíítt karty DOMŮ nabízí možnosti hledání vět: − Klepneme kamkoliv do sloupce Místnost. Klepnutím do tlačítka Najít zobrazíme dialogové

okno Najít a nahradit, kartu Najít (viz Najít a nahradit obr. 3-19):

OBR. 3-19: DIALOGOVÉ OKNO NAJÍT A NAHRADIT

• V poli Najít vyplníme hledanou hodnotu. • V poli Oblast hledání můžeme ponechat hledání pouze v aktuálním sloupci Místnost nebo

zadat hledání v celé tabulce Personal. • V poli Porovnat vybíráme z hodnot:

60 Zapnutí filtru a řazení hned po otevření tabulky zadáváme ve vlastnostech tabulky Filtrovat při zavedení a Seřadit

podle hodnoty při zavedení.

P34 Filtr podle formuláře

Hledání

Page 63: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 63

» Jakákoliv část pole: Řetězec Petr by v poli E_mail byl nalezen ve větě

Kalouskova.Petra, Novak.Petr a Skoda.Petr. » Celé pole61: Řetězec Petr by v poli E_mail nebyl nalezen pro zaměstnance

Kalouskova.Petra, Novak.Petr a Skoda.Petr, ani pro zaměstnance Petr.Pavel, ale pouze pro zaměstnance Petr. (Takový zaměstnanec v tabulce však není uveden.)

» Začátek pole: Řetězec Petr by v poli E_mail nebyl nalezen pro zaměstnance Kalousková.Petra, Novak.Petr a Skoda.Petr, byl by nalezen pro zaměstnance Petr.Pavel. (Takový zaměstnanec v tabulce však není uveden.)62

• V poli Hledat můžeme zadat prohledávání směrem nahoru či dolů od polohy kurzoru. Po dohledání začátku tabulky (popř. konce tabulky) Access pokračuje hledáním od konce (popř. od začátku) tabulky.

• Zaškrtnutím pole Rozlišovat velká a malá písmena můžeme diferencovat mezi hodnotami polí psanými velkými a malými písmeny (např. Petr a PETR).

• Zaškrtnutím pole Prohledávat podle formátu se hledá s ohledem na formát, nikoliv pouze na obsah, což může být významné zejména při hledání v polí typu Datum/čas (např. při hledání v tabulce Faktury bychom nenašli při hledání data 6.2.9 datum 6.2.2009).

• Obdobně funguje tlačítko Nahradit, kterým můžeme provést nahrazení hodnot v poli. (I při tomto nahrazování je sledována referenční integrita. Nemůžeme tak např. nahradit v poli Oddělení hodnotu REK hodnotou PRO).

• Po klepnutí do tlačítka Přejít na přejdeme na vybranou větu: první, předchozí, další, poslední nebo novou.

• Po klepnutí do tlačítka Vybrat vybereme aktuální větu (obdoba klepnutí do voliče záznamů) nebo všechny věty (obdoba klepnutí do průsečíku voličů záznamů a řádku s názvy sloupců).

Některé možnosti návrhu tabulky jsou dostupné také v zobrazení datového listu v kartě DATOVÝ LIST: − Ve skupině Pole a sloupcee: Pole a sloupc

• Nové pole: Vloží nový sloupec ze šablony polí, vlastnosti pole jsou převzaty ze šablony63. Do tabulky Podniky cvičně přidáme za Název_podniku pole Webová stránka a Kategorie šablony Kontakty. Pole jsou rovnou nazvána a mají vhodný typ pole, popř. další vlastnosti (např. Kategorie má nastavenu Výchozí hodnotu a vlastnosti na kartě Vyhledávání). Přidaná pole po prohlédnutí odstraníme.

• Přidat existující pole: V pravé části se zobrazí dvě podokna se seznamem polí v (dle relací) souvisejících a jiných tabulkách. Pole můžeme tažením zkopírovat do zobrazené tabulky. Do tabulky Personal přidáme za pole Pohlaví pole IČ z tabulky Podniky. Bude identifikací podniku, jehož odběratelské vztahy zaměstnanec bude garantovat: » Táhneme pole IČ za název sloupce Pohlaví v tabulce Personal. » V průvodci vyhledáváním vybereme do zobrazovaných polí k poli IČ dále pole

Název_podniku. » V druhém okně doplníme řazení dle pole Název_podniku. » Ve třetím okně zrušíme zaškrtnutí pole Skrýt klíčový sloupec. » Ve čtvrtém okně vybereme vyhledávací sloupec IČ. » V posledním okně ponecháme titulek vyhledávacího sloupce IČ a nepřipustíme více

hodnot. Doplnil se nový sloupec s nastaveným vyhledáváním a relací k tabulce Podniky. Relaci a přidané pole po prohlédnutí odstraníme.

• Vyhledávací sloupec: K aktuálnímu poli můžeme doplnit vyhledávání. V tabulce Personal doplníme sloupec vyhledávání barvy očí před sloupec Pohlaví: » Klepneme kamkoliv do sloupce Pohlaví. » Klepneme do tlačítka Vyhledávací sloupec. » V prvním okně průvodce vyhledáváním zadáme Hodnoty zadá uživatel. » V druhém okně doplníme do tabulky hodnoty: modré, hnědé, černé, zelené.

61 Výchozí nastavení Accessu budeme značit čárkovaným podtržením. 62 Výchozí způsob hledání lze nastavit příkazem NÁSTROJE, MOŽNOSTI v kartě Úpravy či hledání. Nastavený způsob

hledání platí až po znovuspuštění Accessu. 63 Šablony polí jsou založeny na souborech XSD (XML Schema Definition), takže můžeme nastavit vlastní standardní

definice polí pro sdílení v oddělení nebo v pracovní skupině.

Nahrazování

Změny návrhu tabulky v datovém listu

Page 64: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 64

» V posledním okně doplníme název pro vyhledávací pole Oči a nezaškrtneme pole

Povolit více hodnot. » Do tabulky se doplnil nový sloupec Oči s vyhledáváním mezi hodnotami barev. » Přidané pole po prohlédnutí odstraníme.

• Vložit: Vloží před aktuální pole nové nenazvané pole. • Odstranit: Odstraní aktuální pole včetně hodnot, které jsme do pole vložili. • Přejmenovat: Přejmenuje aktuální pole. (Přejmenování můžeme zahájit také poklepáním

na název sloupce pole.) − Některé vlastnosti polí lze měnit i v zobrazení datového listu v kartě DATOVÝ LIST ve

skupině Typ a formátování datt: Datový typ, Formát, nastavit datový typ Měna, formát Procenta, velikost Desetinné číslo, zvýšit či snížit počet desetinných míst, nastavit jedinečnost pole či požadavek na vyplnění.

Typ a formátování da

− V poslední skupině Vztahyy karty DATOVÝ LIST můžeme ze zobrazení zobrazit okno relací nebo zobrazit závislosti objektů (seznam objektů, které závisí na aktuální tabulce nebo seznam objektů, na nichž závisí aktuální tabulka).

Vztah

Způsob editace dat v zobrazení datového listu značně ovlivňuje nastavení Accessu. Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Access. V kartě Upřesnit ve skupině ÚÚpprraavvyy lze provést modifikaci fungování kláves při editaci v zobrazení datového listu: − Sekce Po stisknutí klávesy Enterr nabízí možnosti: Po stisknutí klávesy Ente• Nepřecházet: Po odeslání klávesou Enter kurzor zůstane v původním poli. • Další pole: Po odeslání se kurzor posune na další pole věty, popř. na konci věty se přesune

na první pole další věty. • Další záznam: Po odeslání se kurzor posune na stejné pole následující věty. Můžeme tak

vyplňovat tabulku po sloupcích. Klávesa Tab i nadále funguje pro přesun na další pole a kombinace kláves Shift Tab funguje pro přesun na předchozí pole.

− Sekce Při zadáváníí ovlivňuje polohu kurzoru po předchozím odeslání klávesou Enter a Při zadávánklávesou Tab: • Vybrat celé pole: Po přechodu na další pole klávesou Tab nebo odesláním předchozího

pole je označeno celé pole, které můžeme editací přepsat. Pokud chceme upravovat jednotlivé znaky nového pole, klepneme myší na opravované místo nebo stisknutím klávesy F2 umístíme kurzor do nového pole.

• Přejít na začátek pole: Po odeslání se kurzor umístí před první znak následujícího pole. • Přejít na konec pole: Po odeslání se kurzor umístí za poslední znak následujícího pole.

− Sekce Chování kurzorových klávess umožňuje modifikovat funkci kurzorových kláves: Chování kurzorových kláve• Další pole: Přesuneme-li kurzor mezi poli, označí se celé vedlejší pole. • Přejít na další znak: Přesuneme-li kurzor mezi poli, zůstane kurzor před prvním (při

posunu doprava) nebo za posledním (při posunu doleva) znakem vedlejšího pole. − Zaškrtneme-li pole Kurzor se zastavuje na prvním či posledním poli, nepřejdeme kurzorem

na další či předchozí větu, jinak než klepnutím myší. Tato modifikace je vhodná, když je struktura tabulky složitá a často hledáme různá pole tabulky v rámci jedné věty. Při hledání nechceme na konci věty přejít na začátek následující věty. Fungování kláves Enter , Tab, Shift Tab není modifikováno.

− V sekci Výchozí způsob hledání či nahrazováníí ovlivňujeme pro Access (nejen jednotlivou databázi):

Výchozí způsob hledání či nahrazován

• Rychlé hledání: Hledá v aktuálním poli shodu s hledaným řetězcem (Oblast hledání: aktuální pole, Porovnat: Celé pole).

• Obecné hledání: Hledá ve všech polích libovolnou část pole (Oblast hledání: celá tabulka, Porovnat: Jakákoliv část pole).

• Hledání od začátku pole: Hledá v aktuálním poli a porovnává počáteční znaky v poli (Oblast hledání: aktuální pole, Porovnat: Začátek pole).

Nastavení je funkční až po znovuspuštění Accessu. V nastavení Accessu s názvy polí v tabulkách souvisí možnosti automatické opravy

názvů. Pokud později změníme název pole tabulky, řešíme problém odkazů na název v souvisejících objektech (dotazech, formulářích, sestavách). Klepneme do tlačítka Office a do

Modifikace fungování kláves

Modifikace hledání

Automatické opravy názvů polí

Page 65: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 65

tlačítka Možnosti aplikace Access. V kartě Aktuální databáze ve skupině MMoožžnnoossttii aauuttoommaattiicckkéé oopprraavvyy nnáázzvvůů lze možnosti nastavit: − Sledovat informace o automatických opravách názvů: Access si sleduje opravy názvů,

pamatuje si je. − Provádět automatické opravy názvů: Access využije zapamatované změny a opraví názvy

v souvisejících objektech. Pokud bylo zapnuté sledování a nikoliv provedení oprav, je možné provedení oprav později zapnout. Změna se provede až opětovném otevření databáze.

− Protokolovat automatické opravy názvů: Při opravách chyb názvů aplikace Access zaprotokoluje provedené změny databáze, uloží je do tabulky s názvem Protokol automatických oprav názvů.

3.5 Kontingenční tabulka Access nabízí rychlou analýzu tabulky formou zobrazení kontingenční tabulky či

kontingenčního grafu.64 Kontingenční tabulka zobrazuje přehledně vztah dvou polí –statistických znaků. V řádcích tabulky jsou uvedeny hodnoty prvního pole (např. Oddělení), ve sloupcích hodnoty druhého pole (např. Pohlaví). V buňce tabulky je vypočten počet vět splňujících kombinaci příslušných hodnot vybraných dvou polí, např. počet mužů z pracoviště PRG. V buňkách tabulky mohou být uvedeny i jiné souhrny (např. součet, maximum). V řádcích i sloupcích může být uvedeno více polí. Kontingenční tabulka může být doplněna polem filtru (např. Oprávnění).

Demonstrujme si analýzu na tabulce Personal: − Otevřeme tabulku v návrhovém zobrazení či v zobrazení datového listu. − Tabulku zobrazíme v zobrazení kontingenční tabulky klepnutím do spodní části tlačítka

Zobrazení ve skupině Zobrazeníí a výběrem volby ZOBRAZENÍ KONTINGENČNÍ TABULKY nebo klepnutím do tlačítka Zobrazení kontingenční tabulky ve stavovém řádku.

Zobrazen

− Zobrazení kontingenční tabulky (viz obr. 3-20) naznačuje další postup. Ze seznamu polí65 postupně přesouváme vybraná pole:

OBR. 3-20: ZOBRAZENÍ KONTINGENČNÍ TABULKY – ÚVODNÍ STAV

• do řádkového pole přesuneme pole Oddělení, • do sloupcového pole přesuneme pole Pohlaví, • do pole filtrů přesuneme pole Oprávnění, • do pole součtu nebo podrobných dat přesuneme pole E_mail.

− V kontingenční tabulce jsou uvedeny e-maily zaměstnanců dle pracovišť a pohlaví (tj. podrobná data).

64 Kontingenční tabulka i graf obsahují velké množství parametrů, které uplatníme až při zobrazení výsledků

výběrových dotazů spojujících více tabulek v kap. 4.9. 65 Seznam polí můžeme kdykoliv zobrazit nebo potlačit jeho zobrazení tlačítkem Seznam polí ze skupiny ZZoobbrraazziitt ččii

sskkrrýýtt.

Kontingenční tabulka

ENC-03-04

Page 66: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 66

− Chceme do tabulky uvést počty zaměstnanců. Klepneme do buňky libovolného zaměstnance

v kontingenční tabulce a ve skupině Nástrojee klepneme do tlačítka Automatický přepočet. Vzhledem k textovému charakteru pole E_mail se nabízí pouze volba POČET, kterou zvolíme.

Nástroj

− K jednotlivým oddělením se pro jednotlivá pohlaví doplnily pod seznam zaměstnanců jejich počty.

− Označíme všechny buňky tabulky tažením myší nebo celou tabulku kombinací kláves Ctrl A. Klepneme do tlačítka Skrýt podrobnosti ve skupině Zobrazit či skrýtZobrazit či skrýt66. V kontingenční tabulce jsou nyní již jen součty (viz obr. 3-21, kde jsou oddělení seskupena do sekcí).

− Změníme nadpis sloupců. Klepneme do nadpisu Počet z E_mail a do tlačítka Seznam vlastností ze skupiny Nástrojee. V okně Vlastnosti upravíme v kartě Titulky hodnotu pole Titulek, zapíšeme sem hodnotu Pracovníků.

Nástroj Vlastnosti

− Poklepáním na nadpisy M a Z zúžíme sloupce dle šířky nadpisu Pracovníků. − Ve firmě máme tři sekce: • Ředitelství: oddělení Ředitelství, • Projektování: oddělení Analýza a Programování, • Služby zákazníkům: oddělení Distribuce, Konzultace, Reklama. V tabulce chceme zobrazit součty zaměstnanců za sekce: • Klepneme do nadpisu ANA a současně s klávesou Ctrl do nadpisu PRG. • Ve skupině Výběry klepneme do tlačítka Skupina. Výběry• Ve vlastnostech skupiny změníme Titulek ze Skupiny1 na Projektování. • Obdobně definujeme skupinu Ředitelství. • Zbývající skupinu stačí přejmenovat z Jiné na Služby zákazníkům. • Tažením myší změníme pořadí skupin dle obr. 3-21. • Ve vlastnostech upravíme nadpis z Oddělení1 na Sekce.

OBR. 3-21: ZOBRAZENÍ KONTINGENČNÍ TABULKY – PO NAPLNĚNÍ DATY

− Zobrazení kontingenční tabulky můžeme snadno upravovat: • Klepnutím do tlačítka – před názvem sekce můžeme potlačit zobrazení oddělení v rámci

sekce. • Klepnutím do tlačítka + vedle názvů oddělení či pohlaví můžeme zobrazit e-maily

zaměstnanců příslušného řádku či sloupce. − Klepnutím do rozbalovacího tlačítka vedle nadpisu Oprávnění, Sekce či Pohlaví můžeme

zobrazit varianty hodnot pole a zrušením zaškrtnutí potlačit zobrazení dat za vybranou hodnotu či hodnoty. V případě Sekce jsou hodnoty hierarchicky rozčleněny také na oddělení.

− Poklepáním na libovolnou hodnotu v kontingenční tabulce můžeme zobrazit jí odpovídající hodnoty tabulky (e-maily zaměstnanců). Podrobnosti skryjeme tlačítkem Skrýt podrobnosti ze skupiny Zobrazit či skrýtt. Zobrazit či skrý

66 Pokud bychom neoznačili celou tabulku, skryly by se podrobnosti pouze v aktuální buňce.

Automatický přepočet

Skrýt podrobnosti

Titulky

Page 67: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 67

3.6 Kontingenční graf

Kontingenční graf vyjde z kontingenční tabulky pro tabulku Personal: − Kontingenční graf zobrazíme klepnutím do spodní části tlačítka Zobrazení ve skupině

Zobrazeníí a výběrem volby ZOBRAZENÍ KONTINGENČNÍHO GRAFU nebo klepnutím do tlačítka Zobrazení kontingenčního grafu v stavovém řádku. Zobrazen

− Zobrazíme vlastnosti klepnutím do tlačítka Seznam vlastností ve skupině Nástrojee. Nástroj− Označíme název osy x a v kartě Formát změníme titulek osy x na Sekce/Oddělení. − Obdobně změníme titulek osy y na Počet pracovníků (viz obr. 3-22).

OBR. 3-22: ZOBRAZENÍ KONTINGENČNÍHO GRAFU

− Také v grafu můžeme zobrazovat vybrané věty dle hodnot Oprávnění, Sekce, Oddělení a

Pohlaví (klepnutím do rozbalovacího tlačítka vedle příslušných nadpisů). Ve vlastnosti tabulky Výchozí zobrazení lze zadat, aby se při otevření tabulky

zobrazovala prvotně kontingenční tabulka nebo kontingenční graf.

3.7 Další úpravy databáze Encian Obdobně jako v tabulce Personal upravíme vhodně datové typy a vlastnosti v dalších

tabulkách. V dalších kapitolách publikace budeme již pracovat s databázi Encian.accdb, v níž jsou upraveny všechny tabulky a doplněny všechny objekty (dotazy, formuláře, sestavy, makra, moduly). Název vzorových objektů publikace začíná písmenem P. Čtenář může své pokusy ukládat pod stejným názvem bez písmene P na začátku.

Objekty byly dosud uspořádány dle skupin tabulek. Tabulky tak byly zastoupeny zástupci67. Nyní je přehledně zobrazíme dle typu objektu. Klepneme do titulku navigačního podokna a vybereme: − v sekci Přejít ke kategorii hodnotu Typ objektu, Přejít ke kategorii− v sekci Filtrovat podle skupiny hodnotu Všechny objekty aplikace Access. Filtrovat podle skupiny

V databázi jsou definovány některé vlastnosti databáze klepnutím do tlačítka Office a volbou SPRAVOVAT, VLASTNOSTI DATABÁZE.

Databáze obsahuje 16 základních tabulek provázaných relacemi a 5 dalších pomocných tabulek:

67 Přejmenováním změníme název zástupce, nikoliv zastupované tabulky.

Kontingenční graf

Encian

Page 68: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 3: Tabulky 68

− Kontrola_cest: Vznikne v kap. 8.7 Bude sloužit pro výpočet odstupu jednotlivých

služebních cest aplikací v modulu. − Oddělení_F: Vznikne v rámci kap. 4.3 Určena ke hledání pracovišť. − Prodeje DIS: Vznikne v rámci kap. 4.7, není pro databázi nutná. Neobsahuje prvotní data, je

možné ji vytvářecím dotazem kdykoliv vytvořit. − Switchboard Items: Vznikne v kap. 10.6 Access do ní bude ukládat položky přepínacího

panelu.

Shrnutí 1. Tabulku můžeme vytvořit z některé ze šablon Accessu: Kontakty, Úkoly, Problémy,

Události, Aktiva. V šablonách jsou připravena typická pole tabulky. 2. Novou tabulku můžeme založit vyplněním prázdné tabulky, v níž upravíme názvy sloupců.

Datové typy odhaduje Access sám. 3. Při tvorbě tabulky v návrhovém zobrazení můžeme vyplnit název pole, datový typ i

poznámku. Můžeme snadno definovat primární klíče. 4. Tabulku můžeme uložit na webu SharePointu formou seznamu. Takovou tabulku lze

snadno sdílet a synchronizovat její obsah. 5. Access nabízí několik datový typů polí: text, memo, číslo, měna, automatické číslo, datum

a čas, ano/ne, objekt OLE, hypertextový odkaz, příloha. Datový typ lze automaticky nastavit průvodcem vyhledávání.

6. Pro různé datové typy jsou dostupné různé vlastnosti polí. Všechny datové typy mají vlastnost Titulek. Z hlediska rychlosti práce, velikosti databáze je významná vlastnost Velikost pole, která má různé použitelné hodnoty pro texty a čísla.

7. Vlastnost Formát ovlivňuje pouze způsob zobrazení dat. Typickým příkladem je zobrazení čísla v procentech.

8. Vlastnost Vstupní maska usnadňuje zadávání dat, kontroluje zadávané hodnoty. Využívá zástupných znaků.

9. Nejčastěji zadávanou hodnotu pole je vhodné uvést ve vlastnosti Výchozí hodnota. 10. Správné zadávání hodnot lze omezit vlastností Ověřovací pravidlo, při jeho nesplnění se

vypíše Ověřovací text. 11. Primární klíč je vhodné doplnit dalšími neduplicitními indexy. 12. Spolupráci Accessu s Outlookem usnadňují inteligentní značky, které zprostředkovávají

přenos klíčových dat. 13. Pole datového typu Memo mohou být formátována jako RTF pole. 14. Vkládání dat usnadňují a zpřesňují seznamy a pole se seznamem. Zdrojem řádků mohou

být konkrétní hodnoty nebo tabulka či dotaz. 15. Pole mohou obsahovat více hodnot. 16. Také tabulka jako celek má své vlastnosti. V ověřovacím pravidlu tabulky můžeme

kontrolovat vztah hodnot jednotlivých polí. 17. Editaci související tabulek usnadňuji vnořené datové listy. 18. Specifickou editaci mají datové typy Hypertextový odkaz a Objekt OLE. 19. V zobrazení datové listu můžeme pro jednotlivé tabulky změnit formát datového listu. 20. Do datového listu můžeme doplnit k tabulce souhrny (součty, počty apod.). 21. Data můžeme účelově seřadit nebo zobrazit jen některá prostřednictvím filtrů. 22. V tabulkách lze vyhledávat v jednotlivých nebo ve všech sloupcích, popř. nahrazovat

zadanou hodnotu. 23. Některé vlastnosti lze měnit v návrhovém zobrazení i v zobrazení datového listu. 24. V nastavení Accessu lze modifikovat fungování editačních kláves. 25. Kontingenční tabulka analyzuje přehledně vztah dvou či více polí. V buňkách

kontingenční tabulky mohou být uvedeny podrobně hodnoty či souhrny, např. počty. 26. Kontingenční tabulku graficky znázorňuje kontingenční graf.

Page 69: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 69

4. Dotazy

4.1 Druhy dotazů Dotazy lze dle jejich dopadu rozdělit na dva druhy:

− výběrové: Zobrazujeme vybraná data z jedné či více tabulek: • Můžeme omezit počet sloupců (polí), které zobrazujeme. • Můžeme omezit počet vět zadáním kritéria či více kritérií výběru. • Můžeme naopak zvětšit rozsah výstupu kombinací různých tabulek spojených relacemi. • Můžeme vytvořit nové sloupce, jejichž hodnota je dána výpočtem se vstupem jiných polí

věty. • Můžeme vypočítat souhrny za tabulku, např. součet za vhodné pole. • Můžeme připravit křížovou tabulku, v níž bude analyzován vztah dvou či více polí tabulky či tabulek.

• Výsledky dotazů můžeme řadit dle zadaných polí. − akční: Provádíme s tabulkami akce: • vytvářecí: Vytvoříme novou tabulku z obsahu stávající tabulky či více tabulek. • aktualizační: Aktualizujeme hodnoty v tabulce. • odstraňovací: Odstraňujeme vybrané věty z tabulky. • přidávací: Do tabulky přidáváme nové věty.

Dotazy můžeme připravit: − v návrhovém zobrazení využitím podoken diagramu využitých relací a mřížky, − dotazovacím jazykem SQL (Structured Query Language – strukturovaný dotazovací jazyk),

kterým je nutné připravovat složitější dotazy, které by nebylo možné formulovat v návrhovém zobrazení.

Výsledky výběrových dotazů lze zobrazovat: − formou tabulky v zobrazení datového listu, − v kontingenční tabulce, − v kontingenčním grafu.

4.2 Výběrové dotazy z jedné tabulky Budeme vytvářet nejprve nejjednodušší dotazy vybírající data z jedné tabulky.

Budeme vybírat pole (omezíme sloupce) vět, které vyhovují zadaným kritériím (omezíme řádky) v zadaném pořadí. Jednotlivé typy dotazů budeme demonstrovat na příkladech dotazů v databázi Encian.68 Pro kontrolu budeme uvádět vždy tabulky, z nichž dotaz vychází a počet výsledných vět.

DOTAZ P42A KŘESTNÍ JMÉNA: VÝBĚR NESEŘAZENÉHO POLE S DUPLICITAMI

Vypište křestní jména zaměstnanců.

− V kartě VYTVOŘIT ve skupině Jinéé klepneme do tlačítka Návrh dotazu. Jin− V návrhovém zobrazení vybíráme data, s nimiž chceme pracovat, a upřesňujeme, co z dat

chceme zjistit. Konstrukce dotazu je v Accessu řešena metodou dotazování podle příkladu (QBE – Query by Example). V úvodu musíme vybrat, s kterými tabulkami (nebo výsledky dotazů, tj. obecně datovými sadami) budeme pracovat. V dialogovém okně Zobrazit tabulku poklepeme na tabulku Personal (viz

Zobrazittabulku

obr. 4-1).69

68 V ukázkové databázi Encian jsou dotazy již přichystány. Jejich název začíná písmenem P (publikace) s číslem

kapitoly (první číslice), podkapitoly (druhá číslice) a dotazu v rámci podkapitoly (písmeno), např. P42a Křesní jména. Své individuální pokusy ukládejte přímo pod číslem dotazu, např. 41a. Individuální pokusy tak budou zařazeny dle abecedy na začátku.

69 Můžeme také klepnout do názvu tabulky a potom klepnout do tlačítka Přidat. Můžeme také zavřít dialogové okno ZZoobbrraazziitt ttaabbuullkkuu a tabulku přetáhnout do podokna DDiiaaggrraamm z NNaavviiggaaččnnííhhoo ppooddookknnaa. Dialogové okno ZZoobbrraazziitt ttaabbuullkkuu můžeme kdykoliv zobrazit klepnutím do tlačítka Zobrazit tabulku ve skupině NNaassttaavveenníí ddoottaazzuu.

Druhy dotazů

Formulace dotazu

Zobrazení výsledků

P42a Křestní jména

Přidání tabulky do konstrukce dotazu

Page 70: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 70

OBR. 4-1: DIALOGOVÉ OKNO ZOBRAZIT TABULKU

− Obecně můžeme pracovat s více tabulkami, proto se okno Zobrazit tabulku automaticky

neuzavřelo po výběru první tabulky. Nám (v celé kap. 4.2) postačí jedna tabulka. Dialogové okno Zobrazit tabulku zavřeme klepnutím do tlačítka Zavřít nebo do uzavíracího tlačítka v pravém horním rohu okna.

Zobrazit tabulku

Zobrazit tabulku

− V horním podokně Diagram je seznam polí vybrané tabulky. V dolním podokně Mřížka je návrhová mřížka dotazu, do níž budeme vybírat z horního podokna pole tabulky, popř. upřesňovat kritéria výběru, řazení a další. V našem případě přidáme pole Jméno. Pole můžeme přidat:

Diagram Mřížka

• poklepáním na název pole v seznamu polí, • přetažením pole ze seznamu polí (klepneme na název pole, držíme levé tlačítko myši a

název pole táhneme do návrhové mřížky), • výběrem názvu pole ze seznamu, který vyklopíme šipkou na konci sloupce v řádku Pole

návrhové mřížky, • zapsáním názvu pole do mřížky. (Stačí vypsat jednoznačný začátek názvu pole.)

− Výsledky dotazu zobrazíme v datovém listu klepnutím do tlačítka Zobrazení ve skupině

Výsledkyy nebo do tlačítka Zobrazení datového listu ve stavovém řádku. Výsledk− V datovém listu se zobrazí tolik vět, kolik vět je v tabulce Personal, pořadí vět je stejné, tj.

výsledek je včetně duplicitních křestních jmen a neseřazený, přesněji řazeny dle pořadí v tabulce, tj. podle klíčového pole E_mail.

Výsledek našeho dotazu a řady dalších dotazů má charakter tzv. dynamické sady. Lze v něm jednoznačně určit příslušnost jednotlivých řádků k větám ze zdrojové tabulky. Dynamické sady můžeme editovat jako běžný datový list. Úpravy se promítají do zdrojové tabulky! Protikladem dynamických sad jsou výsledky ve formě tzv. snímků. Snímky nelze aktualizovat, neboť neexistuje jednoznačný vztah řádku výsledku ke zdrojové tabulce.

Klepnutím do tlačítka Zobrazení se můžeme opakovaně vracet k návrhu, opravovat jej a prohlížet výsledky.

Konstrukci dotazu můžeme uložit z návrhového zobrazení i ze zobrazení datového listu klepnutím do tlačítka Uložit v panelu nástrojů Rychlý přístup nebo klepnutím do tlačítka Office a příkazem ULOŽIT nebo kombinací kláves Ctrl S, popř. klepnutí do tlačítka Office a

70 Nalevo od návrhové mřížky budeme vypisovat názvy tabulek zařazených do návrhové mřížky a počet vět výsledku.

Přidání pole do návrhové mřížky

Personal (20 vět)70

Výsledky dotazu

Dynamická sada a snímek

Uložení dotazu

Page 71: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 71

příkazem ULOŽIT JAKO71. Při prvním ukládání jsme dotázáni na název. Uložíme dotaz pod názvem 42a. (Ideální řešení dotazu je v databázi Encian připraveno pod názvem P42a Křestní jména.) Klepnutím do uzavíracího tlačítka zavřeme okno dotazu. Pokud by dotaz či jeho úprava nebyly uloženy, budeme vyzváni k uložení.

DOTAZ P42B SEŘAZENÁ JMÉNA: VÝBĚR SEŘAZENÉHO POLE S DUPLICITAMI

Vypište vzestupně seřazená křestní jména zaměstnanců.

− Konstrukce dotazu bude velmi podobná předcházejícímu dotazu. Proto zobrazíme návrh předchozího dotazu.

− V navigačním podokně klepneme pravým tlačítkem do dotazu P42a Křesní jména a vybereme volbu NÁVRHOVÉ ZOBRAZENÍ.

− Do návrhové mřížky doplníme ve sloupci Jméno vlastnost Řadit: vzestupně (zapsáním či výběrem z nabídky, kterou lze vyvolat klepnutím do rozbalovacího tlačítka na konci řádku Řadit sloupce Jméno).

− Výsledná dynamická sada obsahuje stejný počet vět jako v předchozím dotazu. Věty jsou

však seřazeny vzestupně dle abecedy. Na počátku výsledku by případně byly uvedeny prázdné hodnoty z vět, v nichž nebylo křestní jméno vyplněno.

− Dotaz uložíme klepnutím do tlačítka Office a volbou ULOŽIT JAKO. − V dialogovém okně Uložit jako ponecháme v poli Typ hodnotu dotaz. Název opravíme na

P42b Seřazená jména a odešleme klávesou Enter nebo klepneme do tlačítka OK. Uložit jako

DOTAZ P42C JMÉNA BEZ DUPLICIT: VÝBĚR SEŘAZENÉHO POLE BEZ DUPLICIT

Vypište vzestupně seřazená jedinečná křestní jména zaměstnanců (bez duplicit).

− Opět vyjdeme z návrhu předchozího dotazu. Odstranění duplicitního vypisování stejných křestních jmen nezadáváme v podokně Mřížka, ale ve vlastnostech dotazu. Ve skupině Zobrazit či skrýt klepneme do tlačítka Seznam vlastností.

MřížkaZobrazit či skrýt

− Dialogové okno je proměnlivé dle části dotazu, která je aktuální. Klepneme do světle modrého pozadí podokna Diagram. Potom jsou v okně Seznam vlastností uvedeny vlastnosti dotazu (viz

Diagram Seznam vlastnostíobr. 4-2).

OBR. 4-2: DIALOGOVÉ OKNO VLASTNOSTI DOTAZU

71 Nevzniká žádný soubor. Všechny objekty (tedy i dotazy) se ukládají do souboru databáze, tj. souboru Encian.accdb

(popř. do jiné dříve založené databáze).

P42b Seřazená jména

Řazení výsledků dotazu

Personal (20 vět)

P42c Jména bez duplicit

Vlastnosti dotazu

Personal (17 vět)

Page 72: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 72

− Popis, do něhož vložíme text dle obr. 4-2, se zobrazí v Navigačním podokně v zobrazení

podrobností. Je převzat z tabulky, nad níž dotaz připravujeme. Navigačním podokně

− Ve vlastnosti Jedinečné hodnoty zadáme ano. Podokno Mřížka zůstává vyplněno stejně jako u předchozího dotazu.

Mřížka

− Výsledkem je menší počet vět. Každé křestní jméno se vypisuje jen jednou.72 Výsledkem dotazů vypisujících jedinečné hodnoty je snímek, který nelze aktualizovat.73

− Dotaz P42c vypisuje křestní jména již zapsaná do tabulky Personal. Datovou sadu výsledku dotazu proto použijeme jako zdroj pole se seznamem pro pole Jméno v tabulce Personal. Při vyplňování tabulky Personal se potom nabízí dříve vložená křestní jména jako nabídka usnadňující vkládání křestních jmen. Dotaz se však spouští pouze při otevření tabulky Personal, nemůžeme proto v nabídce očekávat jména vložená v rámci stejného otevření tabulky Personal.

DOTAZ P42D POHLAVÍ A ODDĚLNÍ: VÝBĚR NESEŘAZENÝCH POLÍ S DUPLICITAMI

Vypište pohlaví a oddělení zaměstnanců.

− Dotaz vytvoříme jako nový, protože se příliš nepodobá předchozímu. − Do podokna Diagram opět vybereme tabulku Personal, z níž tentokrát přetáhneme do

podokna Mřížka pole Pohlaví a Oddělení. Diagram

Mřížka

− Každý zaměstnanec je zastoupen ve výsledku jednou větou. Věty jsou seřazeny dle pořadí

v tabulce, tj. dle primárního klíče E_mail.

DOTAZ P42E POHLAVÍ A ODDĚLENÍ BEZ DUPLICIT: VÝBĚR SEŘAZENÝCH POLÍ BEZ DUPLICIT

Vypište pohlaví a oddělení zaměstnanců bez duplicit ve vzestupném seřazení dle pohlaví a oddělení.

− Vyjdeme z předchozího dotazu. Doplníme řazení dle pohlaví (prvotní řazení, neboť Pohlaví je v podokně Mřížka uvedeno jako první) a dle oddělení (druhotné řazení). Mřížka

− Navíc ve vlastnostech dotazu upravíme vlastnost Jedinečné hodnoty na ano.

− Pro 2 pohlaví a 6 oddělení je zobrazeno pouze 11 vět, neboť v oddělení ANA jsou jen muži.

DOTAZ P42F POHLAVÍ A ODDĚLENÍ JINAK ŘAZENÉ: VÝBĚR POLÍ SEŘAZENÝCH DLE NESTANDARDNÍ HIERARCHIE ŘAZENÍ

Vypište pohlaví a oddělení zaměstnanců bez duplicit v seřazení dle oddělení a pohlaví.

− Vyjdeme z předchozího dotazu. Hierarchie řazení je dána pořadím polí v návrhové mřížce. Pole Pohlaví proto umístíme do mřížky ještě jednou za pole Oddělení.

− Druhé pole Pohlaví chceme použít jen pro řazení a nevypisovat je. Klepnutím do řádku Zobrazit příslušného pole zrušíme zaškrtnutí a potlačíme tak vypisování pole ve výsledku.

− Naopak u prvního pole Pohlaví potlačíme řazení volbou neřadit, která se v mřížce nezobrazuje.

72 Pokud bychom vypisovali více polí, duplicita by se na ně vztahovala jako na celek, tj. např. při výběru polí Jméno i

E_mail by se vypsaly opět všechny věty, protože E_mail nemůže být duplicitní. 73 Ve vlastnosti dotazu Typ sady záznamů můžeme zadat hodnotu snímek i pro dotazy s hodnotou ne ve vlastnosti

Jedinečné hodnoty. Můžeme tak zamezit úpravě dat v zobrazení datového listu dotazu. Naopak při zadání hodnoty ano do vlastnosti Jedinečné hodnoty výsledkem dotazu je snímek, i když ve vlastnosti Typ sady záznamů je ponechána hodnota dynamická sada.

P42d Pohlaví a oddělení

Personal (20 vět)

P42e Pohlaví a oddělení bez duplicit

Personal (11 vět)

P42f Pohlaví a oddělení jinak řazené

Personal (11 vět)

Page 73: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 73

DOTAZ P42G LIDÉ Z PRG: VÝBĚR VĚT S DANÝM OBSAHEM JEDNOHO POLE

Vypište příjmení a jména zaměstnanců z oddělení PRG v seřazení dle příjmení a jména.

− Vytvoříme nový dotaz, opět bude vycházet z tabulky Personal. − Do návrhové mřížky umístíme pole Příjmení, Jméno a Oddělení. − Oddělení nezobrazujeme (potlačíme zaškrtnutí v řádku Zobrazit), avšak do řádku kritérií

dopíšeme PRG, zobrazíme tak pouze věty s polem Oddělení o obsahu PRG. Text PRG nemusíme psát do uvozovek, Access je sám doplní. V kritériích dotazu Access nerozlišuje malá a velká písmena. Nezobrazovaná pole obsahující kritéria Access při uložení dotazu automaticky umisťuje na závěr návrhové mřížky.

DOTAZ P42H LIDÉ Z PRG A ANA: VÝBĚR VĚT S ALTERNATIVNÍM OBSAHEM JEDNOHO POLE

Vypište příjmení a jména zaměstnanců z oddělení PRG a ANA v seřazení dle příjmení a jména.

K vyjádření alternativy v kritériích máme dvě možnosti: − Alternativní hodnoty můžeme oddělit operátorem Or. − Alternativní hodnoty můžeme napsat na samostatné řádky. (Access uloží i tak návrhovou

mřížku s kritériem v jednom řádku a oddělením alternativ operátorem Or.) − Spojka a má v češtině význam alternativy.

DOTAZ P42I LIDÉ Z PRG, ANA A REK: VÝBĚR VĚT S NĚKOLIKA VARIANTAMI OBSAHU JEDNOHO POLE

Vypište oddělení, příjmení a jména zaměstnanců z oddělení PRG, ANA a REK v seřazení dle oddělení, příjmení a jména.

− Řádků kritérií je v návrhové mřížce přichystáno devět. Můžeme zde obecně napsat i více variant obsahu pole oddělením variant operátorem Or74.

− Pokud vycházíme z předchozího dotazu, musíme přesunout sloupec Oddělení na začátek návrhové mřížky. Klepnutím do úzkého šedivého proužku nad sloupcem sloupec Oddělení označíme. Opět klepneme do šedivého proužku, nepouštíme tlačítko myši a tažením doleva přesouváme sloupec. U kurzoru se objeví obdélníček. V návrhové mřížce tlustá čára označuje, před který sloupec se přesouvaný sloupec přesune. Tlustou čáru umístíme před první sloupec a pustíme tlačítko myši. Doplníme do kritéria Or REK.

− V případě potřeby můžeme vkládat nové sloupce tlačítkem Vložit sloupce ze skupiny

Nastavení dotazuu či odstraňovat označený sloupec nebo více označených sloupců tlačítkem Odstranit sloupce ze skupiny Nastavení dotazu nebo stisknutím klávesy Delete. Nastavení dotaz

Nastavení dotazu− Pokud je kritérium delší, nevidíme jej v úzkém sloupci celé. Poklepáním na hranici sloupců

(v našem případě sloupců Oddělení a Příjmení) můžeme přizpůsobit šířku sloupce obsahu. Šířka se však na rozdíl od úpravy šířky v tabulkách neukládá s návrhovou mřížkou. Při pozdější práci s návrhem dotazu musíme šířku sloupce opět upravit. Pokud však upravíme šířku sloupců ve výsledku dotazu, šířka ve výsledku se ukládá.

− K vypsání vět, které obsahují některou z hodnot v seznamu hodnot, lze použít také funkci In. Do kritéria můžeme v našem případě zapsat místo výrazu "PRG" Or "ANA" Or "REK" výraz In ("PRG";"ANA";"REK").

74 Můžeme dokonce kombinovat rozepisování variant do řádků a používání operátoru Or. Můžeme také tlačítkem

Vložit řádky ze skupiny NNaassttaavveenníí ddoottaazzuu doplnit do návrhové mřížky další řádky.

P42g Lidé z PRG

Personal (6 vět)

P42h Lidé z PRG a ANA

Or

Personal (9 vět)

P42i Lidé z PRG, ANA a REK

Personal (12 vět)

Page 74: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 74

DOTAZ P42J ŽENY Z PRG: VÝBĚR VĚT S DANÝM OBSAHEM VÍCE POLÍ

Vypište příjmení a jména všech žen z oddělení PRG.

− Pokud vyplníme kritéria v jednom řádku u více polí, musí kritéria platit současně.

DOTAZ P42K ŽENY Z PRG A VŠICHNI Z REK: ALTERNATIVNÍ VÝBĚR VĚT S DANÝM OBSAHEM VÍCE POLÍ

Vypište příjmení a jména všech žen z PRG a všech zaměstnanců z REK.

− Doplněním dalšího řádku kritérií k předchozímu dotazu se automaticky neopakují podmínky z prvního řádku. Vypsání oddělení REK v novém řádku proto k výsledku dotazu přidává všechny zaměstnance oddělení REK (nejen ženy).

Zadáváme vlastně podmínku: − Zaměstnanec je z PRG a současně je žena (první řádek) nebo − Zaměstnanec je z REK bez omezení dalších polí (druhý řádek).

DOTAZ P42L ŽENY Z PRG A MUŽI Z REK: VÝBĚR S VARIANTNÍMI OMEZENÍMI V RŮZNÝCH POLÍCH

Vypište příjmení a jména všech žen z PRG a mužů z REK.

DOTAZ P42M VÍCE NEŽ POLOVIČNÍ ÚVAZKY: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU ČÍSELNÉHO POLE

Vypište příjmení, jméno a úvazek zaměstnanců PRG, kteří pracují ve firmě na úvazek 50 % nebo vyšší. (V poli Úvazek musí být číslo větší nebo rovno 0,5.)

− V případě, že hodnota pole má být větší (popř. dále v abecedě u textových polí nebo pozdější u časových polí), menší, větší nebo rovna, menší nebo rovna, můžeme požadovaný vztah zadat v mřížce porovnávacími operátory >, <, >=, <=.

DOTAZ P42N PŘÍJMENÍ INTERVALU PÍSMEN: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU TEXTOVÉHO POLE

Vypište abecedně seřazená příjmení zaměstnanců, kteří jsou v abecedě mezi písmeny H a S, v seřazení dle příjmení.

− Porovnávací operátory můžeme použít i ve spojení s textovými poli. − Operátorem And můžeme spojit dvě či více podmínek, které mají platit současně.

(Hanák>=H, Sladká>S, a proto se ve výsledku nevypisují zaměstnanci s počátečním písmenem příjmení S.)

− K vypsání vět, které spadají do určitého rozsahu lze také použít konstrukci "[Z-K]*", kde Z je zahajovací a K je koncové vybrané počáteční písmeno. Uvozovky je v tomto případě nutné zapsat. Access doplní před výraz slovo Like.

P42j Ženy z PRG

Personal (4 věty)

P42k Ženy z PRG a všichni z REK

Personal (7 vět)

P42l Ženy z PRG a muži z REK

Personal (6 vět)

P42m Více než poloviční úvazky

>=

Personal (5 vět)

P42n Příjmení intervalu písmen

And

Page 75: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 75

V našem případě bychom do kritéria zapsali "[H-Ř]*"

DOTAZ P42O PŘÍJMENÍ DANÉHO ZAČÁTKU: VÝBĚR VĚT S POŽADOVANÝM ZAČÁTKEM OBSAHU TEXTOVÉHO POLE

Vypište abecedně seřazená příjmení zaměstnanců, která začínají písmeny Ko.

− Kritériem Ko* zadáváme počáteční znaky příjmení. Zástupný znak hvězdička povoluje libovolný obsah zbytku pole. Operátor Like a uvozovky doplní Access sám.

− Vyberou se zaměstnanci s příjmením Kolínská, Kos.

DOTAZ P42P PŘÍJMENÍ DANÉHO ZAČÁTKU A KONCE: VÝBĚR VĚT S POŽADOVANÝM ZAČÁTKEM I KONCEM TEXTOVÉHO POLE

Vypište příjmení zaměstnanců, která začínají písmenem K a končí písmenem á.

− Za hvězdičkou může následovat znak či více znaků, které vyžadujeme na konci obsahu hledaného textového pole.

− Vyberou se zaměstnanci s příjmením Kalousková, Klímová, Kolínská, nevybere se Kos.

DOTAZ P42Q PŘÍJMENÍ S PROMĚNLIVÝM ZNAKEM: ZÁSTUPNÝ ZNAK PRO JEDEN TEXTOVÝ ZNAK

Vypište příjmení zaměstnanců, kterým začíná příjmení písmenem K, třetím písmenem je písmeno l a příjmení končí písmenem á.

− Hvězdička zastupuje libovolný počet znaků. Otazník zastupuje jediný znak.

− Vyberou se zaměstnanci s příjmením Kalousková a Kolínská, nebude vybrána Klímová.

DOTAZ P42R LIDÉ MIMO ODDĚLENÍ: VÝBĚR VĚT S PODMÍNKOU DVOJÍ NEROVNOSTI OBSAHU POLE Vypište abecedně seřazená příjmení zaměstnanců mužského pohlaví s výjimkou zaměstnanců z oddělení RED a DIS.

− Podmínku nerovnosti můžeme zapsat operátorem <> nebo operátorem Not (který Access po zavření dotazu při dalším otevření návrhu upraví na operátor <>).75

DOTAZ P42S LIDÉ BEZ TITULU: VÝBĚR VĚT S PRÁZDNÝM OBSAHEM POLE

Vypište abecedně seřazená příjmení a jména zaměstnanců bez titulu před příjmením. 75 Access také automaticky uloží nezobrazovaná pole na konec návrhové mřížky (pokud tato pole nemají vyplněn

řádek Řadit). Např. v našem případě můžeme uvést pole Pohlaví jako druhé, přesto je uložené až jako poslední v návrhové mřížce.

Personal (8 vět)

P42o Příjmení daného začátku

Zástupný symbol * Personal (2 věty)

P42p Příjmení daného začátku a konce

Personal (3 věty)

P42q Příjmení s proměnlivým znakem

Zástupný ymbol ? s

Personal (2 věty)

P42r Lidé mimo oddělení

Not <> Personal (9 vět)

P42s Lidé bez titulu

Page 76: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 76

− Prázdný obsah pole zastupuje operátor Null. Access sám rozšíří kritérium na tvar Is Null. − Většinou chceme vypisovat ve výsledku také pole s nulovou délkou, do nichž jsme vložili

hodnotu "". Rozšíříme proto podmínku na tvar Null Or "".

DOTAZ P42T LIDÉ V INTERVALU: VÝBĚR VĚT S INTERVALOVOU PODMÍNKOU OBSAHU POLE

Vypište příjmení a jména zaměstnanců z místností 21 – 33 v řazení dle místností.

− Konjunkci >= And <= můžeme nahradit operátorem Between.

DOTAZ P42U LIDÉ S OPRÁVNĚNÍM: VÝBĚR VĚT DLE POLE TYPU ANO/NE

Vypište abecedně seřazená příjmení a jména zaměstnanců, kteří jsou oprávněni fakturovat.

− Do kritéria pole typu Ano/ne můžeme zapsat hodnotu Ano (popř. –1 či True či Zapnuto) nebo Ne (popř. 0 či False či Vypnuto). Tyto hodnoty Access nepřevádí do uvozovek.

DOTAZ P42V BŘEZNOVÉ SLUŽEBNÍ CESTY: VÝBĚR VĚT S DANÝM MĚSÍCEM V ČASOVÉM POLI

Vypište datum zahájení, název dne, název měsíce, týden a čtvrtletí březnových služebních cest v řazení dle data zahájení cest.

− Poprvé vybíráme věty z tabulky Cesty, nikoliv Personal. − V návrhové mřížce jsme zatím uváděli pouze pole ze struktury tabulky. Můžeme zde také

zařadit výraz, který může hrát roli vypisovaného výsledku, klíče řazení či kritéria výběru. V našem případě použijeme funkci Month, která má jediný argument – název pole typu Datum/čas, z něhož měsíc počítáme. Názvy polí se uvádějí v hranatých závorkách. (Hranaté závorky zde nemusíme psát, Access je sám doplní.)

− Access nám nabízí pomůcku pro tvorbu složitějších výrazů Tvůrce výrazů. Kurzor přichystáme na místo, v němž budeme tvořit složitější výraz, např. do sloupce následujícího za sloupcem Zahájení v řádku Pole. Klepnutím do tlačítka Tvůrce ve skupině Nastavení dotazu zobrazíme dialogové okno Tvůrce výrazů (viz

Nastavenídotazu Tvůrce výrazů obr. 4-3).

OBR. 4-3: DIALOGOVÉ OKNO TVŮRCE VÝRAZŮ

Null

Personal (9 vět)

P42t Lidé v intervalu

Between Personal (10 vět)

P42u Lidé s oprávněním

Personal (13 vět)

P42v Březnové služební cety

Month

Tvůrce výrazů

Page 77: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 77

− Poklepáním na Funkce ve spodním levém seznamu a klepnutím na dílčí volbu Vestavěné

funkce se zobrazí v prostředním seznamu kategorie funkcí, které nabízí Access. Vybereme kategorii Datum a čas a v rámci ní v pravém sloupci funkci Month a klepneme do tlačítka Vložit (nebo na název funkce poklepáme).76 V horní části dialogového okna se vypíše obecný tvar vybrané funkce. Access připravil a obecně popsal argument funkce Month.

− Klepnutím označíme jediný argument «number» a přepíšeme jej argumentem Zahájení. Pokud si nepamatujeme název polí tabulky Cesty, poklepáme v levém dolním seznamu na Tabulky a v dílčím seznamu klepneme na název tabulky Cesty. V prostřední části se vypíše struktura tabulky Cesty. Do horní části dopíšeme název pole dle spodního vzoru. Název pole nemusíme zapisovat do hranatých závorek, ty doplní Access sám.77

− Obdobně můžeme vkládat do výrazu pomocí Tvůrce výrazu konstanty (např. ““ nebo Null),

operátory (např. Between) nebo běžné výrazy (např. aktuální datum Date()). Ke vkládání nejčastějších operátorů (+, -, / atd.) můžeme využít přímo tlačítek pod horní částí okna. Vkládání pomocí spodních seznamů a tlačítek můžeme kombinovat s editací výrazu. Tlačítkem OK se výraz zapíše do návrhové mřížky nebo na jiné místo, odkud jsme v Accessu vyvolali Tvůrce výrazů. Tvůrce výrazů můžeme později využít i k úpravě stávajících dotazů.

− Access označuje výsledek výrazu titulkem Výraz1. Titulek se automaticky zapíše před výraz oddělený dvojtečkou. Titulek přepíšeme na Měsíc. Ve výsledku je potom sloupec s hodnotami výrazu nadepsán Měsíc. Do pole Měsíc zapíšeme kritérium 3, pole nevypisujeme.

− Zobrazení dalších požadovaných výstupů dosáhneme novým způsobem. Vždy se jedná o datum zahájení, pouze budeme měnit formát zobrazení. Opakovaně přidáme do návrhové mřížky pole Zahájení a přidáme jim vhodné titulky. Klepnutím do tlačítka Seznam vlastností ze skupiny Zobrazit či skrýtt zobrazíme okno Seznam vlastností. Klepneme do třetího sloupce návrhové mřížky.

Zobrazit či skrý Seznam vlastností

78 Do pole formát zapíšeme: • pro název dne hodnotu dddd, • pro název měsíce hodnotu mmmm,79 • pro týden hodnotu ww, • pro čtvrtletí hodnotu q.

− V zobrazení datového listu se k cestám dopíše slovní název dne, měsíce a vypočítaný týden v roce. (Jedná se pouze o způsob zobrazení pole Zahájení. Když v zobrazení datového listu klepneme do názvu dne či jiného formátovaného sloupce, zobrazí se původní datum. Případné dotazy navazující na náš dotaz by opět počítaly s datem, nikoliv např. s týdnem.)80

76 Obdobně existují funkce:

Day(Datum): den v měsíci WeekDay(Datum;2): pořadí dne v týdnu, argument 2 parametrizuje, že prvním dnem je pondělí WeekDayName(WeekDay(Datum;2)): název dne v týdnu MonthName(Month(Datum)): název měsíce Year(Datum): rok data Hour(Datum): hodina času, pokud v datu je obsažen také čas, např. 5. 3. 2009, 8:25 Minute(Datum): minuta času, pokud v datu je obsažen také čas Second(Datum): sekunda času, pokud v datu je obsažen také čas

77 Poklepáním na pole Zahájení v prostřední části se název pole dopíše do horní části okna ve tvaru: [Cesty]![Zahájení]. Dotaz vychází z tabulky Cesty, kde je název pole Zahájení jednoznačný, proto část [Cesty]! můžeme odstranit. (Někdy je odstranění této části nutné, aby výraz bezchybně fungoval.) Vypisování názvu tabulky odděleného vykřičníkem od názvu pole bude nutné v dotazech pracujících s více tabulkami, v nichž se vyskytne stejný název pole ve více tabulkách.

78 Jiným způsobem zobrazení okna vlastností pole je klepnout do příslušného sloupce návrhové mřížky pravým tlačítkem myši a z místní nabídky zvolit VLASTNOSTI.

79 Pokud do sloupce nedoplníme titulek, promítá se změna formátu dalších sloupců Zahájení do všech sloupců Zahájení bez titulku.

80 Pokud bychom chtěli, aby výsledkem byla transformovaná hodnota, nikoliv formát, použili bychom funkce Format(Datum;“parametr“), parametr by byl shodný jako při formátování. Význam dalších znaků:

d: den v číselném vyjádření (např. 5, 13) m: měsíc v číselném vyjádření (např. 3 nebo 12) dd: den jako dvojciferný text (např. 05, 13) mm: měsíc jako dvojciferný text (např. 03 nebo 12) ddd: krátká zkratka názvu dne (např. čt, út) mmm: měsíc formou římského čísla (např. III nebo XII) dddd: název dne (např. čtvrtek, úterý) mmmm: měsíc slovním vyjádřením (např. březen nebo prosinec)

Cesty (4 věty)

Titulek výrazu

Page 78: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 78

DOTAZ P42W DÉLKY SLUŽEBNÍCH CEST: ŘAZENÍ VĚT DLE DNE V MĚSÍCI

Vypište data zahájení, dokončení, délku a termín pro vyúčtování služebních cest v řazení dle dnů a měsíců zahájení. Vyúčtování je nutné provést do 7 dnů od dokončení služební cesty.

− Funkce DateDiff vrací rozdíl třetího a druhého argumentu v časové jednotce prvního

argumentu.81 − Funkce DateAdd přičte ke třetímu argumentu čas uvedený v druhém argumentu v jednotkách

prvního argumentu.82 − Místo funkcí Day a Month použijeme pro řazení obecnou funkci DatePart, která vybírá část

pole typu Datum a čas.83 − Kdybychom místo řazení dle funkce DatePart(“d“;[Zahájení]) uvedli jen název pole

Zahájení, řazení by bylo chronologické i s přihlédnutím k měsícům. Řazení dle měsíců a dnů bychom použili např. při vypisování kalendáře narozenin zaměstnanců v řazení bez ohledu na stáří. Stáří bychom mohli spočítat výrazem DateDiff(″yyyy″;[Datum_narození];Date()). Funkce Date() vrací aktuální datum. Parametr yyyy vrací výsledek v rocích.

− Změna titulků polí Den a Měsíc nebyla nutná, neboť pole jsou použita pouze jako kritéria řazení, ve výsledku dotazu se nevypisují.

DOTAZ P42X WEBOVÉ ADRESY: ČÁST WEBOVÉ ADRESY

Vypište jména, příjmení, délku jejich příjmení, iniciály a webovou adresu jednotlivých zaměstnanců v řazení dle jejich příjmení a jmen.

− Výsledkem funkce Left je prvních několik znaků z řetězce v prvním argumentu. Druhý

argument udává počet znaků ve výsledku. − Operátor & spojuje textové řetězce. − Výsledkem funkce Len je délka textu v argumentu. − Zařazením pole Web do návrhové mřížky by se vypsala první část webové adresy, tj.

zobrazovaný text. − Využitím funkce HyperLinkPart můžeme vypsat jakoukoliv část hypertextového odkazu,

např. adresu odkazu, která bude zobrazena v prohlížeči po klepnutí do hodnoty pole Web. Tento odkaz však již není citlivý na klepnutí. Druhý argument funkce udává, kterou část odkazu vypíšeme.

DOTAZ P42Y NACE 4724: VÝBĚR Z POLE S VÍCE HODNOTAMI

Vypište názvy podniků, které se zabývají činnosti s klasifikací NACE 4724 (Maloobchod s chlebem, pečivem, cukrářskými výrobky a cukrovinkami). Vypište též všechny jejich NACE jako jedno pole a pole prvních čtyř činností.

− Vybírat lze i dle jednotlivých hodnot polí s více hodnotami. V podokně Diagram vybíráme

pole s hodnotou (např. NACE.Value), pro nějž uplatníme kritérium. Diagram

− Hodnota by byla vybrána, i kdyby ve větě nebyla v poli NACE hodnota jako první (viz např. NACE o hodnotě 5812).

− V případě polí s více hodnotami by mělo smysl zadat podmínku s využitím operátoru AND (např. 5812 And 1813).

81 Místo funkce DateDiff s prvním argumentem ″d″ můžeme použít výraz [Dokončení]-[Zahájení]. 82 Místo funkce DateAdd s prvním argumentem ″d″ můžeme použít výraz [Dokončení]+7. 83 Funkce DatePart má podobné výsledky jako funkce Format, má však opačné pořadí argumentů a výsledek

poskytuje v číselném formátu.

P42w Délky služebních cest

Cesty (15 vět)

P42x Webové adresy

Personal (20 vět)

Left

& Len

HyperLinkPart

P42y NACE

Podniky (3 věty)

Page 79: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 79

DOTAZ P42Z TITULY LIDÍ: VĚTVENÝ VÝRAZ A VÝBĚR VŠECH POLÍ VĚTY

Vypište pro zaměstnance slovně, zda mají titul před jménem nevyplněn či vyplněn řetězcem nulové délky. Ke každé větě zrekapitulujte hodnoty všech polí.

− Funkce Switch (z kategorie funkcí běhu programu) umožňuje diferencovat výslednou

hodnotu výrazu dle podmínek. V argumentu funkce Switch je libovolné množství dvojic podmínka – uplatněný výraz. Access postupně prochází jednotlivé podmínky. Až narazí na splněnou podmínku, uplatní výraz. Pokud žádná podmínka není splněna, ponechá výsledek prázdný. V našem případě je aplikace funkce Switch zjednodušená, při splnění libovolné z obou podmínek se uplatňuje konstantní text, nikoliv proměnlivý výraz.

− Přetáhneme-li ze seznamu polí tabulky hvězdičku, přidáme tím do výsledku dotazu všechna pole tabulky. Mezi přetažením všech jednotlivých polí a přetažením hvězdičky je rozdíl. • Přetáhneme-li jednotlivá pole84, stanou se součástí dotazu „pouze“ tato pole. Přidáme-li

později do struktury výchozí tabulky další pole (nebo nějaké pole naopak odstraníme), musíme stejné změny provést v návrhové mřížce dotazu.

• Přetáhneme-li hvězdičku, všechny změny ve struktuře tabulky se automaticky zahrnou do výsledku dotazu. Nevýhodou označení všech polí hvězdičkou je složitější definování kritérií výběru a řazení výsledku. (Musíme některá pole znovu přetáhnout do návrhové mřížky, ve výsledku dotazu je však již nezobrazujeme.)

4.3 Výběrové dotazy z více tabulek Dosud jsme připravovali dotazy na pole z jediné tabulky. Nyní budeme vytvářet

dotazy spojující data z více tabulek.

DOTAZ P43A PŮVODNÍ TELEFONY: VÝBĚR SOUVISEJÍCÍCH VĚT Z TABULEK PERSONAL A MÍSTNOSTI

Vypište k příjmením zaměstnanců místnost a původní telefonní linku do místnosti v řazení dle místnosti.

− Při zadávání nového dotazu přidáme v dialogovém okně Zobrazit tabulku (viz Zobrazit tabulku obr. 4-1) tabulky Personal a Místnosti. Relace se převezmou z diagramu relací.

− Ve výsledku proto nebudou uvedeny všechny kombinace vět tabulek Personal a Místnosti,

ale pouze věty se stejným číslem místnosti v tabulce Personal a Místnosti. − Poklepeme na relaci mezi tabulkami a zadáme typ spojení Zahrnout všechny záznamy

z tabulky Personal. Nyní se ve výsledku zobrazí i věty, v nichž není vyplněno číslo místnosti.

− Výsledkem je dynamická sada, kterou můžeme v zobrazení datového listu aktualizovat:

84 Před přetažením můžeme označit více polí, klepneme-li na první a potom současně s klávesou Shift na poslední

pole (souvislý rozsah) nebo postupně na jednotlivá pole s klávesou Ctrl (nesouvislý rozsah). Všechna pole můžeme označit poklepáním na název tabulky nad seznamem polí.

P42z Tituly lidí

Personal (20 vět)

Switch

P43a Původní telefony

Personal Místnosti (20 vět)

Page 80: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 80

− Pokud změníme Původní_telefon, upraví se automaticky (po uložení věty např. přechodem

na jinou větu) původní telefony pro další zaměstnance ze stejné místnosti, neboť upravíme hodnotu v tabulce Místnosti. (Např. můžeme dočasně změnit původní telefon Hanáka z 803 na 893. Změna se automaticky promítne do věty Kalouskové, která sedí ve stejné místnosti. Po prohlédnutí vrátíme hodnotu do původního stavu.)

− Pokud změníme Místnost, mohou nastat dva případy: − V případě, že jsme Místnost převzali z tabulky Personal (viz výše uvedený obrázek

dotazu), změnou Místnosti zasáhneme pouze do tabulky Personal. Musíme však zvolit existující místnost, jinak nás Access upozorní na porušení referenční integrity. (Např. můžeme dočasně změnit místnost Hanáka z 13 na 11, automaticky se zobrazí správné původní telefonní číslo 801.)

− V případě, že jsme Místnost převzali z tabulky Místnosti, změnou Místnosti Hanáka z 13 např. na 93 (neexistující číslo místnosti) přečíslujeme místnost v tabulce Místnosti. Automaticky se (díky aktualizaci svázaných polí v kaskádě, kterou jsme definovali v relacích) po uložení věty (např. při přechodu na jinou větu) opraví čísla místnosti ve větách zaměstnanců ze stejné místnosti. Na tuto závažnou změnu jsme upozornění dialogovým oknem Konflikt při zápisu, v němž klepneme do tlačítka Uložit záznam. Konflikt při zápisu

První případ je ve většině situací logičtější, proto se v dotazech snažíme přebírat propojující pole z pravé strany (ze strany N) relace 1:N.

DOTAZ P43B FAKTURY DIS: VÝBĚR S PROPOJENÍM DVOU TABULEK A PODMÍNKOU

Vypište čísla a data faktur připravených oddělením DIS (distribuce).

DOTAZ P43C FAKTURY DIS BEZ BAKALÁŘŮ: VÝBĚR S PROPOJENÍM DVOU TABULEK A DVOJÍ PODMÍNKOU

Vypište čísla a data faktur připravených zaměstnanci z oddělení DIS, kteří nemají titul Bc.

− Pokud bychom zapsali pro pole Titul1 pouze podmínku Not Bc., nevypsaly by se věty

s prázdným obsahem pole Titul1.85 Musíme proto doplnit vypisování i vět s prázdným obsahem pole Titul1 doplněním kritéria o část Or Is Null.

DOTAZ P43D FAKTURY VYBRANÉHO ODDĚLENÍ: VÝBĚR VĚT POMOCÍ POMOCNÉ TABULKY

Vypište čísla i data faktur vystavených vybraným oddělením (vypište jakým) v řazení dle data.

85 Prázdné pole pro Titul1 vyplníme pro Lukáše Škodu. Zapíšeme mu Titul1 Bc. a smažeme jej. (Po importu z Excelu

bylo vyplněno pole Titul1 hodnotami prázdného řetězce "".)

P43b Faktury DIS

Faktury Personal (60 vět)

P43c Faktury DIS bez bakalářů

Faktury Personal (35 vět)

P43d Faktury vybraného oddělení Faktury Personal Oddělení_F (pro DIS 60 vět)

Page 81: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 81

− Připravíme pomocnou tabulku Oddělení_F (koncovku _F budeme používat pro pomocné

vyhledávací tabulky, F je zkratka slova find – hledat) s jediným textovým polem Oddělení o velikosti 3 znaky. Pole Oddělení je povýšeno na primární klíč, abychom zabránili opakovanému uvedení stejného oddělení v tabulce Oddělení_F. Do tabulky zapíšeme jedno či více oddělení, za něž si přejeme vyhodnocovat dotaz, např. DIS.

− Výběrem tabulky v dialogovém okně Zobrazit tabulky se v podokně Diagram návrhu dotazu přichystá také relace mezi tabulkami Oddělení_F a Oddělení vzhledem ke stejnojmenným polím v obou tabulkách. Mohli bychom obejít užití pomocné tabulky uvedením výčtu vybíraných oddělení ve sloupci Oddělení v návrhové mřížce. Výběr oddělení by se však špatně aktualizoval, zvláště kdybychom výběr zařadili do více dotazů.

Zobrazit tabulky Diagram

DOTAZ P43E LICENCE FIN POZITIVNÍ VÝVOJ: VÝBĚR S PROPOJENÍM ČTYŘ TABULEK

Vypište vzestupně seřazená sériová čísla licencí programu Finanční analýza prodaných podnikům ve stadiu s pozitivní charakteristikou vývoje, vypište též název podniku a stadium.

DOTAZ P43F LICENCE STAVEBNICTVÍ: VÝBĚR S PROPOJENÍM ŠESTI TABULEK

Vypište vzestupně seřazená označení programů a sériová čísla licencí programů prodaných podnikům, jejichž hlavní činnost patří do skupiny v sekci Stavebnictví, vypište též název podniku.

− Podkladem dotazu nejsou jen tabulky, ale také dotazy. V dialogovém okně Zobrazit

tabulku klepneme na záložku Oboje, aby v seznamu dostupných objektů byly tabulky i dotazy. Do konstrukce dotazu přidáme příslušné tabulky a dotazy. Počet tabulek a dotazů, z nichž dotaz čerpá data, není omezený.

Zobrazittabulku

DOTAZ P43G LIDÉ NA CESTĚ 4 I 10: VÝBĚR S PROPOJENÍM TABULKY DO SEBE

Vypište e-maily zaměstnanců, kteří byli na služební cestě číslo 4 i 10.

− Účast zaměstnanců na služebních cestách je uvedena v tabulce Výjezdy. Tabulku Výjezdy bychom mohli zkopírovat do tabulky Výjezdy286. Potom bychom v dotazu zkoumali kombinace tabulek Výjezdy a Výjezdy2 se stejným E_mailem. Počet kombinací by byl větší než počet výjezdů v tabulce Výjezdy. Za každého zaměstnance by vzniklo n2 kombinací, kde n je počet výjezdů, které zaměstnanec absolvoval (pro některé zaměstnance n = 0)87. Nás by však zajímaly pouze kombinace, v nichž v první tabulce Výjezdy je Cesta (číslo služební cesty) rovno 4 a ve druhé (stejné) tabulce Výjezdy2 je rovno 10.

86 V seznamu objektů bychom vybrali objekt tabulky Výjezdy a stisknuli bychom kombinaci kláves Ctrl C . Po

stisknutí kombinace Ctrl V bychom zapsali v dialogovém okně VVlloožžiitt ttaabbuullkkuu jjaakkoo název tabulky Výjezdy2. 87 V případě tabulky Výjezdy vyjelo 15 z 20 zaměstnanců: 32 (Benešová) + 32 (Drobná) +12 + 12 + 12 + 22 + 62 + 22 +32

+ 12 + 12 +22 + 22 +12 +12 = 9 + 9 + 1 + 1 + 1 +4 + 36 + 4 + 9 +1 +1 +4 + 4 +1 + 1 = 86

Oddělení_F

P43e Licence FIN pozitivní vývoj Licence Faktury Podniky Stadia (26 vět)

P43f Licence stavebnictví

Licence Faktury Podniky NACE_Oddíly Oddíly_Sekce Sekce (21 vět)

P43g Lidé na cestě 4 i 10

Spojení tabulky do sebe

Výjezdy Výjezdy_1 (2 věty)

Page 82: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 82

− Kopírování tabulky Výjezdy by přinášelo riziko, že změníme tabulku Výjezdy a opomeneme

vytvořit její aktualizovanou kopii Výjezdy2. Dvě tabulky by také zbytečně zvětšovaly databázi. Access umožňuje přidat jednu tabulku do konstrukce dotazu vícekrát. V dialogovém okně Zobrazit tabulku proto přidáme tabulku Výjezdy dvakrát. Podruhé se zobrazí jako tabulka Výjezdy_1. Relaci mezi tabulkami musíme doplnit sami, aby se kombinovaly výjezdy stejného zaměstnance.

Zobrazit tabulku

− Pole Cesta je čerpáno jednou z tabulky Výjezdy, podruhé z tabulky Výjezdy_1 (se stejným obsahem). Pole Cesta použijeme jen pro kritérium, nemusíme je zobrazovat.

DOTAZ P43H LIDÉ BEZ TELEFONU: VÝBĚR VĚT S NEEXISTUJÍCÍM PROPOJENÍM DO JINÉ TABULKY

Vypište příjmení, místnost a původní telefon zaměstnanců, kteří sedí v místnosti, kde původně nebyl telefon.

− Kritérium Is Not Null v poli Místnost zabraňuje vypsání vět zaměstnanců bez místnosti pro případ typu spojení mezi tabulkami Zahrnout všechny záznamy z tabulky Personal... Vypisování vět, které nemají související větu v jiné tabulce je častým úkolem zejména, když chceme doplňovat do existující databáze referenční integritu.88

DOTAZ P43I CESTA DO SOKOLOVA: VÝBĚR HODNOTY POLE PRO PŘESNĚ DEFINOVANOU VĚTU ČI VĚTY

Vypište datum zahájení (poslední)89 služební cesty do Sokolova.

− Výsledek dotazu bude použit v konstrukci následujícího dotazu.

DOTAZ P43J FAKTURY DO CESTY DO SOKOLOVA: DOTAZ NA ZÁKLADĚ VÝSLEDKU JINÉHO DOTAZU

Vypište všechna data o faktuře dostupná z tabulky Faktury pro faktury vydané v den zahájení (poslední) služební cesty do Sokolova a dříve.

− Dotaz chceme formulovat obecně. Nechceme najít sami datum dokončení služební cesty do Sokolova, ale necháme datum vyhledat Access. (Další služební cestou by se např. datum zahájení poslední služební cesty mohlo změnit.) Podkladem dotazu nebude jen tabulka Faktury, ale také výsledek předchozího dotazu. V dialogovém okně Zobrazit tabulku klepneme na záložku Oboje, aby v seznamu dostupných objektů byly tabulky i dotazy. Do podokna Diagram přidáme tabulku Faktury a výsledek dotazu P43i Cesta do Sokolova.

Zobrazit tabulku

Diagram

− Datovou sadu P43i Cesta do Sokolova jsme nepřidali za účelem omezení kombinací vět z datových sad Faktury a P43i Cesta do Sokolova, ale pouze abychom mohli použít (často jedinou) hodnotu pole Zahájení ze sady P43i Cesta do Sokolova při definování kritéria pro výběr vět z tabulky Faktury. V kritériu musíme název pole zapsat do hranatých závorek. Access by při nezapsání hranatých závorek považoval vloženou hodnotu za text, se kterým porovnáváme hodnotu pole Datum.

88 Např. v našem případě by k zavedení referenční integrity mezi tabulkami Personal a Místnosti bylo nutné, aby

neexistovaly věty v tabulce Personal s místností neuvedenou v tabulce Místnosti. Výsledkem uvedeného dotazu jsou věty dvou druhů: − věty s místností neuvedenou v tabulce Místnosti (Vzhledem k tomu, že v naší databázi již referenční integrita byla

zavedena, nemůže takový případ nastat.), − věty s místností s nevyplněným telefonem v tabulce Místnosti. (Místnosti bez telefonu, které nejsou narušením

referenční integrity.). 89 V případě více cest do Sokolova by bylo vhodné aplikovat v dotazu souhrn Max (viz kap. 4.4).

P43h Lidé bez telefonu

Personal Místnosti (2 věty)

P43i Cesta do Sokolova

Navazující dotazy Cesty (1 věta)

P43j Faktury do cesty do Sokolova

Page 83: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 83

− V případě, že by služebních cest do zvoleného místa bylo více, vypisovaly by se některé faktury vícekrát, neboť splnily vícekrát podmínku dřívějšího vydání faktury než zahájení více cest do vybraného místa. Proto ve vlastnostech dotazu zadáme do pole Jedinečné hodnoty hodnotu Ano.

4.4 Výpočty

DOTAZ P44A DÉLKY CEST: VÝPOČET Z HODNOT POLÍ V RÁMCI VĚTY

Vypište všechny údaje o služebních cestách a jejich délky.

− V poli můžeme uvést také výraz (viz již dotaz P42v). Ve výrazu můžeme použít pole z tabulek zařazených do konstrukce dotazu. Názvy polí se v Accessu zapisují do hranatých závorek. Pokud by jejich názvy v kontextu dalších tabulek v konstrukci dotazu nebyly jednoznačné, musel by před názvem pole být uveden v hranatých závorkách název tabulky oddělený od názvu pole vykřičníkem.

− Access nazve výsledné dopočtené pole Výraz1 (při více dopočtených polích Výraz2, Výraz3 atd.). Pokud chceme pole ve výsledku nazvat jinak, můžeme před výraz zapsat svůj titulek oddělený od výrazu dvojtečkou. Obdobně můžeme přejmenovat i další pole, která nejsou definována výrazem.

− Výraz může používat nejen funkci, ale také může spojit názvy polí operátory. − Délku cesty můžeme spočítat jako výsledek funkce DateDiff nebo rozdílem dvou polí.

DOTAZ P44B POSLEDNÍ CESTY: SOUHRN POLÍ ZA SKUPINU VĚT

Vypište datum dokončení poslední služební cesty do každého navštíveného místa.

− Výpočty za skupiny vět lze provést prostřednictvím souhrnných (agregovaných) dotazů. Z prostého výběrového dotazu vytvoříme souhrnný dotaz klepnutím do tlačítka Souhrny ve skupině Zobrazit či skrýt. V návrhové mřížce se zobrazí navíc řádek Souhrn, v němž do polí, podle nichž se seskupuje, zadáme Seskupit. U polí definujících výběrovou podmínku zadáme Kde (viz dotaz P44e). U polí definujících shrnující funkci můžeme zapsat funkce:

Zobrazit či skrýt

• Sum: Součet hodnot pole. • Avg: Průměrná hodnota v poli. (Hodnoty Null jsou ignorovány.) • Var: Rozptyl hodnot v poli. Rozptyl se počítá dle vzorce:

)1()( 2

−−∑

nxx

• StDev: Směrodatná odchylka hodnot v poli. Vypočítá se podle vzorce:

)1()( 2

−−∑

nxx

• Count: Počet nenulových hodnot v poli.

Faktury P43i Cesta do Sokolova (52 vět)

P44a Délky cest

Výpočty ve větě

Cesty (15 vět)

P44b Poslední cesty

Souhrnné dotazy

Sum

Page 84: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 84

• Min: Nejnižší hodnota v poli. (Malá a velká písmena v textových polích nejsou

rozlišována.) • Max: Nejvyšší hodnota v poli. • First: Hodnota v poli v první větě vyhovující kritériím. • Last: Hodnota v poli v poslední větě vyhovující kritériím.

− Výsledkem souhrnného dotazu je snímek, který na rozdíl od dynamické sady nelze přímo

editovat.

DOTAZ P44C DÉLKY CEST DO JEDNOTLIVÝCH MÍST: SOUČET VÝRAZU Z NĚKOLIKA POLÍ ZA SKUPINU VĚT

Vypočtěte, kolik dní dohromady trvaly služební cesty do jednotlivých míst.

− Po uložení dotazu si upraví Access dotaz na tvar:

DOTAZ P44D CENA DLE MÍSTNOSTÍ: SOUČTY S CELKOVÝM SOUČTEM

Vypište pořizovací cenu vybavení místností v řazení dle oddělení a místností. Závěrem vypište celkovou pořizovací cenu vybavení ve firmě Encián.

− Souhrny lze počítat i za data z více tabulek. Tabulka Majetek_umístění není využita

v návrhové mřížce, je však nutná pro spojení tabulek Místnosti a Majetek_typy. − Celkový součet doplníme do výsledku dotazu jako do zobrazení tabulky. V zobrazení

datového listu klepneme do tlačítka Souhrny ve skupině Záznamyy. Rozbalíme nabídku v součtovém řádku ve sloupci Celková pořizovací cena a vybereme SOUČET.

Záznam

DOTAZ P44E TRŽBY ZA BON A FIN: KRITÉRIUM V SOUHRNU

Vypočtěte celkovou tržbu dosaženou dohromady za programy BON a FIN v jednotlivých měsících.

− Pokud bychom v řádku Souhrn pro pole Program uvedli Seskupit, součty tržeb by byly

spočteny v jednotlivých měsících za jednotlivé programy. − V našem případě uvádíme v řádku Souhrn pro pole Program hodnotu Kde. (Pole, v jehož

sloupci je v řádku Souhrn uvedeno Kde, nelze přímo zobrazit. Museli bychom jej uvést ještě jednou do dalšího sloupce.) Součty tržeb se počítají za jednotlivé měsíce za oba programy dohromady.

Cesty (11 vět)

P44c Délky cest do jednotlivých míst Cesty (11 vět)

P44d Cena dle místností

Místnosti Majetek_umístění Majetek_typy (28 vět)

P44e Tržby za BON a FIN

Faktury Licence Programy (6 vět)

Kde

Page 85: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 85

DOTAZ P44F TRŽBY V TÝDNECH: SOUHRN DLE ČÁSTI POLE

Vypište celkové tržby od podniků ve stadiu růst dosažené v jednotlivých týdnech.

− Funkce Format umožňuje vybrat část časového pole a (na rozdíl od zobrazovacího formátu) s částí počítat, např. Format(Datum;“ww“) zjistí z data pořadí týdne v roce.

− Funkce Format bohužel vrací pořadí týdne jako textový řetězec, dochází potom k špatnému řazení týdnů (1,10, 11,…, 2, 20, 21,…), pro pole Týden můžeme využít • funkci převádějící text na číslo: Týden: Val(Format([Datum];"ww")), • popř. využijeme dříve vyloženou funkci DatePart: Týden: DatePart("ww";[Datum]).

DOTAZ P44G PODNIKY S VYSOKÝMI TRŽBAMI: KRITÉRIUM VE VÝSLEDKU SOUHRNU

Vypište podniky, od nichž jsme utržili více než 30 000 Kč, v seřazení tržeb od nejvyšší po nejnižší.

− Pole Název_podniku slouží jen jako vysvětlení pole IČ, k jednomu identifikačnímu číslu

organizace existuje jediný název podniku.

DOTAZ P44H PRVNÍCH PĚT LIDÍ: OMEZENÍ POČTU VĚT VE VÝSLEDCÍCH

Vypište pět zaměstnanců, kteří první fakturu vystavili nejdříve, v řazení dle data vystavení.

− Nejprve připravíme dotaz pro výpis nejstarších (minimálních) dat faktur připravených jednotlivými zaměstnanci. Využíváme data pouze z tabulky Faktury. Funkce Min, Max lze aplikovat i na pole typu Datum a čas.

− Dotaz upřesníme vlastností Nejvyšší hodnoty (vlastnost celého dotazu obdobně jako např.

vlastnost Jedinečné hodnoty), do níž zapíšeme 5. Počet vypisovaných hodnot můžeme zadat absolutně či procentuálně. Název vlastnosti Nejvyšší hodnoty není přesný, Access vypisuje z výsledku jen počtem či procentuálně stanovený počet vět ze začátku výsledku.

DOTAZ P44I PRVNÍ ČTVRTINA LIDÍ: VÝBĚR NĚKOLIKA VĚT S NEJVYŠŠÍ HODNOTOU POLE

Vypište služební cesty, na nichž bylo 25 % zaměstnanců (z počtu fakturujících zaměstnanců), kteří dosáhli nejvyšší tržby.

− Zadání nelze vyřešit jediným dotazem. Přidáním tabulky Výjezdy do konstrukce dotazu by se totiž tržby každého zaměstnance započetly tolikrát, kolikrát byl na služební cestě. V prvním kroku proto pouze zjistíme e-maily zaměstnanců a celkové tržby.

− Ve vlastnosti dotazu Nejvyšší hodnoty zadáme 25 %. − Celkem fakturovalo 9 zaměstnanců, z toho 25 % je 2,25, což Access zaokrouhlí nahoru.

− Přidáním tabulky Výjezdy (spojené s tabulkou faktury prostřednictvím pole E_mail) by se

vypsaly 2 věty (25 % z 8 fakturujících zaměstnanců, kteří vyjeli alespoň na jednu služební cestu, Miloš Adamec fakturoval, ale nebyl na žádné služební cestě).

P44f Tržby v týdnech Format

Podniky Faktury Licence Programy (17 vět)

Val

P44g Podniky s vysokými tržbami

Podniky Faktury Licence Programy (9 vět)

P44h Prvních pět lidí Min, max

Faktury (5 vět)

Omezení počtu vět

P44i První čtvrtina lidí

Faktury Licence Programy (3 věty)

Page 86: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 86

− Přidáním tabulky Cesty a polí Zahájení, Dokončení, Místo by se vypsalo 7 vět (25 %

z 21 výjezdů fakturujících zaměstnanců by mělo být 6, avšak hodnota tržeb zaměstnanců na 6. a 7. místě byla stejná).

DOTAZ P44J CESTY PRVNÍ ČTVRTINY LIDÍ: UPŘESNĚNÍ ÚDAJŮ O VYBRANÝCH VĚTÁCH

− Obdobně jako v dotazu P43j navazujeme na výsledky předchozího dotazu. V podokně Diagram připravíme datové sady P44i První čtvrtina lidí, Výjezdy a Cesty. Doplníme relaci mezi datovou sadou P44i První čtvrtina lidí a tabulkou Výjezdy a upravíme její typ. V souvislosti s tím musíme také upravit typ dvojité relace tabulek Výjezdy a Cesty, jinak by Access hlásil před zobrazováním výsledků dotazu chybu.

Diagram

− Tři nejvíce fakturující zaměstnanci jsou zastoupeni 5 větami. Miloš Adamec nebyl na žádné

cestě (díky typu spojení je zastoupen 1 větou), Eva Benešová byla na 3 cestách, Marie Sladká na 1 cestě.

4.5 Parametrické dotazy V případě, že často používáme stejný výběrový dotaz, v němž měníme kritéria,

můžeme vyžádat zadání kritérií při spuštění dotazu. Místo vypsání kritéria do návrhové mřížky zapíšeme v hranatých závorkách výzvu či více výzev pro uživatele dotazu. Po spuštění dotazu jsme dotázáni formou dialogových oken na parametrizovaná kritéria.

DOTAZ P45A MĚSÍČNÍ TRŽBY SEKCE: PARAMETRICKÝ DOTAZ S PŘESNÝMI KRITÉRII

Vypište měsíční tržby za vybraný program v rámci vybrané sekce podniků.

− Po spuštění dotazu jsme dotázáni formou dialogových oken na program (viz obr. 4-4) a sekci podniku. Teprve po jejich zadání se zobrazí výsledky.

OBR. 4-4: ZADÁNÍ HODNOT PARAMETRU DOTAZU

− Sloupec Sekce_v je zařazen jako vysvětlivka názvu vybrané sekce, neovlivní počet

výsledných vět.

DOTAZ P45B MĚSÍČNÍ TRŽBY NACE: PARAMETRICKÝ DOTAZ S PŘIBLIŽNÝM KRITÉRIEM

Vypište měsíční tržby za vybraný program prodaný podnikům se zadaným NACE o libovolném počtu znaků.

P44j Cesty první čtvrtiny lidí

P44i První čtvrtina lidí Výjezdy Cesty (5 vět)

Parametrický dotaz

P45a Měsíční tržby sekce

Podniky Faktury Licence Programy NACE_Oddíly Oddíly_Sekce Sekce (0 – 6 vět, např. pro BON, A: 2 věty)

P45b Měsíční tržby NACE

Page 87: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 87

− Slovo Like musíme do kritéria pole NACE.Value napsat. Operátor & je nutný. Hvězdičku nemusíme zapisovat do uvozovek.

DOTAZ P45C CESTY OD ZADANÉHO DATA: OMEZENÍ DATOVÉHO TYPU PARAMETRU PARAMETRICKÉHO DOTAZU

Vypište služební cesty se zahájením v zadaném datu či později. Vypisujte dle zadání dotazu cesty zaměstnanců oprávněných či neoprávněných fakturovat.

− Parametr Zadejte oprávnění musíme zadávat ve tvaru –1 (ano) nebo 0 (ne), což je nevhodné. Chceme umožnit zadávání ve tvaru ano nebo ne, dále chceme zamezit, abychom nezadali datum či oprávnění v nevhodném tvaru.

− Chceme tedy omezit datový typ parametrů. V návrhovém zobrazení dotazu klepneme do tlačítka Parametry ve skupině Zobrazit či skrýt. Zobrazíme dialogové okno Parametry dotazu, v němž do levého sloupce zapisujeme názvy parametrů, v pravém sloupci vybíráme datové typy parametrů (viz

Zobrazit či skrýt Parametrydotazu

obr. 4-5).

OBR. 4-5: DIALOGOVÉ OKNO PARAMETRY DOTAZU

− Když nyní spustíme dotaz, nedovolí nám Access zapsat do data nevhodný text. − Na parametry jsme dotazováni v jejich pořadí dle tabulky parametrů. − Zadáme-li nevhodnou hodnotu (např. datum 30. 2.), Access zobrazí hlášení Zadaná hodnota

není pro toto pole platná. − V dialogovém okně parametru Zadejte oprávnění musíme vyplnit ano (popř. True, Zapnuto,

–1) nebo ne (popř. False, Vypnuto, 0).

4.6 Křížové dotazy

DOTAZ P46A POČTY LIDÍ DLE POHLAVÍ A ODDĚLENÍ: SOUHRN TABULKY DLE DVOU POLÍ

Zjistěte, kolik je mužů a kolik žen je v jednotlivých odděleních.

Podniky Faktury Licence Programy (0 – 6 vět, např. pro BON, 47 3 věty)

P45c Cesty od zadaného data

Personal Výjezdy Cesty (např. pro nejstarší datum 1. 3. 2009 a oprávnění ano: 24 vět) Mezi Personal a Výjezdy nutno upravit typ spojení (volit typ 1)

P46a Počty lidí dle pohlaví a oddělení Personal (11 vět)

Page 88: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 88

− Vytvořili jsme běžný výběrový souhrnný dotaz známý z kap. 4.4. V sloupci E_mail zadáme

do Souhrnu hodnotu Count. (Zjišťujeme počet vyplněných polí E_mail, které jsou jistě u každého zaměstnance vyplněné, neboť se jedná o primární klíč tabulky Personal.) Výsledek je poměrně nepřehledný. Pro každé pohlaví je uvedeno ve výsledku tolik řádků, na kolika odděleních se vyskytuje (viz obr. 4-6).

OBR. 4-6: VÝSLEDKY VÝBĚROVÉHO SOUHRNNÉHO DOTAZU

DOTAZ P46B KŘÍŽOVÁ TABULKA LIDÍ: KŘÍŽOVÝ DOTAZ S BĚŽNÝM POŘADÍM SLOUPCŮ

Sestavte křížovou tabulku počtu zaměstnanců, v níž v řádcích budou pohlaví a ve sloupcích oddělení zaměstnanců.

Sledování tabulky podle změny dvou polí je velmi častým způsobem analýzy. Access nabízí uspořádání výsledku do tzv. křížové tabulky. Křížová tabulka je obdobou kontingenční tabulky (viz kap. 3.5). V řádcích jsou uvedeny varianty hodnot jednoho pole, ve sloupcích varianty hodnot jiného pole.

Křížovou tabulku vytvoříme křížovým dotazem: − Vytvoříme nový dotaz, v němž použijeme tabulku Personal. − Klepneme do tlačítka Křížový ve skupině Typ dotazuu. Typ dotaz− Názvy řádků návrhové mřížky se přizpůsobily novému typu dotazu. Místo řádku Zobrazit se

vypisuje řádek Křížová tabulka, který je předsunut před řádek Řadit.

− Běžným způsobem přidáme do návrhové mřížky pole Pohlaví, Oddělení a E_mail. V řádku

Souhrn se automaticky nastavuje Seskupit. V sloupci E_mail zadáme do Souhrnu hodnotu Count.

− V řádku Křížová tabulka: • K jednomu či více polím zadáváme Hlavička řádku. • K právě jednomu poli zadáváme Hlavička sloupce.90 • K právě jednomu poli, které bude vyhodnoceno v křížové tabulce, zadáme Hodnota.

− Ve výsledku (viz obr. 4-7) jsou uvedeny hlavičky řádků (Pohlaví) v pořadí, jak se vyskytovaly v podkladové tabulce. Jejich řazení můžeme ovlivnit zadáním hodnoty v řádku Řadit. Hlavičky sloupců (Oddělení) jsou seřazeny v abecedním nebo číselném pořadí.

OBR. 4-7: VÝSLEDKY KŘÍŽOVÉHO DOTAZU

90 Křížový dotaz může obsahovat několik hlaviček řádků, ale jen jednu hlavičku sloupce. Chceme-li, aby dotaz

obsahoval více hlaviček sloupců a jednu hlavičku řádků, upravíme konstrukci tak, aby pole původně vybraná do sloupců byla uvedena v řádku a naopak pole původně vybrané do řádku bude uvedeno ve sloupcích.

P46b Křížová tabulka lidí

Křížový dotaz

Personal (2 věty)

Page 89: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 89

− Pokud v návrhové mřížce bylo uvedeno více hlaviček řádků, ve výsledku by hlavička řádků

byla zobrazena v několika sloupcích. Např. v našem příkladu bychom mohli požadovat výpis nejen dle pohlaví a oddělení, ale dle pohlaví, úvazku (řádek) a oddělení (sloupec).

− Klepneme pravým tlačítkem do titulku navigačního podokna. Z místní nabídky vybereme ZPŮSOB ŘAZENÍ a zadáme NÁZEV tak, aby různé druhy dotazů byly řazeny v pořadí jejich názvů, nikoliv typů.

DOTAZ P46C ŘAZENÁ ODDDĚLENÍ: KŘÍŽOVÁ TABULKA SE ZADANÝM POŘADÍM SLOUCŮ

Sestavte křížovou tabulku počtu zaměstnanců, v níž v řádcích budou pohlaví a ve sloupcích oddělení zaměstnanců, sloupce jsou uvedeny v pořadí RED, ANA, PRG, REK, DIS, KON.

− Návrhová mřížka je stejná jako v předchozím dotazu. − Klepneme do tlačítka Seznam vlastností ze skupiny Zobrazit či skrýtt. Zobrazit či skrý− Do vlastnosti Hlavičky sloupců můžeme dopsat vlastní pořadí hodnot pole ve sloupcích.

Jednotlivé hodnoty pole oddělujeme středníky. Pokud na některou hodnotu zapomeneme, nebude uveden její sloupec ve výsledku. Toho můžeme využít k omezení počtu sloupců výsledku.

− Do vlastnosti Hlavičky sloupců zapíšeme hodnotu RED;ANA;PRG;REK;DIS;KON.

DOTAZ P46D PRODEJE DLE PROGRAMŮ A MĚSÍCŮ: KŘÍŽOVÁ TABULKA S VÝRAZEM V HLAVIČCE

Sestavte křížovou tabulku počtu prodejů programů, v níž v řádcích budou programy a ve sloupcích měsíce prodeje.

− Sloupec nadepsaný ve výsledku <> by případně zastupoval věty s nevyplněným polem

Datum.

DOTAZ P46E TRŽBY DLE PROGRAMŮ A MĚSÍCŮ: KŘÍŽOVÁ TABULKA VYCHÁZEJÍCÍ Z VÍCE TABULEK

Sestavte křížovou tabulku tržeb z prodejů programů, v níž v řádcích budou programy včetně jejich názvů a ve sloupcích měsíce prodeje. Doplňte součtový řádek.

− Klepnutím do tlačítka Souhrny v kartě Domů v zobrazení datové listu můžeme doplnit řádek souhrnů a pro všechny měsíce vybrat Součet.

− Po uložení a dalším otevření dotazu nebude řádek součtů zobrazen. Stačí však již jen klepnout do tlačítka Souhrny a zobrazí se součty tržeb za jednotlivé měsíce.

DOTAZ P46F PRŮMĚRNÉ DÉLKY CEST: FORMÁT VÝSLEDKU DOTAZU

Vypočtěte průměrnou délku služební cesty dle pohlaví a dle oprávnění fakturovat.

− Sloupce jsou ve výsledku nadepsány –1 (oprávnění zaměstnanci) a 0 (neoprávnění zaměstnanci). Do vlastnosti dotazu doplníme do řádku Hlavičky sloupců hodnoty “ano“; “ne“ (včetně uvozovek).

− Průměrná délka se vypisuje ve formě desetinného čísla. Zobrazíme vlastnosti. Klepneme do kteréhokoliv řádku sloupce Délka a vybereme v poli Formát hodnotu pevný. Ve výsledku se nyní vypisuje průměrná délka s přesností na dvě desetinná místa.

P46c Řazená oddělení

Pořadí sloupců

P46d Prodeje dle programů a měsíců

Faktury Licence (6 vět)

P46e Tržby dle programů a měsíců

Faktury Licence Programy (6 vět)

P46f Průměrné délky cest

Personal Výjezdy Cesty (2 věty) Mezi Personal a Výjezdy nutno upravit typ spojení (volit typ 1)

Formát výsledného pole

Page 90: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 90

− Pokud bychom chtěli zobrazit výsledek např. s přesností na tři desetinná místa, zapsali

bychom do vlastnosti Formát hodnotu ,000.91

4.7 Akční dotazy Dotazy, které jsme zatím navrhovali, vytvářely sady záznamů, a to buď dynamické

sady (můžeme aktualizovat jejich obsah) nebo snímky (nelze je aktualizovat, např. výsledky křížových dotazů). Jednalo se o výběrové a křížové dotazy. Typ dotazu se pro přehlednost zobrazuje symbolickým obrázkem před názvem dotazu v navigačním podokně. Např. křížové dotazy mají jiný obrázek než výběrové dotazy. Protikladem těchto dotazů jsou akční dotazy, které ovlivňují přímo tabulky. Dle výsledného působení můžeme akční dotazy dále rozdělit na: − Vytvářecí dotazy tvoří místo sady vět novou tabulku, popř. přepíší stávající tabulku novou

tabulkou. − Aktualizační dotazy provádějí změny přímo v tabulce či skupině tabulek, k nimž chystáme

dotaz. − Odstraňovací dotazy odstraní z tabulky věty dle zadaných podmínek. − Přidávací dotazy přidají do tabulky věty z jiné tabulky či skupiny tabulek.

Akční dotazy lze provádět jen při vhodném nastavení Centra zabezpečení92. Vzhledem k závažnosti změn prováděných akčními dotazy jsme navíc před jejich provedením varováni.93 Toto varování se však nezobrazuje, pokud akční dotaz spouštíme z návrhu dotazu.

DOTAZ P47A TVORBA PRODEJE DIS: VYTVÁŘECÍ DOTAZ

Vytvořte tabulku Prodeje DIS, v níž bude přehled prodejů fakturovaných oddělením DIS (distribuce). Pro každý prodej uveďte všechna pole z tabulky Faktury, značku programu, sériové číslo licence, cenu a název programu.

− Zahájíme návrh nového dotazu. Přidáme postupně tabulky Personal, Faktury, Licence, Programy.

− Klepneme do tlačítka Vytvořit tabulku ze skupiny Typ dotazuu. Typ dotaz− Zobrazí se dialogové okno Vytvořit tabulku (viz Vytvořit tabulku obr. 4-8). Z obsahu dialogového okna je

patrné, že novou tabulku můžeme vytvořit v jiné databázi. My však vystačíme s aktuální otevřenou databází. Zadáme název nové (či vybereme název stávající přepisované) tabulky Prodeje DIS.

OBR. 4-8: DIALOGOVÉ OKNO VYTVOŘIT TABULKU

− V návrhové mřížce definujeme strukturu nově vytvořené tabulky.

− Na rozdíl od výběrových a křížových dotazů se u akčních dotazů liší zobrazení (kontrola)

v datovém listu a spuštění dotazu: • Klepneme-li do tlačítka Zobrazení, zobrazí se vytvářené (popř. měněné, odstraňované,

přidávané) věty v zobrazení datového listu. K žádným úpravám v tabulkách nedochází. Můžeme tak nezávazně zkontrolovat funkci dotazu.

91 Hodnota vlastnosti Formát se po uložení návrhu dotazu pamatuje, není však ve vlastnosti po dalším otevření návrhu

zobrazena. 92 Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Access. Dále v kartě Centrum zabezpečení klepneme

do tlačítka Nastavení Centra zabezpečení. V kartě Nastavení maker vybereme volbu Povolit všechna makra. 93 Varování lze potlačit klepnutím do tlačítka Office a tlačítka Možnosti aplikace Access v kartě Upřesnit v sekci

ÚÚpprraavvyy v části Potvrzení zrušením zaškrtnutí pole Akční dotazy.

Akční dotazy Typy dotazů:

výběrové

křížové

vytvářecí

aktualizační

odstraňovací

přidávací

P47a Tvorba Prodeje DIS

Vytvářecí dotaz

Prodeje DIS

Personal Faktury Licence Programy (106 vět)

Kontrola dotazu a spuštění

Page 91: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 91

• Klepneme-li do tlačítka Spustit, provede se dotaz, tj. vytvoří se nová tabulka (popř. se

upraví obsah tabulek). − Klepneme do tlačítka Spustit, vytvoří se nová tabulka Prodeje DIS. Pokud již tabulka

existuje, Access nás upozorní, že původní tabulku nejprve odstraní. Název vytvářené tabulky se ukládá s návrhem dotazu jako jedna z vlastností dotazu, kterou můžeme později upravit (vlastnost Cílová tabulka).

− Vytvořená tabulka není v aktivní vazbě k původním tabulkám. Např. změnou cen v tabulce Programy by se neaktualizovala automaticky tabulka Prodeje DIS. Vytvořená tabulka se aktualizuje až znovuspuštěním vytvářecího dotazu, který původně vytvořenou tabulku přepíše. Vytvářecí dotazy proto využíváme jen výjimečně v následujících případech: • Tvoříme záložní kopii tabulky. • Tvoříme tabulku historie, která obsahuje staré záznamy. (Staré záznamy potom odstraníme

z původní tabulky odstraňovacím dotazem.) • Chceme zaznamenat stav tabulky k přesnému okamžiku. Tento stav nechceme aktualizovat

pozdějšími změnami. (Např. bychom mohli chtít vytvořit seznam zaměstnanců k určitému datu.)

• Jak uvidíme v dalších kapitolách, na základě výsledků dotazů můžeme navrhovat formuláře a sestavy. Urychlení práce se sestavami lze také dosáhnout vytvořením podkladové tabulky vytvářecím dotazem. Např. když chceme vytisknout více sestav, které vycházejí ze složitějšího dotazu obsahujícího souhrny za objemné tabulky. Data v tabulce vytvořené vytvářecím dotazem jsou však „zmrazena“ až do doby dalšího spuštění vytvářecího dotazu.

DOTAZ P47B BONITA 2009: AKTUALIZAČNÍ DOTAZ

V tabulce Prodeje DIS změňte název programu Bonita na název Bonita 2009.

− Zahájíme návrh nového dotazu. Přidáme tabulku Prodeje DIS. − Klepneme do tlačítka Aktualizovat ve skupině Typ dotazuu. Návrhová mřížka se upravila.

Místo řádků Řadit a Zobrazit je uveden řádek Aktualizovat do. Definujeme, která pole aktualizujeme (řádek Pole a Tabulka), definujeme nový obsah pole (řádek Aktualizovat do), změnu můžeme omezit na část vět danou kritériem (řádek Kritéria).

Typ dotaz

− Dopad dotazu je vhodné zkontrolovat zobrazením datového listu. V datovém listu se

nezobrazuje nový obsah měněného pole, ale původní obsah, který bude dotazem změněn. Po spuštění dotazu jsme před provedením aktualizace seznámeni s počtem aktualizovaných vět. Tlačítkem Ne můžeme potlačit dokončení dotazu. Tlačítkem Ano vydáme souhlas k aktualizaci.

DOTAZ P47C ZMĚNA NÁZVU PROGRAMŮ: AKTUALIZAČNÍ DOTAZ DLE DAT Z JINÉ TABULKY

V tabulce Prodeje DIS změňte názvy programů dle názvů v tabulce Programy.

− Do nového dotazu přidáme tabulky Prodeje DIS a Programy. Tabulky jsou propojeny automaticky polem Program. Řádek Aktualizovat do nejsnáze vyplníme pomocí Tvůrce výrazů (výběrem pole Program_v ze struktury tabulky Programy).

DOTAZ P47D ODSTRANĚNÍ STARŠÍCH PRODEJŮ: ODSTRAŇOVACÍ DOTAZ DLE POLE Z REDUKOVANÉ TABULKY

Z tabulky Prodeje DIS odstraňte věty o prodejích realizovaných před 1. 4. 2009.

− Zahájíme návrh nového dotazu. Přidáme tabulku Prodeje DIS. − Klepneme do tlačítka Odstranit ze skupiny Typ dotazuu. Návrhová mřížka se upravila. Místo řádků Řadit a Zobrazit je uveden řádek Odstranit. Pokud je podokně Diagram uvedena

Typ dotazDiagram

P47b Bonita 2009

Aktualizační dotaz

Prodeje DIS (32 vět)

P47c Změna názvu programů

Prodeje DIS Programy (106 vět)

P47d Odstranění starších prodejů Odstraňovací dotaz

Page 92: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 92

jediná tabulka, nemusíme definovat, ze které tabulky chceme odstranit věty. Definujeme-li kritérium odstraňování vět, uvedeme do řádku Odstranit slovo Kde.

− Mřížky před a za konstantu typu Datum a čas doplnil v kritériu Access sám. − Před ukončením dotazu jsme informováni o počtu odstraňovaných vět. Teprve po klepnutí do

tlačítka Ano dojde k odstranění vět.

DOTAZ P47E ODSTRANĚNÍ RŮSTOVÝCH PRODEJŮ: ODSTRAŇOVACÍ DOTAZ DLE POLE Z JINÉ NEŽ REDUKOVANÉ TABULKY

Z tabulky Prodeje DIS odstraňte prodeje fakturované podnikům ve stadiu růst.

− Pokud je v návrhu odstraňovacího dotazu použito více tabulek, musíme přetažením hvězdičky ze struktury redukované tabulky do návrhové mřížky vyznačit, ze které tabulky chceme odstraňovat věty splňující kritéria. V tomto sloupci návrhové mřížky je v řádku Odstranit uvedeno slovo From.94

DOTAZ P47F PŘIDÁNÍ STARŠÍCH PRODEJŮ: PŘIDÁVACÍ DOTAZ DLE POLE Z ROZŠIROVANÉ TABULKY

Do tabulky Prodeje DIS přidejte prodeje fakturované před 1. 4. 2009 a realizované oddělením DIS.

− Přidávací dotaz je obdobou vytvářecího dotazu. Netvoří však tabulku, ale přidává věty do stávající tabulky.

− Náš přidávací dotaz je podobný vytvářecímu dotazu P47a. V seznamu objektů kurzor přemístíme na P47a Tvorba prodeje DIS, stiskneme kombinaci kláves Ctrl C. Dále stiskneme kombinaci kláves Ctrl V a doplníme název dotazu P47f Přidání starších prodejů. Klepneme pravým tlačítkem na dotaz P47f a vybereme z místní nabídky NÁVRHOVÉ ZOBRAZENÍ.

− V přidávacím dotazu musíme nahradit sloupec Faktura.* čtyřmi poli tabulky Faktura. − Klepneme do tlačítka Připojit ze skupiny Typ dotazuu. Objeví se dialogové okno Přidat (je

obdobné jako v Typ dotaz Přidat

obr. 4-8). Vybereme tabulku Prodeje DIS, do níž budeme připojovat nové věty.

− V návrhové mřížce upřesňujeme, jaká pole z výsledku dotazu (řádek Pole a Tabulka) se

použijí k naplnění polí v cílové tabulce (řádek Přidat do). Pokud se v cílové tabulce vyskytují názvy polí z výsledku dotazu, Access sám řádek Přidat do vyplní (v našem případě všechna pole). Do návrhové mřížky doplníme kritérium pole Oddělení a Datum, abychom přidali pouze věty dříve odstraněných prodejů. Spuštěním dotazu se do dříve zadané tabulky doplní nové věty. Název rozšiřované tabulky se ukládá s návrhem dotazu jako jedna z vlastností dotazu (vlastnost Cílová tabulka).

− Bilance počtu vět: po dotazu kritéria úbytek/přírůstek počet vět P47c výchozí stav 106 P47d (DIS,) <1.4.2009 –48 58 P47e (DIS, >=1.4.2009,) růst –23 35 P47f DIS, <1.4.2009 +48 83 P47g DIS, >=1.4.2009, růst +23 106

94 Pokud odstraňovací dotaz nefunguje, musíme jej vyzkoušet v kopii databáze, v níž odstraníme z tabulky Podniky

vícehodnotové pole NACE.

Prodeje DIS (48 vět)

P47e Odstranění růstových prodejů

Prodeje DIS Podniky (23 vět)

P47f Přidání starších prodejů

Přidávací dotaz

Personal Faktury Licence Programy (48 vět)

Page 93: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 93

DOTAZ P47G PŘIDÁNÍ RŮSTOVÝCH PRODEJŮ: PŘIDÁVACÍ DOTAZ DLE POLE Z JINÉ NEŽ ROZŠIŘOVANÉ TABULKY

Do tabulky Prodeje DIS přidejte prodeje fakturované podnikům ve stadiu růst.

− Přidávací dotaz je podobný předchozímu P47f. Nejprve zkopírujeme předchozí dotaz s novým názvem P47g Přidání růstových prodejů.

− V návrhu dotazu klepneme do tlačítka Zobrazit tabulku ze skupiny Nastavení dotazuu a ze seznamu tabulek přidáme do podokna Diagram dotazu tabulku Podniky. Do návrhové mřížky doplníme pole Stadium, v němž definujeme kritérium růst. Do pole Datum musíme přidat kritérium opačně než v předchozím dotazu, abychom dvakrát nepřidávali věty o prodejích podnikům stadia růst fakturované před 1. 4. 2009.

Nastavení dotazDiagram

− Pro pole Stadium se nevyplnil řádek Přidat do, což je v souladu s tím, že tato pole

nepřidáváme do výsledné tabulky Prodeje DIS.

4.8 Jazyk SQL Dotazování prostřednictvím návrhové mřížky je velmi pohodlné. V databázových

systémech se pro tvorbu dotazů využívá často jazyk SQL (Structured Query Language – strukturovaný dotazovací jazyk). Každý dotaz vytvořený Accessem má přiřazeny příkazy SQL definující jeho akce. Příkazy jazyka SQL můžeme zobrazit v samostatném podokně, klepneme-li do tlačítka Zobrazení SQL ve skupině VVýýsslleeddkkyy v kartě NÁVRH nebo ve stavovém řádku.

Např. v obr. 4-9 je uveden předchozí dotaz v jazyce SQL. Při dobré znalosti jazyka SQL můžeme dotazovací příkazy psát či modifikovat v jazyce SQL.

OBR. 4-9: PŘIDÁVACÍ DOTAZ V JAZYCE SQL

Pomocí jazyka SQL můžeme vytvořit tři další typy dotazů, které nelze připravit pomocí návrhové mřížky: − Sjednocovací dotaz: Slučuje odpovídající pole z více než jedné tabulky do sady záznamů. − Předávací dotaz: Odesílá příkazy do databáze ODBC, např. Microsoft SQL server. − Definiční dotaz: Vytvoří nebo změní objekty databáze, např. tabulky. Ilustrujme si použití SQL na sjednocovacím dotazu.

DOTAZ P48A KÓDY: SJEDNOCOVACÍ DOTAZ

Vypište kódy a vysvětlivky oddělení i programů.

− Zahájíme návrh nového dotazu. Do okna Diagram nevybíráme žádnou tabulku. Klepneme do tlačítka SQL ve skupině Výsledkyy. Do prázdného okna napíšeme příkazy jazyka SQL a ukončíme je středníkem. Při psaní SQL kódu Access nerozlišuje malá a velká písmena, v případě jednoslovných názvů polí a tabulek není nutné psát hranaté závorky, všechny příkazy lze zapsat do jednoho řádku.

DiagramVýsledk

Vysvětlivky použitých vyhrazených slov: SELECT Oddělení, Oddělení_v SELECT: Zahájení výběrového příkazu. FROM Oddělení FROM: Upřesnění tabulky, z níž pole vybíráme. UNION SELECT Program, Program_v UNION SELECT: Připojení výběru z další tabulky. FROM Programy;

P47g Přidání růstových prodejů

Personal Faktury Licence Programy Podniky (23 vět)

Jazyk SQL

P48a Kódy

Sjednocovací dotaz

(12 vět)

Page 94: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 94

DOTAZ P48B SEŘAZENÉ KÓDY: SJEDNOCOVACÍ DOTAZ SE SEŘAZENÝM VÝSLEDKEM

Vypište kódy a vysvětlivky oddělení i programů. Sloupce správně nadepište Kód a Kód_v. Seznam vypište v seřazení dle vysvětlivek.

Vysvětlivky použitých vyhrazených slov: SELECT SELECT: Zahájení výběrového příkazu. Oddělení AS Kód, AS: Vybrané pole je v odpovědi přejmenováno. Oddělení_v AS Kód_v FROM Oddělení FROM: Upřesnění tabulky, z níž pole vybíráme.

UNION SELECT UNION SELECT: Připojení výběru z další tabulky. Program, Program_v FROM Programy ORDER BY Kód_v; ORDER BY: Definice řazení dle pole výsledku. − Vzhledem k tomu, že kódy jsou tvořeny prvními třemi znaky vysvětlivky, pořadí vět se

oproti předchozímu dotazu nezměnilo s výjimkou pořadí reklamy a ředitelství.

4.9 Kontingenční tabulka a graf z výsledků dotazu Obdobně jako tabulku můžeme datovou sadu, která je výsledkem výběrového dotazu:

− řadit a filtrovat, − zobrazit ve formě kontingenční tabulky nebo grafu.

DOTAZ P49A GRAF TRŽEB: KONTINGENČNÍ GRAF Z VÝSLEDKŮ DOTAZU

Zobrazte graficky tržby za jednotlivé programy v jednotlivých měsících.

− Nejprve připravíme jednoduchý podkladový dotaz.

− Klepneme do tlačítka Zobrazení kontingenční tabulky (ve skupině Výsledkyy nebo ve

stavovém řádku). Výsledk

− Ze seznamu polí postupně přesouváme vybraná pole: • do řádkového pole přesuneme pole Program_v, • do sloupcového pole přesuneme pole Měsíc, • do pole filtrů přesuneme pole Název_podniku, • do pole součtu nebo podrobných dat přesuneme pole Cena.

OBR. 4-10: KONTINGENČNÍ TABULKA Z VÝSLEDKU DOTAZU

− Do tabulky doplníme součty a potlačíme zobrazení dílčích cen dle obr. 4-10: • Klepneme do libovolné ceny, která se zobrazila v kontingenční tabulce, a klepneme do

tlačítka Automatický přepočet ze skupiny Nástrojee a vybereme SOUČET. Nástroj

P48b Seřazené kódy

Kontingenční tabulka a graf z dotazu

P49a Graf tržeb

Podniky Faktury Licence Programy (178 vět)

Page 95: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 95

• Kombinací kláves Ctrl A označíme celou kontingenční tabulku a klepneme do tlačítka

Skrýt podrobnosti ze skupiny Zobrazit či skrýtt. Zobrazit či skrý• Klepneme pravým tlačítkem myši do některého z názvů Součet z cena a výběrem volby

VLASTNOSTI z místní nabídky zobrazíme okno Vlastnosti, v němž v kartě Titulky opravíme pole Titulek na text Tržby. Zavřeme okno vlastností.

Vlastnosti

• Poklepáním na buňky s číslem měsíce se šedivým pozadím zúžíme šířku sloupců. − Klepneme do tlačítka Zobrazení kontingenčního grafu ve skupině Zobrazeníí. Zobrazen

OBR. 4-11: KONTINGENČNÍ GRAF Z VÝSLEDKU DOTAZU

− Kontingenční graf upravíme dle obr. 4-11: • Klepnutím označíme titulek popisu osy x a odstraníme jej stisknutí klávesy Delete .

Obdobně odstraníme titulek popisu osy y. • Klepnutím do tlačítka Legenda ve skupině Zobrazit či skrýt zobrazíme napravo od grafu

legendu s čísly měsíců. Zobrazit či skrýt

− Obdobně jako v kontingenčním grafu vytvořeném z tabulky můžeme omezit data zobrazená v grafu klepnutím do rozbalovacího tlačítka u slov Měsíc, Program_v, Název_podniku. Můžeme tak zobrazit pouze některé programy či některé měsíce. V případě podniku můžeme vybírat jednotlivé podniky či více podniků, pro něž zobrazíme tržby. Kdykoliv můžeme rozbalovací tlačítka potlačit a rychle tak zvětšit graf tlačítkem Oblasti přetažení ve skupině Zobrazit či skrýtt, které je přepínačem. Zobrazit či skrý

− Klepnutím do grafu a do tlačítka Změnit typ grafu ve skupině Typp můžeme zobrazit dialogové okno Vlastnosti, v němž můžeme upravit vlastnosti grafu:

TyVlastnosti

• V kartě Typ můžeme vybrat jiný typ grafu a v rámci něj v pravé části karty vybrat dílčí typ.

• V kartě Ohraničení a výplň můžeme změnit barvu, styl a tloušťku čáry ohraničující graf, dále typ výplně a barvu pozadí grafu.

• V kartě Obecný můžeme v poli Vybrat zvolit libovolnou část grafu a detailně ji parametrizovat. Po výběru části grafu se zobrazí upravené dialogové okno Vlastnosti se specifickými kartami. Částmi grafu jsou:

Vlastnosti

» Prostor grafu: celé podokno grafu, » Zobrazovaná oblast: část grafu, v níž se zobrazují hodnoty, je ohraničena osami, » Řádkové, sloupcové, součtové pole a pole filtrů: především barevné řešení tlačítek

oblasti přetažení, » Osy kategorií: formát zobrazení popisků osy x (kategorií) a osy hodnoty (y), » Názvy os kategorií: např. možnost znovu zobrazit název osy x a y, » Mřížka os: např. možnost zadat tloušťku a barvu mřížky, » Jednotlivé proměnné (1 – 6): např. možnost odlišit sloupce v grafu různými barvami. Při zobrazeném okně VVllaassttnnoossttii můžeme měnit části také klepnutím do příslušné části grafu.

Page 96: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 96

− Chceme, aby se dotaz zobrazoval prvotně vždy formou kontingenčního grafu, proto ve

vlastnostech dotazu v návrhovém zobrazení upravíme vlastnost dotazu Výchozí zobrazení na hodnotu Kontingenční graf. K jednomu dotazu (či tabulce) může být přiřazeno jen jedno výchozí zobrazení. Můžeme však vytvořit nový dotaz, který data bude čerpat data z předchozího dotazu či tabulky a pouze u něj upravit výchozí zobrazení.

DOTAZ P49B PROCENTA SLOUPCOVÉ HODNOTY: KONTINGENČNÍ TABULKA V PROCENTECH

Vypočtěte podíly tržeb za jednotlivé programy v jednotlivých měsících na celkovém prodeji v měsíci.

− Vyjdeme z předchozího dotazu. − Uložíme jej pod novým názvem a upravíme v návrhu vlastnost dotazu Výchozí zobrazení na

hodnotu Kontingenční tabulka.95 − V zobrazení kontingenční tabulky klepneme do kteréhokoliv políčka tabulky s tržbami za

jednotlivé programy v jednotlivých měsících. Ve skupině Nástrojee klepneme do tlačítka Zobrazit jako. Z nabídky vybereme Procento celkové hodnoty za sloupec.

Nástroj

− V tabulce se součty zobrazí v procentuálním vyjádření (viz obr. 4-12).

OBR. 4-12: PROCENTA V KONTINGENČNÍ TABULCE

DOTAZ P49C PROCENTA ŘÁDKOVÉ HODNOTY: SESKUPENÍ ŘÁDKŮ A SLOUPCŮ KONTINGENČNÍ TABULKY

Vypočtěte podíly tržeb za jednotlivé programy v jednotlivých měsících na celkovém prodeji jednotlivého programu ve čtvrtletí. Programy rozdělte do dvou balíků Analýzy a Jiné.

− Vyjdeme z předchozího dotazu. Seskupíme vybrané řádky a sloupce: • Klepneme do nadpisu měsíce 1 a potom s klávesou Shift do nadpisu měsíce 3 a klepneme

do tlačítka Skupina ze skupiny Výběryy. Výběr• Zobrazíme vlastnosti nadpisu Měsíc1 a v kartě Titulky změníme titulek na Čtvrtletí.

Obdobně změníme nadpis Skupina1 na 1. čtvrtletí a nadpis Jiné na 2. čtvrtletí. • Klepneme do nadpisu programu Finanční analýza a potom s klávesou Ctrl do nadpisu

Kauzální analýza. Oba programy seskupíme a skupinu nazveme Analýzy. Skupinu zbývajících programů ponecháme nazvanou Jiné. Nadpis Program_v1 změníme na Balík.

− Data v tabulce můžeme nyní (tlačítkem Zobrazit jako ze skupiny Nástrojee) zobrazit jako: Nástroj

• normální: tabulka je v absolutních hodnotách (viz obr. 4-10), • procento hodnoty za řádek: procentuální podíl prodeje programu za měsíc na prodeji

tohoto programu za pololetí, • procento hodnoty za sloupec: procentuální podíl prodeje programu v měsíci na prodeji

všech programů v tomto měsíci (viz obr. 4-12), • procento položky nadřazeného řádku: procentuální podíl prodeje programu v měsíci na

prodeji programů stejného balíku v tomto měsíci, • procento položky nadřazeného sloupce: procentuální podíl prodeje programu za měsíc na

prodeji tohoto programu za čtvrtletí (viz obr. 4-13), tuto možnost vybereme, • procento celkového součtu: procentuální podíl prodeje programu za měsíc na prodeji všech

programů za pololetí.

95 Díky vhodně nastavené vlastnosti Výchozí zobrazení se také nabízí vhodné tlačítko Zobrazení ve skupině VVýýsslleeddkkyy.

P49b Procenta sloupcové hodnoty

Kontingenční tabulka v procentech

P49c Procenta řádkové hodnoty

Seskupení řádků a sloupců kontingenční tabulky

Page 97: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 97

OBR. 4-13: SKUPINOVÁ PROCENTA V KONTINGENČNÍ TABULCE

− Skupinu můžeme sbalit či rozbalit tlačítkem – či + nalevo od názvu skupiny nebo klepnutím

do názvu skupiny a do tlačítka Sbalit pole či Rozbalit pole ze skupiny Aktivní polee. Aktivní pol

DOTAZ P49D TRŽBY ZA 2 PROGRAMY: ŘAZENÍ A FILTROVÁNÍ V KONTINGEČNÍ TABULCE

Zobrazte tržby za jednotlivé programy v jednotlivých měsících za dva programy s nejvyššími celkovými tržbami.

− Vyjdeme z dotazu P49a. Uložíme jej pod novým názvem a upravíme v návrhu vlastnost dotazu Výchozí zobrazení na hodnotu Kontingenční tabulka.

− Klepneme do libovolného součtu cen v sloupci pololetních součtů za jednotlivé programy. Klepnutím do tlačítka Sestupně ze skupiny Filtrovat a řaditt seřadíme řádky dle hodnoty součtů od nejvyšší k nejnižší hodnotě. Klepnutím do stejného tlačítka bychom mohli řazení potlačit. Takto můžeme řadit i dle tržeb za jednotlivé programy v jednotlivém měsíci (opět řazení řádků) či za součty za měsíce (řazení sloupců).

Filtrovat a řadi

− My však nechceme řádky jen řadit, chceme zobrazit pouze řádky dvou programů s nejvyššími tržbami. Opět klepneme do libovolného součtu cen v sloupci pololetních tržeb. Klepneme do tlačítka Zobrazit horní nebo dolní ze skupiny Filtrovat a seřadit, z nabídky vybereme ZOBRAZIT POUZE PRVNÍ, 2. Zobrazí se řádky pouze dvou programů s nejvyššími pololetními tržbami.

Filtrovat a seřadit

96 Také součtový řádek tržeb za všechny programy bude uveden pouze za tyto dva programy.

− Klepnutím do tlačítka Automatický filtr ve skupině Filtrovat a seřaditt můžeme filtr potlačit, popř. znovu zapnout. Takto můžeme filtrovat i dle tržeb za jednotlivé programy v jednotlivém měsíci (opět potlačení zobrazení některých řádků) či podle součtů za měsíce (potlačení zobrazení některých sloupců).

Filtrovat a seřadi

− Řazení i filtrování se projevuje i v zobrazení kontingenčního grafu, v němž můžeme klepnutím do tlačítka Automatický filtr ve skupině Filtrovat a seřaditt potlačit filtr, popř. znovu zapnout.

Filtrovat a seřadi

− Ve filtrované či nefiltrované kontingenční tabulce můžeme potlačit zobrazení součtového řádku a součtového sloupce, když klepneme do řádkového (Program_v) či sloupcového (Měsíc) pole a klepneme do tlačítka Souhrn ve skupině Nástrojee. Stejným tlačítkem můžeme součtový řádek či součtový sloupec opět zobrazit. Např. v kontingenční tabulce v

Nástrojobr. 4-14

bylo po filtrování potlačeno zobrazení součtového řádku a součtového sloupce.

OBR. 4-14: FILTROVANÁ KONTINGENČNÍ TABULKA BEZ SOUČTŮ

96 Pokud zobrazíme vlastnosti libovolného řádkového součtu a změníme v kartě Filtr a seskupování pole Založeno na

na hodnotu Seřadit ve zdroji dat, budou vybrány první dva programy bez ohledu na jejich celkovou tržbu.

P49d Tržby za 2 programy

Řazení a filtrování v kontingenční tabulce

Page 98: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 98

DOTAZ P49E TRŽBY V BŘEZNU A DUBNU: AUTOMATICKÝ PŘEPOČET

V kontingenční tabulce zobrazte za březen a duben (sloupce) pro jednotlivá stadia podniků (řádky) tržby za programy prodané jednotlivému typu podniků v daném měsíci a maximální cenu programu prodaného jednotlivému typu podniků v jednotlivém měsíci.

− Vyjdeme z dotazu P49a. Uložíme jej pod novým názvem a upravíme v návrhu vlastnost dotazu Výchozí zobrazení na hodnotu Kontingenční tabulka.

− Odstraníme řádkové pole Program_v tažením jeho názvu mimo kontingenční tabulku např. na karty. Zobrazíme Seznam polí klepnutím do tlačítka Seznam polí ze skupiny Zobrazit či skrýtt. Ze seznamu polí přetáhneme do oblasti řádkových polí pole Stadium.

Zobrazit čiskrý

− Kombinací kláves Ctrl A označíme celou kontingenční tabulku a klepneme do tlačítka Zobrazit podrobnosti ze skupiny Zobrazit či skrýt. Klepneme do libovolné ceny za jeden program. Dále klepneme do tlačítka Automatický přepočet ze skupiny Nástrojee a ze seznamu funkcí (Součet, Počet, Minimum, Maximum, Průměr, Směrodatná odchylka, Rozptyl, Směrodatná odchylka základního souboru, Rozptyl základního souboru) vybereme MAXIMUM. Opět označíme celou kontingenční tabulku a klepneme do tlačítka Skrýt podrobnosti ze skupiny Zobrazit či skrýtt.

Zobrazit či skrýtNástroj

Zobrazit či skrý− Ve vlastnostech pole Maximum z Cena opravíme v kartě Titulky titulek na Maximum.

Rozbalíme seznam měsíců (klepnutím do rozbalovacího tlačítka vedle názvu pole Měsíc) a vybereme pouze březen a duben (viz obr. 4-15).

OBR. 4-15: SOUČET A MAXIMUM V KONTINGENČNÍ TABULCE

− Výsledek většiny kontingenčních tabulek lze exportovat do Excelu. Klepnutím do tlačítka

Exportovat do aplikace Excel ze skupiny Dataa se vytvoří v novém sešitu Excelu list s podkladovými daty kontingenční tabulky (List2) a list s kontingenční tabulkou (List1).

Dat

DOTAZ P49F DÉLKA CEST: VYPOČTENÉ CELKOVÉ HODNOTY A POLE

V kontingenční tabulce zobrazte zahájení a dokončení cest do jednotlivých míst v jednotlivých čtvrtletích. Vypočtěte délku jednotlivých cest, celkovou délku cest vyjádřenou ve dnech i hodinách.

− Připravíme nový dotaz vycházející ze všech polí tabulky Cesty a kontingenční tabulku: • Do řádkového pole kontingenční tabulky přetáhneme ze seznamu polí pole Místo. • Do sloupcového pole přetáhneme pole nazvané Zahájení po měsících. • Do pole podrobných dat přetáhneme pole Zahájení a Dokončení.

− Do kontingenční tabulky chceme doplnit délku cesty. Klepneme do tlačítka Vzorce ze skupiny Nástrojee. Z dílčí nabídky vybereme VYTVOŘIT VYPOČTENÉ POLE PODROBNÝCH DAT. Nástroj

− V dialogovém okně Vlastnosti v kartě Přepočet vybereme z rozbalovacího seznamu polí pole Dokončení a klepneme do tlačítka Vložit odkaz. Do vzorce v horní části dialogového okna zapíšeme minus a vložíme pole Zahájení. V poli Název opravíme název z Výpočtové na Délka a klepneme do tlačítka Změnit (viz

Vlastnosti

obr. 4-16). − Klepneme do názvu nového sloupce Délka, potom klepneme do tlačítka Automatický

přepočet ze skupiny Nástroje a vybereme SOUČET. Do kontingenční tabulky se tak doplní součty délky cest do jednotlivých míst.

Nástroje

P49e Tržby v březnu a dubnu

Automatický přepočet

P49f Délka cest

Vypočtené celkové hodnoty a pole

Page 99: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 99

OBR. 4-16: ZADÁNÍ VÝPOČTU VYPOČTENÉHO POLE PODROBNÝCH DAT

− Roční součty chceme vyjádřit ve dnech i v hodinách. Předpokládáme, že cesta se začíná a

končí ve stejnou hodinu. Můžeme tedy spočítat délku cesty v hodinách jako délku ve dnech vynásobenou číslem 24. Klepneme do tlačítka Vzorce ze skupiny Nástrojee a vybereme VYTVOŘIT VYPOČTENOU HODNOTU CELKEM. V dialogovém okně Vlastnosti vložíme odkaz Součet z délka. Vloží se vzorec [Measures].[Součet1], který rozšíříme na vzorec [Measures].[Součet1]*24. Název nového součtu změníme z Nový součet na Hodin. Klepneme do tlačítka Změnit.

NástrojVlastnosti

− Klepneme do názvu součtu Součet z Délka a opravíme jej v dialogovém okně Vlastnosti na Dnů.

Vlastnosti

− Tažením názvu sloupce Hodin zaměníme pořadí sloupců Dnů a Hodin. Klepnutím do tlačítka + vedle označení roků 2009 zobrazíme součty dnů a hodin za jednotlivá čtvrtletí. V posledním sloupci je uveden součet za všechny roky, který je v našem případě shodný s údaji za náš jediný rok. Klepneme do sloupcového pole Roky a do tlačítka Souhrn ze skupiny Nástrojee, potlačíme tak zobrazení součtu za všechny roky. Nástroj

− Na závěr zobrazíme podrobnosti kontingenční tabulky. V tabulce vidíme dle zadání začátky a konce cest do jednotlivých míst dle čtvrtletí, jejich délky a celkové délky za čtvrtletí ve dnech i hodinách (viz obr. 4-17).

OBR. 4-17: VYPOČTENÉ CELKOVÉ HODNOTY A POLE

Page 100: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 4: Dotazy 100

Shrnutí 1. Dotazy dle jejich dopadu jsou výběrové (zobrazují data) a akční (provádí operace

s tabulkami). 2. Dotazy lze připravit v návrhovém zobrazení nebo přímo v dotazovacím jazyce SQL. 3. Výběrové dotazy vybírají z tabulky zadaná pole (omezujeme sloupce výsledku) vět, které

vyhovují zadaným kritériím (omezujeme řádky výsledku). 4. Dotazy připravujeme v Accessu metodou dotazování podle příkladu (QBE). Vybereme

tabulku či tabulky, z nichž čerpá dotaz data. Seznamy polí a relace vybraných tabulek jsou zobrazeny v podokně Diagram návrhového zobrazení dotazu. V podokně Mřížka je návrhová mřížka, do níž vybíráme z podokna Diagram pole tabulky či tabulek.

Diagram MřížkaDiagram

5. Výsledkem dotazu je sada záznamů. V dynamické sadě záznamů můžeme výsledky editovat, úpravy se promítají do zdrojových tabulek. Protikladem dynamických sad jsou výsledky ve formě snímků, které nelze aktualizovat, neboť neexistuje jednoznačný vztah řádku výsledku ke zdrojové tabulce.

6. Ve výsledcích můžeme potlačovat duplicitní věty prostřednictvím vlastnosti dotazu Jedinečné hodnoty.

7. Výsledky můžeme řadit podle v návrhové mřížce specifikovaných polí. Pole užité jako kritérium řazení nemusí být ve výsledku zobrazeno.

8. Kritéria výběru záznamů ve výsledku mohou být zadána konstantou, tj. hodnotou, kterou požadujeme. Mohou být zadána také výrazem.

9. Ve výrazech kritérií lze použít řadu operátorů, především: − Or: alternativa výběru (lze ji často zadat rozepsáním kritérií do několika řádků), − And: konjunkce výběru (naplnění kritérií různých polí ve stejném řádku je také chápáno

jako konjunkce), − >, <, >=, <=: relační operátory, za nimiž přímo následuje mezní hodnota, − *: zástupný znak pro libovolný počet znaků, − ?: zástupný znak pro právě jeden libovolný znak, − Not (<>): nerovnost zadané konstantě či výrazu, − Null: prázdný obsah pole (většinou bývá nutné doplnit na podmínku Null or ““), − Between: přehlednější náhrada konjunkce >= And <=.

10. Ve výrazech lze použít řadu funkcí, např.: − Month: měsíc z pole typu Datum a čas, − DatePart: výběr časti pole typu Datum a čas, − Format: převádí hodnotu pole na jiný formát (funguje nejen pro pole Datum a čas), − Left, Right, Mid: části textového pole, − HyperLinkPart: část hypertextového odkazu.

11. Tvorbu složitějších výrazů usnadňuje Tvůrce výrazů. 12. Dotaz může spojovat data z více tabulek propojených vhodnými relacemi. 13. V podokně Diagram se může stejná tabulka vyskytovat vícekrát. Diagram14. Podkladem dotazu mohou být nejen tabulky, ale také výsledky předchozích dotazů. 15. V dotazech lze provádět výpočty za jednotlivé věty (např. sčítání polí) či za skupiny vět

(tzv. souhrny). 16. Parametrický dotaz umožňuje zadat výběrová kritéria při spouštění dotazu vyplněním

parametrů v dialogových oknech. 17. V křížové tabulce jsou v řádcích uvedeny varianty hodnot jednoho pole (či více polí), ve

sloupcích varianty hodnot jiného pole, uvnitř tabulky je vyhodnoceno třetí pole. 18. Akční dotazy ovlivňují na rozdíl od výběrových a křížových dotazů přímo obsah tabulek.

Dle výsledného působení je rozdělujeme na vytvářecí, aktualizační, odstraňovací, přidávací. 19. Pomocí jazyka SQL můžeme vytvořit další typy dotazů nedostupné v návrhové mřížce. 20. Výsledky dotazů lze zobrazovat formou kontingenčních tabulek a kontingenčních grafů. 21. V kontingenční tabulce můžeme uvádět procentuální hodnoty součtů vztažené k součtu

řádků, sloupců či jejich seskupení. 22. V kontingenční tabulce můžeme zobrazovat vybranou část řádků či sloupců. Omezení lze

provést výběrem hodnot či filtrací dle velikosti zobrazované hodnoty. 23. Do kontingenční tabulky lze doplnit dopočtená pole. Výpočet lze provést pro podrobnosti

tabulky či pro součty. 24. Kontingenční tabulku je možné exportovat do MS Excelu.

Page 101: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 101

5. Formuláře

5.1 Druhy formulářů Dalším objektem po tabulkách a dotazech je formulář. Formulář usnadňuje uživateli

zadávání, úpravu a zobrazování dat z tabulky či dotazu. Umožňuje také data vytisknout, k tisku slouží především jiný objekt – sestavy.

Na rozdíl od zobrazení datového listu tabulek či dotazů nemusíme zobrazovat všechna pole97. Pole nemusí být zobrazena v jediném řádku, do formuláře lze přidat tlačítka a doplnit další prvky automatizace často prováděných akcí formou reakce na události (např. makro či podprogram při otevření formuláře).

Dle počtu vět ve formuláři lze rozdělit formuláře na druhy: − Samostatný formulář na rozdíl od zobrazení datového listu zobrazuje pouze data jediné věty,

např. personální údaje o jednom zaměstnanci. Samostatný formulář vytvoříme snadno, když: • V navigačním podokně klepnutím označíme příslušnou tabulku či dotaz. • V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Formulář. Formulář

Další druhy formulářů jsou kompromisem mezi zobrazením datového listu a formuláře: − Rozdělený formulář: Kromě formuláře je zobrazen datový list podkladové tabulky či dotazu

za účelem snadného hledání vět. Datový list může být zobrazen pod, nad, napravo či nalevo od formuláře.

− Nekonečný formulář: Věty jsou zobrazeny formou tabulky. V řádku tabulky může však být více dílčích řádků polí, lze přidat tlačítka a obrázky.

Formulář lze zobrazit několika zobrazeními98: − Formulářové zobrazení: Zobrazení, v němž lze používat formulář, nelze v něm provádět

změny návrhu, např. rozšiřovat pole. − Zobrazení rozložení: Zobrazení, v němž lze provádět řadu změn návrhu formuláře.

V zobrazení rozložení jsou při úpravách formuláře zobrazena data, zobrazení je tak vhodné např. při nastavení velikosti polí.

− Návrhové zobrazení: Zobrazení, v němž nejsou zobrazena data, lze v něm provádět veškeré změny návrhu, mj.: • Jsou zobrazeny sekce (oddíly) Záhlaví, Tělo a Zápatí, lze měnit jejich velikost. • Lze měnit zásadní vlastnosti formuláře, např. Výchozí zobrazení. • Lze přidat do formuláře další ovládací prvky, např. popisky, obrázky, čáry. • Lze upravit zdroje ovládacích prvků.

− Zobrazení datového listu: Zobrazení podkladové tabulky či dotazu ve formě datového listu. − Zobrazení kontingenční tabulky: Zobrazení dat podkladové tabulky či dotazu ve formě

kontingenční tabulky. − Zobrazení kontingenčního grafu: Zobrazení dat podkladové tabulky či dotazu ve formě

kontingenčního grafu. Poslední tři zobrazení se využívají častěji pro tabulky či dotazy než pro formuláře.

Formulář se skládá z několika sekcí: − Záhlaví formuláře a Zápatí formuláře jsou zobrazeny v horním a dolním kraji formuláře.

V případě nekonečného formuláře jsou zobrazeny bez ohledu na věty zobrazené v těle formuláře. Pokud v nich uvádíme souhrny, jsou zobrazeny souhrny za všechna podkladová data, nejen za data zobrazená ve formuláři.

− Záhlaví stránky a Zápatí stránky se uplatňují jen při tisku formuláře, nejsou v běžných zobrazeních vidět.99

− Tělo obsahuje prvky vztahující se k jednotlivým větám.

97 V tabulce lze také skrýt vybraná pole. Skrytí a zobrazování skrytých polí může však uživatele zdržovat. Výběr polí

můžeme diferencovat v různých formulářích ke stejné tabulce. 98 Ve vlastnostech formuláře lze zamezit nabízení většiny zobrazení (formulářového zobrazení, zobrazení datového

listu, zobrazení kontingenční tabulky, zobrazení kontingenčního grafu, zobrazení rozložení). 99 Náhled tisku je možné prohlédnout klepnutí do tlačítka Office a příkazem TISK, NÁHLED.

Význam formulářů

Druhy formulářů

Zobrazení formuláře

Struktura formuláře

Page 102: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 102

Ovládací prvky jsou objekty použité ve formuláři. Zobrazují data z podkladové

tabulky či dotazu a doplňkové informace (např. popisky dat a obrázky). Dle návaznosti na podkladová data existují různé druhy ovládacích prvků: − Vázaný ovládací prvek: Zdrojem je pole z podkladové tabulky či dotazu. Slouží k zobrazení

hodnot. Dle zobrazované hodnoty existuje několik typů vázaných ovládacích prvků: • Textové pole: pro pole typu Text, Memo, Číslo, Měna, Automatické číslo, Datum a čas

nebo Hypertext. • Seznam, Pole se seznamem: pro pole typu Text nebo Číslo s možností výběru. • Zaškrtávací políčko, Přepínač, Přepínací tlačítko: Zobrazení a výběr hodnot typu Ano/ne. • Rámeček vázaného objektu: pro pole typu Objekt OLE se zobrazením obrázku. • Příloha: pro pole typu Příloha. • Podformulář: pro zobrazení podformuláře v hlavním formuláři. • Graf: grafické zobrazení dat (se zvláštním zdrojem), která mohou být ve vztahu

k zobrazené větě. − Vypočítaný ovládací prvek: Zdrojem dat není přímo pole z podkladové tabulky či dotazu, ale

výraz obsahující data podkladové tabulky či dotazu či hodnoty z jiných ovládacích prvků formuláře. Ve výrazu je možné použít funkce.

− Nevázaný ovládací prvek: Nemá zdroj dat. Zvyšuje přehlednost formuláře. Mezi nevázané ovládací prvky patří: • Popisek: Konstantní text zapsaný do formuláře. Často bývá přidružen k některému

vázanému ovládacímu prvku. • Hypertextový odkaz: Konstantní hypertextový odkaz např. na web firmy. • Obrázek: Konstantní obrázek. • Rámeček nevázaného objektu: Konstantní obsah objektu jiné aplikace. • Čára: Čára, která může graficky zpřehlednit strukturu formuláře. • Obdélník: Obdélník, který může graficky zpřehlednit strukturu formuláře. • Konec stránky: Při tisku se zahájí tisk na novou stránku. Speciální nevázané ovládací prvky mají určené místo ve struktuře formuláře: • Logo: Konstantní obrázek umístěný v záhlaví formuláře • Název: Konstantní text umístěný v záhlaví formuláře vedle loga. • Číslo stránky: Číslo tiskové stránky formuláře. Lze jej vložit do záhlaví či zápatí stránky a

volitelně zarovnat. • Datum a čas: Aktuální datum, popř. čas v pravém horním rohu záhlaví formuláře. Pokud formulář zobrazuje větší množství dat, lze data rozdělit do karet, potom se používá ovládací prvek: • Karta: Obsahuje několik stránek, v nichž mohou být různé ovládací prvky.

Tlačítka pro tvorbu formuláře jsou soustředěna v kartě VYTVOŘIT ve skupině FFoorrmmuulláářř

ee. Všechna tlačítka vytvoří prvotní návrh formuláře a zobrazí jej v zobrazení rozložení s výjimkou tlačítka Návrh formuláře, které zobrazí formulář v návrhovém zobrazení. Tlačítka se liší dle obsahu prvotního návrhu: − Formulář: Jako podklad je využit objekt označený v navigačním podokně.100 Z dat je

vytvořen samostatný formulář včetně záhlaví formuláře, v němž je uveden datový zdroj. Název formuláře je převzat z názvu datového zdroje.101 Ovládací prvky jsou v tzv. skládaném rozložení. Tažením za kraj ovládacího prvku můžeme tak snadno měnit jeho umístění v řádcích.

− Rozdělit formulář: Opět je využit jako podklad objekt označený v navigačním podokně. Z dat je však vytvořen rozdělený formulář se zobrazením datového listu pod formulářem.

− Více položek: Na základě objektu označeného v navigačním podokně je vytvořen nekonečný formulář. Každá věta je v samostatném řádku. V případě obrázků je zvýšena velikost řádku, aby byl zmenšený obrázek vidět. Ovládací prvky jsou v tabulkovém rozložení. Tažením za kraj ovládacího prvku můžeme měnit jeho umístění ve sloupcích.

− Kontingenční graf: Na základě objektu označeného v navigačním podokně je vytvořen kontingenční graf. Musíme upřesnit pole řad, kategorií, dat a případně i filtrů.

100 V případě, že je označen formulář či sestava je jako podklad převzat jejich zdroj záznamů. V případě, že je

označeno makro nebo modul, není většina tlačítek skupiny FFoorrmmuulláářřee dostupná. 101 Tabulky a dotazy nesmí mít shodné názvy. Formulář může mít však název totožný s názvem tabulky či dotazu.

Pokud by již formulář se stejným názvem existoval, byla by k názvu doplněna číslice.

Ovládací prvky

Tlačítka tvorby formuláře

Page 103: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 103

− Prázdný formulář: Vytvoří se nový prázdný formulář, který nemá definován datový zdroj. − Více formulářů: K dispozici jsou méně časté varianty vytvořeného formuláře: • Průvodce formulářem: V průvodci vybereme podkladovou tabulku či dotaz, pole

formuláře, způsob rozložení ovládacích prvků ve formuláři (do sloupců či do tabulky) a styl formátování formuláře.

• Datový list: Připraví se formulář s výchozím zobrazením v datovém listu. • Modální dialogové okno: Vytvořený formulář nemá definován datový zdroj. Má

připravena dvě tlačítka OK a Storno bez přiřazených událostí. Formulář má pro vlastnost Modální okno nastavenu hodnotu Ano.102

• Kontingenční tabulka: Na základě objektu označeného v navigačním podokně je vytvořena kontingenční tabulka. Musíme upřesnit pole řad, kategorií, dat a případně i filtrů.

− Návrh formuláře: Vytvoří se nový prázdný formulář, který nemá definován datový zdroj. Formulář se zobrazí v návrhovém zobrazení.

5.2 Samostatný formulář Připravíme formulář pro zobrazení dat tabulky Personal. Cílový vzhled formuláře je

uveden v obr. 5-1.

OBR. 5-1: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE K TABULCE PERSONAL

Abychom demonstrovali obecné možnosti tvorby formuláře, vyjdeme z prázdného formuláře v návrhovém zobrazení: − V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Návrh formuláře. Formulář

− Připraví se prázdný formulář nazvaný Form1. Výchozí návrh obsahuje pouze sekci Tělo o šířce asi 12 cm a výšce asi 10 cm.

− Přesný návrh formuláře usnadňuje vodorovné a svislé pravítko. − V těle formuláře je zobrazen rastr mřížky dělené na ose x i ose y po 1 cm. Ovládací prvky

budou přichycovány levým horním rohem k mřížce.103

102 Modální okna vyžadují před přechodem k jinému formuláři nebo dialogovému oknu akci uživatele, např. klepnutí do tlačítka OK. Používají se při programování.

Návrhové zobrazení

Page 104: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 104

Formulář a jeho objekty mají řadu vlastností:

− Zobrazíme seznam vlastností formuláře: • klepnutím do tlačítka Seznam vlastností v kartě NÁVRH ve skupině Nástrojee nebo Nástroj• kombinací kláves Alt Enter nebo • klávesou F4.

− Zobrazí se okno Seznam vlastností. Pozici okna můžeme tažením za titulek okna měnit. Tažením k pravému nebo levému kraji okna Accessu můžeme okno ukotvit ke kraji. Pokud není okno ukotveno, můžeme tažením za jeho kraje měnit jeho velikost. Tažením za příčku mezi dvěma sloupci okna můžeme měnit proporci sloupce názvu vlastností a jejich hodnot.

Seznam vlastností

− Každý objekt má své vlastnosti. Když je zobrazeno okno Seznam vlastností, můžeme objekt vlastností měnit klepnutím do objektu. Např. v našem případě klepnutím do bílé plochy těla zobrazíme vlastnosti sekce těla, klepnutím do pravítka nebo průsečíku pravítek zobrazíme vlastnosti formuláře.

Seznam vlastností

− Vlastností je velké množství. Jsou proto rozděleny do skupin v kartách, poslední karta obsahuje všechny vlastnosti.

− Okno Seznam vlastností ukotvíme k pravému kraji. Pro formulář změníme v kartě Formátové nebo v kartě Vše vlastnosti Dělení osy x mřížky a Dělení osy y mřížky z hodnoty 10 na 5. Mřížka obsahuje nyní detailní dělení po 0,2 cm (5 bodů na 1 cm). Detailní dělení je zobrazeno jen pro menší počet dílčích dílků, pro dělení 10 nebylo zobrazeno, přichycování by však bylo funkční.

Seznam vlastností

− Formulář zatím nemá definován zdroj záznamů, vlastnost formuláře Zdroj záznamů (ze skupiny Datové) není vyplněna.

Do formuláře postupně přidáme jednotlivá pole: − Zobrazíme seznam dostupných polí: • klepnutím do tlačítka Přidat existují pole v kartě NÁVRH ve skupině Nástrojee nebo Nástroj• kombinací kláves Alt F8.

− Místo okna Seznam vlastností se zobrazilo okno Seznam polí. V okně je přehled všech tabulek aktuální databáze. Pro každou tabulku je před jejím názvem rozbalovací tlačítko. Napravo od názvu tabulky je odkaz Upravit tabulku, kterým můžeme zobrazit tabulku v zobrazení datového listu a upravit její obsah.

Seznam vlastností Seznam polí

− Rozbalíme tabulku Personal. Poklepeme na pole E_mail. Do těla formuláře se umístil ovládací prvek E_mail a s ním svázaný konstantní popisek E-mail převzatý z titulku pole E_mail ve struktuře tabulky Personal.

− V okně Seznam polí jsou nyní tabulky a jejich pole rozděleny do tří skupin: Seznam polí• Pole dostupná pro toto zobrazení: pole tabulky (později více tabulek), která jsou ve zdroji

záznamů formuláře, po umístění pole E_mail je zde nabízena tabulka Personal a její pole. • Pole dostupná v souvisejících tabulkách: tabulky, které mají v relacích přímé vazby na

tabulku Personal (obecně přímé vazby na tabulky ze skupiny Pole dostupná pro toto zobrazeníí).

Pole dostupná pro totozobrazen

• Pole dostupná v jiných tabulkách: tabulky, které nemají v relacích přímé vazby na tabulku Personal.

Klepnutím na spodní řádek podokna Zobrazit pouze pole v aktuálním zdroji záznamu můžeme zobrazit pouze pole použitá ve formuláři, tj. část polí z první skupiny. V našem případě by to bylo pole E_mail.

− Klávesou F4 zobrazíme opět okno Seznam vlastností. Ve vlastnosti formuláře Zdroj Seznam vlastnostízáznamů je již hodnota SELECT Personal.E_mail, tj. SQL forma dotazu, který je podkladovým zdrojem formuláře: • Na konci řádku vlastnosti Zdroj záznamů můžeme vyklopit seznam tabulek a dotazů a

výběrem změnit zdroj. • Klepnutím do tlačítka se třemi tečkami můžeme zobrazit QBE mřížku podkladového

dotazu a dotaz modifikovat.104 Z kontextové karty návrhu dotazu se vrátíme do formuláře tlačítkem Zavřít ze skupiny Zavřítt. Zavří

103 Zobrazování pravítka a mřížky lze potlačit v kartě USPOŘÁDAT ve skupině ZZoobbrraazziitt či skrýt tlačítky PPrraavvííttkkoo a

MMřříížžkkaa. Ovládací prvky jsou přichycovány k mřížce, pokud je zatlačeno tlačítko Přichytit k mřížce v kartě USPOŘÁDAT ve skupině RRoozzlloožžeenníí oovvllááddaaccííhhoo pprrvvkkuu.

104 Klepnutím do tlačítka Uložit jako v kartě NÁVRH ve skupině ZZaavvřříítt bychom mohli dotaz uložit pod názvem jako samostatný dotaz a použít jej např. také pro jiný formulář.

Vlastnosti

Pole ve formuláři

Page 105: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 105

− Kombinací kláves Alt F8 zobrazíme okno Seznam polí. Poklepeme na pole Titul1. Seznam polí

Ovládací prvek se umístí přes textové pole E_mail. V panelu nástrojů Rychlý přístup klepneme do tlačítka Zpět.

− Tažením z okna Seznam polí do těla formuláře umístíme pole Titul1 pod pole E_mail. Seznam políV těle formuláře můžeme upravovat ovládací prvky:

− Klepnutím označíme ovládací prvek. − Tažením za jeho kraj můžeme přemístit např. textové pole Titul1 a s ním přidružený popisek

Titul před jménem. Obdobně můžeme přemístit popisek a přidružené textové pole. − Tažením za čtvercový úchyt v levém horním rohu můžeme přemístit ovládací prvek bez

souběžného přemístění popisku. − Tažením za úchyt uprostřed kraje ovládacího prvku můžeme modifikovat jeho výšku či

šířku. − Tažením za úchyt v (jiném než levém horním) rohu můžeme modifikovat současně výšku i

šířku ovládacího prvku. Abychom nemuseli upravovat polohu a velikost ovládacích prvků vkládaných do

formuláře, využijeme rozložení ovládacích prvků: − Klepnutím označíme textové pole E_mail. − Držením klávesy Shift a klepnutím současně označíme textové pole Titul1. − V kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvkuu klepneme do tlačítka Skládané. Rozložení ovládacího prvk− Rozložení zajišťuje svislé (skládané) či vodorovné (tabulkové) zarovnání ovládacích prvků.

Ovládací prvky tvoří pomyslnou tabulku. V případě skládaného rozložení jsou popisky uvedeny vlevo od textových polí. Formulář může obsahovat více rozložení obou typů. Celé rozložení lze vybrat klepnutím do oranžového voliče v levém horním rohu rozložení.

− V rozložení mají všechny popisky stejnou šířku, rovněž všechna pole mají stejnou šířku. Modifikací šířky jednoho ovládacího prvku se změní šířky všech ostatních ovládacích prvků (popisků či polí).

Do těla formuláře přidáme další ovládací prvky: − Do rozložení přidáme další pole Jméno. Táhneme pole ze Seznamu polí pod ovládací prvek

Titul1. Oranžová vodorovná čára signalizuje, že se Jméno stane součástí rozložení. Seznamu polí

− Vázaný ovládací prvek Jméno se díky definici ve struktuře dat přidal jako pole se seznamem. − Obdobně přidáme pole Příjmení, Titul2, Pohlaví, Místnost, Telefon, Oddělení, Nadřízený,

Charakteristika, Úvazek, Web, Foto, Oprávnění. − Fotografie zaměstnance je malá. Chceme ji umístit napravo od skládaného rozložení polí.

Klepnutím označíme vázaný ovládací prvek Foto. V kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvku klepneme do tlačítka Odebrat. Popisek i vázaný ovládací prvek Rámeček vázaného objektu přestaly být součástí rozložení. Ovládací prvek Oprávnění fakturovat se posunul nahoru a překrývá se nyní s prvkem Foto. Tažením za okraj vázaného prvku přesuneme popisek i vázaný prvek napravo nahoru od ostatních polí.

Rozloženíovládacího prvku

− Klepneme do popisku Foto a klávesou Delete jej odstraníme. Tažením za střed spodního kraje zvýšíme pole Foto dle jeho šířky (asi 7,6 cm).

− Zdrojem dat pro formulář je zatím jen tabulka Personal. Chceme pod Oddělení dopsat vysvětlivku zkratky oddělení. V okně Seznam polí vybereme pole tentokrát ze skupiny Pole dostupná v souvisejících tabulkách.

Seznam polí105 Z tabulky Oddělení přetáhneme do formuláře pod

Oddělení pole Oddělení_v. Tabulka Oddělení se v Seznamu polí přesunula do skupiny Pole dostupná pro toto zobrazení. Do vlastnosti formuláře Zdroj záznamů se vložil dotaz obsahující všechna pole tabulky Personal a pole Oddělení_v z tabulky Oddělení.

Seznamu polí

106 Podívejme se nyní na zobrazení formuláře:

− Klepneme do tlačítka Zobrazení ze skupiny Zobrazeníí v kartě NÁVRH. Formulář se zobrazí ve formulářovém zobrazení.

Zobrazen

105 Pokud není skupina Pole dostupná v souvisejících tabulkách zobrazena, klepneme do řádku Zobrazit všechny

tabulky. 106 Dotaz jsme mohli upravit také v dotazovací mřížce. Kdybychom v návrhu dotazu přidali tabulku Oddělení a z ní

vybrali pole Oddělení_v, také by se tabulka Oddělení přesunula do skupiny Pole dostupná pro toto zobrazení. Kdybychom naopak později v podkladovém dotazu odstranili pole Oddělení_v, zobrazil by se ve formuláři pro pole

Oddělení_v v levém horním rohu zelený trojúhelník, který by signalizoval, že nejsou k dispozici potřebná data. Ve formulářovém zobrazení a v zobrazení rozložení by místo hodnoty byl vypisován text #Název?, který by oznamoval, že není známý název pole.

Úpravy ovládacích prvků

Rozložení ovládacích prvků

Formulářové zobrazení

Page 106: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 106

− Věty jsou řazeny dle oddělení. Chceme je řadit dle E-mailu zaměstnance. Klepneme do pole

E_mail a potom do tlačítka Vzestupně v kartě DOMŮ ve skupině Seřadit a filtrovatt. Seřadit a filtrova− Upravili jsme tak vlastnost formuláře Řadit podle (ze skupiny vlastností Datové).

Přesvědčíme se o tom v návrhovém zobrazení, do něhož přejdeme: • klepnutím do spodní části tlačítka Zobrazení a výběrem volby NÁVRHOVÉ ZOBRAZENÍ

nebo • klepnutím do tlačítka Návrhové zobrazení v pravé části stavového řádku.

− Ve formulářovém zobrazení se po klepnutí do polí E_mail a Telefon zobrazí inteligentní značky, což signalizuje fialový trojúhelník v pravém dolním rohu pole.

V návrhu formuláře chceme provést některé úpravy velikosti ovládacích prvků. Velikost optimálně nastavíme při zobrazení dat. Využijeme proto zobrazení rozložení: − Ve formulářovém zobrazení klepneme do tlačítka Zobrazení. − V kartě USPOŘÁDAT můžeme klepnutím do tlačítka Seznam vlastností ve skupině Nástrojee

zobrazit či potlačit zobrazení okna Seznam vlastností. Nástroj

Seznam vlastností− Tažením za spodní kraj pole Pohlaví zmenšíme jeho výšku. − Klepneme do pole Foto a formátovou vlastnost Styl okraje změníme z hodnoty plná čára na

hodnotu průhledný. Podkladový dotaz má charakter dynamické sady. Můžeme proto editovat název

oddělení, který by se promítnul do tabulky Oddělení. Formuláře bude sloužit pouze k editaci tabulky Personal. Upravíme proto ovládací prvek Oddělení_v a jeho popisek: − V zobrazení rozložení zobrazíme seznam vlastností textového pole Oddělení_v. Změníme

hodnotu datové vlastnosti Uzamknout na ano.107 − V zobrazení rozložení nelze editovat věty. Klepnutím do tlačítka Zobrazení přejdeme do

formulářového zobrazení. Nyní již nelze upravit hodnotu názvu oddělení. − Vrátíme se do zobrazení rozložení a pro Oddělení_v upravíme formátovou vlastnost Styl

okraje na hodnotu Průhledný. − Upravíme popisek pole Oddělení_v změnou vlastnosti Titulek nebo přímo editací textu ve

formuláři. Zadáme hodnotu Název oddělení. Oproti návrhu tabulky Personal bychom rádi usnadnili vkládání seznamem již

vložených hodnot: − V návrhovém zobrazení klepneme pravým tlačítkem na pole Titul1 a vybereme z místní

nabídky volbu ZMĚNIT NA, POLE SE SEZNAMEM. − Nemáme připravený vhodný dotaz, proto klepneme do tlačítka Tvůrce na konci vlastnosti

Zdroj řádků. Vybereme tabulku Personal, z ní pole Titul1. Ve vlastnosti dotazu zadáme do vlastnosti Jedinečné hodnoty hodnotu ano. Pro jediné pole Titul1 zadáme v dotazovací mřížce řazení vzestupně. Návrh dotazu ukončíme tlačítkem Zavřít ve skupině Zavřítt v kartě NÁVRH.

Zavří

108 Potvrdíme uložení změn. − Ve formulářovém zobrazení je nyní již seznam hodnot. Hodnota žádný je uvedena dvakrát,

neboť zastupuje prázdnou (Lukáš Škoda) a nulovou hodnotu (ostatní zaměstnanci). Podkladový dotaz je typu statický snímek, jeho doplnění neumožní ani hodnota Ano datové vlastnosti Povolit úpravy seznamu hodnot (na rozdíl např. od možnosti doplnění dalšího oddělení).

− Pokud v nové větě přibude do seznamu další hodnota, např. nové křestní jméno, projeví se v seznamu až při novém otevření formuláře: • zavřením a otevřením formuláře, • přechodem do návrhového zobrazení a návratem do formulářového zobrazení.109

− Obdobně chceme nabídnout seznam pro pole Titul2. • Nejdříve změníme pole Titul2 na pole se seznamem. • Podkladový dotaz bude podobný. Zkopírujeme vlastnosti Zdroj řádků z pole Titul1 do

stejné vlastnosti pole Titul2.110

107 Pro vlastnost Zpřístupnit ponecháme hodnotu Ano, aby bylo možné v poli vyhledávat kombinací kláves Ctrl F . 108 Tlačítkem Uložit jako bychom mohli uložit dotaz jako samostatný nazvaný dotaz pro využití v jiných formulářích,

sestavách či pouze jako dotaz. 109 Toto omezení neplatí pro doplnění hodnoty do podkladové tabulky při využití vlastnosti Formulář pro úpravu

položek seznamu v podkladové tabulce, např. v případě Oddělení. Obdobné řešení pro doplnění titulů není možné, ani když bychom se vzdali zobrazování jedinečných hodnot. Nemůžeme přidat nový titul, neboť bychom tak editovali tabulku Personal, která vyžaduje pro každou větu vyplnění některých polí, např. Příjmení.

Zobrazení rozložení

Uzamčení pole

Pole se seznamem

Page 107: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 107

• Klepnutím do tlačítka Tvůrce zobrazíme návrh dotazu, v němž v návrhové mřížce

změníme jediné pole Titul1 na Titul2. Klepnutím do tlačítka Zavřít ve skupině Zavřítt ukončíme úpravu dotazu.

Zavří

• Ve formulářovém zobrazení je již seznam hodnot pro pole Titul2. Některé ovládací prvky jsou zbytečně široké. Omezíme proto jejich šířku. Omezením

šířky jednoho prvku by se díky skládanému rozložení omezila šířka všech prvků rozložení. Rozložení proto vypneme: − V zobrazení rozložení nebo v návrhovém zobrazení klepneme do oranžového voliče v levém

horním rohu rozložení. Označíme tak všechny ovládací prvky rozložení. − V kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvkuu klepneme do tlačítka Odebrat. Rozložení ovládacího prvk− Nyní již můžeme individuálně upravit šířku ovládacích prvků dle obr. 5-1 a to nejlépe

v zobrazení rozložení, v němž vidíme hodnoty polí. − Upravíme vysvětlení názvu oddělení: • Klepnutím označíme popisek Název oddělení. Klávesou Delete popisek odstraníme. • Tažením přesuneme textové pole názvu Oddělení_v napravo od zkratky oddělení.

Chceme nyní změnit umístění některých dalších polí: − Ve skládaném rozložení neakceptoval Access mřížku. Nejprve proto upravíme velikost polí a

umístění polí dle mřížky: • V návrhovém zobrazení označíme všechny ovládací prvky kombinací kláves Ctrl A. • V kartě USPOŘÁDAT ve skupině Zarovnání ovládací prvku klepneme do tlačítka K mřížce. Zarovnání ovládací prvku• Ve skupině Velikostt klepneme do tlačítka Velikost podle mřížky. Velikos

− Tažením za popisky, které jsou přidruženy k vázaným ovládacím prvkům, umístíme pole: • Popisek E-mail bude v levém horním rohu, tj. 0,2 cm na vodorovném pravítku a 0,2 cm na

svislém pravítku111. • Další pole umístíme vždy 0,2 cm pod předchozí pole. • Pole Foto umístíme tak, aby levý horní roh byl na pozici 8,4;0,2.

Popisky jsou zatím všechny stejně široké, neboť jsme je vkládali původně do rozložení. Automaticky přizpůsobíme jejich velikost: − Klepnutím do vodorovného pravítka nad popisky všechny popisky označíme. − V kartě USPOŘÁDAT ve skupině Velikost klepneme do tlačítka Automatická velikost. Velikost− Šířka popisků se přizpůsobila jejich obsahu. − Můžeme ještě aplikovat přizpůsobení velikosti k mřížce.

Vysvětlivku s názvem oddělení seskupíme s vázaným ovládacím prvkem Oddělení: − Klepnutím označíme popisek Oddělení. Klepnutím s klávesou Shift označíme také vázaný

ovládací prvek Oddělení a vysvětlivku Oddělení_v. − V kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvkuu klepneme do tlačítka Skupina.

Klepnutím do kteréhokoliv seskupeného prvku skupiny se označí celá skupina. Tažením kteréhokoliv prvku se přesunuje celá skupina. Prvky můžeme později oddělit označením skupiny a klepnutím do tlačítka Oddělit ze skupiny Rozložení ovládacího prvkuu.

Rozložení ovládacího prvk

Rozložení ovládacího prvkObecně je několik možností, jak označovat více objektů ve formuláři:

− Klepnutím do jednotlivého objektu se označí jeden objekt. Pokud klepneme do jiného objektu, označí se nově tento objekt. Pokud však klepneme do jiného objektu a současně držíme klávesu Shift , zůstanou označeny oba objekty (či postupně více objektů).

− Klepnutím do svislého pravítka se označí všechny objekty v daném „řádku“. Pokud držíme klávesu Shift a klepneme znovu jinam do svislého pravítka, označí se více „řádků“.

− Klepnutím do prázdného místa formuláře se zruší stávající označení. Pokud z prázdného místa formuláře roztáhneme obrys obdélníku levým tlačítkem myši, označí se všechny objekty, které alespoň z části obdélník zahrnuje.112

− Tažením myší po svislém pravítku můžeme označit více sousedních „řádků“.

110 Klepneme do předchozí vlastnosti, klávesou Tab označíme celý text vlastnosti Zdroj řádků. Stiskneme kombinaci

kláves Ctrl C . Klepneme do ovládacího prvku Titul2 a vložíme schránku do vlastnosti Zdroj řádků kombinací kláves Ctrl V .

111 Takovouto pozici budeme v dalším textu zkráceně zapisovat 0,2;0,2. 112 Klepnutím do tlačítka Office a tlačítka Možnosti aplikace Access můžeme v kartě Návrháři objektů ve skupině

FFoorrmmuulláářřee ččii sseessttaavvyy v poli Chování při označování modifikovat způsob označení objektů při vytyčení obdélníku.

Odebrání rozložení

Automatická velikost

Seskupování ovládacích prvků

Označování více objektů

Page 108: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 108

− Obdobné zásady pro označování objektů, které platí pro svislé pravítko, platí i pro

označování „sloupců“ klepnutím či tažením ve vodorovném pravítku. Vedle pole Telefon chceme umístit bývalou telefonní linku z tabulky Místnosti:

− Zobrazíme seznam polí. − Táhneme pole Původní_telefon ze skupiny Pole dostupná v souvisejících tabulkách z tabulky

Místnosti napravo od pole Telefon. − Klepnutím označíme popisek a klávesou Delete jej odstraníme. − Upravíme vlastnost Zdroj ovládacího prvku nového ovládacího prvku na hodnotu:

=″dříve: ″ & Původní_telefon Rovnítko zahajující výraz musíme zapsat. Konstantní text musíme zapisovat do uvozovek. Operátor & slučuje textové řetězce. Access sám doplní hranaté závorky k názvu pole Původní_telefon. Ve výrazu mohou být obecně uváděny nejen pole z podkladového dotazu, ale také ovládací prvky identifikované jejich názvem. Access narazí při zobrazení hodnot na problém shody názvu ovládacího prvku a pole z podkladového dotazu. Upřednostní využití názvu ovládacího prvku, čímž výraz obsahuje kruhovou definici: Původní_telefon: =″dříve: ″ & [Původní_telefon]. V zobrazení rozložení i ve formulářovém zobrazení se zobrazuje text #Chyba.

− Upravíme název ovládacího prvku ve vlastnosti Název na hodnotu Původní_telefon_n. − Nemusíme nastavovat vlastnost Uzamknout, neboť pole s výrazem není možné editovat. − Chceme, aby ovládací prvek nebyl ohraničen. Zkopírujeme formát z názvu oddělení: • V zobrazení rozložení nebo v návrhovém zobrazení označíme klepnutím název oddělení. • Klepneme do tlačítka Kopírovat formát ve skupině Písmoo v kartě FORMÁT. Písm• Klepneme do původního telefonu.113

− Chceme, aby formátové a některé další vlastnosti nastavené pro textové pole Původní_telefon (např. Styl okraje) byly aplikovány na další nově vkládaná textová pole. Označíme ovládací prvek Původní_telefon a v kartě NÁVRH ve skupině Ovládací prvkyy klepneme do tlačítka Výchozí nastavení prvku.

Ovládací prvk114

− Přetažením pole Původní_telefon se modifikoval podkladový dotaz formuláře. Doplnila se do něj tabulka Místnosti. Upravíme ještě typ spojení na Zahrnout všechny záznamy z tabulky Personal tak, aby byli ve formuláři zobrazováni i zaměstnanci, kteří sedí v místnosti, kde nebyl telefon (Alena Pospíšilová z místnosti 25) nebo nemají přiřazenu místnost (Ondřej Světlý).

Access hlídá délku vkládání textových polí dle struktury tabulky. Složitější je hlídání délky (např. únosné z hlediska délky rekapitulace dat v sestavách) pro memo pole. Doplňme do formuláře zobrazování délky memo pole Charakteristika dle obr. 5-1: − Všechna pole už jsme umístili do formuláře. Mohli bychom znovu umístit pole

Charakteristika a upravit jeho zdroj na výraz. Tentokrát však umístíme obecné textové pole, jehož zdroj upřesníme.

− V návrhovém zobrazení v kartě NÁVRH klepneme ve skupině Ovládací prvkyy do tlačítka Textové pole

Ovládací prvk

115. U kurzoru se zobrazí kříž se symbolem textového pole. Tažením myší vymezíme textové pole ve formuláři pod popiskem Charakteristika. (Táhneme z levého horního rohu do pravého dolního rohu.)

− Nové pole nemá popisek, neboť textové pole má nyní výchozí nastavení bez popisku. Pokud bychom nenastavili dříve výchozí nastavení, museli bychom odstranit popisek vloženého pole Text99116.

− Do vlastnosti Zdroj ovládacího prvku zapíšeme výraz ="Délka: " & Len([Charakteristika])

− Funkce Len vrací počet znaků textového řetězce.

113 Zkopírovali jsme tak pouze formátové vlastnosti, nikoliv ostatní, např. jsme nezkopírovali hodnotu vlastnosti Přístup klávesou tabelátor.

114 Výchozí nastavení platí jen v rámci formuláře. Formulář lze nastavit jako výchozí pro tvorbu nových formulářů klepnutím do tlačítka Office a do tlačítka Možnosti aplikace Access a úpravou vlastnosti Šablona formuláře ve skupině FFoorrmmuulláářřee ččii sseessttaavvyy.

115 Obdobně můžeme přidávat další obecné ovládací objekty, z nichž jsme zatím poznali zaškrtávací políčko, pole se seznamem, seznam, rámeček vázaného objektu (pro vložení objektu OLE). Můžeme také vložit základní prvky čárové grafiky: čáru a obdélník.

116 Popisek má obecný text Text99, kde 99 je pořadové číslo ovládacího prvku ve formuláři.

Výraz ve formuláři

Kopírování formátu

Výchozí nastavení prvku

Funkce Len

Page 109: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 109

− Do vlastnosti název zapíšeme Charakteristika_d (délka charakteristiky). − Ovládací prvek není díky výchozímu nastavení ohraničen. − Uživatel může (po přechodu z pole Charakteristika do jiného pole) zjistit délku

charakteristiky a držet se doporučované maximální délky např. 50 znaků.117 − Funkce Len vrací v případě položky Memo s formátem RTF délku včetně kódů HTML. Proto

je délka delší u textů s formátováním. U všech je delší o 11 znaků, tj. značky <div> a </div>. O kódech HTML uložených pro texty formátu RTF se můžeme přesvědčit jednoduchým výběrovým dotazem, který vypíše pole E_mail, Charakteristika, CStr(Charakteristika) a Len(Charakteristika).118

Vlastnosti seznamu a polí se seznamem byly zkopírovány ze struktury tabulky. Chceme usnadnit vložení hodnot uživateli formuláře vysvětlivkami: − pro pole Pohlaví upravíme vlastnosti: • datová vlastnost Zdroj řádků: M;muž;Z;žena • datová vlastnost Zdědit seznam hodnot: ne • formátová vlastnost Počet sloupců: 2 • formátová vlastnost Šířky sloupců: 0,5 • formátová vlastnost Šířka: 2

− pro pole Oddělení upravíme vlastnosti: • formátová vlastnost Počet sloupců: 2 • formátová vlastnost Šířky sloupců: 1 • formátová vlastnost Šířka seznamu: 3,5

Ve formulářovém zobrazení se pohybujeme mezi jednotlivými poli tabulátorem nebo odesláním. Vadí nám však, že: − z pole Oddělení se přechází na název oddělení, − z pole Web se přechází na pole Foto místo na pole Oprávnění, − z pole Oprávnění se přechází na pole Původní_telefon a Charakteristika_d. Upravíme proto pořadí polí a do některých zamezíme přístup tabulátorem: − V zobrazení rozložení nebo v návrhovém zobrazení klepneme v kartě USPOŘÁDAT ve

skupině Rozložení ovládacího prvkuu do tlačítka Pořadí oušek. Zobrazí se dialogové okno Pořadí prvků (viz

Rozložení ovládacího prvkPořadí prvků obr. 5-2).

OBR. 5-2: DIALOGOVÉ OKNO POŘADÍ PRVKŮ

117 Přísnější ochranou by bylo zahrnutí podmínky omezené délky do ověřovacího pravidla tabulky, např. ve tvaru:

([Příjmení] Not Like "*á" Or [Pohlaví]="Z") And Len([Charakteristika])<=50. Potom by Access při ukládání věty kontroloval délku pole Charakteristika.

118 Značky <div> a </div> nejsou vloženy v případě, že pole věty bylo vyplněno ve stavu, kdy ve struktuře tabulky měla vlastnost Formát textu hodnotu Prostý text.

Modifikace seznamů

Pořadí prvků ve formuláři

Page 110: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 110

− V okně jsou uvedeny názvy vázaných ovládacích prvků (tj. hodnota jejich vlastnosti Název).

Klepnutím můžeme označit libovolný vázaný objekt (objekt, který je proměnlivý dle hodnoty některého pole či výrazu) či tažením více objektů a přetáhnout je na jiné pořadí.

− Pro ilustraci zvolíme jinou cestu. Klepneme do tlačítka Automatické pořadí. Access zvolí sám pořadí po „řádcích“ formuláře. Položku Foto (jedinou ve druhém sloupci formuláře) tažením za počáteční volič přesuneme na konec seznamu. Klepnutím do tlačítka OK zavřeme dialogové okno. Při vyplňování či prohlížení formuláře potom po odeslání klávesou Enter či stisknutí klávesy Tab přejde Access na následující svázaný prvek.119

− Klepneme do ovládacího prvku původního telefonu, s klávesou Shift současně označíme název oddělení a délku charakteristiky. V seznamu vlastností jsou vlastnosti společné pro vícenásobný výběr. Upravíme vlastnost Přístup klávesou tabelátor ze skupiny Jiné na hodnotu ne. V zobrazení formuláře již nejsou klávesou Tab dostupné upravené ovládací prvky.120

− Klepnutím označíme původní telefon a do jiné vlastnosti Vysvětlivka zapíšeme hodnotu Původní telefon. Vysvětlivka se zobrazí v samostatném nápovědném okénku s šedivým pozadím, když umístíme ukazatel myši nad ovládací prvek v zobrazení rozložení nebo v návrhovém zobrazení.

Dosud nenazvaný formulář uložíme klepnutím do tlačítka Office a příkazem ULOŽIT nebo kombinací kláves Ctrl S. Zobrazí se dialogové okno UUlloožžiitt jjaakkoo s připraveným názvem Form1. Název přepíšeme na P52a Personal – Identifikace.121

Ve formuláři chceme barevně zvýraznit klíčové pole E_mail: − Klepnutím označíme pole E-mail. − Ve formátové vlastnosti Barva popředí je hodnota #000000. Mřížky na začátku značí, že

hodnota je udána v šestnáctkové soustavě využívající číslice 0, 1, ..., 9, A, B, ..., F. Každé dvě cifry udávají hodnotu podílu červené (R – red), zelené (G – green) a modré (B – blue) barvy, tj. tzv. model RGB.

− Můžeme hodnotu zadat: • přesným určením zastoupení barev, např. #BA1419 zastupuje tmavě červenou barvu, • výběrem z předdefinované barvy, • použitím tvůrce barev.

− Seznam předdefinovaných barev rozbalíme klepnutím do prvního tlačítka na konci řádku vlastnosti Barva popředí. Nabízí se dvě skupiny barev: • Alternativní řádek, Formulář pozadí, Světlé pozadí záhlaví, Tmavé pozadí záhlaví,

Ohraničení a mřížka, Černý text, Popis textu, Tmavý text, Zvýraznění, Motiv aplikace Access 1, 2, ..., 10: barvy přebírané z tzv. barevného schématu. Barevné schéma určuje barevné řešení oken Accessu. Barvy ovládacích prvků lze takto sladit s barevným schématem Accessu (platným i pro další aplikace Office, např. pro PowerPoint). K dispozici jsou tři barevná schémata (Modré, Stříbrné, Černé), které lze vybrat klepnutím do tlačítka Office a do tlačítka Možnosti aplikace Access v kartě Oblíbené v poli Barevné schéma. Barevné schéma nelze upravovat, nelze definovat další barevná schémata.

• Systém – posuvník, Systém – schéma, ..., Systém – panel nabídek: barvy přebírané z barevného nastavení Windows. Barvy ovládacích prvků lze takto sladit s nastavením barev ve Windows.122

− Klepnutím do druhého tlačítka na konci řádku vlastnosti Barva popředí se zobrazí okno s nabídkou barev (viz obr. 5-3):

119 Jedinou výjimkou je pole Web kde se odesláním zobrazí webová stránka. Z tohoto pole se přesunujeme na další

prvek klávesou Tab . 120 Zůstávají dostupné klepnutím do ovládacího prvku např. pro účely vyhledávání dle hodnoty pole kombinací kláves

Ctrl F . Pokud bychom upravili datovou vlastnost Zpřístupnit na hodnotu ne, nebylo by ve formulářovém zobrazení možné ani klepnout do ovládacího prvku. Ovládací prvek by byl odlišen šedým pozadím.

121 V ukázkové databázi Encian jsou formuláře již přichystány. Jejich název začíná písmenem P (publikace) s číslem kapitoly (první číslice), podkapitoly (druhá číslice) a dotazu v rámci podkapitoly (písmeno), např. P52a Personal – Identifikace. Své individuální pokusy ukládejte přímo pod číslem formuláře, např. 51a. Individuální pokusy tak budou zařazeny dle abecedy na začátku.

122 Např. ve Windows Vista lze nastavit barvy příkazem START, OVLÁDACÍ PANELY, Vzhled a přizpůsobení, ve skupině IInnddiivviidduuáállnníí nnaassttaavveenníí volba Vlastní nastavení barev, volba Otevřít klasické vlastnosti vzhledu pro více možností barev, tlačítko Upřesnit. Můžeme tako nastavit některé z 31 možností barev (posuvník, plocha, ..., panel nabídek).

P52a Personal – Identifikace

Barvy ve formuláři

Page 111: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 111

OBR. 5-3: OKNO S NABÍDKOU BAREV

• V prvním řádku můžeme kdykoliv později vybrat automaticky vybíranou barvu pro

formulář (např. pro barvu popředí je to černá, pro barvu pozadí bílá). • Skupina Barvy motivu aplikace Access nabízí barvy z nastaveného barevného schématu

Accessu. Umístěním ukazatele myši nad barvu se zobrazí název barvy. V prvním řádku jsou barvy Texty nadpisu, Světlý text popisku, ..., Zvýraznění. Ve druhém řádku jsou barvy Motiv aplikace Access 1 (nejsvětlejší), 2, ..., 10 (nejtmavší).

• Skupina Standardní barvy nabízí jednoduché barvy.123 V prvních šesti řádcích jsou různé odstíny 10 barev uvedených ve sloupcích. V posledním sedmém řádku je nabídka různých standardních barev.

• Skupina Naposledy použité barvy usnadňuje opakované využití stejných barev.124 Umístěním ukazatele myši nad naposledy použitou barvu se zobrazí její RGB model.125

• Klepnutím do volby Další barvy zobrazíme dialogové okno Barvy se dvěma kartami: Barvy» Standardní: paleta 127 nejčastějších barev a 15 odstínů černé. » Vlastní: nástroj pro namíchání vlastní barvy výběrem v levé paletě a upřesněním odstínu

v pravé stupnici nebo přímo zadáním modelu RGB či HSL v desítkové soustavě, např. tmavě červená barva má složky (viz obr. 5-4):

OBR. 5-4: DIALOGOVÉ OKNO BARVY

červená: #BA, tj. 11*16 + 10 * 1 = 176 + 10 = 186 123 Standardní barvy nelze v Accessu bohužel nastavit. Access na rozdíl např. od PowerPointu či Visia nevyužívá žádné

barevné sady či motivy. 124 Barvu lze vybírat také klepnutím do pravé části tlačítka Barva písma v kartě FORMÁT ve skupině PPííssmmoo. Na tlačítku

se pamatuje naposledy použitá barva, kterou lze aplikovat na jiný ovládací prvek jeho výběrem a klepnutím do levé části tlačítka.

125 Bohužel části RGB modelu jsou v opačném pořadí. Barva #BA1419 je tak zobrazena jako #1914BA.

Page 112: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 112

zelená: #14, tj. 1* 16 + 4 *1 = 16 + 4 = 20 modrá: #19, tj. 1 * 16 + 9 * 1 = 16 + 9 = 25

− V našem případě vybereme pro ovládací prvek E_mail barvy: • Barva popředí: tmavě červená #BA1419 • Barva okraje: tmavě červená #BA1419 • Barva pozadí: pozadí #EDEDED

− Ovládací prvek E_mail ještě formátujeme tučným písmem: • kombinací kláves Ctrl B nebo • klepnutím do tlačítka Tučné v kartě FORMÁT126 ve skupině Písmoo. Písm

Access sice nenabízí motivy či barevné sady, nabízí však hromadnou úpravu formátu formuláře či sestavy pomocí automatického formátu: − Před zkouškami automatického formátu formulář uložíme kombinací kláves Ctrl S.

Formulář je do souboru databáze uložen pod dříve zadaným názvem. − V zobrazení rozložení v kartě FORMÁT jsou ve skupině Automatický formát k dispozici dva

automatické formátyAutomatický formát

127. Klepnutím do tlačítek posuvníku napravo od tlačítek automatických formátů můžeme zobrazit skupiny dalších automatických formátů. Klepnutím do tlačítka Více pod posuvníkovými tlačítky zobrazíme úplnou nabídku automatických formátů.

− Access nabízí 25 automatických formátů: Access 2003 Access 2007 Vrchol Aspekt Civilní Shluk Papír Modul Jmění Tok Lití písma Medián Metro Žádný Northwind Office Hojnost Oriel Počátek Slunovrat Technický Cesta Městský Elán Windows Vista Kromě 5 automatických formátů (Access 2003, Access 2007, Žádný, Northwind, Windos Vista) jsou shodné s motivy v aplikaci Visio.128

− Aplikujeme automatický formát Civilní. Automatický formát zahrnuje tři části formátování: písmo, barvu a okraj, které se aplikovaly na všechny ovládací prvky včetně ovládacího prvku E_mail. Zůstalo tučné vypisování e-mailu.

− Upravený formulář uložíme pod jiným názvem tlačítkem Office a příkazem ULOŽIT JAKO. Zadáme název P52b Personal –automatický formát.

Automatický formát můžeme také použít v modifikované podobě: − V kartě FORMÁT ve skupině Automatický formát klepneme do tlačítka Více. Pod seznamem

formátů klepneme do volby Průvodce automatickým formátem. Zobrazí se dialogové okno Automatický formát (viz

Automatický formát

obr. 5-5):

OBR. 5-5: DIALOGOVÉ OKNO AUTOMATICKÝ FORMÁT

126 Formát lze upravit v návrhovém zobrazení v kartě NÁVRH, v zobrazení rozložení v kartě FORMÁT. 127 V případě nedostatku místa je k dispozici pouze tlačítko Automatický formát, které zobrazuje nabídku všech

automatických formátů. Naopak v případě dostatku místa může být zobrazeno více automatických formátů. 128 Obdobou automatického formátu Office z Accessu je motiv Kancelář ve Visiu. V PowerPointu jsou některé motivy

v češtině nazvány jinak (Oriel – Arkýř, Civilní – Administrativní, Hojnost – Bohatý, Elán – Talent, Počátek – Původ, Městský – Urbanistický).

Automatický formát

P52b Personal – automatický formát

Page 113: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 113

• Klepnutím do tlačítka Možnosti zobrazíme sekci Použít pro nastavení vlastnostii. V levé části můžeme vybrat automatický formát, jeho náhled uvidíme v pravé části. V spodních polích můžeme zaškrtnutím zvolit, které části automatického formátu chceme aplikovat.

Použít pro nastavení vlastnost

• Klepnutím do tlačítka Přizpůsobit zobrazíme dialogové okno Přizpůsobit automatický formát, v němž můžeme

Přizpůsobit automatickýformát» vytvořit nový automatický formát s využitím formátu aktuálního formuláře, nový

automatický formát vhodně nazveme129, » aktualizovat vybraný formát dle formátu aktuálního formuláře, » odstranit vybraný automatický formát.

Na závěr přípravy formuláře omezíme jeho výšku. Myší se přiblížíme k spodní hranici těla formuláře (sekce okna formuláře s mřížkou). Objeví se symbol dvojité šipky. Spodní hranici přitáhneme 0,2 cm pod poslední řádek formuláře. Obdobně (pokud je to nutné) omezíme šířku formuláře. Tím jsme nastavili vlastnost formuláře Šířka a vlastnost těla formuláře130 Výška. Formulář uložíme a uzavřeme.131

5.3 Další samostatný formulář Navrhování formuláře procvičíme na podobném formuláři, jehož prostřednictvím

budeme zobrazovat a editovat data tabulky Podniky. Obdobně, jako jsme zobrazovali ve formuláři k tabulce Personal hodnoty polí z jiných tabulek (původní telefon, název oddělení), budeme chtít v novém formuláři zobrazovat vysvětlivky ke stadiu vývoje a k jednotlivým činnostem NACE (cílový stav formuláře je v obr. 5-6).

OBR. 5-6: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P53 PODNIKY – IDENTIFIKACE

Tentokrát vytvoříme formulář s větší pomocí Accessu: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Podniky. 3 Tabulk− V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Formulář. Formulář

− Vytvoří se formulář, který se otevře v zobrazení rozložení:

129 Vytvořený automatický formát není v tlačítkách formátů, je však dostupný v dialogovém okně AAuuttoommaattiicckkýý

ffoorrmmáátt. Automatický formát je uložen v nastavení Acccessu na konkrétním počítači. Je možné využít jej i v jiných databázích, nepřenáší se však s konkrétní databází.

130 V kap. 5.4 poznáme, že formulář se skládá ze sekcí. Náš formulář obsahuje jedinou sekci Tělo. 131 Formulář obdobně jako další formuláře přidáme do skupiny 5 Formuláře. Klepnutím na název formuláře zobrazíme

místní nabídku, z níž vybereme PŘIDAT DO SKUPINY a vybereme skupinu 5 Formuláře.

Velikost formuláře

P53 Podniky – Identifikace

Page 114: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 114

• V záhlaví formuláře je logo a název formuláře. • V těle formuláře jsou dvě skládaná rozložení s poli tabulky Podniky. • Ve spodní části formuláře je podformulář se seznamem faktur, které byly vystaveny

jednotlivému zobrazovanému podniku – odběrateli. − V návrhovém zobrazení označíme podformulář, jehož zdrojem je tabulka Faktury a klávesou

Delete jej odstraníme. − Tažením v zobrazení rozložení postupně přesuneme z pravého do levého rozložení pole

NACE6, PSČ, Obec, Ulice, Telefon, Bankovní_účet, Bankovní_kód. − Snížíme šířku polí v rozložení asi na polovinu. − Pro další práci potlačíme rozložení. Klepnutím do voliče v jeho levém horním rohu jej

označíme a v kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvkuu klepneme do tlačítka Odebrat.

Rozložení ovládacího prvk

− Zobrazíme seznam polí a tažením ze skupiny Pole dostupná v souvisejících tabulkáchh přesuneme do formuláře pole Stupeň z tabulky Stadia a ovládací prvek modifikujeme:

Pole dostupná v souvisejících tabulkác

• Umístíme ovládací prvek napravo od pole Stadium. • Zúžíme jeho šířku. • Styl okraje zadáme průhledný.

Ve formuláři je zobrazena jedna z 69 vět odběratelů. Chceme doplnit vysvětlivky k jednotlivým kódům NACE: − Zobrazíme seznam polí. Ze skupiny Pole dostupná v souvisejících tabulkáchh táhneme pole

NACE_v z tabulky NACE do formuláře vedle pole NACE1. Zobrazí se dialogové okno Vybrat relaci, v němž musíme upřesnit, že se má pole NACE z tabulky NACE shodovat s polem NACE1 z tabulky Podniky.

Pole dostupná v souvisejících tabulkác

− Odstraníme popisek vysvětlivky NACE1. Ovládací prvek vysvětlivky rozšíříme tak, aby v něm byl zobrazen celý text vysvětlivky.

− Obdobně přesuneme NACE_v tentokrát již ze skupiny Pole dostupná pro toto zobrazeníí napravo od NACE2.

Pole dostupná pro toto zobrazen

− Pokud se vytvoří nové rozložení popisku a ovládacího prvku, odebereme je. − Odstraníme popisek. Rozšíříme ovládací prvek. − Vysvětlivka se bohužel opět vztahuje k NACE1. Musíme modifikovat podkladový dotaz: • V návrhovém zobrazení proto zobrazíme návrh podkladového dotazu, tj. datovou vlastnost

formuláře Zdroj záznamů (viz obr. 5-7).

OBR. 5-7: DOTAZ K FORMULÁŘI P53 PODNIKY – IDENTIFIKACE

• Tlačítkem Zobrazit tabulku ve skupině Nastavení dotazuu v kartě NÁVRH zobrazíme

seznam tabulek. Tabulku NACE přidáme ještě pětkrát. Nastavení dotaz

• Tažením připravíme relaci mezi tabulkami NACE_1 (pole NACE) s tabulkou Podniky (pole NACE2), podobně pro NACE_2, 3, 4, 5.

Úprava a uložení podkladového dotazu

tabulky: NACE (6x) Podniky Stadia (69 vět)

Page 115: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 115

• Pro všechna nová spojení zadáme typ spojení Zahrnout všechny záznamy z tabulky

Podniky.132 • Do dotazové mřížky doplníme NACE z jednotlivých NACE_1, _2, ..., _5 s titulkem

NACE_v2, 3, ..., 6. • Podkladový dotaz uložíme tlačítkem Uložit jako ve skupině Zavřít pod názvem P53

Podniky – Identifikace a zavřeme s uložením do formuláře. Zavřít

• Ve vlastnosti formuláře Zdroj záznamů je nyní uveden dotaz P53 Podniky – Identifikace. − Ve formuláři odstraníme vedle NACE2 neúspěšný pokus o vysvětlivku. − V návrhovém zobrazení klepneme do první vysvětlivky NACE_v a upravíme ji: • Do formátové vlastnosti Styl okraje zadáme hodnotu průhledný. • V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Výchozí nastavení prvku. Ovládací prvky

− Do formuláře doplníme ze seznamu polí NACE_v2, 3, ..., 6. − Označíme dvojici prvků NACE1 a NACE_v. V kartě USPOŘÁDAT ve skupině Zarovnání

ovládacího prvku klepneme do tlačítka Zarovnat nahoru. Zarovnání

ovládacího prvku− Obdobně zarovnáme zbývajících pět dvojic NACE a NACE_v.

Upřesníme formát některých ovládacích prvků: − Do datové vlastnosti Uzamknout pole Stupeň zadáme hodnotu ano. − V popiskách Název_podniku, Bankovní_účet a Bankovní_kód nahradíme podtržítka

mezerami. Abychom snadno našli jednotlivý podnik zobrazený ve formuláři, zobrazíme formulář

v rozdělení na datový list a vlastní formulář: − V návrhovém zobrazení zadáme do formátové vlastnosti formuláře Výchozí zobrazení

hodnotu Rozdělit formulář. − V návrhovém zobrazení v kartě USPOŘÁDAT ve skupině Zobrazit či skrýtt potlačíme

zobrazení sekce Záhlaví formuláře klepnutím do tlačítka Záhlaví a zápatí formuláře. Potvrdíme, že odstraněním sekci budou odstraněny také všechny ovládací prvky v těchto sekcích. Tím ušetříme místo v okně formuláře.

Zobrazit či skrý

− Označíme všechny ovládací prvky formuláře a posuneme je do levého horního rohu formuláře asi na pozici 0,2;0,2 levého horního ovládacího prvku ve formuláři.

− V zobrazení rozložení nebo formulářovém zobrazení tažením za příčku mezi datovým listem a formulářovým zobrazením (tzv. rozdělovač) změníme jejich poměr tak, aby byl vidět celý formulář.

− K dočasnému zvětšení prostoru pro formulář můžeme potlačit zobrazování pásu karet, když z místní nabídky pásu zadáme příkaz MINIMALIZOVAT PÁS KARET.

Můžeme nyní snadno najít v datovém listu podniku, po klepnutí do jeho řádku se zobrazí ve spodním formuláři.

Ve vlastnostech formuláře v návrhovém zobrazení lze upřesnit parametry rozdělení formuláře: − Orientace rozděleného formuláře: Můžeme zadat, zda se datový list zobrazí nad formulářem,

pod ním, vlevo nebo vpravo od něj. − Datový list rozděleného formuláře: Můžeme potlačit možnost editace v datovém listu. − Rozdělovač rozděleného formuláře: Můžeme potlačit možnost měnit polohu příčky mezi

datovým listem a formulářovým zobrazením. − Uložit pozici rozdělovače: V případě hodnoty ano se při zavírání formuláře ukládá pozice

rozdělovače pro další otevření formuláře. − Velikost rozděleného formuláře: Lze nastavit výšku (či šířku) pro formulářové zobrazení. − Tisk rozděleného formuláře: Je možné upřesnit, které části formuláře se tisknou.

Formulář uložíme pod názvem P53 Podniky – Identifikace. Kdybychom používali formulář k editaci, bylo by vhodné změnit všechna pole kódů

z textových polí na pole se seznamy. Formulář umožňuje vložit další NACE, aniž jsme vyplnili předchozí NACE stejného

podniku. (V kap. 7.4 zdokonalíme formulář tak, abychom mohli vkládat další NACE jen po vyplnění předchozího NACE, např. NACE3 budeme moci vložit pouze po vyplnění NACE2.)

132 Pokud bychom nezměnili typ spojení, zobrazil by se jediný podnik, neboť většina z našich odběratelů nemá

vyplněno všech 6 kódů NACE.

Rozdělení formuláře

Page 116: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 116

5.4 Nekonečný formulář

Další formulář bude sloužit ke vkládání a prohlížení tabulky Cesty. Cílový vzhled formuláře je uveden v obr. 5-8.

OBR. 5-8: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P54 CESTY

Vytvoříme formulář s větší pomocí Accessu: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Cesty. 3 Tabulk− V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Více položek. Formulář− Vytvoří se formulář, který se otevře v zobrazení rozložení. − Ve formuláři je zobrazeno více vět. Tento způsob zobrazení je výsledkem nastavení

formátové vlastnosti formuláře Výchozí zobrazení na hodnotu Nekonečné formuláře. − Každá věta je zobrazena v jednom řádku tabulky. Ovládací prvky jsou v tabulkovém

rozložení. − Tažením za vodorovnou čáru tabulky zmenšíme výšku všech řádků tabulky. − Tažením za jednotlivé svislé čáry zúžíme šířku pro jednotlivé sloupce tabulky.

Do tabulky chceme doplnit nový sloupec s výrazem, který vypočítá délku cest: − V návrhovém zobrazení klepneme v kartě NÁVRH ve skupině Ovládací prvkyy do tlačítka

Textové pole. Ovládací prvk

− Vymezíme nové nevázané pole před polem Místo. Po vymezení jej přesuneme tak, aby pomocná oranžová čára byla před polem Místo. Nové nevázané pole se tak stalo součástí tabulkového zobrazení.

− Do popisky zapíšeme text Délka. − Do datové vlastnosti nevázaného ovládacího prvku Zdroj ovládacího prvku zapíšeme vzorec:

=Dokončení – Zahájení − Do jiné vlastnosti Název zapíšeme hodnotu Délka. − Délka je zarovnána zleva, je zobrazena jako textové pole. Upravíme zarovnání: • klepnutím do tlačítka Zarovnat text vpravo ve skupině Písmoo v kartě FORMÁT nebo Písm• do formátové vlastnosti Zarovnání textu pole Délky zadáme hodnotu vpravo.

− Obdobně zarovnáme příslušný popisek v záhlaví tabulky. − Chyba vypisovaná v řádku nové věty v sloupci Délka zmizí po vyplnění polí Zahájení a

Dokončení. − Upravíme výraz pro výpočet délky využitím funkce IIf. Funkce IIf umožňuje větvit výsledek

dle podmínky:

P54 Cesty

Nekonečný formulář

Funkce IIf

Page 117: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 117

=IIf([Zahájení] Is Null; ″″;[Dokončení] – [Zahájení]) Funkce IIf umožňuje variantně naplnit zdroj ovládacího prvku. Argumenty funkce jsou odděleny středníky: • podmínka (1. argument); • text, který se vypíše při splnění podmínky (2. argument); • případně text, který se vypíše při nesplnění podmínky (3. argument, nemusí být uveden).

− Délku chceme zobrazovat třemi různým barvami dle její hodnoty: • Klepneme do libovolného řádku do sloupce Délka. • V kartě FORMÁT ve skupině Písmoo klepneme do tlačítka Podmíněné. Písm• V dialogovém okně Podmíněné formátování dvakrát klepneme do tlačítka Přidat,

abychom mohli definovat tři (maximálně možné) větve formátování (viz Podmíněné formátování

obr. 5-9).

OBR. 5-9: DIALOGOVÉ OKNO PODMÍNĚNÉ FORMÁTOVÁNÍ

• V prvním řádku podmínky definujeme podmínku větve, ve druhém řádku klepnutím do

formátovacích tlačítek formát větve. • Pro Výchozí formát zadáme tučné formátování a pozadí šedé (druhý řádek, první sloupec

palety). Obdobně zadáme tučné formátování a šedé pozadí (znázorňující, že není možné hodnotu editovat) pro všechny tři větve.

• Pro 1. větev, kdy hodnota je menší než 5 dnů, zadáme navíc barvu písma tmavě zelenou (z posledního řádku nabídky barev).

• Pro 2. větev, kdy hodnota je mezi (včetně konců intervalu) 5 a 9 dny, zadáme navíc barvu písma oranžovou (z posledního řádku nabídky barev).

• Pro 3. větev, kdy hodnota je větší nebo rovna než 10 dnů, zadáme navíc barvu písma červenou (z posledního řádku nabídky barev).

− Ve formuláři jsou barevně odlišeny různé délky cest. − Formulář uložíme pod názvem P54 Cesty. (Tento modifikovaný formulář se později stane

podformulářem hlavního formuláře o tabulce Personal.)

5.5 Formulář se souhrny Úkolem dalšího formuláře bude editovat a zobrazovat data o licencích v řazení dle

programů a licencí. Opět se bude jednat o nekonečný formulář. Jedna věta bude ve formuláři zobrazena na jednom řádku. Cílový vzhled formuláře je uveden v obr. 5-10.

Prvotní návrh nekonečného formuláře připraví Access: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Licence. 3 Tabulk− V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Více položek. Formulář− Vytvoří se formulář, který se otevře v zobrazení rozložení. − Formulář má výchozí nastavení Nekonečné formuláře. Ovládací prvky jsou v tabulkovém

rozložení.

P55 Licence

Page 118: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 118

OBR. 5-10: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P55 LICENCE

− Tažením za vodorovnou čáru tabulky zmenšíme výšku všech řádků tabulky. − Tažením za jednotlivé svislé čáry zúžíme šířku pro jednotlivé sloupce tabulky.

Změníme pořadí sloupců a doplníme dva další: − Tažením za název sloupce v záhlaví nebo za kteroukoliv hodnotu přesuneme sloupec

Faktura na začátek tabulky. − V názvu sloupec Sériové_číslo nahradíme podtržítko mezerou. − Ze seznamu polí ze skupiny Pole dostupná v souvisejících tabulkách133 přesuneme na konec

tabulky sloupce Program_v a Cena. − Změníme název sloupce Program_v na Název. − Zúžíme sloupec Cena. − V zobrazení rozložení klepneme do sloupce Program a s klávesou Shift do sloupce Cena.

Upravíme vybrané vlastnosti: • datovou vlastnost Uzamknout na hodnotu ano, • jinou vlastnost Přístup klávesou tabelátor na hodnotu ne, • formátovou vlastnost Barva pozadí na hodnotu Formulář pozadí.

Věty jsou řazeny dle programu. Chceme je seřadit dle čísla faktury, názvu programu a sériového čísla. V návrhovém zobrazení upravíme datovou vlastnost formuláře Zdroj záznamů: − Z podokna Diagram tažením vložíme do podokna Mřížka pole Faktura před pole

Program_v a pole Sériové_číslo za Program_v. Diagram Mřížka

− Pro pole Faktura a Sériové_číslo zrušíme zaškrtnutí řádku Zobrazit. − V řádku Řadit vyplníme hodnotu vzestupně pro sloupce Faktura, Program_v a Sériové_číslo. − Klepnutím do tlačítka Zavřít ze skupiny Zavřítt ukončíme změnu návrhu dotazu. Potvrdíme

jeho uložení. Zavří

Do zápatí formuláře doplníme celkové tržby za všechny licence: − V návrhovém zobrazení přesuneme pole Cena do sekce Zápatí formuláře. − Jeho popisek změníme na Celkové tržby. − Klepneme na ovládací prvek Program_v v těle a s klávesou Shift na popisek Celkové tržby.

Zarovnáme je zleva klepnutím do tlačítka Zarovnat vlevo ve skupině Zarovnání ovládacího prvkuu v kartě USPOŘÁDAT.

Zarovnání ovládacíhoprvk

− Obdobně zarovnáme pole Cena v těle a v záhlaví formuláře. − Pro Cenu v těle a v záhlaví sjednotíme ještě šířku klepnutím do tlačítka Velikost podle

nejužšího ve skupině Velikost v kartě USPOŘÁDAT. Velikost

− V zobrazení rozložení vidíme, že v zápatí se zobrazuje cena za první licenci. Upravíme datovou vlastnost Zdroj ovládacího prvku celkových tržeb na výraz: =sum(Cena)

− Pokud je to nutné, rozšíříme šířku celkových tržeb i sloupce Cena. V zápatí je nyní uvedena celková cena za všechny (nejen zobrazené) licence. Záhlaví a zápatí se zobrazuje pro jakékoliv věty zobrazené v těle formuláře.

− Upravíme formát celkových tržeb: • Do formátové vlastnosti Styl okraje zadáme hodnotu průhledný.

133 Pokud není skupina zobrazena, klepneme do volby Zobrazit všechny tabulky na spodním kraji okna SSeezznnaamm ppoollíí.

Souhrn ve formuláři

Page 119: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 119

• Do formátové vlastnosti Barva pozadí pro popisek i součtový ovládací prvek zadáme

hodnotu Formulář pozadí. − Formulář uložíme pod názvem P55 Licence.

5.6 Podformulář Formulář z kap. 5.5 nelze používat k zapsání nových faktur do databáze. Tabulka

Licence je totiž v přímé vazbě k tabulce Faktury a v nepřímé vazbě k tabulkám Podniky a Personal. Formulář může sloužit pouze k přidávání licencí k existujícím fakturám. Pokud zapíšeme licenci k neexistující faktuře, Access při ukládání věty vypíše chybové hlášení Nelze přidat nebo změnit záznam, protože je vyžadován související záznam v tabulce Faktury. Abychom předešli chybnému zadání faktury, musíme omezit vstup do pole Faktura. Předvedeme si dva způsoby omezení vstupu.

V prvním případě změníme ovládací prvek Faktura z textového pole na pole se seznamem s vlastnostmi: − datová vlastnost Zdroj řádků: Faktury, − formátová vlastnost Počet sloupců: 3, − formátová vlastnost Šířky sloupců: 1cm;0cm;2cm, − formátová vlastnost Šířka seznamu: 3cm, − datová vlastnost Omezit na seznam: ano. V rozbalovacím seznamu zobrazujeme nabídku čísel faktur s daty jejich vzniku. Zadáním šířky 0 cm nevypisujeme druhé pole z tabulky Faktury, tj. E_mail. Omezením vstupu na seznam nepřipustíme zadání neexistující faktury. Jestliže vložíme číslo faktury bez využití rozbalovací nabídky, Access již po zadání čísla faktury upozorní, že Zadávaný text musí odpovídat položce v seznamu. Pole Faktura mírně rozšíříme, neboť rozbalovací šipka zabírá jistý prostor. Upravený formulář uložíme pod názvem P56a Licence.

Ve druhém případě budeme vkládat nové faktury ve formuláři faktur, v jehož rámci umožníme vložení licencí k jednotlivým fakturám v tzv. podformuláři. Připravme nejprve pro tabulku Faktury samostatný formulář (viz obr. 5-11):

OBR. 5-11: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P56B FAKTURY

− V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Faktury. 3 Tabulk− V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Více položek. Formulář− Vytvoří se formulář, který se otevře v zobrazení rozložení. − Formulář má výchozí nastavení Nekonečné formuláře. Ovládací prvky jsou v tabulkovém

rozložení. − Tažením za vodorovnou čáru tabulky zmenšíme výšku všech řádků tabulky. − Tažením za jednotlivé svislé čáry zúžíme šířku pro jednotlivé sloupce tabulky. − Upravíme popisek E_mail na E-mail. − V návrhovém zobrazení změníme typy ovládacích prvků: • Pole E_mail změníme na pole se seznamem, zdrojem řádků bude tabulka Personal,

vkládání omezíme na seznam. • Pole IČ změníme na pole se seznamem, zdrojem řádků bude tabulka Podniky, vkládání

omezíme na seznam. Do formátových vlastností zadáme hodnoty: » Počet sloupců: 2 » Šířky sloupců: 2cm » Šířka seznamu: 4cm

P56a Licence

P56b Faktury

Podformulář

Page 120: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 120

V rozbalovacím seznam se tak zobrazují pole IČ a Název_podniku.

− Formulář uložíme pod názvem P56b Faktury. − Pro další úpravy vytvoříme kopii formuláře: • Klepnutím označíme formulář P56b Faktury v navigačním podokně. • Kombinací kláves Ctrl C zkopírujeme formulář do schránky. • Vložíme formulář kombinací Ctrl V. V dialogovém okně Vložit jako upřesníme název Vložit jako

formuláře P56c Faktury. − Do formuláře P56c Faktury chceme doplnit ke každé faktuře zobrazení licencí prodaných

v rámci této faktury. Pro zobrazení licencí jsme připravili formulář P56a. Nejprve pořídíme jeho kopii, neboť formulář budeme později (pro účely začlenění do formuláře P56c) upravovat. Kopii nazveme P56d Licence. Vztah jednotlivých formulářů je zobrazen v obr. 5-12.

OBR. 5-12: SOUSTAVA FORMULÁŘŮ

V návrhovém zobrazení otevřeme formulář P56c Faktury, do nějž vložíme jiný formulář: − Tažením za dolní okraj zvýšíme tělo na výšku 6,5 cm. − Z navigačního podokna táhneme formulář S56d Licence asi 1 cm pod ovládací prvek Faktura

v těle formuláře. − Access zobrazí hlášení, v němž nás informuje, že dílčí vkládaný formulář – podformulář

nemůže být součástí nekonečného formuláře. Klepnutím do tlačítka OK změníme formulář S56c Faktury na samostatný.

− Klepnutím označíme a klávesou Delete odstraníme popisek podformuláře.134 − Podformulář umístíme asi 0,2 cm pod pole Faktura. − Podformulář zvýšíme tažením úchytu ve středu jeho dolního kraje na výšku 6,2 cm. − Tažením za spodní kraj minimalizujeme tělo formuláře. (Pokud přetáhneme kraj přes

podformulář, Access automaticky výšku zvýší tak, aby byly vidět všechny ovládací prvky, tj. i podformulář.)

− V zobrazení rozložení prohlédneme jednotlivé věty formuláře P56c Faktury. Kromě dat o faktuře jsou v podformuláři zobrazeny věty příslušné faktury.

− Návaznost podformuláře a hlavního formuláře zajišťují vlastnosti podformuláře Řídící propojovací pole (z hlavního formuláře) a Dceřiné propojovací pole (z podformuláře), které mají shodnou hodnotu Faktura. Pokud by zde hodnota nebyla vyplněna, zobrazovaly by se v podformuláři všechny věty, tj. nejen věty související s větou v hlavním formuláři.

− Číslo faktury v podformuláři je zbytečné, neboť v podformuláři jsou zobrazeny jen licence s číslem faktury uvedeným v hlavním formuláři. Při vyplňování nových licencí by se číslo faktury po zápisu libovolného pole podformuláře automaticky vyplnilo. Pole Faktura

134 Podformulář bude nadepsán ve svém záhlaví včetně loga. Toto záhlaví se nebude zobrazovat, pokud podformulář

nebude obsahovat žádnou větu k větě hlavního formuláře. Popisek by se vypisoval vždy.

P56c Faktury

P56d Licence

Page 121: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 121

odstraníme z podformuláře včetně jeho popisku. Vzhledem k tomu, že ovládací prvky jsou v tabulkovém rozložení, automaticky se posunou zbývající ovládací prvky doleva. Ručně však musíme posunout celkové tržby včetně jejich popisku v zápatí podformuláře.135

− Výsledný stav formuláře je uveden v obr. 5-13.

OBR. 5-13: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P56C FAKTURY

Fakturu nemůžeme psát pro podnik, který není v tabulce Podniky. Proto jsme v předchozím formuláři vybírali IČ podniku ze seznamu. Při psaní nové faktury chceme mít přehled o případných dřívějších prodejích stejnému podniku. Také faktury chceme zadávat formou podformuláře v hlavním formuláři dat o podnicích. Access umožňuje dvojí úroveň vnoření formulářů. Nejprve stávající formulář P56c Faktury zkopírujeme do formuláře P56e Faktury, který se stane součástí hlavního formuláře a který bude později modifikován (vynecháním pole IČ, jímž bude propojen s hlavním formulářem).

Připravíme formulář P56f Podniky s vybranými základními poli z tabulky Podniky. Nechceme do formuláře uvést všechna pole, proto použijeme Průvodce formulářem: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Podniky. 3 Tabulk− V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Více formulářů a v nabídce

vybereme PRŮVODCE FORMULÁŘEM. Formulář

− V prvním okně průvodce je nabídnut výběr tabulky Podniky. Ze seznamu dostupných polí vybereme IČ, Název_podniku a Obec (viz obr. 5-14). Klepneme do tlačítka Další.

OBR. 5-14: PRŮVODCE FORMULÁŘEM - PRVNÍ OKNO

135 Ovládací prvky podformuláře lze označit i při práci s hlavním formulářem. Prvním klepnutím označíme

podformulář (a vidíme jeho vlastnosti), druhým klepnutím vybereme ovládací prvek podformuláře.

P56e Faktury

P56f Podniky

Page 122: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 122

− Ve druhém okně Průvodce vybereme rozložení Tabulka a klepneme do tlačítka Další. − Ve třetím okně Průvodce vybereme styl Access 2007 a klepneme do tlačítka Další. − Ve čtvrtém okně Průvodce zadáme název formuláře P56f Podniky a ponecháme vybránu

volbu Otevřít formulář pro zobrazení informací. Klepneme do tlačítka Dokončit. − Vytvoří se formulář, který se otevře ve formulářovém zobrazení. − V zobrazení rozložení provedeme úpravy formuláře: • Změníme název formuláře v záhlaví na Podniky. Zmenšíme výšku ovládacího prvku

popisku s názvem tak, aby nepřekrývala nadpisy sloupců tabulky. • Změníme nadpis sloupce Název_podniku na Název podniku. • Upravíme šířky sloupců tabulky. • Klepnutím do voliče rozložení v levém horním rohu označíme všechny jeho ovládací

prvky, v kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvkuu klepneme do tlačítka Výplň ovládacího prvku a vybereme volbu ŽÁDNÁ.

Rozložení ovládacího prvk136

• Označíme současně vázané ovládací prvky IČ, Název_podniku a Obec a do datové vlastnosti Uzamknout zadáme hodnotu ano, neboť formulář nebudeme používat k editaci dat o podnicích či vkládání nových podniků, ale pouze pro vyhledávání faktur k jednotlivým podnikům. Upravíme také jejich formátovou vlastnost Barva pozadí na hodnotu Formulář pozadí.

− V návrhovém zobrazení změníme formátovou vlastnost formuláře Výchozí zobrazení na hodnotu Samostatný formulář.

− V návrhovém zobrazení zvýšíme výšku těla na 8 cm a tažením vložíme do těla asi 1 cm pod pole IČ podformulář P56e Faktury.

− Odstraníme popisek podformuláře P56e Faktury a posuneme nahoru asi 0,2 cm pod ovládací prvek IČ podformulář.

− Abychom mohli snadno hledat podnik, jehož faktury a licence chceme zobrazit, upravíme ještě výchozí zobrazení formuláře P56f Podniky. V návrhovém zobrazení upravíme vlastnosti: • formátová vlastnost Výchozí zobrazení: Rozdělit formulář. • formátová vlastnost Orientace rozděleného formuláře: Datový list napravo.

− Závěrem vhodně upravíme šířku formulářů a objektů podformulářů137. − Výsledný stav formuláře je uveden v obr. 5-15.

OBR. 5-15: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P45F PODNIKY

136 Ve vlastnosti vícenásobného výběru rozložení můžeme upravovat také vlastnosti Šířka okraje (standardně vlasová čára) a Barva okraje (standardně barva Ohraničení a mřížka, tj. modrá).

137 Podformulář můžeme v návrhovém zobrazení zobrazit v samostatném novém okně klepnutím do tlačítka Podformulář v novém okně ve skupině NNáássttrroojjee v kartě NÁVRH.

Page 123: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 123

Zvláště důležité je správně se zorientovat v navigačních tlačítkách jednotlivých

formulářů: − Spodní navigační tlačítka slouží k pohybu mezi jednotlivými podniky, tj. v tabulce Podniky. − Navigační tlačítka v předposledním řádku slouží k pohybu mezi fakturami, tj. v tabulce

Faktury (přesněji ve větách tabulky Faktury souvisejících se zobrazenou větou tabulky Podniky).

− Navigační tlačítka ve třetím řádku zespodu slouží k pohybu mezi licencemi zobrazené faktury, tj. v tabulce Licence (přesněji ve větách tabulky Licence souvisejících se zobrazenou větou tabulky Faktury).

Pro úplnost ještě dodejme: − Podformulář lze vložit do formuláře v návrhovém zobrazení také klepnutím do tlačítka

Podformulář či podsestava ve skupině Ovládací prvky v kartě NÁVRH a upřesněním vlastností podformuláře v průvodci podformulářem či přímo ve vlastnostech (především Zdrojový objekt, Dceřiné a Řídící propojovací pole).

Ovládací prvky

− Podformulář vloží za vhodných podmínek do formuláře Access sám při prvotní definici formuláře. Podformulář je v tomto případě však formou tabulky, což lze upravit výběrem vhodného podformuláře do datové vlastnosti Zdrojový objekt v návrhovém zobrazení.

− Podformulář může být s formulářem propojen i skupinou více polí. Potom jsou jednotlivá pole ve vlastnosti Dceřiné a Řídící propojovací pole oddělena středníkem. Názvy polí nemusíme vypisovat ručně, lze je vybrat ze seznamu při využití tvůrce, tj. klepnutím do tlačítka na konci řádku Řídící propojovací pole nebo Dceřinné propojovací pole.

5.7 Graf Jedním z ovládacích prvků formuláře může být graf. Graf může být celkový bez

ohledu na data ve formuláři nebo může mít charakter podformuláře a zobrazovat jen data ve větách souvisejících s větou v (hlavním) formuláři.

Vytvoříme postupně tři grafy: − graf celkových tržeb firmy, − graf tržeb vybraného zaměstnance dle měsíců, − graf tržeb fakturovaných vybranému podniku – odběrateli.

Nejdříve připravíme podkladový dotaz pro všechny tři grafy. V dotazu upřesňujeme ke každé faktuře měsíc prodeje, značku programu a cenu programu (viz obr. 5-16).

OBR. 5-16: DOTAZ P57 PODKLADY GRAFŮ

První graf celkových tržeb za podnik připravíme do prázdného formuláře bez datového zdroje: − V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Prázdný formulář. Formulář− Otevře se prázdný formulář v zobrazení rozložení. Přejdeme do návrhového zobrazení. − V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Vložit graf. Ovládací prvky− Graf vymezíme po celé ploše těla formuláře. Dále nás vede Průvodce grafem. − V prvním okně vybereme dotaz P57 Poklady grafů, který použijeme pro vytvoření grafu. − V druhém okně vybereme pole, která chceme zobrazit v grafu: Program, Měsíc, Cena. − V třetím okně ponecháme vybraný první typ grafu – sloupcový.

Graf

P57 Podklady grafů

P57a Graf – Celkové tržby

Page 124: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 124

− Ve čtvrtém okně upřesníme umístění polí v grafu: • Tažením mimo graf odstraníme pole Součet-Měsíc. • Na ose x (oblast Osa) ponecháme Program. • Do oblasti Data přetáhneme Cenu. Změní se na Součet-Cena. • Do oblasti Série přetáhneme Měsíc. • Tlačítkem Náhled grafu můžeme zobrazit ukázkový náhled.

− V pátém okně upřesníme nadpis grafu Celkové tržby a ponecháme zobrazenu legendu. − Graf v návrhovém zobrazení obsahuje jen ilustrativní data (za Východ, Západ, Sever v 1. – 4. čtvrtletí, která nejsou čerpána z podkladového dotazu).

− Zobrazíme graf v zobrazení rozložení a mírně zvětšíme, čímž se graf zformátuje. − Ve formulářovém zobrazení poklepáme na graf. Graf se zobrazí v aplikaci Microsoft Graph,

v níž upravíme typ grafu: • Z menu zadáme příkaz GRAF, TYP GRAFU. • V dialogovém okně Typ grafu vybereme v rámci typu grafu Sloupcový první podtyp grafu

Skládaný sloupcový a klepneme do tlačítka OK. Typ grafu

• Klepnutím do bílé části okna Accessu mimo graf ukončíme práci s aplikací Microsoft Graph.

− Do formátové vlastnosti Styl okraje grafu zadáme hodnotu průhledný. − Výsledný formulář uložíme pod názvem P57a Graf – Celkové tržby (viz obr. 5-17).

OBR. 5-17: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P57A GRAF – CELKOVÉ TRŽBY

Druhý formulář bude obsahovat graf zobrazující data vztahující se pouze k zobrazenému zaměstnanci. Podkladový dotaz je připraven pro graf, nikoliv pro formulář. Nový formulář připravíme z tabulky Personal: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Personal. 3 Tabulk− V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Více formulářů a v nabídce

vybereme PRŮVODCE FORMULÁŘEM: Formulář

• V prvním okně Průvodce vybereme pouze pole E-mail. • V druhém okně ponecháme rozložení Sloupce. • V třetím okně ponecháme styl Access 2007. • Ve čtvrtém okně nazveme formulář P57b Graf – Personal.

− V návrhovém zobrazení potlačíme zobrazení sekce Záhlaví formuláře klepnutím do tlačítka Záhlaví a zápatí formuláře ve skupině Zobrazit či skrýt v kartě USPOŘÁDAT. Odsouhlasíme odstranění sekce.

Zobrazit či skrýt

− Jediné pole v těle posuneme do levého horního rohu. − Zúžíme popisek E-mail. − Upravíme vlastnosti ovládacího prvku E_mail: • formátová vlastnost Styl okraje: průhledný • datová vlastnost Uzamknout: ano

V návrhovém zobrazení zvětšíme formulář na 10 x 10 cm a vložíme do něj graf:

P57b Graf – Personal

Page 125: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 125

− V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Vložit graf. Ovládací prvky− Pod polem E_mail vymezíme v celé ploše formuláře graf. − V prvním okně vybereme dotaz P57 Poklady grafů, který použijeme pro vytvoření grafu. − V druhém okně vybereme pole, která chceme zobrazit v grafu: Program, Měsíc, Cena. − V třetím okně ponecháme vybraný první typ grafu – sloupcový. − Ve čtvrtém okně upřesníme umístění polí v grafu: • Tažením mimo graf odstraníme pole Součet-Měsíc. • Na ose x (oblast Osa) ponecháme Program. • Do oblasti Data přetáhneme Cenu. Změní se na Součet-Cena. • Do oblasti Série přetáhneme Měsíc. • Tlačítkem Náhled grafu můžeme zobrazit ukázkový náhled.

− V pátém okně jsem na rozdíl od předchozího grafu požádáni o výběr polí spojujících větu a graf, neboť pro formulář je definován podkladový dotaz. Ponecháme jako Formulář pole i jako Pole grafu pole E_mail. Později bude vyplněno do vlastností Řídící a Dceřiné propojovací pole.

− V šestém okně upřesníme nadpis grafu Tržby zaměstnance a ponecháme zobrazenu legendu. − Graf v návrhovém zobrazení obsahuje jen ilustrativní data (za Východ, Západ, Sever v 1. – 4. čtvrtletí, která nejsou čerpána z podkladového dotazu).

− Zobrazíme graf v zobrazení rozložení a mírně zvětšíme, čímž se graf zformátuje. − Ve formulářovém zobrazení poklepáme na graf. Graf se zobrazí v aplikaci Microsoft Graph,

v níž upravíme typ grafu: • Z menu zadáme příkaz GRAF, TYP GRAFU. • V dialogovém okně Typ grafu vybereme v rámci typu grafu Sloupcový první podtyp grafu

Skládaný sloupcový a klepneme do tlačítka OK. Typ grafu

• Klepnutím do bílé části okna Accessu mimo graf ukončíme práci s aplikací Microsoft Graph.

− Do formátové vlastnosti Styl okraje grafu zadáme hodnotu průhledný. − V datové vlastnosti Vstupní maska pole E_mail smažeme obsah. − Výsledný formulář uložíme pod názvem P57b Graf – Personal. − V grafu jsou analyzovány pouze tržby za zaměstnance zobrazeného ve formuláři (viz obr.

5-18). Někteří zaměstnanci nemají právo fakturovat, nevykazují proto tržby, nemají zobrazen graf. Propojení funguje díky správnému naplnění datových vlastností grafu Řídící a Dceřiné propojovací pole hodnotou E_mail.

OBR. 5-18: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P57B GRAF – PERSONAL

− V návrhovém zobrazení změníme ještě vlastnosti formuláře: • formátová vlastnost Výchozí zobrazení: Rozdělit formulář

Page 126: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 126

• formátová vlastnost Orientace rozděleného formuláře: Datový list napravo

− Do formuláře doplníme pole Oprávnění fakturovat. − Datový list v pravé části rozděleného formuláře usnadňuje výběr zaměstnance. Umožňuje

také filtrování zobrazovaných zaměstnanců, např. můžeme zobrazit jen zaměstnance s oprávněním fakturovat.

Obdobně připravíme formulář s grafem pro podniky s následujícími rozdíly: − Formulář vychází z tabulky Podniky, nikoliv z tabulky Personal. Zobrazuje IČ a název

podniku. − Ve formuláři odstraníme skládané rozložení a uspořádáme prvky do jednoho řádku. − Do grafu jsou umístěny pouze Program (Osa) a Cena (Data). − Polem spojujícím větu a graf je pole IČ. − Graf je nadepsán Tržby za prodeje podniku. Není zobrazena legenda. − Formulář je uložen pod názvem P57c Graf – Podniky. − Výsledný stav formuláře je v obr. 5-19.

OBR. 5-19: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P57C GRAF - PODNIKY

5.8 Formulář s kartami O zaměstnancích máme k dispozici velké množství informací, které zobrazujeme

v několika formulářích. Vytvoříme nyní formulář s komplexními informacemi o jednotlivých zaměstnancích. Access umožňuje rozložení většího množství polí do více karet. Karty jsou obdobou podformulářů, mohou se však ve formuláři překrývat. Využijeme stávající formuláře a vložíme je jako podformuláře na karty komplexního formuláře. Na kartách budeme chtít zobrazovat jen věty podformulářů vztahující se k zaměstnanci zobrazenému v komplexním formuláři. Access nazývá objekt se záložkami karta, každá záložka zastupuje jednu stránku.

Formulář bude obsahovat čtyři karty s podformuláři, které budeme mírně modifikovat, a proto si nejprve připravíme jejich kopie: − P52a Personal – Identifikace zkopírujeme do formuláře P58a Personal – Identifikace, − P56c Faktury zkopírujeme do formuláře P58b Faktury. − P57b Graf – Personal zkopírujeme do formuláře P58c Graf – Personal. − P54 Cesty zkopírujeme do formuláře P58d Cesty.

Provedeme následující úpravy ve formulářích: − P58a Personal – Identifikace: Odstraníme pole E_mail, neboť bude uvedeno v hlavním

formuláři. Ostatní ovládací prvky v levé části přesuneme v těle nahoru. Zmenšíme výšku těla.

− P58b Faktury: Odstraníme pole E_mail.

P57c Graf – Podniky

P58e Karta – Personal

Page 127: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 127

− P58c Graf – Personal: Odstraníme pole E_mail a Oprávnění. Graf posuneme nahoru.

Zmenšíme výšku těla. Do formátové vlastnosti formuláře Výchozí zobrazení zadáme hodnotu Samostatný formulář.

− P58d Cesty: Modifikujeme zdroj záznamů, kterým bude dotaz využívající tabulky Cesty a Výjezdy, výsledkem dotazu budou všechna pole z tabulky Cesty a pole E_mail z tabulky Výjezdy. Pole E_mail v podformuláři neumístíme.

Vytvoříme hlavní formulář, který bude obsahovat pouze pole E_mail a karty podformulářů. − Připravíme kopii formuláře P57b Graf – Personal pod názvem P58e Karta – Personal. − Odstraníme pole Oprávnění a graf.

Do formuláře nachystáme objekt karta: − V návrhovém zobrazení klepneme v kartě NÁVRH ve skupině Ovládací prvkyy do tlačítka

Karta. Ovládací prvk

− Kartu vymezíme v těle formuláře pod polem E_mail. Pravý dolní roh bude na pozici 15;12. Kartu bude možné později označit klepnutím napravo od poslední záložky. Klepnutím do některé ze záložek bude možné označit dílčí stránku karty.

− V kartě jsou přichystány dvě stránky. Postupně klepneme na jejich záložky a upravíme jinou vlastnost Název na hodnotu Identifikace pro první stránku a Faktury pro druhou stránku138.

− Do karty chceme vložit další dvě stránky. Označíme kartu či některou stránku a v kartě NÁVRH klepneme ve skupině Ovládací prvky do tlačítka Vložit stránku. Takto vložíme dvě stránky a nové stránky přejmenujeme na Graf prodejů a Cesty.

Pro úplnost uveďme další možné operace se stránkami. Klepnutím pravým tlačítkem do záložky stránky zobrazíme místní nabídku, v níž můžeme: − příkazem ODSTRANIT STRÁNKU označenou stránku odstranit, − příkazem POŘADÍ STRÁNEK zobrazit dialogové okno, v němž tlačítky Přesunout nahoru a

Přesunout dolů můžeme upravit pořadí stránek. Na stránky umístíme podformuláře (viz obr. 5-20):

OBR. 5-20: STRÁNKA CESTY FORMULÁŘE P58E KARTA - PERSONAL

− V návrhovém zobrazení klepneme na záložku první stránky Identifikace. Nyní bychom mohli umisťovat do stránky karty nové ovládací prvky. Z navigačního podokna přesuneme do levého horního rohu černé části stránky139 Identifikace formulář P58a Personal – Identifikace. Pokud je podformulář vyšší či širší, automaticky se změní velikost stránky (v našem případě její výška i šířka).

138 Pokud bychom vyplnili formátovou vlastnost Titulek, bude titulek použit pro text záložky stránky. Pokud je

vlastnost Titulek prázdná, je pro text záložky použit Název. 139 Pokud bychom objekt neumístili do černé části, nebyl by součástí stránky karty, byl by však součástí přímo celého

formuláře a překrýval by objekt karty.

Karta

Vytvoření a přejmenování stránky

Odstranění stránky

Pořadí stránek

Page 128: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 5: Formuláře 128

− Odstraníme popisek podformuláře, posuneme podformulář o ušetřené místo nahoru a zmenšíme výšku karty.

− Obdobně umístíme na další stránky další podformuláře.140 Podformuláře vkládáme do levého horního rohu stránek.

− Podformulář je propojen s hlavním formulářem polem E_mail. Pro podformulář na stránce Graf prodejů musíme upřesnit vlastnost Řídící a Dceřiné propojovací pole na hodnotu E_mail.

Obdobně připravíme komplexní formulář o podnicích, nejprve podformuláře: − P53 Podniky – Identifikace zkopírujeme do formuláře P58f Podniky – Identifikace, − P56c Faktury zkopírujeme do formuláře P58g Faktury. − P57c Graf – Podniky zkopírujeme do formuláře P58h Graf – Podniky. Ve všech třech nově vytvořených formulářích odstraníme pole IČ a Název_podniku neboť budou uvedena v hlavním formuláři.

Hlavní formulář P58i Karta – Podniky bude vycházet z kopie formuláře P57c Graf – Podniky. Připravíme kartu se třemi stránkami Identifikace, Prodeje, Graf prodejů. Analogicky jako v případě formuláře P58e Personal – Karta na jednotlivé stránky kopírujeme upravené podformuláře.

Pro úplnost dodejme, že ve formulářích lze použít kontingenční tabulku a graf obdobně jako v tabulkách a dotazech.

Shrnutí 1. Formulář usnadňuje uživateli zadávání, úpravu a zobrazování dat z tabulky či dotazu. 2. Samostatný formulář na rozdíl od datového listu zobrazuje pouze data jediné věty. 3. V rozděleném formuláři je zobrazen kromě formuláře datový list tabulky či dotazu. 4. Nekonečný formulář zobrazuje více vět, jejich počet je závislý na velikosti okna formuláře.

Věta v nekonečném formuláři je obvykle uspořádána v malém počtu řádků. 5. Formulář navrhujeme v zobrazení rozložení nebo v návrhovém zobrazení. Používání

formuláře probíhá ve formulářovém zobrazení. 6. Formulář se skládá z ovládacích prvků, z nichž některé jsou vázány s poli v podkladové

tabulce či podkladovém dotazu. 7. Formulář se skládá ze sekcí, především z těla, záhlaví a zápatí. Formulář jako celek,

jednotlivé sekce i jednotlivé ovládací prvky mají řadu vlastností. 8. Pro výchozí návrh formuláře můžeme použít Accessem vytvořený samostatný či nekonečný

formulář nebo využít průvodce formulářem nebo můžeme formulář vytvořit sami. 9. Pole umisťujeme do formuláře ze seznamu polí. Pokud je v kartě Vyhledávání návrhu

tabulky vhodně definován zobrazovaný ovládací prvek, promítne se typ ovládacího prvku i do formuláře. Pole můžeme tvořit také z karty NÁVRH, takto vytvořená pole musíme potom vázat s podkladovou tabulkou či dotazem prostřednictvím vlastnosti Zdroj ovládacího prvku.

10. Pole, pro něž nepřipouštíme editaci, je vhodné zamknout a barevně odlišit jejich pozadí. 11. Ovládací prvky mají řadu vlastností. V okně vlastností můžeme zobrazit všechny vlastnosti

nebo vybranou skupinu vlastností. Každá skupina má v okně vlastností svou záložku. 12. Vázaná pole jsou doprovázena popisky. Popisky se přesouvají ve formuláři se svázanými

poli, můžeme je také přesouvat izolovaně (tažením za úchyt v levém horním rohu). Můžeme měnit text popisků, můžeme je odstraňovat, můžeme vytvářet popisky bez polí.

13. Ovládací prvky mohou být uspořádána formou tabulkového nebo skládaného rozložení. 14. Ve formuláři mohou být i pole definovaná výrazy. Tvorbu výrazů usnadňuje Tvůrce výrazů. 15. Druh ovládacího prvku můžeme měnit příkazem FORMÁT, ZMĚNIT NA. 16. Ve formuláři je možné uvádět souhrny (nejčastěji součty v sekci Zápatí). 17. Formulář může obsahovat podformulář, v němž jsou zobrazovány související věty z jiné

datové sady. 18. Do formuláře lze vložit graf, který bývá proměnlivý dle hodnot konkrétní věty. 19. Komplexní pohled na data nabízí ovládací prvek karta, který se skládá ze stránek. Stránky

můžeme přejmenovávat a doplňovat. Na stránce lze zobrazit např. podformulář či graf.

140 Po odstranění popisku prvního podformuláře je vhodné nastavení vlastností pole podformuláře definovat jako výchozí klepnutím do tlačítka Výchozí nastavení prvku ve skupině OOvvllááddaaccíí pprrvvkkyy v kartě NÁVRH, aby se ostatní podformuláře vkládaly již bez popisku.

P58i Karta – Podniky

Page 129: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 129

6. Sestavy

6.1 Druhy sestav Sestavy slouží k prezentaci dat, zejména k tisku dat na tiskárně. Tisknout lze i

formuláře141, sestavy však nabízejí širší možnosti, poskytují větší volnost v prezentaci sumárních informací.

Návrh sestavy je podobný návrhu formuláře. Také sestava se skládá z ovládacích prvků, které lze parametrizovat pomocí vlastností a které jsou umístěny do sekcí sestavy. V porovnání s formuláři mají sestavy jediný druh, který je analogií nekonečného formuláře. Tisknou se tedy všechny věty. Neexistuje analogie samostatného a rozděleného formuláře.

V sestavě se tisknou vždy všechny věty podkladové tabulky či dotazu. Výběr vět můžeme provádět filtrováním. Věty v sestavě lze řadit či seskupovat. Skupina může mít své záhlaví a zápatí, skupiny mohou být do sebe vnořeny v několika úrovních. Do sestavy lze doplňovat součty za celou sestavu či za jednotlivé skupiny.

Sestavu lze zobrazit několika zobrazeními142: − Zobrazení sestavy: Sestava je zobrazena tak, jak bude vytištěna: • Na rozdíl od zobrazení rozložení a návrhového zobrazení nelze provádět změny návrhu,

např. rozšiřovat pole. • Na rozdíl od náhledu lze definovat filtr a lze označovat tažením věty např. za účelem

kopírování do schránky. − Náhled: Sestava je zobrazena tak, jak bude vytištěna. Zobrazí se kontextová karta NÁHLED,

v níž je možné: • nastavit lupu zobrazení náhledu, • nastavit velikost a orientaci stránky, • exportovat data, např. do Wordu, • tisknout data na tiskárně. Práci s náhledem je nutné ukončit klepnutím do tlačítka Zavřít náhled.

− Zobrazení rozložení: Zobrazení, v němž lze provádět řadu změn návrhu sestavy. V zobrazení rozložení jsou při úpravách sestavy zobrazena data, zobrazení je tak vhodné např. při nastavení velikosti polí.

− Návrhové zobrazení: Zobrazení, v němž nejsou zobrazena data. Lze v něm provádět veškeré změny návrhu, mj.: • Jsou zobrazeny sekce (oddíly) Záhlaví sestavy, Záhlaví stránky, Tělo (Podrobnosti), Zápatí

stránky, Zápatí sestavy. Lze měnit jejich velikost. • Lze měnit zásadní vlastnosti sestavy, např. Výchozí zobrazení. Výchozím zobrazením

může být Zobrazení sestavy nebo Náhled tisku. • Lze přidat do sestavy další ovládací prvky, např. popisky, obrázky, čáry. • Lze upravit zdroje ovládacích prvků.

Sestava se skládá z několika sekcí: − Záhlaví sestavy je vytištěno na začátku sestavy. V případě použití ovládacího prvku

obsahujícího funkci Sum je vypočítán součet za celou sestavu. − Záhlaví stránky je vytištěno na začátku každé stránky. Na první stránce je vytištěno až za

záhlavím sestavy. − Záhlaví skupiny je vytištěno na začátku skupiny. Může obsahovat např. pole, dle nějž sestavu

seskupujeme. Takové pole potom již nemusíme uvádět do těla sestavy, můžeme tak ušetřit sloupec tabulky. Sestavu zaměstnanců můžeme např. seskupit dle pole Oddělení a pole Oddělení (či lépe Oddělení_v) tisknout do záhlaví skupiny. V případě použití ovládacího prvku obsahujícího funkci Sum je vypočítán součet za skupinu.

− Tělo (Podrobnosti)143 obsahuje prvky vztahující se k jednotlivým větám.

141 Ilustrace tisku formuláře je zařazena v kap. 8. Tisknout lze také přímo tabulky. V navigačním podokně klepnutím

označíme tabulku, klepneme do tlačítka Office a zadáme příkaz TISK, NÁHLED. Tabulky se tisknou ve formě ohraničených buněk, každá věta tvoří jeden řádek. Sloupce jsou nazvány dle názvů polí. Obdobně lze tisknout výsledky dotazů.

142 Ve vlastnostech sestavy lze zamezit nabízení některých zobrazení (zobrazení sestavy, zobrazení rozložení).

Význam sestav

Druhy sestav

Zobrazení sestavy

Struktura sestavy

Page 130: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 130

− Zápatí skupiny je vytištěno na konci skupiny. Může obsahovat např. volný prostor k oddělení

skupin. − Zápatí stránky je vytištěno na konci každé stránky. − Zápatí sestavy je vytištěno na konci sestavy před zápatím stránky144.

Ovládací prvky jsou objekty použité v sestavě. Zobrazují data z podkladové tabulky či dotazu a doplňkové informace (např. popisky dat a obrázky). Dle návaznosti na podkladová data existují obdobně jako ve formulářích různé druhy ovládacích prvků: − vázané: slouží k tisku hodnot, − vypočítané: tisknou výsledek výrazu, − nevázané: zvyšují přehlednost sestavy, speciální prvky Číslo stránky a Datum a čas se

používají především v sestavách. Tlačítka pro tvorbu sestavy jsou soustředěna v kartě VYTVOŘIT ve skupině SSeessttaavv

yy. Všechna tlačítka vytvoří prvotní návrh sestavy. Tlačítka se liší dle obsahu prvotního návrhu: − Sestava: Jako podklad je využit objekt označený v navigačním podokně.145 Z dat je

vytvořena sestava včetně záhlaví sestavy (v němž je uveden datový zdroj), záhlaví stránky, zápatí stránky (číslo stránky) a zápatí sestavy (počet vět). Název sestavy je převzat z názvu datového zdroje.146 Ovládací prvky jsou v tzv. tabulkovém rozložení. Tažením za kraj ovládacího prvku můžeme tak snadno měnit jeho umístění ve sloupcích. Sestava se zobrazí v zobrazení rozložení.

− Štítky: Jako podklad je využit objekt označený v navigačním podokně. Připraví se sestava určená pro tisk štítků např. s adresami odběratelů. V průvodci štítky vybereme jejich rozměr, formát písma, pole do jednotlivých řádků štítku, kritéria řazení vět vypisovaných do štítků, název sestavy. Závěrem se rozhodneme, zda sestavu zobrazíme v náhledu či návrhovém zobrazení.

− Prázdná sestava: Vytvoří se nová prázdná sestava, která nemá definován datový zdroj. Sestava se zobrazí v zobrazení rozložení.

− Průvodce sestavou: V průvodci vybereme podkladovou tabulku či dotaz, pole sestavy, úroveň seskupení polí, řazení, způsob rozložení ovládacích prvků v sestavě a styl formátování sestavy. Závěrem se rozhodneme, zda sestavu zobrazíme v náhledu či návrhovém zobrazení.

− Návrh sestavy: Vytvoří se nová prázdná sestava, která nemá definován datový zdroj. Sestava se zobrazí v návrhovém zobrazení.

V dalším výkladu (v kap. 6.2 – 6.4) se zaměříme na přípravu evidenčních listů zaměstnanců pro ředitele, na nichž chceme vypsat základní údaje o zaměstnanci i o jeho aktivitách ve firmě, tj. prodejích programů a služebních cestách. Evidenční list bude obsahovat pro každého zaměstnance: − základní informace o zaměstnanci (kap. 6.2): tituly, jméno, příjmení, pohlaví, kancelář,

telefon, oddělení, charakteristiku, úvazek, webovou adresu, informace o oprávnění fakturovat,

− informace o absolvovaných služebních cestách (kap. 6.3): číslo cesty, den zahájení a ukončení cesty, místo,

− informace o licencích, pro které zaměstnanec vyhotovil faktury (kap. 6.4): číslo faktury, datum, odběratel, značka programu, sériové číslo, cena.

6.2 Sestava s výrazy Začneme sestavou základních informací o zaměstnanci. Část sestavy je uvedena v obr.

6-1. Každý zaměstnanec je nadepsán svým jménem a příjmením s tituly tučně větším písmem. Dále jsou obdobně jako ve formuláři P52 Personal – Identifikace vypsána o zaměstnanci známá pole, přičemž:

143 Terminologie Accessu zde bohužel není jednoznačná, obdobně jako v pojmu sekce a oddíl. 144 V návrhovém zobrazení je zápatí sestavy uvedeno pod zápatím stránky. V náhledu a při tisku sestavy se zápatí

sestavy tiskne nad zápatím stránky za zápatím poslední skupiny nebo tělem poslední věty na poslední stránce. 145 V případě, že je označen formulář či sestava je jako podklad převzat jejich zdroj záznamů. V případě, že je

označeno makro nebo modul, není většina tlačítek skupiny SSeessttaavvyy dostupná. 146 Tabulky a dotazy nesmí mít shodné názvy. Sestava však může mít název totožný s názvem tabulky či dotazu. Pokud

by již sestava se stejným názvem existovala, byla by k názvu doplněna číslice.

Ovládací prvky

Tlačítka tvorby sestavy

P62 Personal – Identifikace

Page 131: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 131

OBR. 6-1: SESTAVA P62 PERSONAL – IDENTIFIKACE

− Pohlaví je vysvětleno slovně. − Oddělení je vysvětleno slovně s využitím vysvětlivky z tabulky Oddělení. − Do řádku Web je vypsána webová adresa (druhý parametr pole Web). − Pole Oprávnění je vypisováno jen pro hodnotu ano a je nahrazeno textem. − Fotografie zaměstnance je umístěna napravo od ostatních polí. − Jednotliví zaměstnanci jsou od sebe odděleni vodorovnou čarou.

Sestavy nemají druh obdobný samostatnému formuláři. Nemůžeme proto vytvořit základ sestavy tlačítkem Sestava, které by vytvořilo sestavu v tabulkovém rozložení. Navrhneme sestavu sami: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Personal. 3 Tabulk− V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Návrh sestavy. Sestavy− Vytvoří se sestava bez zdroje záznamů se sekcemi Záhlaví stránky, Tělo, Zápatí stránky.

Klepnutím do tlačítka Záhlaví a zápatí stránky ve skupině Zobrazit či skrýtt v kartě USPOŘÁDAT potlačíme zobrazení záhlaví a zápatí stránky.

Zobrazit či skrý

− Klepnutí do tlačítka Přidat existující pole ve skupině Nástrojee v kartě NÁVRH zobrazíme okno Seznam polí, v němž zobrazíme všechny tabulky.

NástrojSeznam polí

− Rozbalíme seznam polí tabulky Personal a poklepeme na první pole E_mail. − Pole E_mail se umístilo včetně popisku do těla. Tažením za okraj popisku (mimo čtvercové

úchyty) přesuneme pole do levého horního rohu na pozici asi 0,2;0,2. Na začátek těla umístíme celé jméno zaměstnance včetně titulů:

− Klepneme do vázaného ovládacího prvku E_mail a založíme skládané rozložení klepnutím do tlačítka Skládané ve skupině Rozložení ovládacího prvkuu v kartě USPOŘÁDAT. Rozložení ovládacího prvk

− V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Textové pole. Tažením vymezíme textové pole pod polem E_mail.

Ovládací prvky

− Tažením přesuneme nové pole do skládaného rozložení. − Upravíme popisek nového pole na Celé jméno. Automaticky se rozšíří oba popisky. − Do datové vlastnosti Zdroj ovládacího prvku nového pole zapíšeme výraz:

=Trim([Titul1] & " " & [Jméno] & " " & [Příjmení] & [Titul2])147 Do zdroje jsme uvedli výraz, v němž spojíme operátorem & jednotlivé části celého jména. Části od sebe oddělujeme mezerou s výjimkou případného titulu za jménem, v němž předpokládáme, že je uvedena na začátku oddělující čárka (např. , Ph.D.). Nadbytečnou mezeru na začátku pro zaměstnance bez titulu odstraní funkce Trim, která utrhne mezery na začátku a konci textového argumentu.148

147 Výraz můžeme zapsat pomocí Tvůrce výrazu. Nemusíme zapisovat hranaté závorky, které doplní Access. Musíme

však zapisovat uvozovky. 148 V případě, že by u některých zaměstnanců s titulem chybělo křestní jméno, museli bychom výraz upravit:

=Trim(Trim([Titul1] & " " & [Jméno]) & " " & [Příjmení]) & [Titul2]

Výraz v sestavě

Page 132: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 132

− Klepnutím do tlačítka Zobrazení ze skupiny Zobrazeníí v kartě NÁVRH přejdeme do

zobrazení sestavy. Access nás vyzve k zadání parametru Titul1, neboť v podkladovém dotazu sestavy není pole Titul1. Klepnutím do tlačítka Storno se vrátíme zpět do návrhového zobrazení.

Zobrazen

− Ze Seznamu polí přidáme pod rozložení pole Titul1, Jméno, Příjmení a Titul2. Přidají se tak do zdrojové dotazu. Označíme je a odstraníme klávesou Delete ze sestavy. Ve zdrojovém

Seznamu polí

dotazu zůstala pole zachována. Nyní již můžeme přejít do zobrazení sestavy. Po prohlédnutí se vrátíme do návrhového zobrazení.

− Nové pole nazveme v jiné vlastnosti Název jako Celé_jméno. − Pole Celé_jméno přesuneme před pole E_mail.

Obdobně vložíme do sestavy další pole: − Ze Seznamu polí přesuneme do skládaného rozložení pole Pohlaví, Místnost, Telefon,

Nadřízený, Charakteristika, Úvazek, Web, Oprávnění fakturovat. Seznamu polí

− Klepnutím pravým tlačítkem a příkazem Změnit na změníme typ na textové pole pro pole Pohlaví, Místnost, Nadřízený a Úvazek.

− Z tabulky Oddělení přidáme do sestavy za Telefon pole Oddělení_v, jeho popisek změníme na Oddělení.

− Pro pole E_mail a Telefon smažeme obsah datové vlastnosti Inteligentní značky, aby nás nerušil fialový indikátor v pravém dolním rohu.149

− Pro pole Pohlaví chceme vypisovat vysvětlivku. Proto upravíme vlastnosti: • jiná vlastnost Název: Pohlaví_v150 • datová vlastnost Zdroj ovládací prvku: =IIf([Pohlaví]="M";"muž";"žena")

− Pro pole Web chceme vypisovat druhou část pole adresy, proto upravíme vlastnosti: • jiná vlastnost Název: Web_2 • datová vlastnost Zdroj ovládací prvku: =HyperLinkPart(Web;2) • formátová vlastnost Hypertextový odkaz: ne151

Stav Oprávnění fakturovat budeme vypisovat formou věty: − Zaškrtávací pole nemůžeme změnit na textové pole. Odstraníme proto pole Oprávnění.

Vložíme textové pole: • Klepneme do tlačítka Textové pole ve skupině Ovládací prvkyy v kartě NÁVRH. Ovládací prvk• Vymezíme pole pod skládaným rozdělením. • Přesuneme textové pole do skládaného rozdělení na konec.

− Změníme popisek nového pole na Oprávnění. − Změníme vlastnosti dosud nevázaného nového textového pole: • jiná vlastnost Název: Oprávnění_v • datová vlastnost Zdroj ovládacího prvku: =IIf(Oprávnění;"Má oprávnění fakturovat.")

− Popisek chceme odstranit. Musíme nejdříve odebrat ovládací prvek Oprávnění_v z rozložení. Označíme je klepnutím a v kartě USPOŘÁDAT klepneme ve skupině Rozložení ovládacího prvkuu do tlačítka Odebrat. Klepnutím označíme popisek a odstraníme jej klávesou Delete.

Rozložení ovládacíhoprvkOvládací prvek Oprávnění_v tažením za kraj posuneme doleva.

− Obdobně odebereme z rozložení Celé_jméno. Odstraníme jeho popisek. Posuneme dolů zbývající rozložení.

− Tlačítkem Velikost písma ve skupině Písmoo v kartě NÁVRH zvětšíme písmo v poli Celé_jméno na 14. Zvýšíme jeho velikost. Tlačítkem Tučné nebo kombinací kláves Ctrl B

Písm

upravíme formát textu na tučný. Nadřízeného vypíšeme celým jménem s tituly, nikoliv pouze e-mailem:

− Nejdříve musíme upravit zdrojový dotaz v datové vlastnosti sestavy Zdroj záznamů: • Zobrazíme dotaz klepnutím do tlačítka Tvůrce na konci řádku vlastnosti.

149 Indikátor inteligentní značky se zobrazuje pouze v zobrazení sestavy a v zobrazení rozložení. Netiskne se, ani

nezobrazuje v zobrazení náhledu. 150 Nesmíme zapomenout změnit i vlastnost Název na hodnotu Pohlaví_v, aby ve výrazu nebyl použit stejný název,

jako je název ovládacího prvku sestavy. (Ve výrazu může být totiž použit odkaz na název ovládacího prvku, který má při vyhodnocení přednost před stejným názvem pole z podkladové tabulky či dotazu. Pokud bychom název nezměnili, v sestavě by se vypisoval chybný výstup.)

151 Pokud bychom vlastnost Hypertextový odkaz neopravili, byl by hypertextový odkaz podtržený i v náhledu a při tisku. Byl by však citlivý v zobrazení sestavy.

Funkce HyperLinkPart

Formát písma

Page 133: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 133

• Tlačítkem Zobrazit tabulku ve skupině Nastavení dotazuu v kartě NÁVRH zobrazíme

dialogové okno Zobrazit tabulku a v něm poklepeme na tabulku Personal. Dialogové okno zavřeme.

Nastavení dotazZobrazit tabulku

• Tažením pole E_mail z tabulky Personal_1 na pole Nadřízený v tabulce Personal propojíme tabulky Personal a Personal_1.

• Upravíme typ spojení na Zahrnout všechny z tabulky Personal pro případ, že by některý zaměstnanec neměl vyplněného nadřízeného.

• Poklepáním v tabulce Personal_1 v podokně Diagram vybereme Titul1, Jméno, Příjmení, Titul2.

Diagram

• V podokně Mřížka nazveme nová pole jednoznačně Titul1_nad: Titul1, Jméno_nad: Jméno, Příjmení_nad: Příjmení, Titul2_nad: Titul2.

Mřížka

• V podokně Mřížka ve sloupci Příjmení doplníme do řádku Řadit hodnotu vzestupně, aby byl seznam zaměstnanců vypisován v sestavě dle Příjmení, nikoliv dle Oddělení.

Mřížka

• Klepnutím do tlačítka Zavřít ve skupině Zavřít v kartě NÁVRH ukončíme úpravu dotazu. Zavřít− Zkopírujeme obsah datové vlastnosti pole Zdroj ovládacího prvku pole Celé_jméno do

schránky. − Obsah schránky vložíme do datové vlastnosti Zdroj ovládacího prvku pole Nadřízený a

vlastnost upravíme na výraz: =Trim([Titul1_nad] & " " & [Jméno_nad] & " " & [Příjmení_nad] & [Titul2_nad])

− Upravíme jinou vlastnost Název upraveného výrazu na Nadřízený_celé_jméno. Zmenšíme velikost těla sestavy:

− Označíme klepnutím do voliče v levém horním rohu skládané rozdělení a klepneme do tlačítka Výplň ovládacího prvku ve skupině Rozložení ovládacího prvkuu v kartě USPOŘÁDAT. Z nabídky vybereme ŽÁDNÁ. Pole jsme tak přiblížili k sobě.

Rozložení ovládacího prvk

− Kombinací kláves Ctrl A označíme všechny ovládací prvky sestavy. Za držení klávesy Shift klepneme do ovládacího prvku Celé_jméno, vyjme jej tak z označené skupiny.

− Rozbalíme tlačítko Velikost písma ve skupině Písmoo v kartě NÁVRH a vybereme velikost 9. Písm− Tažením za prostřední dolní úchyt kteréhokoliv označeného ovládacího prvku zmenšíme

velikost všech označených ovládacích prvků tak, aby byl text čitelný a zabíral co nejméně místa. Ovládací prvky v rozložení se přisunou k sobě. Ručně přisuneme Oprávnění.

− Tažením za úchyt ve středu pravého kraje kteréhokoliv popisku v rozložení zúžíme popisky rozložení na minimum tak, aby byl text Charakteristika celý zobrazen.

− Kombinací kláves Ctrl A označíme všechny ovládací prvky sestavy a přesuneme je tažením za Celé_jméno do levého horního rohu sestavy.

− Označíme libovolné textové pole rozložení a tažením za prostřední úchyt v pravém kraji zmenšíme šířku, tak abychom mohli zúžit sestavu na 8 cm.

− Pole Foto umístíme napravo od kratších položek: • Přesuneme pole Nadřízený pod pole Úvazek. • Označíme klepnutím do rohového voliče celé rozložení a tlačítkem Odebrat ze skupiny

Rozložení ovládacího prvkuu v kartě USPOŘÁDAT odebereme z rozložení všechny ovládací prvky tak, abychom před některé z nich mohli umístit pole Foto. Rozložení ovládacího prvk

• Ze seznamu polí přetáhneme pole Foto pod Oprávnění. • Odstraníme popisek pole Foto. • Tažením umístíme Foto tak, aby levý horní roh byl vedle pole Celé_jméno na vodorovné

pozici asi 5,2 cm. • Tažením za pravý dolní roh zvětšíme Foto tak, aby pravý dolní roh byl nad pole Nadřízený

a svou šířkou dosahoval k vodorovné pozici 8 cm. • Do formátové vlastnosti Styl okraje zadáme hodnotu průhledný.

− Pod pole Oprávnění umístíme vodorovnou čáru: • Klepneme do tlačítka Čára ve skupině Ovládací prvkyy v kartě NÁVRH. Ovládací prvk• Čáru nakreslíme v šířce 8 cm pod polem Oprávnění a případně ji tažením posuneme těsně

pod Oprávnění. − Označíme řádky E_mail až Oprávnění bez Foto a klepneme do tlačítka Stejné svislé mezery

ve skupině Pozicee v kartě USPOŘÁDAT. Pozic− Sestavu tažením za dolní a pravý kraj zmenšíme na minimum.

Velikost těla sestavy

Page 134: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 134

Sestavu prohlédneme v zobrazení sestavy. Vidíme, že pro zaměstnance bez oprávnění

fakturovat zbývá po Oprávnění volný řádek, což upravíme: − Do formátové vlastnosti Možnost zmenšení pole Oprávnění_v zadáme hodnotu ano.152 − Do formátové vlastnosti těla Možnost zmenšení zadáme hodnotu ano.

Sestavu prohlédneme v náhledu. V kartě NÁVRH klepneme do spodní části tlačítka Zobrazení ve skupině ZZoobbrraazzeenníí a vybereme NÁHLED nebo klepneme do tlačítka Náhled ve stavovém řádku.

Pás karet nyní nahradil stávající karty kontextovou kartou NÁHLED, která obsahuje několik skupin tlačítek153: − Ve skupině Rozložení stránkyy: Rozložení stránk• Tlačítkem Velikost můžeme vybrat velikost papíru, na nějž budeme sestavu tisknout. • Tlačítky Na výšku a Na šířku můžeme vybrat orientaci tisku.154 • Tlačítkem Okraje rozbalujeme nabídku tří variant okrajů stránky. Standardně je nabízen

minimální (úzký) okraj s ohledem na nemožnost tisku na úplné kraje papíru, který činí na všech okrajích papíru 0,64 cm. Vlastní okraje můžeme nastavit v kartě Možnosti tisku po klepnutí do tlačítka Vzhled stránky.

• Zaškrtávací pole Zobrazit kraje není v náhledu dostupné.155 • Po zaškrtnutí pole Tisknout jenom data se tisknou pouze vázané ovládací prvky, tj.

netisknou se popisky a grafické prvky (např. čára) sestavy. Zaškrtnutí by bylo vhodné při tisku do předtištěných formulářů.

• Tlačítkem Sloupce zobrazíme kartu Sloupce dialogového okna Vzhled stránky. Můžeme nastavit tisk do více sloupců (viz sestava v kap. 6.4). Sestavu se zaměstnanci bychom vzhledem k její malé šířce mohli tisknout ve dvou sloupích. Ponecháme ji však v jednom sloupci.

Vzhled stránky

• Tlačítkem Vzhled stránky zobrazíme dialogové okno Vzhled stránky, v němž je možné detailně parametrizovat tisk. Mj. zde v kartě Stránka můžeme nastavit pro sestavu jinou než výchozí tiskárnu. I tento parametr tiskárny se ukládá se sestavou.

Vzhled stránky

− Ve skupině Lupaa: Lup• Klepnutím do horní části tlačítka Lupa přiblížíme či vzdálíme náhled. Stejného výsledku

dosáhneme klepnutím myší do okna náhledu. Klepnutím do dolní části tlačítka Lupa se zobrazí nabídka různých měřítek náhledu. Prvotně je náhled zobrazen v měřítku dle velikosti okna.

• Klepnutím do tlačítka Dvě stránky se zobrazí náhled dvou po sobě jdoucích stránek. Přechodem na další stránku v navigaci v dolní části náhledu potom přecházíme na další dvě stránky.

• Klepnutím do tlačítka Další stránky se zobrazí nabídka dalších násobků současně zobrazených stránek: čtyři, osm, dvanáct. Volbou počtu se vždy přizpůsobí měřítko.

• Klepnutím do tlačítka Jedna stránka se můžeme vrátit k zobrazení jediné stránky. − Ve skupině Dataa: Dat• Tlačítka Aktualizovat vše, Excel, Seznam SharePoint nejsou v obecné skupině Dataa pro

sestavy aktivní.Dat

156 • Klepnutím do tlačítka Word můžeme provést export sestavy do formátu rtf. V následujícím

dialogovém okně upřesníme umístění a název souboru. Můžeme také zaškrtnout možnost otevření vytvořeného souboru po jeho exportu. Ve výsledném souboru nejsou uvedeny obrázky a grafika sestavy (čára). Uspořádání sestavy do tabulky zajišťují tabulátory. Výsledkem vstupní masky pole E_mail jsou mezery za hodnotou E_mailu.

• Klepnutím do tlačítka Text můžeme exportovat sestavu do textového souboru. Před exportem jsme vyzváni k upřesnění kódování textového souboru. Ponecháme výchozí kódování Windows. Uspořádání sestavy do tabulky zajišťují mezery.

152 Volný řádek se přesune v zobrazení sestavy za čáru mezi zaměstnanci, protože jsme nepovolili zmenšení těla

sestavy. 153 Skupina RRoozzlloožžeenníí ssttrráánnkkyy je dostupná také v zobrazení rozložení či návrhovém zobrazení na kartě VZHLED

STRÁNKY. 154 Parametry velikosti a orientace se ukládají se sestavou. Mohou být pro různé sestavy nastaveny různě. 155 V zobrazení rozložení můžeme potlačit zobrazování okraje tisku. 156 Tlačítka Excel, Seznam SharePoint jsou aktivní pro náhled tabulky.

Možnost zmenšení

Náhled

Page 135: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 135

• Klepnutím do tlačítka Další zobrazíme nabídku dalších výstupních formátů exportu:

» Databáze aplikace Access: Export do jiné databáze Accessu. Ta nesmí být v době exportu otevřena.

» Soubor XML: Soubor nelze z náhledu sestavy exportovat do formátu XML.157 » Prohlížeč snímků: Sestavu můžeme uživateli vytisknout nebo předat v elektronické

podobě ve formě snímku sestavy. Snímek sestavy je soubor (s příponou .snp), který obsahuje věrnou kopii všech stránek sestavy. K prohlížení a tisku snímku sestavy nepotřebujeme Access, stačí volně šiřitelný program Snapshot Viewer.158 Šíření výstupů Accessu formou snímků je vhodné, jestliže koncový uživatel neumí ovládat Access či dokonce Access nemá nainstalovaný. Snímek sestavy je však vždy jen statickou („mrtvou“) kopií sestavy, která se nemění v souvislosti s aktualizací databáze. Pokud jsme při exportu zaškrtnuli pole Po dokončení operace exportu otevřít cílový soubor, otevře se po exportu okno programu Snapshot Viewer a v něm snímek sestavy. Můžeme provádět základní operace: K prohlížení celého snímku nám slouží vodorovný a svislý posuvník a tlačítka přechodu na první, předchozí, určenou, další či poslední stránku analogická jako při pohybu mezi větami v tabulce Accessu.

Příkazem SOUBOR, TISK můžeme snímek vytisknout. Příkazem SOUBOR, ODESLAT můžeme odeslat snímek elektronickou poštou. Příkazem SOUBOR, OTEVŘÍT můžeme vyhledat a zobrazit jiný snímek.

• Klepnutím do tlačítka Dokument HTML provedeme export sestavy do formátu webových prohlížečů HTML. Při exportu můžeme upřesnit šablonu HTML pro formátování výstupu. Sestava je rozdělena na více webových stránek, mezi nimiž se můžeme pohybovat odkazy (První, Předchozí, Další, Poslední) na konci webové stránky. Jedná se o statickou („mrtvou“) kopii sestavy, která se nemění v souvislosti s aktualizací databáze.

− Ve skupině Tiskk: Tis• Klepnutím do tlačítka Tiskk zobrazíme dialogové okno Tisk (Tis Tisk obr. 6-2). Stejné dialogové

okno můžeme zobrazit přímo ze zobrazení sestavy kombinací kláves Ctrl P.

OBR. 6-2: DIALOGOVÉ OKNO TISK

K polím v dialogovém okně TTiisskk

: » Před tiskem můžeme zadat tiskárnu či změnit vlastnosti tisku (např. zadat úsporný režim

tisku). » Jestliže zaškrtneme pole Tisk do souboru, budeme po klepnutí do tlačítka OK dotázáni

na název souboru (zadáme jej nejlépe s příponou prn). Sestava se nevytiskne na tiskárně, pouze se připraví soubor, který lze později vytisknout na tiskárně z počítače, kde nemusí být dostupný Access.

» Zadáním čísel stránek můžeme omezit tisk. Při prvním tisku na tiskárně je vhodné nejdříve vytisknout jen první stránku na zkoušku a teprve potom zbývající stránky.

157 Export do XML formátu můžeme provést po zavření náhledu. V navigačním podokně klepnutím označíme sestavu a

v kartě EXTERNÍ DATA ve skupině EExxppoorrtt klepneme do tlačítka Další a z nabídky vybereme SOUBOR XML. Exportují se podkladová data sestavy, nikoliv data uspořádaná jako v sestavě.

158 Program byl připravován pro starší verze Accessu a je dostupný na webu Microsoftu.

Snapshot Viewer

Tisk na tiskárně

Page 136: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 136

» Volba Vybrané záznamy je dostupná jen při tisku tabulek či výsledků dotazů. Potom je

možné voličem záznamů označit záznamy, které chceme vytisknout, a zadat do Rozsahu tisku hodnotu Vybrané záznamy.

» Zadáme-li v poli Počet kopií číslo větší než 1, má smysl zaškrtnout pole Kompletovat. Je-li pole zaškrtnuto, budou vytištěny tříděné kopie (stránky v pořadí 1-2-3, 1-2-3). Pokud zaškrtnutí zrušíme, vytisknou se netříděné kopie (stránky v pořadí 1, 1, 2, 2, 3, 3).

» Klepnutím do tlačítka Nastavit zobrazíme dialogové okno Vzhled stránky bez karty Stránka.

Vzhled stránky

− Ve skupině Zavřít náhledd: Zavřít náhle• Tlačítkem Zavřít náhled se vrátíme do zobrazení sestavy.

Ve spodním řádku náhledu jsou tlačítka pro přechod mezi stránkami: První stránka, Předchozí stránka, Další stránka, Poslední stránka. Také můžeme číslo stránky přímo zadat. Na stejném řádku je informace, zda jsme v zobrazení sestavy neaplikovali filtr.

Sestavu uložíme kombinací kláves Ctrl S pod názvem P62 Personal – Identifikace. Pokud bychom chtěli po poklepání v navigačním podokně zobrazit sestavu přímo v náhledu, mohli bychom upravit formátovou vlastnost sestavy Výchozí zobrazení na hodnotu Náhled tisku. Potom by také výchozím stavem tlačítka Zobrazení byl náhled.

6.3 Sestava dle upravené šablony V další sestavě chceme vytisknout seznam služebních cest. Cílový stav sestavy (před

doplněním pole E_mail do zdroje dat) je v obr. 6-3.

OBR. 6-3: SESTAVA P63 CESTY

Chceme opět, aby seznam byl vypisován písmeny velikosti 9, což budeme chtít i v následující sestavě licencí. Využijeme proto nastavení ze sestavy o zaměstnancích: − Otevřeme sestavu P62 Personal – Identifikace v návrhovém zobrazení. − Klepneme do libovolného textového pole s velikostí 9, např. do pole E_mail. − V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Výchozí nastavení prvku, čímž způsobíme, že:

Ovládací prvky

• Další textová pole přidávaná do sestavy (ze seznamu polí či ze skupiny ovládacích prvků) budou ve stejném formátu.

• Pokud bude sestava použita jako šablona, budou textová pole vkládaná do další sestavy založené na šabloně vycházet z výchozího formátování.

− Uložíme sestavu a zavřeme její návrh. − Povýšíme sestavu na šablonu: • Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Access. • V kartě Návrháři objektů v předposlední skupině Formuláře či sestavyy zadáme do pole

Šablona sestavy hodnotu P62 Personal – Identifikace. Šablonu musíme vyplnit, nelze ji vybrat ze seznamu sestav.

Formuláře či sestav

Uložení sestavy

Výchozí nastavení prvku

Šablona sestavy

Page 137: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 137

• Vybraná sestava bude (pokud bude v databázi k dispozici159) vzorem pro formátování

nových sestav. Toto nastavení platí nejen pro otevřenou databázi, ale pro Access, tj. pro všechny databáze (do nichž bychom však museli importovat příslušnou vzorovou sestavu).

• Šablona obsahuje formátování typů polí (textová pole, pole se seznamem a další) i některé vlastnosti sestavy a jejich sekcí.

Vytvoříme novou sestavu: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Cesty. 3 Tabulk− V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Sestava. Sestavy− Vytvoří se sestava, jejímž zdrojem záznamů je tabulka Cesty (viz datová vlastnost sestavy

Zdroj záznamů). Textová pole v sestavě mají velikost 9, popisky nikoliv, neboť jsme v šabloně nepovýšili jejich formátování na výchozí.

− Vytvořená sestava má několik sekcí: • V Záhlaví sestavy je:

» ikona sestavy a název Cesty160, » v pravé části aktuální datum jako textové pole s výrazem =Date(), » aktuální čas jako textové pole s výrazem =Time().

• V Záhlaví stránky jsou popisky sloupců tabulkového rozložení (velikosti 11). Všimněme si čáry, která odděluje záhlaví stránky. Čára není samostatný ovládací prvek. Souvisí s tabulkovým rozložením ovládacích prvků a s nastavením formátových vlastností popisků: » Styl mřížky dole: plná čára » Šířka mřížky dole: 1 bod

• V Těle jsou pole tabulkového rozložení (velikosti 9). • V Zápatí stránky je textové pole, které formou výrazu obsahuje číslo stránky a celkový

počet stránek: ="Stránka " & [Page] & " z " & [Stránky]

• V Zápatí sestavy je rekapitulován počet vět, tj. počet cest (15) formou textového pole: =Count(*) Všimněme si čáry, která odděluje zápatí sestavy. Čára není samostatný ovládací prvek. Souvisí s tabulkovým rozložením ovládacích prvků ve sloupci Rok a s nastavením formátových vlastností: » Styl mřížky nahoře: plná čára » Šířka mřížky nahoře: 2 body

Sestava se stane podsestavou hlavní sestavy dat o zaměstnanci. Provedeme proto některé úpravy: − V návrhovém zobrazení odstraníme logo sestavy, aktuální datum, aktuální čas. − Název Cesty zmenšíme na velikost 9, zmenšíme jeho ovládací prvek a přesuneme do levého

horního rohu Záhlaví sestavy. − V záhlaví stránky změníme velikost písma pro všechny popisky na 9. − Kombinací kláves Ctrl A označíme všechny ovládací prvky a upravíme jejich velikost

klepnutím do tlačítka Automatická velikost ve skupině Velikostt v kartě USPOŘÁDAT. Velikos− V zobrazení rozložení zvětšíme šířku sloupců, u nichž je to nutné. − Pro pole Zahájení odstraníme datovou vlastnost Inteligentní značky. − Pole Rok, Cesta, Zahájení, Dokončení zarovnáme zprava. − Pro všechna pole tabulky upravíme formátovou vlastnost Styl okraje na hodnotu plná čára. − Označíme všechna pole tabulky a v kartě USPOŘÁDAT ve skupině Rozložení ovládacího

prvku klepneme do tlačítka Výplň ovládacího prvku a vybereme volbu ŽÁDNÁ. Rozložení ovládacího

prvku

− Tažením přesuneme všechny popisky do levého horního rohu záhlaví stránky. − Tažením přesuneme všechna pole těla do levého horního rohu těla. − Minimalizujeme výšku záhlaví stránky a těla. − V zápatí stránky odstraníme číslování stránek, které nebude v rámci hlavní sestavy nutné.

Zápatí stránky minimalizujeme.

159 Není-li sestava šablony k dispozici, je aplikována vestavěná šablona Accessu s názvem Normální, k níž se také

můžeme vrátit, když již nechceme využívat svou šablonu. Šablona se aplikuje pouze pro nově vytvářené sestavy. Obdobně můžeme použít šablonu pro formuláře.

160 Název lze snadno vložit do sestavy klepnutím do tlačítka Název ve skupině OOvvllááddaaccíí pprrvvkkyy v kartě NÁVRH.

P63 Cesty

Aktuální datum a čas

Počet stránek a počet vět

Automatická velikost

Page 138: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 138

Záhlaví stránky by se v podsestavě nevypisovalo, proto chceme popisky umístit do

záhlaví sestavy. Nejprve musíme odstranit tabulkové rozložení: − Klepnutím do rohového voliče označíme všechny ovládací prvky rozložení a klepneme do

tlačítka Odebrat ve skupině Rozložení ovládacího prvkuu v kartě USPOŘÁDAT. Rozložení ovládacího prvk− Všimněme si, že již není zobrazena čára pod popisky a nad počtem vět. − Klepnutím ve svislém pravítku označíme všechny popisky a kombinací kláves Ctrl X je

vyjmeme do schránky. − Klepneme na sekci Záhlaví sestavy a vložíme popisky kombinací kláves Ctrl V. − Označíme všechny popisky a klepneme do tlačítka Zmenšit vodorovné mezery ve skupině

Pozicee v kartě USPOŘÁDAT. Pozic− Obdobně zmenšíme mezery pro textová pole těla. − Název Cesty v záhlaví sestavy vypíšeme kurzívou. − V zápatí sestavy upravíme pro jediný ovládací prvek v datové vlastnosti Zdroj ovládacího

prvku výraz na tvar: ="Počet cest: " & Count(*)

− Ovládací prvek v zápatí sestavy rozšíříme. − Pro přehlednost potlačíme zobrazení záhlaví a zápatí stránky klepnutím do tlačítka Záhlaví a

zápatí stránky ve skupině Zobrazit či skrýt v kartě USPOŘÁDAT. Zobrazit či skrýt− Minimalizujeme zápatí sestavy. Minimalizujeme šířku sestavy. Je nyní široká necelých 8 cm.

Sestava se stane podsestavou hlavní sestavy s daty o zaměstnanci. Musíme proto připravit propojující pole E_mail do zdroje dat tak, abychom mohli v podsestavě tisknout pouze cesty zaměstnance z hlavní sestavy: − Zobrazíme seznam polí a z tabulky Výjezdy přesuneme do těla pole E_mail. − Pole E_mail odstraníme. Minimalizujeme výšku těla a šířku sestavy. − Modifikovali jsme tak datovou vlastnost sestavy Zdroj záznamů, která již obsahuje propojení

s tabulkou Výjezdy. − Sestava nyní zobrazuje 30 vět (30 výjezdů zaměstnanců). − Sestavu uložíme pod názvem P63 Cesty.

6.4 Sestava o více sloupcích V další sestavě chceme vytisknout seznam licencí prodaných programů. Cílový stav

sestavy (pouze pro Miloše Adamce) je v obr. 6-4.

OBR. 6-4: SESTAVA P64 LICENCE (POUZE LICENCE MILOŠE ADAMCE)

P64 Licence

Page 139: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 139

Vytvoříme novou sestavu:

− V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Licence. 3 Tabulk− V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Sestava. Sestavy− Vytvoří se sestava, jejímž zdrojem záznamů je tabulka Licence (viz datová vlastnost sestavy

Zdroj záznamů). Textová pole v sestavě mají velikost 9, nadále využíváme společnou šablonu dle sestavy P62 Personal – Identifikace.

Změníme pořadí sloupců a doplníme nové sloupce v sestavě: − Přesuneme sloupec Faktura na začátek. − Za sloupec Faktura doplníme pole Datum z tabulky Faktury. − Za sloupec Datum doplníme pole Název_podniku z tabulky Podniky. − Za sloupec Sériové_číslo doplníme pole Cena z tabulky Programy. − Za sloupec Cena doplníme sloupec E_mail z tabulky Faktury a odstraníme jej tak, aby se stal

součástí zdrojového dotazu. Upravíme názvy sloupců:

− Zmenšíme písmo v popiskách sloupců z 11 na 9. − Změníme název sloupce Faktura na Fa. Textové pole zarovnáme zprava. Zúžíme sloupec. − Sloupec Datum zarovnáme zprava a zúžíme. − Změníme název sloupce Název_podniku na Odběratel. Sloupec zúžíme. − Změníme název sloupce Program na Prg. Sloupec zúžíme. − Změníme název sloupce Sériové_číslo na Čís. Textové pole zarovnáme zprava. Zúžíme

sloupec. − Sloupec Cena zarovnáme zprava a zúžíme.

Upravíme sestavu tak, aby byla co nejmenší: − Ze záhlaví sestavy odstraníme logo, aktuální datum a aktuální čas. − Název sestavy zmenšíme na 9. Vypíšeme jej kurzívou. Zmenšíme automatickou velikostí

(karta USPOŘÁDAT, skupina Velikostt). Přesuneme do levého horního rohu záhlaví sestavy. Velikos− Minimalizujeme záhlaví sestavy. − Ze zápatí stránky odstraníme číslování stránky a minimalizujeme zápatí stránky. − Označíme všechna textová pole těla a omezíme výplň jejich ovládacího prvku na žádnou.

(Klepneme do tlačítka Výplň ovládacího prvku ve skupině Rozložení ovládacího prvkuu v kartě USPOŘÁDAT a vybereme volbu ŽÁDNÁ.)

Rozložení ovládacího prvk

− Pro textová pole těla změníme formátovou vlastnost Styl okraje na hodnotu plná čára. − Označíme tabulkové rozložení a odebereme je. (Klepneme do tlačítka Odebrat ve skupině

Rozložení ovládacího prvkuu v kartě USPOŘÁDAT.) Rozložení ovládacího prvk− Zmenšíme mezery mezi textovými poli. (Klepneme do tlačítka Zmenšit vodorovné mezery

ve skupině Pozicee v kartě USPOŘÁDAT.) Pozic− Ovládací prvky v záhlaví stránky a v těle přesuneme do levého horního rohu,

minimalizujeme obě sekce. − Pro textové pole Název_podniku upravíme formátové vlastnosti Možnost zvětšení a Možnost

zmenšení na hodnotu ne, aby výška textového pole byla stejná jako u ostatních textových polí.

− Popisky přesuneme ze sekce Záhlaví stránky do sekce Záhlaví sestavy pod název Licence. − Potlačíme zobrazení sekcí Záhlaví stránky a Zápatí stránky. (Klepneme do tlačítka Záhlaví a

zápatí stránky ve skupině Zobrazit či skrýt v kartě USPOŘÁDAT.) Zobrazit či skrýt− Upravíme datovou vlastnost pole Zdroj ovládacího prvku jediného pole Zápatí sestavy na

výraz: ="Počet licencí: " & Count(*)

− Textové pole rozšíříme a umístíme do levého horního rohu Zápatí sestavy. Sekci Zápatí sestavy minimalizujeme.

− Sestavu uložíme pod názvem P64 Licence. V sestavě chceme vypisovat licence ve vhodném pořadí:

− V datové vlastnosti sestavy Zdroj záznamů nahradíme pole Licence.* třemi poli Faktura, Program, Sériové_číslo, k nimž doplníme řazení vzestupně.

− Řazení ve zdrojovém dotazu se nepromítlo do sestavy. V sestavě musíme řazení definovat v návrhu sestavy.

− Klepneme do tlačítka Seskupit a seřadit ve skupině Skupiny a souhrnyy v kartě NÁVRH. Skupiny a souhrn

Výplň ovládacího prvku

Možnost zvětšení a zmenšení

Řazení

Page 140: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 140

− V podokně Skupina, řazení a součet klepneme do tlačítka Přidat řazení. Ze seznamu polí

vybereme pole Faktura. Skupina, řazení a součet

− Klepneme do tlačítka Přidat řazení a vybereme pole Program. − Klepneme do tlačítka Přidat řazení a vybereme pole Sériové_číslo. − V podokně Skupina, řazení a součet je hierarchie řazení naznačena graficky (viz Skupina, řazení a součet obr. 6-5).

OBR. 6-5: PODOKNO SKUPINA, ŘAZENÍ A SOUČET

− Věty jsou v sestavě řazeny již dle našeho požadavku.

Minimalizujeme šířku sestavy. Sestava je poměrně úzká a dlouhá. Budeme ji proto vypisovat ve dvou sloupcích: − V kartě VZHLED STRÁNKY v skupině Rozložení stránky klepneme do tlačítka Sloupce. Rozložení stránky− Zobrazí se karta Sloupce dialogového okna Vzhled stránky (viz Vzhled stránky obr. 6-6).

OBR. 6-6: DIALOGOVÉ OKNO VZHLED STRÁNKY

Parametry rozdělení sestavy do sloupců: − Počet sloupců: Sloupců může být i více než dva. Sloupce se však musejí na stránku vejít, tj.

je třeba dodržet podmínku: šířka sestavy * počet sloupců + vzdálenost sloupců161 + levý okraj + pravý okraj <= šířka papíru.

− Vzdálenost řádků: Můžeme definovat rozestupy mezi řádky. (Jiným způsobem dosažení rozestupů je úprava těla sestavy.)

− Vzdálenost sloupců: Je vhodné sloupce od sebe oddělit mezerou, aby sestava byla přehledná. Zadáme 2 cm.

− Velikost sloupce: Je-li zatrženo pole Stejná jako pro tělo, akceptuje se šířka a výška věty z těla návrhu sestavy, jinak můžeme šířku a výšku omezit zde.

− Vzhled sloupce: Při rozmístění Příčně, pak dolů se vypisují věty po „řádcích“162, při rozmístění Dolů, pak příčně se vypisují věty po sloupcích. V případě vypisování po sloupcích dochází k vypisování do druhého sloupce až po dosažení konce stránky. Proto náš případ několika prodejů pro každého zaměstnance není pro rozmístění Dolů, pak příčně vhodný.

161 Při více než dvou sloupcích musíme počítat s hodnotou vzdálenost sloupců * (počet sloupců – 1) 162 „Řádek“ obsahuje tělo věty, může to být více než jeden řádek.

Tisk vět ve sloupcích

Page 141: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 141

Uspořádání sestavy do sloupců se projevuje pouze v náhledu sestavy. Popisky jsou

bohužel vytištěny jen v prvním sloupci163. Sestavu uložíme pod stejným názvem kombinací kláves Ctrl S.

6.5 Hlavní sestava a podsestavy Vytvoříme hlavní sestavu, která bude pro jednotlivé zaměstnance zobrazovat:

− osobní data (k jedné větě hlavní sestavy jedna věta podsestavy P62 Personal – Identifikace), − služební cesty zaměstnance (žádná, jedna či více vět v podsestavě P63 Cesty ke každému

zaměstnanci v hlavní sestavě), − licence fakturované zaměstnancem (žádná, jedna či více vět v podsestavě P64 Licence ke

každému zaměstnanci v hlavní sestavě). Cílový stav sestavy (před doplněním pole E_mail do zdroje dat) je v obr. 6-7. V sestavě jsou zobrazeny věty Petra Nováka a Aleny Pospíšilové tak, aby demonstrovaly různé varianty dat jednotlivých zaměstnanců.

OBR. 6-7: SESTAVA P65 HLAVNÍ SESTAVA PRO PETRA NOVÁKA A ALENU POSPÍŠILOVOU

Vytvoříme novou sestavu: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Personal. 3 Tabulk− V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Sestava. Sestavy− Vytvoří se sestava, jejímž zdrojem záznamů je tabulka Personal. − Klepnutím do voliče v levém horním rohu označíme tabulkové rozložení a klávesou Delete

odstraníme všechny jeho ovládací prvky. Zdroj Personal zůstane připojen (viz datová vlastnost sestavy Zdroj záznamů).

− Minimalizujeme prázdné Záhlaví stránky a Zápatí sestavy. − Ze záhlaví sestavy odstraníme logo sestavy a aktuální čas. − Název sestavy přesuneme do levého horního rohu Záhlaví sestavy, upravíme jeho šířku na

17 cm a zarovnáme na střed. Text upravíme na znění:

163 Můžeme rozšířit sestavu a v záhlaví sestavy uvést popisky znovu. Rozšíříme tím i tělo sestavy, protože šířka sestavy

je společná pro všechny sekce. V kartě VZHLED STRÁNKY klepneme ve skupině RRoozzlloožžeenníí ssttrráánnkkyy do tlačítka Vzhled stránky. V dialogovém okně VVzzhhlleedd ssttrráánnkkyy v kartě Sloupce zrušíme zaškrtnutí pole Stejná jako pro tělo.

P65 Hlavní sestava

Page 142: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 142

Informace o zaměstnancích firmy Encián

− Aktuální datum přesuneme pod název sestavy úplně vlevo, upravíme jeho šířku na 17 cm a zarovnáme na střed. Výraz v textovém poli upravíme na hodnotu: ="Stav ke dni: " & Date()

− Textové pole v Zápatí stránky přesuneme do levého horního rohu Zápatí stránky, upravíme jeho šířku na 17 cm. Ponecháme jeho hodnutu: ="Stránka " & [Page] & " z " & [Stránky]

− Šířku stránky zúžíme na 17 cm. Do hlavní sestavy umístíme první podsestavu:

− Tažením na pozici těla asi 0,5;0 umístíme z navigačního podokna sestavy P62 Personal – Identifikace. Mírný odstup od horního kraje těla byl nutný, abychom snadno mohli označit popisek, který odstraníme.

− Ovládací prvek podsestavy umístíme do levého horního rohu těla hlavní sestavy. − Šířku podsestavy zvětšíme na 8 cm tak, aby se zobrazil celý její obsah. − Formátovou vlastnost podsestavy Možnost zmenšení upravíme na hodnotu ano. Zamezíme

tak vypisování volného řádku pro zaměstnance bez oprávnění fakturovat. − Aby podsesestava nebyla ohraničena, upravíme její formátovou vlastnost Styl okraje na

hodnotu průhledný. − Abychom nemuseli u dalších podsestav odstraňovat popisek a ohraničení, povýšíme formát

první podsestavy na výchozí: • Označíme podsestavu klepnutím. • Klepneme do tlačítka Výchozí nastavení prvku ve skupině Ovládací prvky v kartě NÁVRH. Ovládací prvky

Do hlavní sestavy umístíme další dvě podsestavy: − Tažením z navigačního podokna umístíme 1 cm napravo od první podsestavy pod horní kraj

těla sestavu P63 Cesty. − Šířku podsestavy upravíme na 8 cm. − Tažením z navigačního podokna umístíme pod první podsestavu sestavu P64 Licence. − Rozšíříme ji na 16 cm tak, aby v náhledu hlavní sestavy byly vytištěny oba sloupce

podsestavy. − Pro obě podsestavy zadáme do formátové vlastnosti Možnost zmenšení hodnotu ano, aby po

podsestavách nezbylo volné místo, pokud by byly prázdné (např. v případě, že zaměstnanec nefakturoval žádné licence).

Přemístíme čáru oddělující zaměstnance z podsestavy do hlavní sestavy: − Klepnutím označíme první podsestavu. − Dalším klepnutím označíme její libovolný ovládací prvek. − Tažením za dolní okraj těla podsestavy tělo dočasně zvýšíme. − Klepnutím označíme čáru pod Oprávněním. Kombinací kláves Ctrl X ji vyjmeme do

schránky. − Minimalizujeme opět tělo podsestavy. − Zvýšíme tažením za dolní kraj tělo hlavní sestavy. − Kombinací kláves Ctrl V vložíme ze schránky čáru. Tažením ji přemístíme z horního kraje

těla hlavní sestavy pod třetí podsestavu a rozšíříme na šířku hlavní sestavy, tj. 17 cm. − Pokud je to nutné, omezíme opět šířku hlavní sestavy na 17 cm.

Access propojil všechny tři podsestavy s daty v hlavní sestavě, tj. naplnil hodnotou E_mail jejich datové vlastnosti Řídící propojovací pole a Dceřiné propojovací pole. Díky tomu se v podsestavách zobrazí pouze věty (zaměstnanec, cesty, licence) se shodným polem E_mail v hlavní sestavě. Sestavu musíme prohlédnout v náhledu, jedině v tomto zobrazení je korektně zobrazena. Hlavní sestavu uložíme pod názvem P65 Hlavní sestava.

Na konci stránek náhledu mohou vznikat velké mezery, neboť Access udržuje jednotlivé věty hlavní sestavy na samostatných stránkách. Upravíme formátovou vlastnost hlavní sestavy Udržovat pohromadě na hodnotu ne. Nyní již jednotlivé podsestavy stejného zaměstnance mohou být na různých stránkách. Jednotlivé věty podsestavy jsou umístěny na stejné stránce, což by bylo možné uvolnit ve formátové vlastnosti těla podsestavy Udržovat pohromadě.

Podsestava

Page 143: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 143

6.6 Sestava bez duplikátů

V další sestavě vytiskneme aktuální místní telefonní seznam firmy uspořádaný dle oddělení a v rámci oddělení dle příjmení a jména (viz obr. 6-8, v němž jsou oddělení analýza a distribuce).

OBR. 6-8: SESTAVA P66 TELEFONNÍ SEZNAM ODDĚLENÍ ANALÝZA A DISTRIBUCE

Vytvoříme novou sestavu: − Nechceme již navazovat na šablonu první sestavy: • Klepneme do tlačítka Office a potom do tlačítka Možnosti aplikace Access. • V kartě Návrháři objektů ve skupině Formuláře či sestavyy zadáme do pole Šablona

sestavy text Normální. Formuláře či sestav

− Do sestavy chceme zahrnout jen vybraná pole tabulky Personal, proto využijeme Průvodce sestavou.

− V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Personal. 3 Tabulk− V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Průvodce sestavou. Sestavy− V prvním okně vybereme z tabulky Personal pole Jméno, Příjmení, E_mail, Místnost a

Telefon. Z tabulky Oddělení (výběrem v poli Tabulky či dotazy) vybereme dále pole Oddělení_v.

− V druhém okně zadáme, že chceme data prohlížet dle pole z tabulky Oddělení. V pravé části se naznačí příprava seskupení dle pole Oddělení_v.

− V třetím okně nepřidáme další úrovně seskupení. − Ve čtvrtém okně zadáme řazení vět dle Příjmení a dle Jména. − V pátém okně vybereme rozložení sestavy Blokové a ponecháme orientaci na výšku. − V šestém okně vybereme použití stylu Žádný. − V sedmém okně nazveme sestavu Telefonní seznam a zadáme zobrazení náhledu sestavy.

Po prohlédnutí výchozího náhledu přejdeme do zobrazení rozložení a provedeme úpravy sestavy: − Pro pole Telefon odstraníme obsah datové vlastnosti Inteligentní značky. − Upravíme šířky sloupců. − Zarovnáme pole Místnost a Telefon na střed. − Upravíme popisek Oddělení_v na Oddělení. − Označíme všechny ovládací prvky a upravíme jejich formátovou vlastnost Styl okraje na

hodnotu průhledný. − Oddělení budeme vypisovat tučně. Klepneme do libovolného oddělení a do tlačítka Tučné ve

skupině Písmoo v kartě FORMÁT. PísmPrůvodce sestavou provedl důležitá nastavení sestavy:

− Pro textové pole Oddělení_v je nastavena formátová vlastnost Skrýt duplikáty na hodnotu ano. Proto se vypisuje Oddělení_v jen na prvním řádku seskupení stejného oddělení.

− Klepnutím do tlačítka Seskupit a seřadit ve skupině Skupiny a souhrny v kartě FORMÁT zobrazíme dialogové okno Skupina, řazení a součet. Vidíme v něm, že sestava je:

Skupiny a souhrnySkupina, řazení a součet

• seskupena dle Oddělení, • seřazena dle Příjmení a Jména.

P66 Telefonní seznam

Průvodce sestavou

Blokové rozložení sestavy

Skrytí duplikátů

Page 144: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 144

Do sestavy vložíme obrázek:

− Klepneme do tlačítka Logo ve skupině Ovládací prvkyy v kartě FORMÁT. Ovládací prvk− Dohledáme umístění souboru obrázku.164 − Obrázek se umístí do levého horního rohu Záhlaví sestavy. − Ve formátových vlastnostech obrázku: • Všimneme si, že ve vlastnosti Režim velikosti je hodnota zachovat proporce. Obrázek tedy

nevyplní celou plochu ovládacího prvku, dbá na poměr výšky a šířky. • Ve vlastnosti Barva pozadí vybereme bílou barvu (#FFFF) pro okraje, které vznikají

zachováním proporcí. • Do vlastnosti Styl okraje zadáme hodnotu průhledný.

V sestavě upravíme ještě vygenerované ovládací prvky: − Aktuální datum přesuneme do Záhlaví sestavy nahoru tak, aby končilo stejně jako poslední

pole Telefon (asi 14,2 cm na vodorovném pravítku). Pole zúžíme a zarovnáme zprava. Upravíme jeho datovou vlastnost Zdroj ovládacího prvku na hodnotu: ="Stav ke dni: " & Now() Funkce Now() vypisuje na rozdíl od funkce Date() aktuální datum či čas.

− Číslo stránky posuneme nahoru v Zápatí stránky, rozšíříme na délku 14,2 cm a zarovnáme na střed.

− Minimalizujeme výšku Zápatí stránky. Upravíme vzhled stránky:

− Minimalizujeme šířku sestavy na 14,2 cm. − Klepnutím do tlačítka Vzhled stránky ve skupině Rozložení stránky v kartě VZHLED

STRÁNKY zobrazíme dialogové okno Vzhled stránky. Rozložení stránky

Vzhled stránky− V kartě Možnosti tisku upravíme pole Levý a Pravý na 34 mm. (Šířka stránky A4 je 21 cm,

při šířce sestavy 14,2 cm zbývá na okraje 21 – 14,2 = 6,8 cm, chceme sestavu tisknout doprostřed stránky, tj. na levý i pravý okraj zbývá 6,8/2 = 3,4 cm.)

Sestavu přejmenujeme na P66 Telefonní seznam.

6.7 Sestava nad více dotazy V další sestavě chceme k zaměstnancům dopsat, zda se účastnili na přípravě faktur.

Část výsledné sestavy je v obr. 6-9.

OBR. 6-9: SESTAVA P67 FAKTURACE

Sestava bude vycházet z tabulek Personal, Oddělení a z účelově připraveného dotazu, v němž zjistíme za kolik Kč (celkem za sledované období) fakturovali jednotliví zaměstnanci. V sestavě budeme v případě, že tržby z faktur za jednotlivého zaměstnance byli nulové, vypisovat symbol smutku (zamračené tváře).

Nejdříve připravíme účelový dotaz, využijeme k tomu průvodce dotazem: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Personal. 3 Tabulk− Klepneme do tlačítka Průvodce dotazem ve skupině Jinéé v kartě VYTVOŘIT. Jin

− V prvním okně průvodce vybereme Průvodce jednoduchým dotazem.

164 Ukázkový obrázek je uložen v souboru Telefon.gif. Je převzat z galerie klipartů a je zmenšen.

Vložení obrázku

P67 Tržby

Průvodce dotazem

Page 145: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 145

− Ve druhém okně vybereme pole E_mail z tabulky Personal a pole Cena z tabulky Programy. − V třetím okně vybereme druh dotazu Souhrnný. Klepneme do tlačítka Možnosti souhrnu a

pro pole Cena zaškrtneme Součet. − Ve čtvrtém okně zadáme název dotazu P67 Tržby a vybereme možnost Změnit návrh dotazu. − Díky relacím se doplnily do dotazu tabulky Faktury a Licence. − Titulek druhého pole dotazu změníme z textu Sum of Cena na Tržby. − Výsledkem dotazu je pouze 9 vět za zaměstnance, kteří dosáhli nějaké tržby. − Návrh dotazu zavřeme s uložením změn.

Vytvoříme novou sestavu: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Personal. 3 Tabulk− V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Průvodce sestavou. Sestavy− V prvním okně vybereme • z tabulky Personal pole Jméno, Příjmení, • z tabulky Oddělení pole Oddělení_v, • z tabulky Personal pole Úvazek, Oprávnění (opakovaně čerpáme z tabulky Personal,

abychom připravili pořadí polí v sestavě), • z dotazu P67 Tržby pole Tržby.

− V druhém okně přidáme seskupení z pole Příjmení. Klepneme do tlačítka Možnosti seskupení a v dialogovém okně Způsob seskupení upravíme pole Způsob seskupení na hodnotu prvního písmene.

Způsob seskupení

− V třetím okně zadáme řazení vět dle Příjmení a dle Jména. − V čtvrtém okně vybereme rozložení sestavy Odsazované a ponecháme orientaci na výšku. − V pátém okně vybereme použití stylu Žádný. − V šestém okně nazveme sestavu P67 Fakturace a zadáme zobrazení náhledu sestavy.

V návrhu sestavy provedeme změny: − Popisek Příjmení podle prvního písmena nahradíme pomlčkou. Sloupec s prvními písmeny

zúžíme. − Vhodně upravíme šířku ostatních sloupců. − Popisek Oddělení_v upravíme na Oddělení. − Popisek Oprávnění fakturovat upravíme na Oprávnění. − Ovládací prvek Úvazek zarovnáme na střed.

V sestavě jsou vypisováni pouze zaměstnanci, kteří fakturovali. Upravíme proto datovou vlastnost sestavy Zdroj záznamů. Upravíme spojení datových sad P67 Tržby a Personal na typ Zahrnout všechny záznamy z tabulky Personal.

Místo hodnoty tržeb vypíšeme symbol smutku (zamračené tváře) pro zaměstnance, kteří nefakturovali žádné prodeje: − Upravíme vlastnosti pole v posledním sloupci: • do jiné vlastnosti Název zapíšeme hodnotu Tržby_o. • do datové vlastnosti Zdroj ovládacího prvku zapíšeme hodnotu:

=Trim(IIf(Tržby Is Null;"L")) − Pro zaměstnance s tržbami se vypíše písmeno L. − Změníme typ písma pro ovládací prvek Tržby_o, tj. upravíme formátovou vlastnost Název

písma na hodnotu Wingdings. Ovládací prvek zarovnáme na střed. − Pole Oprávnění je typu Zaškrtávací políčko. Nelze jej zarovnat na střed, museli bychom

upravit jeho pozici, což v rámci tabulkového rozložení není možné. Odstraníme proto pole Oprávnění.

− Vložíme na jeho místo formálně pole Příjmení a upravíme: • popisek na Oprávnění, • datovou vlastnost textového pole na výraz:

=IIf([Oprávnění];"ţ")165 • formátovou vlastnost Styl okraje textového pole na hodnotu průhledný, • formátovou vlastnost Název písma na hodnotu Wingdings, • zarovnáme textové pole na střed.

165 Znak ţ zapíšeme z klávesnice držením klávesy Alt a stisknutím kláves 0254 na numerické klávesnici.

P67 Fakturace

Seskupení dle prvního znaku

Odsazované rozložení sestavy

Název písma

Page 146: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 146

Provedeme finální úpravy sestavy:

− Upravíme název sestavy v záhlaví sestavy na Fakturace. − V zápatí stránky odstraníme aktuální datum, číslo stránky umístíme do levého horního rohu

zápatí stránky, roztáhneme na šířku 12 cm a zarovnáme na střed. − Sestavu zúžíme na 12 cm. − Upravíme levý kraj stránky na 45 mm (21 – 12 = 9 cm, polovina je 4,5 cm). − Sestavu uložíme pod názvem P67 Fakturace.

6.8 Sestava s podíly V následující sestavě vypočteme tržby za licence odběratelům dle jejich základní

činnosti (kód NACE1) v seskupení dle sekcí NACE. V sestavě také vypíšeme podíl odběratelů jednotlivých činností na tržbách za sekci (na součtu za sekci) a podíl na celkových tržbách za všechny sekce (na součtu za všechny). Části výsledné sestavy jsou v obr. 6-10.

OBR. 6-10: SESTAVA P68 PODÍLY

− začátek stránky 1

− konec stránky 2

− konec sestavy

Nejprve přichystáme zdrojový dotaz, v němž spočteme tržby od odběratelů dle jednotlivých kódů NACE (přesněji základní činnosti NACE1): − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky NACE. 3 Tabulk− Klepneme do tlačítka Průvodce dotazem ve skupině Jinéé v kartě VYTVOŘIT. Jin− V prvním okně průvodce vybereme Průvodce jednoduchým dotazem.

P68 Tržby

Page 147: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 147

− Ve druhém okně vybereme pole Sekce a Sekce_v z tabulky Sekce, pole NACE a NACE_v

z tabulky NACE a pole Cena z tabulky Programy. − Zobrazí se upozornění, že některé vybrané tabulky nejsou propojeny relacemi. Příčinou je

propojení tabulek Sekce a NACE prostřednictvím dotazu. Klepneme do tlačítka Storno. − Opět ve druhém okně odebereme pole Sekce a Sekce_v. − Ve třetím okně vybereme pole Souhrnný dotaz a klepneme do tlačítka Možnosti souhrnu.

Pro pole Cena zaškrtneme Součet. − Ve čtvrtém okně zadáme název dotazu P68 Tržby a vybereme možnost Změnit návrh dotazu. − Ve vytvořeném dotazu jsou dle relací propojeny tabulky NACE, Podniky, Faktury, Licence,

Programy (viz obr. 6-11, kde je již dotaz upraven).

OBR. 6-11: DOTAZ P68 TRŽBY

− V kartě NÁVRH ve skupině Nastavení dotazuu klepneme do tlačítka Zobrazit tabulku.

Přidáme dotaz NACE_Oddíly a tabulky Oddíly_Sekce a Sekce. Odstraníme propojení tabulek NACE a NACE_Oddíly.

Nastavení dotaz

− Do podokna Mřížka doplníme na začátek pole s výrazem MřížkaSekce_s: [Sekce].[Sekce] & " " & [Sekce_v]166

− Pole NACE opatříme titulkem NACE_k: NACE. − Pole Sum of Cena opatříme titulkem: Tržby: Cena. − Výsledkem dotazu je 50 vět. 69 odběratelů firmy Encián má 50 různých kódů NACE

základní činnosti NACE1. − Dotaz uložíme pod názvem P68 Tržby.

Vytvoříme novou sestavu: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do dotazu P68 Tržby. 3 Tabulk− V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Průvodce sestavou. Sestavy

− V prvním okně vybereme z dotazu P68 Tržby všechna čtyři pole Sekce_s, NACE_k, NACE_v, Tržby.

− V druhém okně přidáme seskupení z pole Sekce_s. − V třetím okně zadáme řazení vět dle NACE_k.167

166 Upřesnění tabulky Sekce pro pole Sekce je nutné, neboť pole Sekce se vyskytuje také v tabulce Oddíly_Sekce. 167 Mohli bychom zde zadat tisk součtů tržeb za sekce a výpočet podílů sekcí na tržbách za všechny skupiny NACE.

Klepnuli bychom do tlačítka Možnosti souhrnu a v dalším okně bychom zaškrtnuli pro Tržby pole Součet, dále bychom zaškrtnuli pole Výpočet procent z celku pro součty. Vypočtená pole by však nebyla součástí rozložení, proto součty a podíly budeme řešit až v úpravě návrhu sestavy.

P68 Podíly

Page 148: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 148

− V čtvrtém okně vybereme rozložení sestavy Obrys a ponecháme orientaci na výšku. − V pátém okně vybereme použití stylu Žádný. − V šestém okně nazveme sestavu P68 Podíly a zadáme zobrazení náhledu sestavy.

V návrhu sestavy provedeme změny: − Název sestavy v Záhlaví sestavy změníme na Tržby za sekce a posuneme do levého horního

rohu. Šířku Záhlaví sestavy minimalizujeme. − V Záhlaví Sekce_s označíme klepnutím popisek Sekce_s a odebereme jej z tabulkového

rozložení klepnutím do tlačítka Odebrat ve skupině Rozložení ovládacího prvkuu v kartě USPOŘÁDAT. Potom popisek odstraníme. Textové pole Sekce_s přesuneme do levého horního rohu Záhlaví Sekce_s a rozšíříme na šířku 19 cm.

Rozložení ovládacího prvk

− Klepnutím do rohového voliče označíme rozložení sloupců těla s popisky v záhlaví sekce a upravíme: • Klepneme do tlačítka Výplň ovládacího prvku ve skupině Rozložení ovládacího prvkuu

v kartě USPOŘÁDAT a vybereme ŽÁDNÁ. Rozložení ovládacího prvk

• Tažením přesuneme rozložení na levý kraj. − Označíme popisky tabulky (NACE_k, NACE_v, Tržby) a přesuneme je v záhlaví sekce pod

pole Sekce_s. Minimalizujeme výšku záhlaví sekce. − Upravíme text popisků. Popisek NACE_k změníme na NACE. Popisek NACE_v změníme na

Název základní činnosti. − Označíme textová pole těla a přesuneme je k horním kraji těla. Minimalizujeme výšku těla. − Připustíme zvětšení textového pole NACE_v na více řádků (formátová vlastnost Možnost

zvětšení). − Šířku sloupce Tržby zmenšíme na 2 cm (formátová vlastnost Šířka). − V zápatí stránky posuneme aktuální datum k levému kraji, číslo stránky tak, aby jeho pravý

kraj byl na pozici 19 cm. Minimalizujeme šířku sestavy. − Prohlédneme sestavu v náhledu, nyní je sestava přehledem tržeb dle kódu NACE základní činnosti. Tržby jsou seskupené dle sekcí NACE, každá sekce má své záhlaví popisků, před nímž je písmeno a název sekce NACE.

Nyní doplníme do sestavy součet tržeb v jednotlivých sekcích a za všechny sekce: − Klepneme do tlačítka Seskupit a seřadit ve skupině Skupiny a souhrnyy v kartě NÁVRH. Skupiny a souhrn− Zobrazí se podokno Skupina, řazení a součet (viz Skupina, řazení a součet obr. 6-12), v němž klepneme do tlačítka

Další, abychom zobrazili další možnosti okna. Tlačítko Další je nahrazeno tlačítkem Méně. Obsah okna je rozsáhlý, můžeme se mezi jeho částmi pohybovat klepnutím do trojúhelníkových tlačítek na pravém kraji.

OBR. 6-12: PODOKNO SKUPINA, ŘAZENÍ A SESKUPOVÁNÍ

− Význam voleb pro skupinu Sekce_s: • Sekce_s: pole, dle nějž je provedeno seskupení či řazení, • A nahoře: řazení dle abecedy vzestupně, • podle celé hodnoty: seskupování dle celé hodnoty pole seskupení, je možné seskupovat

také např. podle prvního znaku, • bez součtů: k vybranému poli (sloupci) v rámci seskupení je možné přidat součet

(provedeme dále pro náš případ podrobně), • s názvem: možnost přidat do záhlaví sekce seskupení jeho název, • s částí záhlaví: je k dispozici sekce Záhlaví Sekce_s, • bez části zápatí: není k dispozici sekce Zápatí Sekce_s, • neudržovat skupinu pohromadě na stránce: možnost vynutit udržení všech vět skupiny na

jedné stránce či udržet pohromadě alespoň záhlaví a první větu.

Obrysové rozložení sestavy

Seskupování a řazení

Page 149: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 149

− Doplníme k tržbám součty: • Rozbalíme nabídku bez součtů (klepnutím do trojúhelníku na konci). • V poli Celkem vybereme Tržby. • V poli Typ ponecháme součet. • Zaškrtneme pole Zobrazit celkový součet a pole Zobrazit v zápatí skupiny.

− Vytvořená pole v jiné vlastnosti Název přejmenujeme: • Součet v Zápatí Sekce_s bude mít název Tržby_sekce. • Součet v Zápatí sestavy bude mít název Tržby_vše.

− Minimalizujeme výšku Zápatí Sekce_s a Zápatí sestavy. − Doplníme popisek k součtu za sekci: • Klepneme do tlačítka Popisek ve skupině Ovládací prvky v kartě NÁVRH. Ovládací prvky• Tažením vymezíme popisek v levém horním rohu Zápatí Sekce_s a vložíme text Součet za

sekci. − Zkopírujeme popisek do Zápatí sestavy a upravíme jeho text na Součet za vše.

Upravíme čáry v sestavě: − Potlačíme čáry nad součty změnou formátové vlastnosti Styl mřížky nahoře na hodnotu

průhledný. − Doplníme mřížku do těla. Označíme klepnutím ve svislém pravítku všechna pole těla.

Klepneme do tlačítka Mřížka ve skupině Mřížkaa v kartě NÁVRH a vybereme OBOJÍ. Mřížk− Chceme, aby každá skupina byla na stejné stránce. V podokně Skupina, řazení a součet pro

seskupení Sekce_s vybereme hodnotu udržovat celou skupinu pohromadě na jedné stránce. Skupina, řazení a součet

Doplníme sloupec s podílem jednotlivých činností na tržbách za všechny sekce: − Klepneme do popisku Tržby. S klávesou Shift klepneme do textového pole Tržby a do

součtu tržeb za skupinu. − Zkopírujeme označené ovládací prvky do schránky kombinací Ctrl C a vložíme je ze

schránky kombinací Ctrl V.168 − Tažením doprava vložené prvky posuneme za první sloupec tržeb. Minimalizujeme Záhlaví

Sekce_s, Tělo, Zápatí Sekce_s. − Upravíme popisek Tržby na hodnotu Podíl na všem, za slovem Podíl stiskneme kombinaci

kláves Shift Enter , abychom vytvořili v popisku nový řádek, nemusíme tak rozšiřovat sloupec.

− Upravíme vlastnosti textového pole posledního sloupce v Těle: • datovou vlastnost Zdroj ovládacího prvku na hodnotu =Tržby/Tržby_vše169, • formátovou vlastnost Formát na hodnotu procenta.

− Upravíme vlastnosti textového pole posledního sloupce v Zápatí Sekce_s: • datovou vlastnost Zdroj ovládacího prvku na hodnotu =Sum([Tržby])/[Tržby_vše], • formátovou vlastnost Formát na hodnotu procenta.

Doplníme předposlední sloupec s podílem jednotlivých činností: − Označíme popisek, textové pole i součet posledního sloupce. Zkopírujeme jej na pozici

předposledního sloupce, minimalizujeme Záhlaví Sekce_s, Tělo, Zápatí Sekce_s. − Upravíme popisek na Podíl na sekci. − Upravíme zdroj textového pole na hodnotu = [Tržby]/[Tržby_sekce]. − Upravíme zdroj součtového pole na hodnotu =Sum([Tržby])/[Tržby_vše].

Pro lepší čitelnost popisků nad tabulkou vložíme na začátek popisků NACE, Název základní činnosti a Tržby volný řádek kombinací kláves Shift Enter.

Sestavu uložíme pod názvem P68 Podíly. Při tvorbě sestav lze využít řadu dalších vlastností ovládacích prvků. Mezi ně patří

datová vlastnost Průběžný součet. Pokud bychom ve sloupci Tržby zadali hodnotu: − přes skupinu, vypisoval by se kumulativní součet tržeb v rámci skupiny, tj. součet by se

nuloval v souvislosti s přechodem na další skupinu, − přes všechno, vypisoval by se kumulativní součet tržeb za všechny věty. 168 Sloupec jsme vkládali kopírováním, abychom zachovali společné rozložení popisku, textového pole v těle a součtu

v zápatí skupiny. 169 Ve výrazu tak používáme dříve připravený název ovládacího prvku. Dosud jsme se odkazovali pouze na pole ze

zdroje dat.

Součty za sekce a sestavu

Mřížka v rozložení

Podíly v sestavě

Průběžný součet

Page 150: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 150

6.9 Štítky

V další sestavě připravíme štítky (samolepící adresní etikety) na obálky, v nichž budeme zasílat aktuální letáky odběratelům firmy Encián. Předpokládejme, že adresy budeme tisknout na laserové tiskárně na štítky o rozměru 7 x 3,6 cm, které jsou ve 3 sloupcích a 8 řadách umístěny na listech o rozměru A4 s horním nakládacím okrajem 0,9 cm (viz obr. 6-13).170

OBR. 6-13: VOLNÝ LIST A4 ADRESNÍCH ŠTÍTKŮ

Vytvoříme novou sestavu: − V navigačním podokně klepneme ve skupině 3 Tabulkyy do tabulky Podniky. 3 Tabulk− V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Štítky. Sestavy− V prvním okně Průvodce štítky se nabídne řada typů štítků. V poli Druh štítků ponecháme

vybrány Volné listy171, v poli Filtrovat podle výrobce můžeme vybrat výrobce štítků, jeho štítky se potom nabízí v horním seznamu.

OBR. 6-14: PRVNÍ OKNO PRŮVODCE ŠTÍTKY

170 Rozměry štítku lze změřit nebo je můžeme spočítat z velikosti stránky A4. Pro šířku našeho štítku platí: 21/3 =

7 cm, pro výšku (29,7 – 0,9)/8= 28,8/8 = 3,6 cm. 171 Volba Nekonečný pás je určena na tisk štítků na souvislém pásu s perforací po krajích do jehličkových tiskáren.

Volba Nekonečný pás se používá také k tisku štítků přímo na obálky.

Štítky

P69a Štítky

Page 151: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 151

− Nevyužijeme žádný nabízený formát štítků, připravíme vlastní. Klepneme do tlačítka

Přizpůsobit. − Zobrazí se dialogové okno Velikost nového štítku. Zde může být uveden seznam dříve

vytvořených vlastních štítků. Klepneme do tlačítka Nový. − Zobrazí se dialogové okno Úprava štítku, v němž zadáme hodnoty dle Úprava štítku obr. 6-15.

OBR. 6-15: DIALOGOVÉ OKNO ÚPRAVA ŠTÍTKU

Význam parametrů: − Horní nakládací okraj 0,90 cm zadán dle parametrů štítků. − Výška štítku 3,60 cm zadána dle výšky štítku. − Levý okraj 0,80 cm je kraj papíru, na nějž nelze tisknout laserovou tiskárnou172. − Okraj mezi štítky zadáme jako dvojnásobek levého kraje. I na prostředním štítku obecně

dodržíme levý i pravý okraj 0,80 cm. − Šířka štítku 5,4 je zbytek po odečtení okrajů (7 – 2*0,8 = 7 – 1,6 = 5,4 cm). − Pravý okraj 0,79 cm je opět nepotisknutelný okraj. Zadáme jej o něco menší, tak aby celková

šířka byla menší než 21 cm: 0,8 + 3*5,4 + 2 * 1,6 + 0,79 = 0,8 + 16,2 + 3,2 + 0,79 = 20,99 Klepnutím do tlačítka OK ukončíme definici parametrů štítku. Klepnutím do tlačítka

Zavřít zavřeme dialogové okno VVeelliikkoosstt nnoovvééhhoo ššttííttkkuu.173 Průvodce pokračuje: − V druhém okně průvodce upravíme formát písma ve štítku. Změníme Velikost písma na 10. − V třetím okně vybíráme z polí zdrojové tabulky či dotazu do vzorového štítku (viz obr.

6-16). Na začátku vynecháme volný řádek, aby text byl uprostřed štítku.

OBR. 6-16: TŘETÍ OKNO PRŮVODCE ŠTÍTKY

172 Šířka okraje je různá dle typu tiskáren. Nebývá větší než 0,8 cm. 173 Definice vlastního štítku se neukládá do databáze, ale do uživatelských nastavení Accessu.

Page 152: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 6: Sestavy 152

− Ve čtvrtém okně zadáme řazení štítků dle IČ. − V pátém okně zadáme název sestavy P69 Štítky a ponecháme vybrané zobrazení náhledu

vytištěných štítků a klepneme do tlačítka Dokončit. Případné hlášení o nezobrazení některých dat odsouhlasíme klepnutím do tlačítka OK.

− Zobrazí se náhled sestavy štítků (viz obr. 6-17).

OBR. 6-17: SESTAVA P69 ŠTÍTKY – PRVNÍ ŘADA TŘÍ ŠTÍTKŮ

Štítky či obálky lze tisknout také prostřednictvím hromadné korespondence: − Databázi musíme otevřít v nevýhradním přístupu.174 − V navigačním podokně klepneme do zdrojové tabulky či dotazu, např. Podniky. − V kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Další a vybereme SLOUČIT

S DOKUMENTEM MICROSOFT OFFICE WORD. Export

− Vybereme propojení s novým dokumentem. − Dále ve Wordu provedeme parametrizaci hromadné korespondence. Můžeme vytvořit dopis,

obálku či štítky napojené na databázi Accessu.

Shrnutí 1. Sestavy slouží k tisku dat na tiskárně. Návrh sestavy je analogický jako návrh formuláře. 2. Účinnou pomoc poskytuje Průvodce sestavou. Průvodce nabízí sloupcové, tabulkové a

zarovnané rozvržení pro sestavy bez skupiny a odsazované, blokové a obrysové pro sestavy se skupinami.

3. Sestavu lze zobrazit několika zobrazeními: zobrazení sestavy, náhled, zobrazení rozložení a návrhové zobrazení. Některé vlastnosti sestavy se plně projeví až v náhledu, např. tisk ve více sloupcích. V náhledu lze zobrazit i více stránek, lze také zobrazit detail vybraného místa stránky.

4. Sestava se skládá ze sekcí: záhlaví sestavy, záhlaví stránky, těla, zápatí stránky, zápatí sestavy. V případě seskupení je možné využít také záhlaví a zápatí skupin. Sestava jako celek, jednotlivé sekce i jednotlivé ovládací prvky mají řadu vlastností.

5. Ovládací prvky mohou být definovány výrazy. Ve výrazech lze použít např. funkce IIf, Trim, HyperLinkPart, Left, Right. Součástí výrazu může být výsledek jiného výrazu v sestavě, který zastupuje jeho název. Textové řetězce můžeme ve výrazu slučovat pomocí operátoru &. Výraz začíná rovnítkem. Ve výrazu nemusíme zapisovat hranaté závorky zastupující ohraničení názvu polí, musíme však zapisovat uvozovky ohraničující konstantní texty.

6. Sestavu můžeme uložit do souboru ve formátu snp. Statický obraz sestavy potom lze prohlížet volně šiřitelnou aplikací Snapshot Viewer.

7. Obdobně jako pro formuláře můžeme pro přípravu sestavy použít šablonu. Šablonou je jedna ze sestav databáze. V nové sestavě se potom přebírá formátování výchozích prvků a některé vlastnosti sestavy šablony.

8. Sestavy s úzkým tělem lze vypisovat ve více sloupcích. Více sloupců je zobrazeno až v náhledu. Popisky v záhlaví stránky či sestavy jsou uvedeny jen pro první sloupec.

9. V rámci hlavní sestavy může být obsaženo několik podsestav, v nich se vypisují věty, které mají shodu v řídícím (v hlavní sestavě) a dceřiném (podsestava) propojovacím poli.

10. Tisk opakujících se stejných hodnot polí můžeme v sestavě potlačit prostřednictvím vlastnosti pole Skrýt duplikáty.

11. Do setavy je možné vložit propojený či vložený obrázek. 12. V sestavě můžeme počítat součty za sekce či za celou sestavu a podíly jednotlivých vět na

součtech za sekce či za všechny věty. 13. Tisk adresních štítků podporuje Access průvodce štítky. Můžeme využít předvolené

formáty nebo připravit formát vlastního štítku.

174 Sdílený přístup otevírání lze nastavit po klepnutí do tlačítka Office a Možnosti aplikace Access ve skupině UUppřřeessnniitt v poli Výchozí režim otevření nebo individuálně při otevírání databáze.

Hromadná korespondence

Page 153: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 7: Makra 153

7. Makra

7.1 Druhy a struktura maker Makro je prostředek, který automaticky vykoná předem definovanou operaci či celou

řadu operací. Jednotlivé operace, které Access provádí v makru, se nazývajíc akce. Při tvorbě makra vybíráme akce ze seznamu použitelných akcí. Fungování akcí upřesňujeme prostřednictvím argumentů akcí.

Dostupné akce lze z hlediska nároků na zabezpečení rozdělit na dva druhy: − základní: 45 typů akcí, které nevyžadují kontrolu důvěryhodnosti, − rozšířené: 25 typů akcí, které lze spouštět jen při vhodném nastavení maker, neboť provádějí

operace, které by mohly ohrozit obsah databáze. Makro je objektem Accessu jako tabulky, dotazy, formuláře a sestavy. V jednom

objektu (samostatně uváděném v navigačním podokně) může být obsaženo jedno makro nebo více maker. Objekt uváděný v navigačním podokně je potom skupinou maker, dílčí makra ve skupině mají svůj název. Při spouštění makra potom musíme uvést název objektu skupiny i název dílčího makra.

Makro se skládá z jednotlivých akcí. Jednotlivé akce mohou být prováděny jen při splnění podmínky zadané výrazem. Podmínku lze snadno opakovat pro více akcí.

Akce lze parametrizovat prostřednictvím argumentů. Jednotlivé typy mají různé argumenty. Hodnoty argumentů lze často vybírat z rozevíracích seznamů.

Z hlediska spouštění makra lze makra rozdělit na: − makra spouštěná přímo z navigačního podokna, − makra spouštěná z jiných objektů (především formulářů a sestav) při zadané události (např.

při klepnutí do tlačítka ve formuláři nebo při přechodu na další větu ve formuláři nebo při přechodu na tisk další věty v sestavě).

Makro lze spustit: − běžně bez krokování: • Makro provádí akce v něm obsažené bez zastavování.

− s krokováním: • Po každé akci se makro pozastaví, zobrazí se dialogové okno Krokovat makro, abychom

mohli analyzovat výsledek jednotlivých akcí. Krokovat makro

• Dále můžeme pokračovat krokováním nebo pokračováním bez krokování. • Krokování můžeme zahájit také až z vybraného místa makra, když do makra zařadíme akci

Krok. Makra mohou být uložena:

− jako objekty zobrazované v navigačním podokně, − jako vnořené makro spouštěné při události v jiném objektu, makro je potom uložené přímo

v tomto objektu.175

7.2 Makro spustitelné samostatně Chceme vytvořit makro, které zobrazí ve formuláři licence fakturované odděleními

vybranými v tabulce Oddělení_F. V případě, že pro vybraná oddělení žádné licence neexistují, chceme pouze zobrazit dialogové okno s hlášením.

Nejdříve nachystáme podkladový dotaz, který vybere licence fakturované vybraným oddělením, a z něho vycházející formulář: − Do tabulky Oddělení_F vložíme jedinou větu s hodnotou DIS. − Nejprve připravíme dotaz: • Podkladový dotaz vychází z tabulek Oddělení_F, Personal, Faktury, Licence, z nichž

vybere: » z tabulky Personal: Jméno, Příjmení,

175 Různé způsoby uložení jsou analogické jako uložení dotazů. Např. podkladem formuláře může být dotaz samostatně

uložený a zobrazený v navigačním podokně nebo dotaz bez názvu uložený přímo ve formuláři.

Makro

Akce dle zabezpečení

Skupiny maker

Podmínka akce

Argumenty

Spouštění maker

Ukládání maker

P72 Dotaz

Page 154: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 7: Makra 154

» z tabulky Faktury: Faktura, Datum, IČ, » z tabulky Licence: Program, Sériové_číslo.

• Dotaz uložíme pod názvem P72 Dotaz. − Na základě dotazu vytvoříme formulář: • V navigačním podokně označíme klepnutím objekt P72 Dotaz. • V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Více položek. Formulář• V automaticky vytvořeném formuláři upravíme v zobrazení rozložení šířku sloupců, tak

aby jejich šířka odpovídala obsahu. • Formulář uložíme pod názvem P72 Licence.

Připravíme jednoduché makro, které pouze otevře vytvořený formulář: − V kartě VYTVOŘIT ve skupině Jinéé klepneme do tlačítka Makro. Jin− Zobrazí se tabulka, do níž budeme zapisovat jednotlivé akce. Pro každou akci jsou

přichystány tři sloupce: • Do sloupce Akce vybereme akci z nabídky 45, popř. 70 akcí. • Ve sloupci Argumenty budou zrekapitulovány argumenty akce, jedná se jen o rekapitulaci,

editaci budeme provádět v dolním podokně Argumenty akce. Argumenty akce• Do sloupce Komentář můžeme zapsat dokumentační komentář. • Další sloupce (Názvy maker, Podmínky) zobrazíme později.

− Akci lze do makra zadat několika způsoby: • výběrem ze seznamu akcí, který rozbalíme klepnutím do tlačítka na konci pole akce, • zapsáním jednoznačného počátku názvu akce, • v případě některých akcí přímo vycházejících z jiných databázových objektů tažením

objektu z navigačního podokna do pole Akce (s automatickým vyplněním některých argumentů).

Rozsah nabídky akcí závisí na stavu tlačítka Zobrazit všechny akce ve skupině ZZoobbrraazziitt ččii sskkrrýýtt v kartě NÁVRH. Prvotně se nabízí 45 typů akcí, při klepnutí do tlačítka se zobrazí nabídka 70 typů akcí včetně akcí, pro něž je nutné nastavit jiné zabezpečení maker.176 V našem případě táhneme z navigačního podokna objekt P72 Licence do prvního řádku tabulky akcí. Nastaví se akce Otevřít formulář s argumenty (viz dolní podokno AArrgguummeennttyy aakkccee): • Název formuláře: P72 Licence • Zobrazit: formulář • Režim okna: normální

− Před spuštěním makro uložíme klepnutím do tlačítka Uložit v panelu nástrojů Rychlý přístup pod názvem P72 Makro.

− Z návrhu makra makro spustíme klepnutím do tlačítka Spustit ze skupiny Nástrojee v kartě NÁVRH. (Z navigačního podokna můžeme makro spustit poklepáním na jeho název.) Otevře se formulář P72 Dotaz. Po otevření je kurzor v prvním sloupci Jméno. Zavřeme formulář.

Nástroj

Budeme demonstrovat další typy akcí: − Do návrhu makra doplníme akci Najít záznam. Akce provádí hledání v obsahu otevřené

tabulky či výsledku dotazu obdobně jako, kdybychom hledali stisknutím kláves Ctrl F. Do argumentu Najít zapíšeme hodnotu Eva.

− Spustíme znovu makro. Access nás vyzve k uložení makra. Po uložení se otevře formulář na první větě s křestním jménem Eva.

− Chceme však hledat v poli Program: • Proto doplníme do návrhu makra další akci. Novou akci chceme vložit před akci Najít.

Klepnutím do voliče akce NajítZáznam (čtvereček na začátku řádku) označíme akci a stiskneme klávesu Insert .

• Doplníme akci PřejítNaOvládacíPrvek s jediným argumentem Název ovládacího prvku, vložíme do něj hodnotu Program. Hodnotu nelze vybrat z rozbalovacího seznamu. V akci NajítZáznam upravíme argument Najít z hodnoty Eva na FIN.

• Po spuštění makra se otevře formulář a kurzor se umístí do věty licence programu FIN.

176 Nastavení se provádí klepnutím do tlačítka Office a tlačítka Možnosti aplikace Access. V kartě Centrum

zabezpečení klepneme do tlačítka Nastavení Centra zabezpečení a zde nastavení upravíme v kartě Nastavení maker.

P72 Licence

Akce Otevřít formulář

P72 Makro

Akce Najít Záznam

Akce Přejít Na Ovládací Prvek

Page 155: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 7: Makra 155

− Chceme vyhledat druhý výskyt licence FIN: • Doplníme do makra na konec akci NajítDalší, která nemá žádný argument. • Po spuštění makra se otevře formulář a kurzor se umístí do věty druhé licence programu

FIN. − Konec průběhu makra oznámíme zvukovým signálem: • Doplníme do makra na konec akci ZvukovýSignál, která nemá žádný argument.

Formulář chceme zobrazit pouze v případě, že výsledkem podkladového dotazu je jedna či více vět: − Klepnutím do tlačítka Podmínky ve skupině Zobrazit či skrýt v kartě NÁVRH zobrazíme

v tabulce akcí makra sloupec Podmínka. Zobrazit či skrýt

− K první akci zapíšeme podmínku: DCount("[Program]";"P72 Dotaz")>0 Funkce DCount zjišťuje v datové sadě (dotazu) P72 Dotaz počet vět s vyplněnými poli Program. Akci provedeme pouze, když počet je větší než 0.

− Podmínka platí jen pro jednotlivou akci. Abychom nemuseli opisovat podmínku, zapíšeme v řádku dalších akcí s výjimkou poslední akce do sloupce Podmínka tři tečky (...), čímž opakujeme podmínku z předchozího řádku.

− Fungování makra vyzkoušíme variantně zadáním hodnoty ANA (nezobrazí se formulář, pouze zazní zvukový signál) a DIS (zobrazí se formulář) do tabulky Oddělení_F.

Pro případ, že výsledkem podkladového dotazu není žádná věta, chceme zobrazit oznámení v dialogovém okně: − Označíme první akci klepnutím do voliče řádku a zkopírujeme ji do schránky kombinací

kláves Ctrl C. − Klepneme kamkoliv v řádku první akce a vložíme akci ze schránky kombinací kláves

Ctrl V. − Upravíme podmínku na tvar:

DCount("[Program]";"P72 Dotaz")=0 − Změníme akci na OknoSeZprávou s argumenty: • Zpráva: Vybraná oddělení nevystavila žádnou fakturu. • Zvukový signál: ano • Typ: informační zpráva • Titulek: Upozornění

− Pro variantu hodnoty ANA v tabulce Oddělení_F se zobrazí dialogové okno dle nastavených argumentů. Typ informační zpráva se projevuje zobrazením ikony vedle zprávy (viz obr. 7-1).

OBR. 7-1: DIALOGOVÉ OKNO UPOZORNĚNÍ

Obě podmínky jsou podobné. V případě úpravy názvu dotazu nebo pole Program by se změny v makru neprojevily, museli bychom opravit obě podmínky. Počet výsledných vět dotazu proto uložíme do proměnné: − Na začátek makra vložíme novou akci NastavitDočasnouProměnnou s argumenty: • Název: Pocet • Výraz: DCount("[Program]";"P72 Dotaz")

− Dočasných proměnných můžeme využít až 256, názvy si tvoříme sami. Na dočasné proměnné se odkazujeme ve tvaru [DočasnéProměnné]![Název proměnné], tj. podmínky upravíme na tvary: • [DočasnéProměnné]![Pocet]=0 • [DočasnéProměnné]![Pocet]>0

Akce Najít Další

Akce Zvukový Signál

Podmínka akce

Opakování podmínky (...)

Akce Okno Se Zprávou

Page 156: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 7: Makra 156

V případě, že výsledkem dotazu není žádná věta, chceme po uzavření dialogového

okna UUppoozzoorrnněěnníí, otevřít formulář pro editaci tabulky Oddělení_F: − V navigačním podokně označíme tabulku Oddělení_F. − V kartě NÁVRH ve skupině Formulářee klepneme do tlačítka Více položek. Formulář− Automaticky vytvořený formulář uložíme pod názvem P72 Oddělení. − Za akci OknoSeZprávou vložíme tažením objektu formuláře z navigačního podokna akci

OtevřítFormulář a definujeme pro ni stejnou podmínku jako v předchozím řádku zadáním tří teček do sloupce Podmínka.

− Výsledné znění makra je uvedeno v obr. 7-2.

OBR. 7-2: MAKRO P72 MAKRO

Chceme usnadnit přepínání mezi formuláři. Do formulářů doplníme tlačítka přechodu na druhý formulář: − Do formuláře P72 Oddělení doplníme tlačítko: • V návrhovém zobrazení rozšíříme formulář na 10 cm. • V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Tlačítko. Ovládací prvky• Vymezíme tlačítko v Záhlaví formuláře napravo od popisku Oddělení_F v šířce 6 – 10 cm.

Do tlačítka napíšeme text Formulář licencí. Upravíme tak formátovou vlastnost Titulek. • V událostní vlastnosti Při klepnutí klepneme do rozbalovacího tlačítka a vybereme makro

P72 Makro. • Formulář uložíme se změnami.

− Také do formuláře P72 Licence doplníme tlačítko: • V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Tlačítko. Ovládací prvky• Vymezíme tlačítko v Záhlaví formuláře napravo od popisku P72 Dotaz v šířce 6 – 10 cm.

Do tlačítka napíšeme text Výběr oddělení. • Popisek P72 Dotaz změníme na Licence. • V událostní vlastnosti Při klepnutí vytvořeného tlačítka klepneme do druhého tlačítka

Tvůrce a vybereme Tvůrce maker. Vytvořili jsme tak vnořené makro, které je uloženo v objektu formuláře. Vnořené makro bude obsahovat dvě akce: » OtevřítFormulář s argumentem:

Název formuláře: P72 Oddělení » Zavřít s argumenty:

Typ objektu: formulář Název objektu: P72 Licence Uložit: výzva

• Tvorbu makra ukončíme klepnutím do tlačítka Zavřít ve skupině Zavřít v kartě NÁVRH. Zavřít• Potvrdíme uložení makra a aktualizování vlastnosti. • Formulář uložíme se změnami.

V tabulce Oddělení_F nachystáme jediné oddělení ANA a vyzkoušíme fungování formulářů: − Poklepáním na název makra spustíme z navigačního podokna makro P72 Makro. − Zobrazí se upozornění Vybraná oddělení nevystavila žádnou fakturu. − Po klepnutí do tlačítko OK se otevře formulář Oddělení_F. Doplníme v něm druhé oddělení

DIS. Přejdeme na další řádek, aby se druhá věta uložila. − Klepneme do tlačítka Formulář licencí. − Zobrazí se formulář P72 Licence, kurzor v něm je na větě s druhým výskytem programu

FIN. − Klepneme do tlačítka Výběr oddělení. − Zavře se formulář P72 Licence a otevře se formulář P72 Oddělení.

P72 Oddělení

Akce Zavřít

Page 157: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 7: Makra 157

Doplníme do naší soustavy ještě sestavu vypisující přehled prodaných licencí:

− V navigačním podokně označíme dotaz P72 Dotaz. − V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Sestava. Sestavy− V zobrazení rozložení vytvořené sestavy zúžíme šířku sloupců. − Upravíme popisek v záhlaví sestavy na Licence. − Upravíme popisek posledního sloupce na Sériové číslo. − V případě, že sestava neobsahuje žádnou větu, zobrazíme místo sestavy upozornění.

V návrhovém zobrazení změníme vlastnost sestavy Při nepřítomnosti dat. Vložíme do ní vnořené makro se dvěma akcemi: • OknoSeZprávou s argumenty:

» Zpráva: V sestavě licencí nejsou žádná data. » Typ: kritický stav » Titulek: Upozornění

• ZrušitUdálost bez argumentů. − Sestavu uložíme pod názvem P72 Sestava. − Do formuláře P72 Oddělení doplníme pod tlačítko Formulář licencí nové tlačítko Sestava

licencí, které bude obsahovat vnořené makro s jedinou akcí: • OtevřítSestavu s argumenty:

» Název sestavy: P72 Sestava » Zobrazit: sestava

− Formulář uložíme. − Vyzkoušíme sestavu pro jediné oddělení ANA. Zobrazí se dialogové okno Upozornění. Po

klepnutí do tlačítka OK se nezobrazí sestava. Upozornění

V případě, že makro nefunguje dle našich představ, je vhodné zobrazit výsledky jednotlivých akcí makra – kroků makra. Krokování můžeme spustit: − před spuštěním makra, − v průběhu makra jako samostatnou akci.

Provedeme krokování makra P72 Makro: − Otevřeme makro v návrhu. − V kartě NÁVRH klepneme ve skupině Nástrojee do tlačítka Krok. Nastavení zapnutí krokování

se pamatuje pro další spouštění všech maker. Makro spustíme klepnutím do tlačítka Spustit. Nástroj

− Zobrazí se dialogové okno Krokovat makro, v němž se zobrazí parametry provedené akce. V poli Podmínka je vyhodnocena hodnota výrazu v podmínce (viz

Krokovat makroobr. 7-3).

OBR. 7-3: DIALOGOVÉ OKNO KROKOVAT MAKRO

− Tlačítkem Krok pokračujeme krokováním dalších akcí. − Tlačítkem Pokračovat pokračujeme na další akci v provádění akcí makra bez krokování. − Tlačítkem Zastavit všechna makra můžeme makro předčasně ukončit.

Spuštění krokování z makra budeme demonstrovat na vnořeném makru ve formuláři P72 Licence. Na začátek makra spouštěného tlačítkem Výběr oddělení doplníme akci Krok. Při spuštění makra klepnutím do tlačítka se spustí krokování. Akci z makra odstraníme.

Dialogové okno KKrrookkoovvaatt mmaakkrroo se zobrazuje také, když v průběhu provádění makra zastavíme makro kombinací kláves Ctrl Pause.

P72 Sestava

Akce Zrušit Událost

Akce Otevřít Sestavu

Krokování

Akce Krok

Page 158: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 7: Makra 158

7.3 Makro filtrující sestavu

Úkolem druhého makra bude zobrazit v sestavě S65 Hlavní sestava pouze vybraného zaměstnance: − Otevřeme návrh nového makra a do prvního řádku makra přesuneme z navigačního podokna

sestavu P65 Hlavní sestava. V návrhu makra se vytvořila první akce OtevřítSestavu. Upravíme argumenty akce: • Název sestavy: Ponecháme Accessem doplněnou hodnotu P65 Hlavní sestava. • Zobrazit: Ponecháme hodnotu sestava, aby se sestava zobrazila v zobrazení sestavy. • Název filtru: Zde bychom mohli zapsat název dříve připraveného dotazu, kterým se

připravují data pro sestavu. Řádek ponecháme prázdný.177 • Podmínka Where: Můžeme omezit věty vypisované v sestavě, v našem případě zadáme:

E_mail="Novak.Petr" − Makro uložíme pod názvem P73a Makro s podmínkou Where. − Po spuštění makra se zobrazí sestava P65 Hlavní sestava pouze s větou Petra Nováka.

Chceme makro přiblížit uživateli: − zobecněním zaměstnance vybíraného do sestavy, − jednodušším spuštěním makra.

Předpokládejme, že uživatel bude prohlížet zaměstnance ve formuláři P58e Karta – Personal. Chceme v sestavě zobrazit zaměstnance právě zobrazeného ve formuláři: − Vzhledem k očekávaným úpravám formuláře vytvoříme jeho kopii P73b Karta – Personal. − Nové makro bude velmi podobné předchozímu, vytvoříme proto kopii makra P73a Makro

s podmínkou Where pod názvem P73b Makro s podmínkou Where. − V makru P73b Makro s podmínkou Where upravíme pouze argument Podmínka Where

jediné akce: [E_mail]=[Formuláře]![P73b Karta - Personal]![E_mail] Obecný odkaz na název ovládacího prvku formuláře má syntaxi: [Formuláře]![název formuláře]![název ovládacího prvku]

Podmínkou zobrazujeme pouze věty sestavy, jejichž pole E_mail má hodnotu shodnou s hodnotou ovládacího prvku E_mail ve formuláři P73b Karta – Personal, který musí být otevřený: − Před testováním musíme proto otevřít formulář P73b Karta – Personal. − Zobrazíme v něm např. třetí větu Evy Benešové a spustíme makro. − Zobrazí se sestava s daty o Evě Benešové.

Aby uživatel nemusel otevírat formulář a potom hledat v okně databáze makro, spustíme makro ve formuláři. Impulsem ke spuštění makra nebude jeho spuštění v navigačním podokně, ale událost ve formuláři. Událostí bude v našem případě poklepání do těla formuláře: − Ve vlastnostech těla formuláře P73b Karta – Personal proto upravíme vlastnost Při

poklepnutí. Na konci řádku klepneme do rozbalovacího tlačítka. − Vybereme makro P73b Makro s podmínkou Where.

Když nyní otevřeme formulář S73b Karta – Personal, zobrazíme libovolnou větu a poklepeme na tělo formuláře, tj. do šedého podkladu formuláře, nikoliv karet ani řádku záložek karet, zobrazí se sestava se zaměstnancem právě zobrazeným ve formuláři. Po prohlédnutí či vytištění sestavy okno sestavy zavřeme. Ve formuláři můžeme nastavit jinou větu a opět poklepáním zobrazit její sestavu.

Spouštění je natolik nenápadné, že by si uživatel nemusel možnosti zobrazit sestavu všimnout. Vložíme proto do formuláře tlačítko. − V návrhu formuláře klepneme v kartě NÁVRH ve skupině Ovládací prvkyy do tlačítka

Tlačítko. Ovládací prvk

− Tlačítko vymezíme napravo od pole E_mail v šířce 6 – 9 cm. − Titulek tlačítka změníme na Sestava. − Text tlačítka je vzhledem k dřívějšímu vytvoření sestavy průvodcem světle modrou barvou.

V kartě NÁVRH ve skupině Písmoo klepneme do tlačítka Barva písma a vybereme Automaticky.

Písm

− Do událostní vlastnosti tlačítka Při klepnutí vybereme P73b Makro s podmínkou Where.

177 Mohli bychom připravit dotaz vycházející z tabulky Personal, v němž vybereme pole Oddělení s kritériem ANA.

P73a Makro s podmínkou Where

Podmínka Where

P73b Makro s podmínkou Where

P73b Karta – Personal

Page 159: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 7: Makra 159

7.4 Makro ve formuláři

Makro může upravovat vlastnosti ovládacích prvků ve formulářích či sestavách. Před dalšími úpravami zkopírujeme formulář P53 Podniky – Identifikace jako nový P74a Podniky – Identifikace. Připravíme makro, které v nově vytvořeném formuláři zobrazí pole pro zobrazení druhého (popř. třetího, …, šestého) NACE jen v případě, že je již vyplněn první (popř. druhý, …, pátý) NACE (viz obr. 7-4).

OBR. 7-4: MAKRO P74A MAKRO VE FORMULÁŘI

Nejprve vytvoříme makro: − V kartě VYTVOŘIT ve skupině Jinéé klepneme do tlačítka Makro. Jin− Zobrazíme sloupec Podmínka klepnutím do tlačítka Podmínky ve skupině Zobrazit či skrýtt

v kartě NÁVRH. Zobrazit či skrý

− Zapíšeme první operaci v makru, která v případě, že je nevyplněné pole NACE1 nezobrazí pole NACE2 ve formuláři. • V podmínce nemusíme zapisovat název pole do hranatých závorek. • Akce NastavitVlastnost umožňuje změnit hodnotu vlastnosti vybraného ovládacího prvku. • Do argumentu Název ovládacího prvku zapíšeme název prvku, jehož vlastnost budeme

měnit. • Do argumentu Vlastnost vybereme měněnou vlastnost. Nabízí se 10 vlastností:

» Povoleno: nastavení vlastnosti Zpřístupnit (možné hodnoty 0 = ne, -1 = ano), » Viditelné: nastavení vlastnosti Zobrazit (možné hodnoty 0, -1), » Uzamčeno: nastavení vlastnosti Uzamknout (možné hodnoty 0, - 1), » Vlevo: nastavení vlastnosti Vlevo, tj. vzdálenost ovládacího prvku od levého kraje (do

hodnoty se zadává číslo), » Nahoře: nastavení vlastnosti Nahoře, tj. vzdálenost ovládacího prvku od horního kraje

(do hodnoty se zadává číslo), » Šířka: nastavení vlastnosti Šířka, tj. šířka ovládacího prvku (do hodnoty se zadává číslo), » Výška: nastavení vlastnosti Výška, tj. výška ovládacího prvku (do hodnoty se zadává číslo),

» Barva popředí: nastavení vlastnosti Barva popředí (do hodnoty se zadává číslo barvy v desítkové soustavě),

» Barva pozadí: nastavení vlastnosti Barva pozadí (do hodnoty se zadává číslo barvy v desítkové soustavě),

» Titulek: nastavení vlastnosti Titulek – možné pouze pro popisky (do hodnoty se zadává libovolný text).

V našem případě vybereme vlastnost Viditelné, neboť chceme ovlivnit zobrazování vybraného pole.

• Do argumentu Hodnota zapíšeme 0, která zastupuje hodnotu Ne (False). • Komentář nemusíme vyplňovat.

− V prvním řádku makra jsme řešili větu, v níž NACE1 je prázdné. Přechodem na větu s vyplněným NACE1 by však zůstal nezobrazen ovládací prvek NACE2. Musíme proto doplnit opačný případ:

Makro ve formuláři

P74a Makro ve formuláři

Akce Nastavit Vlastnost

Page 160: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 7: Makra 160

• Klepnutím do voliče řádku označíme první řádek. • Kombinací kláves Ctrl C zkopírujeme řádek do schránky. • Klepneme kamkoliv do druhého řádku a kombinací Ctrl V vložíme obsah schránky. • Upravíme podmínku, argument akce Hodnota a komentář.

− Další dvojice operací budou analogické pro nezobrazení či zobrazení NACE3, NACE4, NACE5, NACE6. Zkopírujeme pod sebe čtyřikrát dvojici prvních dvou řádků a upravíme je dle obr. 7-4.

− Makro uložíme pod názvem P74a Makro ve formuláři a zavřeme jeho návrh. Makro chceme spustit:

− při otevírání formuláře, − při přechodu na jinou větu.

Spuštění makra v průběhu práce s formulářem zajišťují tzv. událostní vlastnosti. S vlastnostmi Při poklepnutí a Při klepnutí už jsme se setkali v kap. 7.3. Událostní vlastnosti se vztahují k jednotlivým objektům (např. můžeme makro spustit při změně hodnoty zadávané v některém poli) nebo k celému formuláři. Zobrazíme vlastnosti formuláře. Klepneme do záložky Událostní.

Základní událostní vlastností formuláře je vlastnost Při události Current. Zde zadaná událost se provede, když otevřeme formulář nebo přejdeme na novou větu. Událostí může být makro nebo modul178. V našem případě chceme připojit jako událost makro. Klepneme do rozbalovacího tlačítka na konci řádku vlastnosti Při události Current a ze seznamu vybereme makro P74a Makro ve formuláři. Ve formulářovém zobrazení nebo zobrazení rozložení zkontrolujeme fungování makra. Pro NACE se nabízí možnost doplnit vždy jen jednu NACE tak, abychom nevynechali např. prázdnou NACE3 a nezadali NACE4.

Access nyní zobrazuje pouze jedno volné pole NACE. Když je však vyplníme, další volné pole se zobrazí až při přechodu na další větu a po přechodu zpět na původní větu. V druhé větě přidáme NACE4 o hodnotě 99999. V rámci stejné věty se nezobrazí NACE5. V návrhu formuláře vyplníme pro pole NACE2, NACE3, …, NACE6 vlastnost Při ztrátě fokusu výběrem makra P74a Makro ve formuláři. Vždy, když opustíme pole NACE2 a další přesunem kurzoru do jiného pole (klávesou Enter, Tab či myší), spustí se makro. Nyní již při přidání dalšího NACE se i v rámci stejné věty zobrazí pole pro další NACE. Obdobně se potlačí zobrazení prázdného NACE při smazání obsahu předchozího NACE.

Do formuláře pro editaci dat o zaměstnanci doplníme popisek, který bude textově vyjadřovat výši úvazku zaměstnance: − Formulář P52a Personal – Identifikace zkopírujeme pod názvem P74b Personal –

Identifikace. − Do formuláře doplníme kopií popisku Úvazek nový popisek, do nějž vložíme text Rozsah.

Popisek umístíme napravo od svázaného ovládacího prvku Úvazek. − Do jiné vlastnosti Název nového popisku zadáme hodnotu Rozsah_úvazku. − Pro vlastnost formuláře Při události Current vytvoříme vnořené makro klepnutím do tlačítka

Tvůrce a výběrem Tvůrce maker. − V novém makru zobrazíme sloupec Podmínka. − Do makra doplníme operace dle obr. 7-5.

OBR. 7-5: VNOŘENÉ MAKRO VE FORMULÁŘI

− Popisek Rozsah_úvazku je pro všechny úvazky vyplněn hodnotou jiný černě. − Pro poloviční a plné úvazky je potom změněn text (poloviční či plný) a barva (pro poloviční

úvazek červená, pro plný úvazek modrá barva).

178 Výklad modulů je zařazen do kap. 8.

P74a Podniky – Identifikace

Událostní vlastnosti

Vlastnost Při události Current

Vlastnost Při ztrátě fokusu

P74b Personal – Identifikace

Page 161: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 7: Makra 161

7.5 Makro v sestavě

Makro můžeme spouštět i v sestavě. Můžeme tak při tisku modifikovat vlastnosti některých objektů (nejčastěji barvu popředí) vybrané sekce (nejčastěji těla sestavy).

Vrátíme se k sestavě P66 Telefonní seznam, kterou zkopírujeme do sestavy P75a Makro v těle sestavy. Připravíme makro, které vypíše příjmení mužů modře, příjmení žen červeně: − Otevřeme sestavu P75a Makro v těle sestavy v návrhovém zobrazení a přidáme nové pole

Pohlaví, které využijeme v podmínce, avšak nechceme je zobrazovat v sestavě: • Ze seznamu polí všech tabulek přesuneme z tabulky Personal pole Pohlaví do tabulkového

rozložení v těle. • Pole Pohlaví přesuneme na konec, snížíme jeho výšku a výšku celého těla sestavy. • Zúžíme šířku pole Pohlaví na 1 cm a v jeho formátové vlastnosti Zobrazit zadáme hodnotu

ne. Minimalizujeme šířku sestavy. • Také pro popisek Pohlaví v záhlaví stránky zadáme do formátové vlastnosti Zobrazit

hodnotu ne. • V kartě VZHLED STRÁNKY klepneme ve skupině Rozložení stránkyy do tlačítka Vzhled

stránky a upravíme hodnotu pravého okraje na 10 mm. Rozložení stránk

− Do událostní vlastnosti Při formátování těla sestavy vložíme pomocí tvůrce maker vnořené makro dle obr. 7-6. Druhý řádek makra zkopírujeme z prvního řádku a upravíme podmínku a barvu.

OBR. 7-6: MAKRO VNOŘENÉ V SESTAVĚ P75A MAKRO V TĚLE SESTAVY

− Makro se projevuje pouze v náhledu, nikoliv v zobrazení sestavy či zobrazení rozložení.

Příjmení mužů se v náhledu vypisují modře, příjmení žen se vypisují červeně. − V návrhu sestavy ještě změníme formátovou vlastnost sestavy Výchozí zobrazení na hodnotu

Náhled tisku, aby se makro projevovalo i při poklepání na název sestavy v navigačním podokně.

Makro spouštěné při formátování můžeme aplikovat i v jiné sekci sestavy, např. v záhlaví skupiny.

Vrátíme se k sestavě P68 Podíly, kterou zkopírujeme do sestavy P75b Makro v záhlaví skupiny. Připravíme makro, které vypíše názvy sekcí NACE červeně v případě, že odběratele ze sekce tvoří více než 10 % celkových tržeb firmy: − Otevřeme sestavu P75b Makro v záhlaví skupiny v návrhovém zobrazení. − V sekci Zápatí Sekce_s upravíme jinou vlastnost Název součtu v posledním sloupci na

hodnotu Součet_sekce. − Do událostní vlastnosti Při formátování sekce Záhlaví Sekce_s vložíme pomocí tvůrce maker

vnořené makro dle obr. 7-7. Druhý řádek makra zkopírujeme z prvního řádku a upravíme podmínku a barvu. Druhý řádek je nutný, aby se po prvním splnění podmínky nevypisovaly červeně názvy všech sekcí.

OBR. 7-7: MAKRO VNOŘENÉ V SESTAVĚ P75B MAKRO V ZÁHLAVÍ SKUPINY

− V sekci Záhlaví_Sekce se odkazujeme v podmínce makra spouštěného při formátování na

hodnotu ovládacího prvku z jiné sekce Zápatí Sekce_s. − Názvy významných sekcí s tržbami zastoupenými více než 10 % vypisujeme červeně. − V návrhu sestavy ještě změníme formátovou vlastnost sestavy Výchozí zobrazení na hodnotu

Náhled tisku, aby se makro projevovalo i při poklepání na název sestavy v navigačním podokně.

Makro v sestavě

P75a Makro v těle sestavy

P75b Makro v záhlaví skupiny

Page 162: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 7: Makra 162

7.6 Skupina maker

I velmi stručné makro může uživateli usnadnit práci. Za účelem přehlednosti seznamu maker je někdy vhodné makra vnořovat do jiných objektů nebo seskupit několik vzájemně souvisejících maker do jednoho makra ve formě skupiny maker.

Skupinu maker vytvoříme pro otevírání formulářů a sestav z kap. 5 a 6: − Otevřeme nové makro klepnutím do tlačítka Makro ve skupině Jinéé v kartě VYTVOŘIT. Jin− Zobrazíme sloupec s názvy maker klepnutím do tlačítka Názvy maker ve skupině Zobrazit či

skrýt v kartě NÁVRH. Zobrazit či

skrýt− Vytvoříme makro dle obr. 7-8. Práci si usnadňujeme tažením objektů z navigačního podokna

do makra. V našem případě jsou všechna dílčí makra jednořádková. − Makro uložíme pod názvem P76 Menu.

OBR. 7-8: MAKRO FORMULÁŘ P76 MENU

Makra budeme spouštět z jednoduchého formuláře, pro každé dílčí makro je v něm samostatné tlačítko (viz obr. 7-9):

OBR. 7-9: FORMULÁŘ P76 MENU

− Klepneme do tlačítka Prázdný formulář ve skupině Formulářee v kartě VYTVOŘIT. Formulář− V návrhovém zobrazení vložíme klepnutím do tlačítka Tlačítko ve skupině Ovládací prvkyy

v kartě NÁVRH první tlačítko dle Ovládací prvk

obr. 7-9. − Poklepáním na tlačítko upravíme formátovou vlastnost Titulek na hodnotu Personal – karta. − Označíme tlačítko. Zkopírujeme je kombinací kláves Ctrl C do schránky a vložíme do

formuláře kombinací Ctrl V. Vhodně upravíme polohu tlačítka. Opakovaným stisknutím kombinací kláves Ctrl V vložíme ještě dvakrát tlačítko. Umístí se na vhodné místo.

− Obdobně přichystáme druhý sloupec tlačítek a změníme titulky tlačítek. − V událostní vlastnosti Při klepnutí přiřadíme jednotlivým tlačítkům makro. V seznamu

maker jsou dílčí makra ve tvaru název_skupiny.název_dílčího_makra. − Zmenšíme výšku těla a šířku formuláře. Formulář uložíme pod názvem P76 Menu. − Pokud formulář P76 Menu otevřeme makrem s názvem Autoexec, formulář se automaticky

otevře po otevření databáze.

Shrnutí 1. Makro automaticky provádí zadané akce. Akce jsou upřesňovány argumenty. Provedení

akce může být podmíněno podmínkou. 2. Stručná makra můžeme pro přehlednost spojit do skupiny maker. 3. Akce vybíráme z nabídky akcí. Některé akce můžeme vkládat do makra tažením objektu

(formuláře, sestavy) z navigačního podokna. 4. Akce můžeme doplnit slovním komentářem. 5. Před spuštěním musíme makro uložit. 6. Ladění maker usnadňuje krokování postupu makra. 7. Makro lze spustit ze seznamu maker, z formuláře (např. automaticky při otevření formuláře

či přechodu na jinou větu) nebo sestavy (např. před tiskem každé věty). 8. Makra mohou měnit vlastnosti ovládacích prvků ve formulářích a v sestavách.

Skupina maker

P76 Menu

P76 Menu

Page 163: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 163

8. Moduly

8.1 Druhy modulů Pro řešení složitějších aplikací nabízí Access programovací jazyk Visual Basic for

Applications (VBA). VBA je strukturovaný programovací jazyk pro tvorbu aplikací v prostředí všech programů kancelářského balíku Microsoft Office. VBA je zjednodušenou verzí samostatného programovacího jazyka Visual Basic.

Text programu (kód) se ukládá v modulech. Moduly mohou být součástí formulářů či sestav (lokální moduly), mohou být uloženy také samostatně (globální moduly), aby byly využitelné ve více objektech (formulářích, sestavách, makrech, jiných modulech apod.).

Zápis kódů v modulech je členěn do procedur. Existují dva druhy procedur: − funkce (Function): Navrací výstupní hodnoty vypočítané na základě vstupních hodnot

(argumentů). − podprogramy (Sub): Provádí opakované činnosti na základě vstupních argumentů. Na rozdíl

od funkcí nemohou být použity ve výrazech, protože nevrací výstupní hodnotu. V kódu je volání podprogramu zastoupeno samostatným příkazem.

Kromě procedur obsahuje modul v úvodu deklarace. Deklarace obsahují nastavení platná pro modul a případně deklarace jednotlivých proměnných používaných v modulu. V proměnné je pod jejím názvem uložena hodnota, která se může měnit. Typ proměnné může být v modulu specifikován dvěma způsoby: − deklarací proměnné

V případě, že použijeme nedeklarovanou proměnnou, Access ohlásí chybu. Vyhneme se tak překlepům v názvech proměnných. Nutnost deklarovat proměnné zajistíme v úvodu modulu příkazem Option Explicit.

− prvním použitím proměnné Nemusíme deklarovat proměnné. V úvodu modulu neuvedeme příkaz Option Explicit.

VBA se používá pro: − Tvorbu uživatelských funkcí, které lze využívat ve všech objektech Accessu, tj. také

v dotazech, formulářích a sestavách. V našem případě připravíme funkce: • pro výpis celého jména z titulů, křestního jména a příjmení (viz kap. 8.2), • pro konverzi textu s diakritikou na text bez háčků a čárek (viz kap. 8.3), • pro kontrolu správnosti rodného čísla (viz kap. 8.4), • pro kontrolu správnosti čísla účtu (viz kap. 8.5).

− Lepší ošetření možných chybových stavů a přesnější definování chybových zpráv. − Programování složitějších postupů, které již nelze zapsat pomocí maker. V makrech není

možné nebo velmi těžkopádné zejména provádění opakovaných činností. − Práci s jednotlivými větami. VBA umožňuje procházet jednotlivé věty a zpracovávat je či

provádět operace s daty z různých vět. V našem případě vytvoříme podprogram: • pro výpočet odstupu jednotlivých služebních cest stejného zaměstnance (viz kap. 8.7).

− Vytváření uživatelsky přívětivých aplikací, kdy složitější postupy mohou být naprogramovány a realizovány klepnutím do tlačítka či jinou událostí, např. otevřením formuláře či sestavy. V našem případě vytvoříme globální podprogram: • pro formátování čísla účtu dle výsledku kontroly jeho správnosti ve formuláři i v sestavě

(viz kap. 8.8).

8.2 Funkce výpisu celého jména Připravme svou první proceduru. Access nabízí širokou nabídku vestavěných funkcí,

kterou můžeme doplnit vlastními funkcemi. Připravíme funkci, jejímiž vstupními argumenty jsou titul před jménem, křestní jméno, příjmení, titul za jménem. Funkce bude vracet celé jméno včetně titulů: − V kartě VYTVOŘIT ve skupině Jinéé klepneme do spodní části tlačítka Makro a vybereme

MODUL. Jin

− V novém okně se otevře samostatná aplikace Microsoft Visual Basic.

Visual Basic for Applications

Moduly

Procedury

Deklarace

Příklady použití VBA

Page 164: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 164

Aplikace VBA nevyužívá uživatelské rozhraní Microsoft Office Fluent. Editor Visual

Basicu se skládá z několika částí zobrazovaných v samostatných oknech179 (viz obr. 8-1):

OBR. 8-1: EDITOR VISUAL BASICU

− Prohlížeč projektu (Project): Ve stromové struktuře umožňuje vybrat lokální modul (např.

z formuláře) či globální modul, který bude zobrazen v okně kódu. Zpočátku je zde vybrán nový (dosud nenazvaný) modul, který jsme založili.

Prohlížeč projektu

− Okno vlastností (Properties): Jednotlivé objekty Visual Basicu mají své vlastnosti. Můžeme zde např. změnit název modulu. Okno vlastností

− Okno kódu (Code): Zde budeme vytvářet funkce a podprogramy. Okno kódu− Okamžité okno (Immediate): V okně můžeme zadat nebo vložit řádek kódu a odesláním

klávesou Enter jej spustit. Okamžité okno

− Okno místních položek (Locals): Zobrazí místní proměnné procedury a jejich vlastnosti, např. hodnoty polí zpracovávané věty či hodnoty uživatelsky vytvořených proměnných. Okno místních položek

− Okno kukátek (Watches): Umožňuje průběžně zkoumat hodnoty vybraných proměnných. Okno kukátekV úvodu okna kódu připravil Access příkaz Visual Basicu Option Compare, který

upřesňuje způsob porovnávání řetězců.180 V případě, že bychom chtěli vyžadovat deklarování proměnných před jejich použitím, dopsali bychom příkaz Option Explicit.181 Doplníme další text kódu: − Zadáme z menu VBA příkaz INSERT, PROCEDURE nebo klepneme do tlačítka Insert

Procedure (vybereme z nabídky tří tlačítek, která se nabízí při klepnutí do šipky napravo od druhého tlačítka panelu nástrojů).

− V dialogovém okně Add Procedure (viz Add Procedure

obr. 8-2) zadáme název funkce CeléJméno182, v poli Type vybereme Function, zbývající pole ponecháme beze změny.

179 Zobrazování oken lze zadat příkazy:

− VIEW, PROJECT EXPLORER (prohlížeč projektu), − VIEW, PROPERTIES WINDOW (okno vlastností), − VIEW, CODE (okno kódu), − VIEW, IMMEDIATE WINDOW (okamžité okno), − VIEW, LOCALS WINDOW (okno místních položek), − VIEW, WATCH WINDOW (okno kukátek).

180 Příkaz upřesňuje, kdy je jeden řetězec větší nebo roven jinému řetězci: − Option Compare Text: při porovnání nejsou rozlišována velká a malá písmena, − Option Compare Binary: při porovnání jsou rozlišována velká a malá písmena, − Option Compare Database: metoda porovnávání je nastavena aktuální databází.

181 Příkazem z menu editoru VBA Tools, Options můžeme v kartě Editor zaškrtnutím pole Require Variable Declaration zajistit, aby VBA při vytvoření nového modul vložil také příkaz Option Explicit.

182 V ukázkové databázi Encian již je funkce přichystána, proto ji nazveme PokusCeléJméno.

Page 165: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 165

OBR. 8-2: DIALOGOVÉ OKNO ADD PROCEDURE

− Do okna modulu se přidaly dva příkazy: • Public Function: Zahajuje definici funkce. Do závorek můžeme zadat argumenty funkce. • End Function: Ukončení funkce.

− Do závorek prvního příkazu doplníme argumenty Titul_před, Jméno, Příjmení a Titul_za oddělené čárkami. Ve funkci musíme přiřadit proměnné s názvem funkce hodnotu. Do volného řádku mezi zahajovacím a ukončovacím příkazem zapíšeme jediný příkaz, kterým sloučíme textové řetězce:

CeléJméno = Trim(Trim(Titul_před & " " & Jméno) & " " & Příjmení) & Titul_za − Přiřazení hodnoty jsme provedli příkazem, který proměnné přiřazuje hodnotu danou

výrazem. Funkce Trim zajišťuje, aby se mezera mezi titulem a jménem či jménem a příjmením nevypisovala, když jsou titul či jméno nevyplněné.

− Při psaní funkce Trim si všimneme, že se pod kurzorem objeví nápověda syntaxe funkce Trim(String). Před a za operátorem & musíme zapsat mezeru.

− Příkazy procedury začínáme mezerou, abychom naznačili strukturu procedury. (Všechny příkazy mezi Public Function a End Function jsou odraženy mezerou od kraje.)

− Za deklarační příkaz doplníme komentář 'Pro řetězce se použije porovnávání nastavené v databázi. Komentáře se od příkazu oddělují apostrofem. Komentáře mohou tvořit samostatný řádek, který dokumentuje proceduru. V kódu procedury můžeme zařadit pro přehlednost volné řádky.

− Visual Basic doplňuje do příkazů vhodně mezery, popř. odstraňuje zbytečné. Modře zvýrazňuje klíčová slova, zeleně zobrazuje komentáře.183 Pro přehlednost Visual Basic zobrazuje před začátkem procedury vodorovnou čáru184.

Uložíme vytvořený modul (či všechny moduly) příkazem FILE, SAVE ENCIAN nebo klávesami Ctrl S nebo klepnutím do tlačítka Save. Zobrazí se dialogové okno pro zadání názvu modulu s připraveným názvem Module1. Název přepíšeme na P81 Vlastní funkce.185 Při pozdějších úpravách se již nebude Access na název modulu ptát a bude přepisovat původní modul. Kombinací kláves levý Alt F11 se vrátíme do Accessu. Stejnou kombinací se později můžeme vrátit do okna Visual Basicu.

Moduly můžeme zaznamenat kdykoliv při jejich tvorbě příkazem z menu FILE, SAVE nebo kombinací kláves Ctrl S nebo klepnutím do tlačítka Save.186 Moduly na rozdíl od jiných objektů nemůžeme uložit pod jiným názvem. Můžeme je však přejmenovat stejným způsobem jako ostatní objekty.

183 Zadáme-li z menu příkaz TOOL, OPTIONS, můžeme v kartě Editor Format upravit řadu parametrů zobrazování

kódu procedur v modulech. 184 Příkazem z menu TOOLS, OPTIONS můžeme v kartě Editor zrušením zaškrtnutí pole Procedure Separator potlačit

zobrazování čar před začátky procedur. 185 Modul P81 Vlastní funkce je v ukázkové databázi Encian připraven. Připravujte proto svůj modul 81 Vlastní funkce.

Funkce se nesmí ve dvou modulech jmenovat stejně. Upravujte proto i názvy funkcí, např. PokusCeléJméno. Název funkce i procedury se nesmí shodovat s názvem modulu.

186 Aby se nově editovaná verze procedur promítla do práce Accessu, nemusíme moduly ukládat. Uložení je však nutné před ukončení práce s databází, neboť moduly se ukládají do souboru databáze.

Editace funkce

Přiřazovací příkaz

Uložení modulu

P81 Vlastní funkce

Page 166: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 166

Ověříme fungování připravené funkce:

− Připravíme jednoduchý dotaz vycházející z tabulky Personal. Vypíšeme příjmení, jméno a výraz:187

Celé jméno: CeléJméno(Titul1; Jméno; Příjmení; Titul2) Ve Visual Basicu jsme argumenty funkce oddělovali čárkou, v aplikaci funkce v dotazu, formuláři či sestavě se argumenty oddělují středníkem.

− Spuštěním dotazu ověříme fungování funkce. − Dotaz uložíme pod názvem P82 CeléJméno. − Obdobně lze funkci použít ve formulářích a sestavách.

8.3 Funkce konverze textu do textu bez háčků a čárek Dále připravíme funkci, která zbaví řetězec háčků a čárek a první písmeno povýší na

velké: − V navigačním podokně poklepeme na modul P81 Vlastní funkce.188 − Klepnutím do tlačítka Insert Procedure vložíme další funkci tentokrát s názvem

BezDiakritiky189. Názvy funkcí nesmí obsahovat mezery. Funkce má jediný argument Vstup. Výsledný tvar modulu je uveden v obr. 8-3.

OBR. 8-3: MODUL P81 VLASTNÍ FUNKCE

Option Compare Database 'Pro řetězce se použije porovnávání nastavené v databázi 'Výpis celého jména Public Function CeléJméno(Titul_před, Jméno, Příjmení, Titul_za) CeléJméno = Trim(Trim([Titul_před] & " " & [Jméno]) & " " & [Příjmení]) & [Titul_za] End Function 'Konverze textu do textu bez háčků a čárek Public Function BezDiakritiky(Vstup) Cesky = "áčďéěíĺľňóřšťúůýžäëöü" ASCII = "acdeeillnorstuuyzaeou" Vystup = Vstup For K = 1 To Len(Vystup) For J = 1 To Len(Cesky) If Mid(Vystup, K, 1) = Mid(Cesky, J, 1) Then P = Mid(ASCII, J, 1) If K = 1 Then P = UCase(P) Vystup = Left(Vystup, K - 1) & P & Right(Vystup, Len(Vystup) - K) End If Next Next BezDiakritiky = Vystup End Function

Nejprve si vyložme způsob odstranění háčků a čárek:

− Vstupní argument funkce je nazván Vstup. − V pomocné proměnné Cesky připravíme formou řetězce všechna písmena s háčky a čárkami. − V pomocné proměnné ASCII budou stejná písmena ve stejném pořadí bez háčků a čárek. − Do proměnné Vystup zkopírujeme hodnotu proměnné Vstup. − Po jednotlivých znacích procházíme proměnnou Vystup. Každý jednotlivý znak hledáme

v proměnné Cesky. Když se shoduje znak z proměnné Vystup se znakem v proměnné Cesky, nahradíme znak z proměnné Vystup znakem z proměnné ASCII ze stejné pozice, na níž jsme jej našli v proměnné Cesky.

187 Funkci ve výrazu můžeme připravit Tvůrcem výrazů. V levém dolní části okna poklepeme na řádek Funkce a

v rámci funkcí klepneme na řádek Encian. V prostřední části okna se zobrazí seznam modulů obsahujících funkce. Klepneme na název modulu P81 Vlastní funkce. V pravé části okna se zobrazí seznam funkcí modulu, tj. zatím pouze funkce CeléJméno. Poklepáním funkci vložíme do výrazu včetně seznamu argumentů.

188 Modul můžeme v rámci zobrazení kategorie Struktura publikace tažením přesunout ze skupiny Nepřiřazené objekty do skupiny 8 Moduly.

189 V ukázkové databázi Encian již je funkce přichystána, proto ji nazveme PokusBezDiakritiky.

P82 CeléJméno

Funkce CeléJméno

Funkce BezDiakritiky

Page 167: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 167

− Na závěr proměnnou Vystup uložíme do proměnné s názvem funkce, tj. BezDiakritiky. Před začátek procedury doplníme komentář s popisem funkce. Obdobně doplníme

komentář pro funkci CeléJméno. Písmeno ĺ se zapisuje jako l s čárkou, ľ se zapisuje jako písmeno l s háčkem.190 V proceduře jsou použity některé funkce Accessu:

− Len(proměnná): vrací délku textového řetězce. − Mid(proměnná;začátek;délka): vrací část řetězce od zadané pozice o zadaném počtu znaků. − Ucase(proměnná): vrací proměnnou po transformaci jejich písmen na velká. − Left(proměnná;délka): vrací levou část řetězce o zadaném počtu znaků. − Right(proměnná;délka): vrací pravou část řetězce o zadaném počtu znaků.

V proceduře jsou použity dva příkazy pro řízení běhu programu. Příkaz For je příkazem cyklu191, umožňuje opakovat skupinu příkazů. Cyklus For je

cyklus s čítačem. Začíná klíčovým slovem For a provádí pro stanovený počet opakování skupinu příkazů ukončených klíčovým slovem Next. Počet provedených opakování je zaznamenáván v čítači. Obecný zápis příkazu (syntaxe)192: For čítač = začátek To konec [Step krok] [příkazy] [Exit For] [příkazy] Next [čítač] Za klíčovým slovem Step můžeme uvést krok zvyšování čítače. Neuvedeme-li krok, bude roven jedné. Příkaz Exit For umožňuje předčasně ukončit cyklus, i když nebyla dosažena koncová hodnota čítače. Použití proměnné čítač v příkazu Next není povinné, pouze může zpřehlednit program, zejména v případě vnořených cyklů.

Podmíněný příkaz If umožňuje provést některý příkaz (popř. skupiny příkazů) jen při splnění (popř. nesplnění) podmínky. Syntaxe: − jednořádková verze193:

If podmínka Then [příkaz] [Else příkaz] − víceřádková verze:

If podmínka Then [příkazy] [ElseIf podmínka Then [elseifpříkazy]]… [Else [elsepříkazy]] End If

Část ElseIf se používá zřídka, umožňuje zadat alternativní příkazy. Ověříme fungování připravené funkce:

− Připravíme jednoduchý dotaz vycházející z tabulky Personal. Vypíšeme pole Příjmení, Jméno, E_mail a výraz:

E_mail2: BezDiakritiky([Příjmení]) & "." & BezDiakritiky([Jméno]) − Spuštěním dotazu ověříme fungování funkce. − Dotaz uložíme pod názvem P83 BezDiakritiky. − Funkcí jsme schopni automaticky vytvořit pole E_mail v tabulce Personal. − Funkci použijeme ve formuláři s lokálním procedurou výpočtu ve větě (viz kap. 8.6).

8.4 Funkce kontroly rodného čísla V databázi Důvěrné (DUV), kterou jsme vytvořili v kap. 3.2, doplníme do tabulky

Děti další pole Rc s rodným číslem (pole typu Číslo s velikostí pole dvojitá přesnost) a zapíšeme hodnoty:

190 Abychom nemuseli přepínat jazyk klávesnice, je vhodné užívat kombinace pravé klávesy Alt a dalších kláves pro

psaní některých znaků: 1/~, q/\, f/[, g/], :/$, x/#, c/&, v/@, b/{, n/}, </<, >/>, ?/*. 191 Příkaz cyklu obsahuje několik dílčích příkazů – řádků. 192 V syntaxi budeme klíčová slova zvýrazňovat tučným písmem, proměnné části kurzívou. Nepovinné části budou

uvedeny v hranatých závorkách. 193 Na jeden řádek můžeme napsat více příkazů oddělených dvojtečkou.

For – Next

If – Then – Else

P83 BezDiakritiky

DUV-08-01

Page 168: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 168

− Erika: 0358030156, − Lukáš: 9804180144.

Rodné číslo je správné, když je dělitelné 11194. Do modulu Vlastní funkce připravíme funkci KontrolaRc (viz obr. 8-4):

OBR. 8-4: FUNKCE KONTROLARC V DATABÁZI DUV

Option Compare Database 'Kontrola rodného čísla na dělitelnost 11 Public Function KontrolaRc(Rc) KontrolaRc = IIf(Rc = Int(Rc / 11) * 11, "ano", "ne") End Function

− Funkce má jediný vstupní argument Rc. − Funkce Int vypočte celou část z jedné jedenáctiny Rc. − Pokud je rodné číslo dělitelné jedenácti, potom je rovno celé části jeho jedenáctiny

vynásobené jedenácti. Ověříme fungování připravené funkce:

− Připravíme jednoduchý dotaz vycházející z tabulky Děti. Vypíšeme pole Jméno, Rc a výraz Kontrola: KontrolaRc([Rc])

− Spuštěním dotazu ověříme fungování funkce. Výsledkem je dynamická sada, můžeme proto vyzkoušet zadání špatného rodného čísla např. snížením hodnoty o 1.

− Dotaz uložíme pod názvem P84 KontrolaRc.

8.5 Funkce kontroly čísla účtu V databázi Encian chceme provést kontrolu čísel účtů odběratelů. Pravidla pro

kontrolu čísla bankovního účtu: − První a druhá část čísla účtu jsou zajištěny algoritmem modulo 11. Váhy jednotlivých číslic

účtu jsou (v případě kratšího čísla zprava): • pro první část čísla účtu (předčíslí účtu): 10, 5, 8, 4, 2, 1, • pro druhou část čísla účtu (číslo účtu): 6, 3, 7, 9, 10, 5, 8, 4, 2, 1.

− Kontrola platnosti první a druhé části čísla účtu se provede tak, že jednotlivé číslice se vynásobí příslušnou váhou, výsledky násobení se sečtou a podělí 11. Zbytek po dělení musí být roven 0.

− Příklad kontroly: • 27-4603660217/0100 • první část: 2*2+7*1=11, 11*1=11 • druhá část:

4*6+6*3+0*7+3*9+6*10+6*5+0*8+2*4+1*2+7*1= 24+18+27+60+30+8+2+7=176, 11*16 = 176

Všichni odběratelé mají účet bez předčíslí. Vytvoříme tedy kontrolu pro druhou část čísla účtu (viz obr. 8-5):

OBR. 8-5: FUNKCE KONTROLAUCTU V DATABÁZI ENCIAN

Public Function KontrolaUctu(Ucet) 'Výpočet váženého součtu číslic účtu a dělitelnosti jedenácti Soucet = 0 Soucet = Soucet + Val(Mid(Ucet, 10, 1)) * 1 Soucet = Soucet + Val(Mid(Ucet, 9, 1)) * 2 Soucet = Soucet + Val(Mid(Ucet, 8, 1)) * 4 Soucet = Soucet + Val(Mid(Ucet, 7, 1)) * 8 Soucet = Soucet + Val(Mid(Ucet, 6, 1)) * 5 Soucet = Soucet + Val(Mid(Ucet, 5, 1)) * 10 Soucet = Soucet + Val(Mid(Ucet, 4, 1)) * 9 Soucet = Soucet + Val(Mid(Ucet, 3, 1)) * 7

194 Platí pro rodná čísla přidělovaná po 1. 1. 1954. Dřívější rodná čísla nemají doplněnu poslední kontrolní číslici.

Funkce KontrolaRc

P84 KontrolaRc

Funkce KontrolaUctu

Page 169: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 169

Soucet = Soucet + Val(Mid(Ucet, 2, 1)) * 3 Soucet = Soucet + Val(Mid(Ucet, 1, 1)) * 6 KontrolaUctu = IIf(Soucet = Int(Soucet / 11) * 11, "ano", "ne") End Function

− Funkce má jediný vstupní argument Ucet. − Funkce Mid vybírá část textu. Funkce Val převede text na číslo. − Číslo účtu bude vždy deseticiferné bez předčíslí.

Ověříme fungování připravené funkce: − Připravíme jednoduchý dotaz vycházející z tabulky Podniky. Vypíšeme pole Název_podniku,

Bankovní_účet a výraz Kontrola: KontrolaUctu([Bankovní_účet])

− Spuštěním dotazu ověříme fungování funkce. Výsledkem je dynamická sada, můžeme proto vyzkoušet zadání špatného čísla účtu např. snížením hodnoty o 1.

− Dotaz uložíme pod názvem P85 KontrolaUctu. V databázi Banka bude kontrola komplikovanější. Pole Účet je někdy prázdné, někdy

v něm není uvedeno číslo účtu. Čísla účtu obsahují vždy pomlčku, v případě nepoužití předčíslí je místo něj před pomlčkou uvedena nula. V databázi Banka připravíme v modulu R85 Funkce několik funkcí (viz obr. 8-6).

OBR. 8-6: FUNKCE V DATABÁZI BANKA

Public Function KontrolaPole(Pole) 'Kontrola, zda se jedná o číslo účtu (zda je vyplněno a zda obsahuje pomlčku) KontrolaPole = "je účet" If InStr(Pole, "-") & "x" = "x" Or InStr(Pole, "-") = 0 Then KontrolaPole = "není účet" End If End Function Public Function KontrolaPredcisli(Pole) 'Kontrola předčísla čísla účtu, tj. části před pomlčkou If KontrolaPole(Pole) = "je účet" Then Predcisli = Left(Pole, InStr(Pole, "-") - 1) KontrolaPredcisli = KontrolaUctu(Predcisli) End If End Function Public Function KontrolaHlavnihoCisla(Pole) 'Kontrola hlavního čísla účtu, tj. části po pomlčce If KontrolaPole(Pole) = "je účet" Then HlavniCislo = Mid(Pole, InStr(Pole, "-") + 1, Len(Pole) - InStr(Pole, "-") - 5) KontrolaHlavnihoCisla = KontrolaUctu(HlavniCislo) End If End Function Public Function KontrolaUctu(Ucet) 'Výpočet váženého součtu číslic účtu a dělitelnosti jedenácti Soucet = 0 If Len(Ucet) >= 10 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 9, 1)) * 6 If Len(Ucet) >= 9 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 8, 1)) * 3 If Len(Ucet) >= 8 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 7, 1)) * 7 If Len(Ucet) >= 7 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 6, 1)) * 9 If Len(Ucet) >= 6 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 5, 1)) * 10 If Len(Ucet) >= 5 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 4, 1)) * 5 If Len(Ucet) >= 4 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 3, 1)) * 8 If Len(Ucet) >= 3 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 2, 1)) * 4 If Len(Ucet) >= 2 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 1, 1)) * 2 If Len(Ucet) >= 1 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet), 1)) * 1 KontrolaUctu = IIf(Soucet = Int(Soucet / 11) * 11, "ano", "ne") End Function

P85 KontrolaUctu

Funkce KontrolaPole

Funkce Kontrola Predcisli

Funkce Kontrola HlavnihoCisla

Funkce KontrolaUctu

Page 170: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 170

− V první funkci KontrolaPole kontrolujeme, zda vstupní hodnota je číslem účtu: • V případě, že pole je prázdné (výsledkem funkce InStr je prázdný řetězec195) nebo

neobsahuje pomlčku (výsledkem funkce InStr je nula), uložíme do výsledku funkce text není účet.

• Jinak ve výsledku funkce ponecháme prvotně vloženou hodnotu je účet. − V případě, že se jedná o číslo účtu, druhá funkce KontrolaPredcisli provede kontrolu části čísla před pomlčkou, tj. předčíslí pomocí racionalizované funkce KontrolaUctu. Výsledkem je: • prázdná hodnota (nejednalo se o číslo účtu) nebo • ano (správné předčíslí) nebo • ne (špatné předčíslí).

− V případě, že se jedná o číslo účtu, třetí funkce KontrolaHlavnihoCisla provede kontrolu části čísla po pomlčce, tj. hlavního čísla pomocí racionalizované funkce KontrolaUctu. Výsledkem je prázdná hodnota, ano nebo ne.

− Racionalizovaná funkce KontrolaUctu umí kontrolovat i čísla s menší délkou než 10 znaků. Podle délky čísla kontrolovaného účtu, jsou kontrolovány číslice s příslušnými vahami, např. při předčíslí 27 proběhne přičítání jen v posledních dvou podmíněných příkazech, tj. 2*2 + 7*1 = 4 + 7 = 11.

Ověříme fungování připravených funkcí: − Připravíme jednoduchý dotaz vycházející z tabulky Pohyby. Vypíšeme pole Účet a výrazy: • Kontrola pole: KontrolaPole([Účet]) • Kontrola předčíslí: KontrolaPredcisli([Účet]) • Kontrola hlavního čísla: KontrolaHlavnihoCisla([Účet])

− Spuštěním dotazu ověříme fungování funkce. Výsledkem je dynamická sada, můžeme proto vyzkoušet zadání špatného předčíslí či hlavního čísla účtu např. snížením hodnoty o 1.

− Dotaz uložíme pod názvem R85 KontrolaPole.

8.6 Lokální podprogram výpočtu ve větě Funkci BezDiakritiky budeme aplikovat na tabulku Personal. Pole E_mail je zde dáno

příjmením bez háčků a čárek odděleným tečkou od křestního jména bez háčků a čárek. Abychom odstranili případné překlepy v poli E_mail, vytvoříme obsah pole E_mail znovu aktualizačním dotazem (viz obr. 8-7). Dotaz bude čerpat z tabulky Personal, pomocí výrazu s využitím dříve připravené funkce sestavíme obsah pole E_mail.196

OBR. 8-7: DOTAZ P86 AKTUALIZACE E_MAIL

Chceme uživateli usnadnit vkládání nových zaměstnanců, při němž musí vložit pole E_mail, neboť je primárním klíčem. Do formuláře P52a Personal – Identifikace chceme vložit tlačítko, které v aktuální větě sestaví E_mail z polí Příjmení a Jméno. Nejprve vytvoříme kopii formuláře P52a Personal – Identifikace pod názvem P86 Personal – Identifikace197. Otevřeme návrh formuláře a připravíme nové tlačítko: − Zkontrolujeme, zda není aktivováno použití průvodce ovládacích prvků. V kartě NÁVRH ve

skupině Ovládací prvky nesmí být zatlačeno tlačítko Použít průvodce ovládacích prvků. Ovládací prvky− Ve skupině Ovládací prvky klepneme do tlačítka Tlačítko. Ovládací prvky

− Tlačítko umístíme do formuláře dle obr. 8-8.

195 Testování na rovnost řetězci Null nelze použít, proto formálně k výsledku funkce InStr přičteme textově x a

porovnáme s řetězcem x. 196 Aktualizaci pole, které je součástí referenční integrity, si můžeme dovolit jen díky aktivní vlastnosti Aktualizace

souvisejících polí v kaskádě relací Personal – Faktury a Personal – Výjezdy. 197 Klepnutím označíme název formuláře v navigačním podokně a stiskneme kombinaci kláves Ctrl C . Vložíme

formulář ze schránky kombinací kláves Ctrl V a přejmenujeme jej. Nově vzniklý formulář přesuneme v navigačním podokně do skupiny 8 Moduly.

R85 KontrolaPole

P86 Aktualizace E_mail

P86 Personal – Identifikace

Page 171: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 171

OBR. 8-8: TLAČÍTKO TVORBA VE FORMULÁŘI P86 PERSONAL – IDENTIFIKACE

− Vlastnosti Název a Titulek tlačítka změníme na Tvorba. − Tlačítko s textem by muselo být vyšší a širší, aby text byl dobře vidět. Raději zobrazíme na

tlačítku obrázek. Klepneme do tlačítka se třemi tečkami na konci řádku vlastnosti Obrázek. Zobrazí se dialogové okno Tvůrce obrázku (viz Tvůrce obrázku obr. 8-9).

OBR. 8-9: DIALOGOVÉ OKNO TVŮRCE OBRÁZKU

− V okně vybereme z řady dostupných obrázků Tvůrce. V levé části vidíme náhled vybraného

obrázku. Tlačítkem Procházet bychom mohli vybrat i námi připravený obrázek typu rastr (bmp) či ikony (ico). Klepnutím do tlačítka OK se obrázek přiřadí tlačítku.

Chceme, aby se při klepnutí na tlačítko provedl programový kód sestavující z polí Příjmení a Jméno pole E_mail: − V řádku událostní vlastnosti Při klepnutí tlačítka Tvorba klepneme do tlačítka se třemi

tečkami. − V dialogovém okně Vybrat tvůrce zvolíme Tvůrce kódu. Vybrat tvůrce− Otevře se editor Visual Basicu. V projektu (okno vlevo nahoře) přibyl modul ve skupině

Microsoft Access Class Objects s názvem podle názvu formuláře. − V modulu se založila nová procedura (přesněji podprogram) s názvem Tvorba_Click().

Název procedury obsahuje název objektu (Tvorba) a událost objektu, při níž se procedura provádí (při klepnutí – Click).198

− Mezi příkazy začátku a konce procedury dopíšeme jediný příkaz, kterým do pole E_mail vložíme spojení textových polí Příjmení a Jméno bez diakritiky oddělených tečkou (obr. 8-10).

OBR. 8-10: PROCEDURA TVORBA_CLICK

Option Compare Database 'Pro řetězce se použije porovnávání nastavené v databázi Private Sub Tvorba_Click() E_mail = BezDiakritiky(Příjmení) & "." & BezDiakritiky(Jméno) End Sub

− Všimněme si, že procedura nemá žádný vstupní argument.

Kombinací Alt F11 se vrátíme do Accessu a vyzkoušíme funkci tlačítka. Ve formulářovém zobrazení změníme křestní jméno prvního zaměstnance z Miloše na Františka a klepneme do tlačítka Tvorba. E-mail se upravil.

Chceme, aby se pole E_mail upravilo vždy, když upravíme pole Jméno nebo Příjmení a přejdeme na jiné pole (klávesou Enter, tabulátorem nebo klepnutím myši). Do událostní vlastnosti Při výstupu (Exit) polí Jméno i Příjmení vložíme kód shodný s předchozí procedurou (viz obr. 8-11).

198 Když změníme název tlačítka, nezmění se bohužel automaticky název procedury.

Tlačítko s obrázkem

Výpočet ve větě

Podprogram Tvorba_Click

Page 172: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 172

OBR. 8-11: PROCEDURY JMÉNO_EXIT A PŘÍJMENÍ_EXIT

Private Sub Jméno_Exit(Cancel As Integer) E_mail = BezDiakritiky(Příjmení) & "." & BezDiakritiky(Jméno) End Sub Private Sub Příjmení_Exit(Cancel As Integer) E_mail = BezDiakritiky(Příjmení) & "." & BezDiakritiky(Jméno) End Sub

Aby stejný kód nebyl obsažen ve třech procedurách, připravíme společný

podprogram: − Zůstaneme stále v modulu Form_P86 Personal – Identifikace. − Klepneme do tlačítka Insert Procedure a vytvoříme podprogram s názvem TvorbaEMail

s jediným příkazem dle předchozích procedur. − V předchozích procedurách potom upravíme jediný příkaz, který nahradíme voláním

společné procedury (viz obr. 8-12).

OBR. 8-12: ZAVEDENÍ SPOLEČNÉ PROCEDURY

Option Compare Database Private Sub Jméno_Exit(Cancel As Integer) TvorbaEMail End Sub Private Sub Příjmení_Exit(Cancel As Integer) TvorbaEMail End Sub Private Sub Tvorba_Click (Cancel As Integer) TvorbaEMail End Sub Public Sub TvorbaEMail() E_mail = BezDiakritiky(Příjmení) & "." & BezDiakritiky(Jméno) End Sub

Kombinací Alt F11 se vrátíme do Accessu a vyzkoušíme podprogramy. Ve

formulářovém zobrazení změníme křestní jméno prvního zaměstnance z Františka na Miloše a klávesou tabulátoru přejdeme na příjmení. E-mail se upravil.

Accessem vkládané událostní procedury jsou seřazeny dle abecedy. V okně kódu jsou zobrazeny všechny procedury. Klepnutím do tlačítka Procedure View v levém dolním rohu okna kódu můžeme zobrazit jen proceduru, v níž byl kurzor. Mezi procedurami se potom můžeme pohybovat klávesami Ctrl PageDown a Ctrl PageUp nebo výběrem objektu (názvu pole) v horní levé nabídce. Tlačítkem Full Module View zobrazíme opět celý modul se všemi procedurami.

Na příkladu jednoduchého podprogramu TvorbaEMail budeme demonstrovat nástroje pro ladění průběhu procedur: − Nejprve rozdělíme jediný příkaz podprogramu na dva dle obr. 8-13.

OBR. 8-13: LADÍCÍ OKNA VBA

Podprogram Jméno_Exit

Podprogram Příjmení_Exit

Page 173: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 173

− Změnu proměnné E chceme sledovat v kukátku: • V kódu procedury označíme název proměnné E. • Zadáme příkaz DEBUG, ADD WATCH. • V spodní části dialogového okna Add Watch vybereme Break When Value Changes

(zastavit běh aplikace, když se hodnota proměnné změní – viz Add Watch

obr. 8-14).

OBR. 8-14: DIALOGOVÉ OKNO ADD WATCH

− Obdobně přidáme do kukátek proměnnou E_mail, pro níž ponecháme ve spodní části

dialogového okna Add Watch vybránu možnost Watch Expression. Add WatchPo změně jména či příjmení se spustí podprogram TvorbaEMail. Podprogram se

zastaví po provedení prvního řádku, tj. naplnění proměnné E199 (viz obr. 8-13): − Další řádek je vyznačen žlutým pozadím a žlutou šipkou na začátku řádku. − V okně Watches je seznam proměnných a jejich hodnot, např. v Watches obr. 8-13 je stav, kdy

měníme hodnotu pole E_mail v první větě z Adamec.Milos na Adamec.Frantisek. − Všechny lokální proměnné jsou vypsány v okně Locals včetně vlastností objektů formuláře

(objekt Me lze klepnutím do tlačítka na začátku jeho řádku rozbalit). Locals

− V okně Immediate bychom mohli napsat přímý příkaz VBA, který by se realizoval, např. bychom mohli do proměnné E uložit hodnotu Adamec.Ales a ručně tak nastavit hodnotu ukládanou do pole E_mail.

Immediate

− Další pokračování běhu aplikace VBA spustíme příkazem RUN, CONTINUE nebo klepnutím do tlačítka Continue nebo stisknutím klávesy F5. Po skončení běhu aplikace zobrazíme okno Aplikace Access kombinací kláves Alt F11.

− Okamžité ukončení běhu aplikace VBA můžeme kdykoliv provést příkazem RUN, RESET nebo klepnutím do tlačítka Reset (Nulování).

− V okně Watches klepneme pravým tlačítkem myši na proměnnou E a volbou DELETE WATCH ji odstraníme z okna.

Watches

8.7 Lokální podprogram výpočtu mezi větami Chceme nyní provést kontrolu vykazování služebních cest. Prověříme, zda se

u jednotlivých zaměstnanců nepřekrývaly vykázané služební cesty, tj. když seřadíme služební cesty podle pracovníků a podle zahájení, služební cesta nesmí začínat dříve, než skončila předchozí cesta stejného pracovníka.

Vytvářecím dotazem nejprve připravíme pomocnou tabulku, v níž budou služební cesty seřazeny podle zaměstnanců a podle doby zahájení a v níž bude doplněno nové pole Odstup zatím vyplněné nulami.

Vytvářecí dotaz (viz obr. 8-15) bude vycházet z tabulky Cesty, z níž převezme všechna pole, a z tabulky Výjezdy, z níž převezme e-mail zaměstnance. Navíc doplní pole Odstup. Dotaz vytvoří tabulku Kontrola_cest.

OBR. 8-15: DOTAZ P87 KONTROLA CEST

199 Zastavení nastane jen po změně proměnné, nikoliv naplnění pole věty, proto jsme hodnotu vkládali nejprve do

proměnné E.

P87 Kontrola cest

Kontrola_cest

Cesty Výjezdy (30 vět)

Page 174: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 174

Data z tabulky Kontrola_cest zobrazíme ve formuláři. Věta tabulky není složitá, vejde se na jeden řádek: − Spustíme dotaz P87 Kontrola cest, který vytvoří tabulku Kontrola_cest. − V navigačním podokně označíme tabulku Kontrola_cest. − V kartě VYTVOŘIT ve skupině Formulářee klepneme do tlačítka Více položek. Formulář− Snížíme výšku řádku věty a zúžíme dle obsahu šířku jednotlivých sloupců. − Formulář uložíme pod názvem P87 Kontrola cest. − Do zápatí formuláře umístíme příkazové tlačítko s názvem i titulkem Kontrola1 (na konci

názvu tlačítka je číslice 1) – viz obr. 8-16.

OBR. 8-16: FORMULÁŘ P87 KONTROLA CEST

Vlastnosti Při klepnutí tlačítka Kontrola1 přiřadíme programový kód. V proceduře budeme postupně procházet věty tabulky Kontrola_cest a do pole Odstup budeme počítat rozdíl hodnoty pole Zahájení a hodnoty pole Dokončení zapamatované z předchozí věty (v proměnné Konec_predchozi, viz obr. 8-17).

OBR. 8-17: PROCEDURA KONTROLA1_CLICK

Option Compare Database Private Sub Kontrola1_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") Konec_predchozi = 0 Do Until Kontrola.EOF Kontrola.Edit Kontrola!Odstup = Kontrola!Zahájení - Konec_predchozi Konec_predchozi = Kontrola!Dokončení Kontrola.Update Kontrola.MoveNext Loop MsgBox "Hotovo!" End Sub

Access obsahuje řadu objektů. Objektem je např. formulář, který obsahuje objekty

ovládacích prvků.200 Některé objekty mají svou vizuální reprezentaci (např. formulář), jiné jsou přístupné jen v kódu Visual Basicu. Objekty mají vlastnosti, které popisují objekt, např. formulář má vlastnost Výchozí zobrazení, v níž můžeme zadat Nekonečné formuláře. Metody jsou akce, které můžeme zadat objektu k provedení.

Poznali jsme již funkce, jejichž výsledkem byla hodnota (celé jméno či vstup bez háčků a čárek). Kromě těchto obvyklých funkcí existují objektové funkce, jejichž výsledkem je

200 Mnoho objektů má kolekce, které definují nastavení několika objektů v daném objektu, např. objekt formuláře má

kolekci Controls, která nastavuje všechny objekty definované ve formuláři.

P87 Kontrola cest

Podprogram Kontrola1 _Click

Objekty, metody, vlastnosti

Page 175: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 175

objekt. Objekt můžeme také přiřadit proměnné, musíme tak však učinit příkazem Set. Přiřazením objektu proměnné můžeme zpřehlednit programový kód.

Objektová funkce CurrentDb vrací objektovou proměnnou typu Database, která představuje aktuálně otevřenou databázi v okně programu Microsoft Access. Když zapíšeme název funkce do kódu a tečku, Access nám nabízí vlastnosti (např. Name) a metody (např. OpenRecordset), které přísluší k objektu. Vlastnosti a metody jsou odlišeny ikonkami201. Vybereme (vyhledáním v seznamu a poklepáním myší či stisknutím klávesy Tab) metodu OpenRecordset, která vytvoří nový objekt Recordset – sadu záznamů z tabulky Kontrola_cest do proměnné Kontrola.202

Nyní se můžeme na objekt datové sady odkazovat názvem Kontrola. S objektem provádíme akce – metody (Edit, Update, MoveNext) a využíváme jeho vlastnosti (EOF).

Před zpracováním jednotlivých vět datové sady (tabulky) Kontrola_cest uložíme do pomocné proměnné Konec_predchozi hodnotu 0, kterou využijeme při zpracování první věty datové sady. Proměnná bude vždy obsahovat konec předchozí služební cesty, abychom jej mohli porovnávat se začátkem následující cesty. Zpočátku bude proměnná vynulována, teprve po zpracování první věty jí přiřadíme dokončení první cesty.

Ve funkci BezDiakritiky jsme se seznámili s cyklem For – Next s počítadlem. Zde použijeme příkaz cyklu Do – Loop. Provádí příkazy, které jsou zapsány mezi řádky Do a Loop, dokud není splněna podmínka zapsaná v řádku Do nebo v řádku Loop. Syntaxe:203 − verze s podmínkou na začátku:

Do [{While|Until}podmínka] [příkazy] [Exit Do] [příkazy] Loop

− verze s podmínkou na konci: Do [příkazy] [Exit Do] [příkazy] Loop [{While|Until}podmínka]

Operace provedené pro větu z datové sady: − Metoda Edit zkopíruje aktuální záznam z aktualizovatelného objektu Recordset do

vyrovnávací paměti pro další úpravu. Tuto metodu je nutné provést vždy před programovou aktualizací jednotlivé věty datové sady.

− Do pole Odstup spočteme rozdíl zahájení cesty a dokončení předchozí cesty (v proměnné Konec_predchozi). Při zpracování první věty výsledkem bude sériové číslo data zahájení cesty (pořadí od roku 1900), neboť v proměnné Konec_predchozi byla uložena nula.

− Pro zpracování další věty si do proměnné Konec_predchozi zapamatujeme dokončení zpracovávané služební cesty.

− Metoda Update uloží obsah vyrovnávací paměti do aktualizovatelného objektu Recordset a ukončí tak aktualizaci věty datové sady.

− Metoda MoveNext posune ukazovátko zpracování na další větu datové sady. − Řádek Loop vrátí program na předchozí řádek Do. Vlastnost datové sady EOF (end of file)

má hodnotu False (nepravda), dokud jsme nevyčerpali všechny věty datové sady. Až je ukazovátko datové sady za poslední větou, vrací funkce EOF hodnotu True (pravda) a program pokračuje příkazy za řádkem Loop.204

Po zpracování všech vět zobrazíme hlášení Hotovo! v okně s titulkem Microsoft Access.205

201 Access pomáhá i s laděním programů. Po odeslání špatně zapsaného příkazu je takový příkaz zobrazen červeně.

Další chyby můžeme odhalit příkazem DEBUG, COMPILE ENCIAN. Zbývající formální chyby jsou odhaleny až při provozu modulu. Access při chybě automaticky zobrazí modul a zvýrazní řádek, v němž došlo k chybě.

202 Tento objekt připojí do kolekce Recordsets. 203 Závorky {} značí, že vybíráme některou z položek uvedených v seznamu a oddělených od sebe znakem |. 204 Podobně existuje vlastnost BOF (bottom of file), která má hodnotu False, pokud není ukazovátko před první větou. 205 Příkaz MsgBox je analogií akce OknoSeZprávou v makrech.

Objektová funkce CurrentDb

Do – Loop

Page 176: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 176

Po zapsání programového kódu se vrátíme do Accessu, kde po vytvoření tabulky

Kontrola_cest zobrazíme formulář a klepnutím do tlačítka Kontrola1 otestujeme náš programový kód. Po skončení připravené procedury se objeví hlášení Hotovo!, pole Odstup však je pro všechna pole formuláře nulové. Jakmile klepneme do jednotlivých hodnot pole Odstup, aktualizují se. Program funguje, pouze se neaktualizovalo zobrazení ve formuláři.

Ve formuláři připravíme napravo od prvního tlačítka nové tlačítko s názvem a titulkem Kontrola2, kterému přiřadíme zdokonalenou proceduru. K němu připojíme při klepnutí programový kód dle obr. 8-18. Programový kód je v mnohém podobný předchozímu kódu, proto jej v editoru VBA zkopírujeme pomocí schránky z procedury Kontrola1_Click() do procedury Kontrola2_Click().

OBR. 8-18: PROCEDURA KONTROLA2_CLICK206

Private Sub Kontrola2_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") Konec_predchozi = 0 With Kontrola Do Until .EOF .Edit !Odstup = !Zahájení - Konec_predchozi Konec_predchozi = !Dokončení .Update .MoveNext Loop End With Repaint MsgBox "Hotovo!" End Sub

V proceduře jsme použili příkaz With, kterým můžeme zjednodušit odkazy na složité objekty. Syntaxe: With odkaz na objekt [příkazy procedury] End With Díky příkazu With nemusíme opakovaně specifikovat objekt Kontrola, pouze tečkou (při oddělování vlastností a metod) a vykřičníkem (při oddělování dílčích objektů) signalizujeme návaznost na objekt. Názvy proměnných (Konec_predchozi) zůstávají nedotknuty.

Na závěr procedury jsme doplnili spuštění metody Repaint objektu formuláře. Objekt formuláře bychom mohli zapsat Forms![P87 Kontrola cest]207, pro aktuálně otevřený objekt můžeme použít zjednodušeného tvaru Me nebo použít neupřesněný název metody. Metoda Repaint překreslí formulář a zobrazí v něm tak aktuální hodnoty tabulky Kontrola_cest.

V první větě zatím uvádíme nesmyslné sériové číslo data zahájení první služební cesty. V prvních větách každého zaměstnance je nesmyslné (většinou záporné) číslo dané rozdílem zahájení první cesty zaměstnance a dokončení poslední cesty předchozího zaměstnance. Tyto nepřesnosti nyní opravíme. Do nevyhodnotitelných polí Odstup v první větě každého zaměstnance vložíme prázdnou hodnotu (obr. 8-19). Procedura bude spouštěna klepnutím do nového tlačítka.

Poznámky k proceduře: − Před cyklem zpracování vět datové sady připravíme zpracování první věty. Do proměnné

E_mail_predchozi zapíšeme hodnotu žádný tak, aby byla první věta vyhodnocena jako věta zaměstnance různého od předchozí věty, tj. aby pro ni nebyla vypsána hodnota pole Odstup.

− V cyklu jednotlivých vět potom diferencujeme mezi dvěma případy: − Jestliže dále zpracováváme stejného zaměstnance (E_mail zůstává stejný), vypočteme pro

něj pole Odstup. − Jestliže jsme přešli na dalšího zaměstnance, vložíme do pole Odstup prázdnou hodnotu a

zapamatujeme si E_mail zaměstnance (E_mail_predchozi).

206 Příkazy shodné s předchozí procedurou jsou vypisovány kurzívou. 207 Hranaté závorky jsou nutné v případě, že se název objektu skládá z více slov.

Podprogram Kontrola2 _Click

With

Překreslení formuláře

Page 177: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 177

OBR. 8-19: PROCEDURA KONTROLA3_CLICK

Private Sub Kontrola3_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") With Kontrola E_mail_predchozi = "žádný" Do Until .EOF .Edit If !E_mail = E_mail_predchozi Then !Odstup = !Zahájení - Konec_predchozi Else !Odstup = Null E_mail_predchozi = !E_mail End If Konec_predchozi = !Dokončení .Update .MoveNext Loop End With Repaint MsgBox "Hotovo!" End Sub

Do formuláře přidáme ještě jedno tlačítko s názvem a titulkem Kontrola4. Proceduru doplníme o vypisování mezivýsledků formou dialogového okna se zprávou (viz horní část obr. 8-22).

OBR. 8-20: PROCEDURA KONTROLA4_CLICK

Private Sub Kontrola4_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") With Kontrola K = 1 E_mail_predchozi = "žádný" Konec_predchozi = "žádný" Do Until .EOF .Edit T = K & ". věta" & Chr(13) T = T & "E-mail předchozí: " & E_mail_predchozi & Chr(13) T = T & "Konec předchozí: " & Konec_predchozi & Chr(13) T = T & "E-mail aktuální: " & !E_mail & Chr(13) T = T & "Začátek aktuální: " & !Zahájení & Chr(13) If !E_mail = E_mail_predchozi Then !Odstup = !Zahájení - Konec_predchozi Else !Odstup = Null E_mail_predchozi = !E_mail End If Konec_predchozi = !Dokončení T = T & "Odstup začátku od konce: " & !Odstup MsgBox (T) .Update .MoveNext K = K + 1 Loop End With Repaint MsgBox "Hotovo!" End Sub

Podprogram Kontrola3 _Click

Podprogram Kontrola4 _Click

Page 178: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 178

Poznámky k proceduře:

− V počítadle K počítáme pořadí věty, abychom ho mohli zobrazit v dialogovém okně mezivýsledků.

− Text zobrazený v dialogovém okně připravujeme do proměnné T. Funkce Chr(13) odřádkuje. − Po každé větě se zobrazuje dialogové okno mezivýsledků. Program pokračuje v provádění

příkazů po klepnutí do tlačítka OK. Proceduru můžeme předčasně ukončit stisknutím kombinace kláves Ctrl Break a

klepnutím do tlačítka End v dialogovém okně MMiiccrroossoofftt VViissuuaall BBaassiicc. V poslední verzi procedury provedeme následující změny:

− Jedno tlačítko Kontrola5a bude sloužit k provedení procedury bez vypisování mezivýsledků. Druhé tlačítko Kontrola5b provede proceduru s vypisováním mezivýsledků.

− Také vypisování mezivýsledků bude možné předčasně ukončit klepnutím do tlačítka, nikoliv jen kombinací kláves Ctrl Break.

OBR. 8-21: PROCEDURY KONTROLA5, KONTROLA5A_CLICK A KONTROLA5B_CLICK

Private Sub Kontrola5(Prepinac) Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") With Kontrola K = 1 E_mail_predchozi = "žádný" Konec_predchozi = "žádný" Do Until .EOF .Edit T = "E-mail předchozí: " & E_mail_predchozi & Chr(13) T = T & "Konec předchozí: " & Konec_predchozi & Chr(13) T = T & "E-mail aktuální: " & !E_mail & Chr(13) T = T & "Začátek aktuální: " & !Zahájení & Chr(13) If !E_mail = E_mail_predchozi Then !Odstup = !Zahájení - Konec_predchozi Else !Odstup = Null E_mail_predchozi =!E_mail End If Konec_predchozi = !Dokončení T = T & "Odstup začátku od konce: " & !Odstup & Chr(13) & Chr(13) T = T & "Chcete pokračovat ve vypisování mezivýsledků?" If Prepinac = "ano" Then V = MsgBox(T, vbYesNo, K & ". věta") If V = vbNo Then Prepinac = "ne" End If .Update .MoveNext K = K + 1 Loop End With Repaint MsgBox "Hotovo!" End Sub Private Sub Kontrola5a_Click() Kontrola5 ("ano") End Sub Private Sub Kontrola5b_Click() Kontrola5 ("ne") End Sub

Nejprve připravíme proceduru Kontrola5, která není událostní. Proceduru potom

budou využívat dvě událostní procedury pro dvě tlačítka Kontrola5a a Kontrola5b. Událostní

Podprogramy Kontrola5 Kontrola5a _Click Kontrola5b _Click

Page 179: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 179

procedury by mohly být řešeny samostatně, byly by však velmi podobné, proto je budeme diferencovat vstupním parametrem Prepinac.

Z formuláře se kombinací kláves Alt F11 přesuneme do editoru VBA, kde příkazem INSERT, PROCEDURE či klepnutím do tlačítka Insert Procedure založíme novou proceduru Kontrola5. Procedura může být soukromá (Private) na rozdíl od dříve připravovaných funkcí, které byly veřejné (Public).208

Do procedury Kontrola5 zkopírujeme kód z procedury Kontrola4_Click a upravíme jej dle obr. 8-21. Poznámky k proceduře: − Procedura bude spouštěna z procedury tlačítka Kontrola5a (se vstupní proměnnou Prepinac

o hodnotě ano, tj. uživatel chce zobrazit mezivýsledky) nebo z procedury tlačítka Kontrola5b (se vstupní proměnnou Prepinac o hodnotě ne, tj. uživatel nechce zobrazit mezivýsledky).

− Dialogové okno zobrazí mezivýsledky po jednotlivých větách jen, když Prepinac nabývá hodnoty ano. Příkaz MsgBox je nahrazen funkcí MsgBox. Funkce MsgBox také zobrazuje dialogové okno se zprávou, avšak okno může obsahovat více tlačítek. Počet, uspořádání a názvy tlačítek určuje druhý argument funkce. Jako argument můžeme zadat číslo nebo použít systémovou (předem definovanou) hodnotu Visual Basicu, např. vbYesNo. Nabývá-li druhý argument hodnotu vbYesNo (tj. 4)209, zobrazuje se dialogové okno s tlačítky Ano a Ne (viz obr. 8-22). Po klepnutí do tlačítka Ano funkce MsgBox vrací hodnotu 6 (tj. vbYes), po klepnutí do tlačítka Ne funkce vrací hodnotu 7 (tj. vbNo)210.

− Jestliže uživatel klepne v dialogovém okně se zprávou do tlačítka Ne, uložíme do proměnné Prepinac hodnotu ne, čímž předčasně ukončíme vypisování mezivýsledků. (Zde je aplikována jednořádková verze příkazu If – Then.)

− Třetí argument funkce MsgBox je zobrazen v titulku dialogového okna se zprávou. Do titulku zobrazujeme pořadí věty.

Do formuláře doplníme další dvě tlačítka s názvy a titulky Kontrola5a a Kontrola5b. Po klepnutí do tlačítka Kontrola5a se spustí procedura Kontrola5 s argumentem ano. Po klepnutí do tlačítka Kontrola5b se spustí procedura Kontrola5 s argumentem ne.

Závěrem uložíme formulář P87 Kontrola cest, čímž uložíme také lokální procedury.

8.8 Globální podprogram formátování čísla účtu Dosud byly podprogramy vytvářeny v rámci jednoho objektu. V obou případech

formuláře měly lokální platnost v rámci formuláře. Nyní vytvoříme globální podprogram pro více objektů. Podprogram vypíše číslo bankovního účtu tmavě zelenou barvou, je-li správné, červenou barvou, je-li špatné. Podprogram využijeme ve formuláři i v sestavě.

Nejprve připravíme barevné odlišení ve formuláři: − Zkopírujeme formulář P53 Podniky – Identifikace jako formulář P88 Formulář. − V kartě VYTVOŘIT ve skupině Jinéé klepneme do spodní části tlačítka Makro a vybereme

MODUL. Jin

208 U veřejných procedur se předpokládá jejich využití i v jiných modulech. 209 Při hodnotě 0 (vbOKOnly) by se zobrazilo pouze tlačítko OK. Při hodnotě 1 (vbOKCancel) by se zobrazila tlačítka OK a Storno. Při hodnotě 2 (vbAbortRetryIgnore) by se zobrazila tlačítka Přerušit, Opakovat, Přeskočit. Při hodnotě 3 (vbYesNoCancel) by se zobrazila tlačítka Ano, Ne, Storno. Při hodnotě 5 (vbRetryCancel) by se zobrazovala tlačítka Opakovat, Storno. Při přičtení hodnoty 16 (např. 16+4=20) by se zobrazil v dialogovém okně výstražný křížek. Při přičtení hodnoty 32 by se zobrazil v dialogovém okně otazník, což by pro náš případ (32+4=36) bylo vhodné. Při přičtení hodnoty 48 by se zobrazil v dialogovém okně výstražný vykřičník. Při přičtení hodnoty 64 by se zobrazil v dialogovém okně informační znak i. Při přičtení hodnoty 256 by bylo výchozím aktivním tlačítkem druhé tlačítko (Ne). Sečítané hodnoty lze zapisovat jako výraz, např. 32+4. 210 Případná ostatní tlačítka vrací hodnoty: vbOK (1, tlačítko OK), vbCancel (2, tlačítko Storno), vbAbort (3, tlačítko

Přeskočit), vbRetry (4, tlačítko Opakovat), vbIgnore (5, tlačítko Přeskočit).

Dialogové okno se zprávou

OBR. 8-22: MEZIVÝSLEDKY

P88 Formulář

Page 180: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 8: Moduly 180

− Vytvořený modul v okně Properties v poli Name přejmenujeme na P88 Modul. Properties− Do modulu zapíšeme kód dle obr. 8-23.

OBR. 8-23: PROCEDURA KONTROLA1_CLICK

Option Compare Database Public Sub Barvy(Objekt) Select Case KontrolaUctu(Objekt("Bankovní_účet")) Case "ano": Objekt("Bankovní_účet").ForeColor = 32768 'zelená Case "ne": Objekt("Bankovní_účet").ForeColor = vbRed End Select End Sub

Poznámky k proceduře:

− Do argumentu Objekt budeme dosazovat odkaz na objekt (formulář nebo sestava). − Na prvek formuláře se můžeme odkazovat: • Forms![P88 Formulář]("Bankovní_účet") • Forms![P88 Formulář](14), kde 14 je převzato z jiné vlastnosti Pořadové číslo prvku • Objekt("Bankovní_účet"), kde Objekt je předán jiným podprogramem.

− Prvku Bankovní_účet přiřazujeme barvu diferencovaně dle výsledku kontroly čísla účtu. K větvení použijeme příkaz Case se syntaxí: Select testovaný příkaz [Case seznam hodnot-n [příkazy-n]]… [Case Else příkazy]] End Select Barvu můžeme zadat konstantou Visual Basicu (např. vbGreen, vbBlue) nebo číslem.

− Na jeden řádek můžeme psát více příkazů oddělených dvojtečkou. Další postup:

− Vytvoříme nad tabulkou Podniky sestavu P88 Sestava, v níž ponecháme pouze sloupce IČ, Název_podniku, Bankovní_účet, Bankovní_kód.

− Globální podprogram spouštíme příkazem Barvy(Me) z událostí: • z formuláře P88 Formulář pro událostní vlastnost formuláře Při události Current, • z formuláře P88 Formulář pro událostní vlastnost Při ztrátě fokusu pole Bankovní_účet, • ze sestavy P88 Sestava pro událostní vlastnost těla Při formátování.

− V sestavě P88 Sestava upravíme formátovou vlastnost Výchozí zobrazení sestavy na hodnotu Náhled tisku (jen v náhledu se aplikují událostní procedury).

Shrnutí 1. Moduly obsahují procedury (funkce a podprogramy), které jsou vyšší formou automatizace

operací Accessu než makra. 2. Moduly mohou být globální nebo lokální. Seznam globálních modulů je uveden

v navigačním podokně. Funkce a procedury z globálních modulů můžeme použít kdekoliv v databázi. Lokální moduly jsou součástí jiných objektů (formulářů, sestav). Vztahují se k událostním vlastnostem formulářů (např. Při otevření) či sestav (např. Při formátování) nebo k jednotlivým ovládacím prvkům (např. Při klepnutí do tlačítka).

3. Funkce i procedury mohou obsahovat argumenty, kterými modifikujeme jejich fungování. Argumenty jsou v modulu odděleny čárkami, ve výrazech v jiných objektech (dotazech, formulářích, sestavách) jsou odděleny středníky.

4. Deklarace modulu obsahují nastavení modulu a případně deklarace proměnných. 5. Objekty mají vlastnosti, které popisují objekt. Metody jsou akce, které můžeme zadat

objektu k provedení. 6. V modulech lze používat řadu příkazů. Mezi základní patří přiřazovací příkaz =, objektový

příkaz Set, příkaz If – Then – Else, příkazy cyklu For – Next, Do – Loop, příkaz pro práci s objektem With, příkaz větvení Select Case.

P88 Modul

Podprogram Barvy

Select – Case

P88 Sestava

Page 181: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 181

9. Externí data

9.1 Možnosti exportu a importu Existují četné možnosti komunikace Accessu s jinými aplikacemi. Komunikace má

dva směry: − Data z jiné aplikace jsou využívána v Accessu (aplikace → Access).

Access umí pracovat s formáty některých aplikací (např. s formáty Excelu xlsx, xls nebo s formátem pst Outlooku), některé aplikace musí data uložit ve vhodném formátu, aby je Access mohl načíst (např. uložit je ve formátu txt či mdb).

− Data z Accessu jsou využívána v jiné aplikaci (Access → aplikace). Některé aplikace umí pracovat přímo s formátem Accessu accdb (např. Word nebo Publisher v hromadné korespondenci), pro jiné aplikace musí Access uložit data ve vhodném formátu (např. ve formátu rtf pro Word či ve formátu xlsx pro Excel).

V následující tabulce je seznam aplikací, pro něž bude dále demonstrována vzájemná komunikace:

kapitola typ aplikace aplikace aplikace → Access Access → aplikace textový procesor Word formát txt formát accdb, rtf 9.2 textové soubory formát txt, csv formát txt

Excel formát xlsx, xls formát xlsx, xls 9.3 tabulkový program Lotus formát wk1, wk3 formát wk1, wk3

9.4 prezentační program PowerPoint modul Access formát accdb dBase formát dbf formát dbf

9.5 databázový program

Paradox formát db formát db 9.6 tvorba diagramů Visio formát accdb

projekty Project formát mdb kontakty Outlook formát pst formát mdb shromažďování dat Outlook formát html poznámky OneNote schránka

9.7

publikace Publisher formát accdb 9.8 hypertextové odkazy

formát html, xml formát html, xml 9.9 web SharePoint seznam seznam

9.2 Word Word na rozdíl od Excelu či Accessu nemá data strukturována. Příprava dat pro

Access prostřednictvím aplikace Word vyžaduje proto vymezení, kde se data v dokumentu Wordu nalézají. Předání dat z Wordu do Accessu umožňují formuláře. Formuláře se využívají v případech: − Uživatel připravující data nemá na počítači nainstalován Access. − Uživatel připravující data neumí pracovat s Accessem. − Chceme shromažďovat data od jednotlivých uživatelů souběžně a nemáme možnost jejich

připojení k jedné databázi Accessu. Předpokládejme, že někteří noví zaměstnanci, kteří poskytují základní data o sobě,

neumí pracovat s Accessem, ovládají však Word. Připravíme tzv. formulář, do něhož nový zaměstnanec zapíše o sobě základní údaje (dané strukturou věty v tabulce Personal211).

Nejprve parametrizujeme Word 2007 pro přípravu formuláře: − Spustíme Word 2007. − Klepneme do tlačítka Office a v dolní části okna do tlačítka Možnosti aplikace Word. − V kartě Oblíbené v sekci NNeejjppoouužžíívvaanněějjššíí mmoožžnnoossttii pprroo pprrááccii ss aapplliikkaaccíí WWoorrdd zaškrtneme

pole Zobrazit na pásu kartu Vývojář, čímž zpřístupníme kartu potřebnou pro práci s formuláři.

211 S výjimkou polí Foto a Přílohy, které by nebylo možné vložit do formuláře Wordu.

Směry komunikace

Word → Access

Page 182: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 182

Do nového prázdného dokumentu připravíme formulář:

− V kartě ROZLOŽENÍ STRÁNKY ve skupině VVzzhhlleedd ssttrráánnkkyy klepneme do tlačítka Okraje a vybereme ÚZKÝ, abychom mohli v dokumentu využít širší tabulky.

− Zapíšeme nejprve nadpis Formulář základních údajů o zaměstnanci a v kartě DOMŮ ve skupině SSttyyllyy klepnutím do tlačítka Nadpis 1 změníme jeho styl na Nadpis 1.

− Po odeslání na konci řádku nadpisu přejde Word do stylu Normální. − Vložíme tabulku o 5 sloupcích a 2 řádcích: • V kartě VLOŽENÍ klepneme ve skupině TTaabbuullkkaa do tlačítka Tabulka. Tažením myší

vymezíme tabulku o rozměrech 5 x 2. • Do prvního řádku tabulky zapíšeme popisky dle obr. 9-1. Druhý řádek zatím nevyplníme.

− Za tabulkou vynecháme volný řádek. − Obdobně vložíme druhou tabulku o 7 sloupcích a 2 řádcích a příslušné popisky. − Upravíme poklepáním na hranice mezi sloupci Titul před jménem a Křestní jméno šířky

sloupců.

OBR. 9-1: FORMULÁŘ VE WORDU S ÚDAJI O ZAMĚSTNANCI

Do druhých řádků tabulek doplníme pole formuláře: − Umístíme kurzor do buňky první tabulky pod popisek E-mail. − V kartě VÝVOJÁŘ ve skupině OOvvllááddaaccíí pprrvvkkyy klepneme do tlačítka Nástroje starší verze212.

Dále budeme používat tlačítka ze sekce SSttaarrššíí ffoorrmmuulláářřee. Klepneme do tlačítka Textové pole. (Tlačítko je vzhledem i názvem totožné s tlačítkem v Accessu.) Umístili jsme tak do formuláře pole, z něhož budeme exportovat později vložená data. Délka pole 5 znaků není limitující pro vkládání dat.

− V kartě VÝVOJÁŘ ve skupině OOvvllááddaaccíí pprrvvkkyy klepneme do tlačítka Vlastnosti nebo poklepáme na vložené pole. Zobrazí se dialogové okno MMoožžnnoossttii tteexxttoovvééhhoo ppoollee ffoorrmmuulláářřee (viz obr. 9-2).

OBR. 9-2: DIALOGOVÉ OKNO MOŽNOSTI TEXTOVÉHO POLE FORMULÁŘE

212 Ve Wordu 2007 bohužel nelze exportovat do textového souboru data z formulářů využívající pole formulářů Wordu

2007.

Enc-09-02 .docx

Page 183: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 183

Význam jednotlivých polí v dialogovém okně:

− Typ (Obyčejný text, Číslo, Datum, Aktuální datum, Aktuální čas, Výpočet): Typem pole můžeme omezit vstup např. na číslice nebo datum. Při výběru Aktuální datum se do pole formuláře zapíše aktuální datum, čímž se snadno do věty zapíše datum její tvorby. Případné výpočty provedeme až v Accessu, proto typ výpočet nevyužijeme. Při vložení hodnot neodpovídajících zvolenému typu se uživateli zobrazí chybové hlášení.

− Maximální délka (neomezená, 1, 2,…): Můžeme omezit počet znaků, které uživatel formuláře bude moci maximálně do pole zapsat. Např. v našem případě víme, že e-mail je dlouhý maximálně 20 znaků.

− Výchozí text: Text, který je prvotně ve formuláři nabízen. (Pole nemusí být vyplněno.) − Formát textu. Formát nemusí být zadán. Liší se pro jednotlivé typy polí, např. pro textové

pole se nabízí Velká, Malá, První velké, Všechna první velká. E-mail se skládá z příjmení a jména bez háčků a čárek. Příjmení i jméno jsme psali s velkým počátečním písmenem. Vybereme proto pro E_mail volbu Všechna první velká. Word bude při vyplňování zvětšovat písmena na začátku vět. Za začátek věty považuje slovo po tečce, což našemu případu vyhovuje.

− Spustit makro: Při vyplňování formuláře při přesunu kurzoru na pole a při ukončení vyplňování pole odesláním můžeme požadovat provedení makra Wordu.

− Záložka: Pole formuláře můžeme pojmenovat, abychom se na něj mohli později odkazovat. Např. v případě dlouhého formuláře můžeme do formuláře zapsat na konci seznam hlavních zadávaných polí. K položkám seznamu můžeme přiřadit hypertextového odkazy (označením a klepnutím do tlačítka Hypertextový odkaz ve skupině OOddkkaazzyy v kartě VLOŽENÍ) na záložky. Uživatel se pak klepnutím do záložky snadno přemístí na vkládání příslušného pole.

− Přepočítat při výstupu: Zaškrtnutím přepočteme všechny případné výrazy ve formuláři po vložení či úpravě hodnoty v daném poli.

− Vyplnění povoleno: Zrušením zatržení můžeme zamezit uživateli vyplňovat pole. Tato vlastnost je nedostupná pro vypočtená pole a aktuální datum či čas.

Klepnutím do tlačítka Nápovědný text zobrazíme dialogové okno NNááppoovvěěddnnýý tteexxtt ppoollee ffoorrmmuulláářřee (viz obr. 9-3). Word nabízí dva druhy nápovědy: − text, který se bude zobrazovat ve stavovém (posledním) řádku při vyplňování pole (pro e-

mail zadáme E-mail zapisujeme zkrácený, např. Novak.Petr), − text, který se zobrazí při vyplňování pole po stisknutí klávesy F1 (pro e-mail dle obr. 9-3). Pro další pole nebudeme v ilustrativním formuláři nápovědu vyplňovat.

OBR. 9-3: DIALOGOVÉ OKNO NÁPOVĚDNÝ TEXT POLE FORMULÁŘE

Text nápovědy lze přebírat z autotextu. Lze pak k různým polím zadat společné nápovědy. Formulář je nutné připravit jako šablonu, která obsahuje příslušné autotexty213.

Obdobně vložíme pole: − Titul před jménem (Maximální délka: 10, Záložka: Titul1), − Křestní jméno (Maximální délka: 10, Formát textu: První velké, Záložka: Jméno),

213 Autotexty jsou ve Wordu 2007 jedním z tzv. stavebních bloků. Autotext lze do šablony vložit v kartě TEXT, ve

skupině TTeexxtt klepnutím do tlačítka Rychlé části a výběrem ULOŽIT DO GALERIE RYCHLÝCH ČÁSTÍ.

Vlastnosti textového pole

Nápověda ve formuláři

Page 184: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 184

− Příjmení (Maximální délka: 15, Formát textu: První velké, Záložka: Příjmení), − Titul za jménem (Maximální délka: 7, Záložka: Titul2),

Pro pohlaví lze zadat jen dvě možnosti (M – muž, Z – žena). Tentokrát klepneme v sekci SSttaarrššíí ffoorrmmuulláářřee do tlačítka Pole se seznamem a ve skupině OOvvllááddaaccíí pprrvvkkyy do tlačítka Vlastnosti. Zobrazíme okno MMoožžnnoossttii rroozzeevvíírraaccííhhoo ppoollee ffoorrmmuulláářřee (viz obr. 9-4).

OBR. 9-4: DIALOGOVÉ OKNO MOŽNOSTI ROZEVÍRACÍHO POLE FORMULÁŘE

V levé horní části zapisujeme položky seznamu a přidáváme je do seznamu tlačítkem Přidat. Při omylu je můžeme odstranit tlačítkem Odebrat nebo změnit jejich pořadí šipkami přesunu. Ostatní pole v dialogovém okně mají stejný význam jako pro textové pole formuláře. Doplníme hodnoty dle obr. 9-4.

Vložíme další pole: − Místnost (Typ: číslo, Maximální délka: 2, Záložka: Místnost), − Oddělení (Pole se seznamem, Rozevírací seznam: ANA, DIS, KON, PRG, RED, REK,

Záložka: Oddělení), − Charakteristika (Záložka: Charakteristika), − Úvazek (Typ: číslo, Formát čísla: 0,00, Záložka: Úvazek), − Web (Záložka: Web).

Oprávnění fakturovat nabývá hodnotu ano či ne. Pro jeho zadávání použijeme zaškrtávací políčko. Klepneme do tlačítka Zaškrtávací políčko formuláře a zobrazíme dialogové okno MMoožžnnoossttii zzaašškkrrttáávvaaccííhhoo ppoollííččkkaa ffoorrmmuulláářřee (viz obr. 9-5) např. poklepáním na zaškrtávací pole.

OBR. 9-5: DIALOGOVÉ OKNO MOŽNOSTI ZAŠKRTÁVACÍHO POLÍČKA

Rozevírací pole

Zaškrtávací políčko

Page 185: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 185

V dialogovém okně můžeme:

− upravit velikost políčka, − nastavit výchozí stav.

Aby uživatel nemohl formulář změnit, aktivujeme ochranu formuláře s výjimkou polí pro vkládání: − V kartě VÝVOJÁŘ ve skupině ZZáámmeekk klepneme do tlačítka Zamknout dokument a z nabídky

vybereme OMEZIT FORMÁTOVÁNÍ A ÚPRAVY. − V okně OOmmeezziitt ffoorrmmááttoovváánníí a úpravy zaškrtneme pole Povolit v dokumentu pouze tento typ

úprav a vybereme VYPLŇOVACÍ FORMULÁŘE. − Klepneme do tlačítka PPoouužžíítt zzáámmeekk. − V dialogovém okně PPoouužžíítt zzáámmeekk nevyplňujeme heslo a klepneme do tlačítka OK. − Připravený formulář uložíme pod názvem Enc-09-02.docx.

Chceme-li později ve formuláři provést úpravy, můžeme dokument odemknout: − V kartě VÝVOJÁŘ ve skupině ZZáámmeekk zadáme OMEZIT FORMÁTOVÁNÍ A ÚPRAVY. − V okně OOmmeezziitt ffoorrmmááttoovváánníí aa úúpprraavvyy klepneme do tlačítka Odemknout. − Práci s formulářem můžeme při dobré znalosti Wordu usnadnit tím, že formulář uložíme jako

šablonu. Ponecháme formulář zamknutý a uložený jako běžný dokument. Uložíme jej ještě

jednou pod názvem Enc-09-02a.docx. Předveďme si nyní vyplnění formuláře uživatelem (viz obr. 9-6):

OBR. 9-6: VYPLNĚNÝ FORMULÁŘ S ÚDAJI O PRVNÍM ZAMĚSTNANCI

− Ponecháme otevřený dokument Enc-09-02.docx. − Díky ochraně formuláře můžeme ve formuláři vyplňovat pouze hodnoty polí formuláře.

Vyplníme údaje o zaměstnanci Miloši Adamcovi. − Po vyplnění pole se přesuneme na další pole klávesou Tab (popř. nazpět kombinací

Shift Tab). Pokud omylem vložíme řádek klávesou Enter , opravíme chybu stisknutím klávesy BackSpace.

− E-mail vyplňujeme malými písmeny. Díky vlastnostem pole Word po přechodu na další pole automaticky transformuje počáteční písmena na velká. Obdobně vyplňujeme malými písmeny pole Křestní jméno a Příjmení.

− Není problém zapsat do polí formuláře obsah širší, než byla vystínovaná část pole. V případě Charakteristiky by se delší text zobrazoval na více řádcích, zvýšení políčka tabulky by bylo automatické. (Konce řádků nesmíme ukončovat klávesou Enter .214)

− Hodnotu v poli Oddělení musíme vybrat z pole se seznamem, není možné ji zapsat. − Do pole Úvazek vložíme hodnotu ve tvaru 1, Word ji transformuje podle formátu na tvar

1,00. − Do pole Web zapíšeme adresu včetně úvodních mřížek tak, aby v Accessu byla chápána jako

druhý argument hypertextového odkazu. (První argument je nepovinný, pouze se zobrazuje, není odkazem. V případě vyplnění až druhého argumenty se zobrazuje odkaz.)

− Pole Oprávnění můžeme z klávesnice zaškrtnout stisknutím mezerníku. − Stiskneme-li klávesu Tab na posledním poli formuláře, kurzor se vrátí do prvního pole

formuláře.

214 V budoucím exportu ukončení řádku klávesou Enter značí přechod na další větu, my však zapisujeme jedinou.

Zámek dokumentu

Enc-09-02a .docx

Page 186: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 186

Vyplněný formulář může uživatel vytisknout jako běžný dokument Wordu. Bude se

tisknout mřížka a popisky formuláře i obsah. Pokud tiskneme do předtištěného formuláře, omezíme tisk pouze na pole formuláře: − Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Word. − V kartě Upřesnit v sekci PPřřii ttiisskkuu ttoohhoottoo ddookkuummeennttuu zaškrtneme pole Tisknout pouze data

z formuláře.215 Obdobně jako při tisku lze uložit formulář jako dokument nebo pouze jeho data jako

textový soubor: − Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Word. − V kartě Upřesnit v sekci PPřřii ssddíílleenníí ttoohhoottoo ddookkuummeennttuu zzaacchhoovvaatt vvěěrrnnoosstt zaškrtneme pole

Ukládat data formulářů jako textový soubor s oddělovači. − Při uložení souboru potvrdíme název souboru Enc-09-02a.txt ukládaný jako prostý text. − V dialogovém okně PPřřeevvoodd ssoouubboorruu potvrdíme parametry převodu tlačítkem OK. − Vznikne soubor Enc-09-02a.txt (viz obr. 9-7).

OBR. 9-7: SOUBOR ENC-09-02A.TXT

"Adamec.Milos";"Bc.";"Miloš";"Adamec";"";"M";"12";"DIS"; "vzpěrač";"1,00";"#http://min.vse.cz/encian/adamec";1

V textovém souboru jsou hodnoty polí s výjimkou zaškrtávacích políček uvedeny v uvozovkách, aby nedošlo k záměně vymezení polí při užití středníku v textu polí. Navzájem jsou odděleny středníky. Při vyplňování formuláře nesmí uživatel používat uvozovky a nesmí používat klávesu Enter.

Vyplníme formulář ještě pro zaměstnance Pavla Beneše (viz obr. 9-8).216 Data formuláře uložíme jako soubor Enc-09-02b.txt.

OBR. 9-8: VYPLNĚNÝ FORMULÁŘ S ÚDAJI O DRUHÉM ZAMĚSTNANCI

Ukončíme práci s Wordem, spustíme Access a otevřeme databázi Encian, do níž chceme importovat data z formulářů: − V kartě EXTERNÍ DATA ve skupině IImmppoorrtt klepneme do tlačítka Import textového souboru. − V dialogovém okně NNaaččíísstt eexxtteerrnníí ddaattaa vyhledáme do pole Název souboru textový soubor

Enc-09-02a.txt a ponecháme vybranou volbu Importovat data do nové tabulky v aktuální databázi.

− Access spustí Průvodce importem textu, který se skládá z několika dialogových oken: − V prvním okně potvrdíme, že údajům odpovídá nejlépe formát s oddělovači. − Ve druhém okně potvrdíme, že oddělovačem polí je středník, první řádek textového

souboru neobsahuje názvy polí a text je ohraničen uvozovkami. (Textový soubor obecně může obsahovat více než jednu větu. Každá věta je pak na samostatném řádku. Na prvním řádku mohou být uvedeny názvy polí. Soubor dat z formuláře Wordu však obsahuje vždy jen jednu větu bez názvů polí.)

− Ve třetím okně (viz obr. 9-9) upřesníme názvy a typ dat polí importované věty dle struktury tabulky Personal uvedené v obr. 3–3 (v kap. 3 na str. 42). Žádné pole neindexujeme. Volby v horní části okna zadáváme pro pole, které jsme klepnutím do nadpisu sloupce označili v dolní části. Nezapomeneme kromě názvů polí upravit typy polí

215 V náhledu se však bude zobrazovat vždy formulář včetně mřížky a popisků. 216 Znovu otevřeme dokument Enc-09-02.docx nebo pokračujeme z formuláře prvního zaměstnance, který odemkneme

a smažeme jeho obsah klepnutím do tlačítka Obnovit pole formuláře v sekci SSttaarrššíí ffoorrmmuulláářřee.

Tisk formuláře

Ukládání dat z formuláře

Enc-09-02a.txt

Průvodce importem textu

Page 187: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 187

(Charakteristika: memo, Úvazek: jednoduchá přesnost, Web: hypertextový odkaz, Oprávnění: ano/ne).

OBR. 9-9: PRŮVODCE IMPORTEM TEXTU – ČTVRTÉ DIALOGOVÉ OKNO

− Ve čtvrtém okně můžeme vybrat pole primárního klíče nebo zadat, aby Access přidal

primární klíč sám. Vybereme možnost Vlastní primární klíč pro pole E_mail. (Zajistíme tak v nové tabulce, abychom omylem dvakrát neimportovali stejnou větu.)

− V pátém okně nejprve klepneme do tlačítka Upřesnit. (Tlačítko bylo přístupné i v předcházejících oknech Průvodce.) Zobrazí se dialogové okno s rekapitulací specifikace importu (viz obr. 9-10).

OBR. 9-10: SPECIFIKACE IMPORTU

Specifikace importu

Page 188: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 188

Stejnou specifikaci chceme použít i později, proto klepneme do tlačítka Uložit jako a uložíme specifikaci pod názvem P92 Specifikace importu z formuláře Wordu. Specifikace jsou zvláštním druhem objektů Accessu. Nejsou sice uvedeny v databázovém okně, ukládají se však s databází. Tlačítkem Podrobnosti můžeme zobrazit seznam specifikací, popř. vybranou specifikaci odstranit či otevřít. Klepnutím do tlačítka OK ukončíme práci se specifikací importu.

• V pátém okně importu upravíme název vznikající tabulky na P92a Adamec a klepneme do tlačítka Dokončit. Access nabídne uložení kroků importu, které nevyužijeme. Klepneme do tlačítka Zavřít.

− V databázi vznikla nová tabulka s námi zadaným názvem P92a Adamec. Obdobně importujeme druhou větu:

− V kartě EXTERNÍ DATA ve skupině IImmppoorrtt klepneme do tlačítka Import textového souboru. − V dialogovém okně NNaaččíísstt eexxtteerrnníí ddaattaa vyhledáme do pole Název souboru textový soubor

Enc-09-02b.txt a ponecháme vybranou volbu Importovat data do nové tabulky v aktuální databázi.

− V prvním okně průvodce klepneme do tlačítka Upřesnit. − V dialogovém okně SSppeecciiffiikkaaccee iimmppoorrttuu klepneme do tlačítka Podrobnosti a vybereme P92

Specifikace importu z formuláře Wordu. Klepnutím do tlačítka OK uzavřeme okno SSppeecciiffiikkaaccee iimmppoorrttuu.

− Klepnutím do tlačítka Další postupně projdeme průvodce, jako vlastní primární klíč vybereme opět pole E_mail. V posledním okně změníme název tabulky na P92b Beneš.

Vytvoříme tabulku P92 Personal, do níž zkopírujeme obsahu dvou vytvořených tabulek: − V navigačním podokně označíme tabulku P92a Adamec. Zkopírujeme ji do schránky

kombinací kláves Ctrl C. − Tabulku ze schránky zkopírujeme kombinací kláves Ctrl V. V dialogovém okně VVlloožžiitt

ttaabbuullkkuu jjaakkoo (viz obr. 9-11) vybereme volbu Strukturu a data a tabulku nazveme P92 Personal.

OBR. 9-11: DIALOGOVÉ OKNO VLOŽIT TABULKU JAKO

− Pro přidání obsahu druhé tabulky P92b Beneš bychom mohli připravit přidávací dotaz, jehož

zdrojem by byla všechna pole tabulky P92b Beneš a cílovou tabulkou by byla tabulka P92 Personal. Naučíme se jednodušší postup.

− V navigačním podokně označíme tabulku P92b Beneš. Zkopírujeme ji do schránky kombinací kláves Ctrl C.

− Tabulku ze schránky zkopírujeme kombinací kláves Ctrl V. V dialogovém okně VVlloožžiitt ttaabbuullkkuu jjaakkoo vybereme volbu Připojit data k existující tabulce a do pole Název tabulky zapíšeme opět P92 Personal.217

Prohlédneme si obsah tabulky P92 Personal. Tabulka obsahuje dvě věty. Věty nové tabulky se pokusíme přidat do tabulky Personal: − V navigačním podokně klepneme do tabulky P92 Personal a stiskneme kombinaci kláves

Ctrl C.

217 Mohli jsme také první větu importovat přímo do nové tabulky P92 Personal a na začátku importu druhé věty vybrat

v průvodci volbu Připojit kopii záznamů k tabulce P92 Personal. V tom případě bychom však nevyzkoušeli aplikaci uložené specifikace importu.

P92a Adamec

P92b Beneš

Přidání obsahu tabulky do jiné tabulky

P92 Personal

Page 189: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 189

− Potom stiskneme kombinaci kláves Ctrl V. V dialogovém okně VVlloožžiitt ttaabbuullkkuu jjaakkoo

zadáme název tabulky Personal a vybereme poslední nabízenou možnost, abychom neodstranili stávající obsah tabulky Personal.

− Po klepnutí do tlačítka OK Access vypíše chybové hlášení. Nové věty nelze přidat pro porušení pravidel klíčů. E_mail je totiž klíčovým polem tabulky Personal a e-maily Adamec.Milos a Benes.Pavel se již v tabulce Personal vyskytují. Nové věty by se podařilo přidat jen při opravě e-mailů v tabulce P92 Personal např. na Adamec.Milos2 a Benes.Pavel2.

Podstatně jednodušší je komunikace z Accessu do Wordu. Existuje několik způsobů komunikace: − Export datové sady (tabulky či výsledku dotazu): • V navigačním podokně označíme klepnutím tabulku či dotaz, např. tabulku Oddělení. • V kartě EXTERNÍ DATA klepneme ve skupině EExxppoorrtt do tlačítka Export do souboru ve

formátu RTF. • Nabídne se název souboru dle názvu tabulky či dotazu s příponou rtf. Můžeme upravit

složku, do níž bude soubor uložen. Za účelem rychlého předvedení výsledku zaškrtneme pole Po dokončení operace exportu otevřít cílový soubor.

• Po klepnutí do tlačítka OK se vytvoří soubor s příponou rtf (rich text format), který se načte do Wordu.

• Tabulka či výsledek dotazu (v případě nevýběrových dotazů tvar, který se zobrazuje v zobrazení datového listu) jsou v dokumentu Wordu zaznamenány v tabulce nadepsané názvy polí.

• Po všech exportech i importech se nabízí uložení kroků exportu či importu tak, abychom mohli tlačítkem Uložené exporty ve skupině EExxppoorrtt nebo tlačítkem Uložené importy ve skupině IImmppoorrtt snadno provést export či import znovu bez zadávání parametrů.

• V případě, že takto exportujeme formulář, exportují se pole obsažená ve formuláři formou tabulky včetně polí daných výrazem (viz např. export formuláře P52a Personal – Identifikace).

− Export sestavy: Když exportujeme sestavu, jsou do Wordu exportována data v uspořádání velmi podobném sestavě. Jednotlivé sloupce sestavy jsou nasimulovány vložením tabulátorů. Export sestavy můžeme vyzkoušet např. na sestavě P66 Telefonní seznam. Bohužel dojde k částečné ztrátě formátování.

− Export části datové sady: • V zobrazení datového listu můžeme označit vybrané řádky (označením ve voličích

záznamů) nebo vybrané sloupce (označením v řádku názvů polí). • Při zadání exportu můžeme v dialogovém okně EExxppoorrtt pod názvem souboru zaškrtnout

pole Exportovat pouze vybrané záznamy. • Exportují se potom pouze vybrané řádky či sloupce.

− Export datové sady jako zdroje dat hromadné korespondence ve Wordu: • Chceme napsat dopis odběratelům firmy Encián. • V navigačním podokně klepneme do tabulky Podniky. • V kartě EXTERNÍ DATA ve skupině EExxppoorrtt klepneme do tlačítka Další a vybereme volbu

SLOUČIT S DOKUMENTEM MICROSOFT OFFICE WORD. • V jediném okně průvodce hromadnou korespondencí ponecháme zaškrtnuté pole Vytvořit

nový dokument a propojit s ním data. • Dále nás vede v okně HHrroommaaddnnáá kkoorreessppoonnddeennccee Word:

» V prvním kroku ponecháme vybrané pole Dopisy. Klepneme do spodní volby Další. » Ve druhém kroku ponecháme vybrané pole Použít aktuální dokument. » Ve třetím kroku ponecháme vybrané pole Použít existující seznam a ve spodní části

ponecháme vybraný seznam Podniky v databázi Encian.accdb. » Ve čtvrtém okně nevyužijeme žádný nabízený prvek dopisu.

V kartě KORESPONDENCE ve skupině ZZaappssaatt aa vvlloožžiitt ppoollee klepneme do tlačítka Vložit slučovací pole.

Vybereme postupně pole adresy (Název_podniku, Ulice, PSČ, Obec) a tlačítkem Vložit nebo poklepáním na název pole je vložíme do adresy na úvod dopisu.

Access → Word Export datové sady

Export sestavy

Export části datové sady

Data z Accessu jako zdroj dat hromadné korespondence Wordu

Page 190: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 190

Tlačítkem Náhledy výsledků ze skupiny NNááhhlleedd vvýýsslleeddkkůů můžeme zobrazit dopis se sloučenými daty.

Tlačítky v horní části skupiny NNááhhlleedd vvýýsslleeddkkůů (První záznam, Předchozí záznam, Další záznam, Poslední záznam) se můžeme pohybovat mezi jednotlivými slučovanými větami.

» V pátém kroku se zobrazí sloučené věty a můžeme některé věty ze slučování vyloučit. » V šestém kroku můžeme dopisy vytisknout či sloučit do dokumentu tak, abychom mohli

jednotlivé dopisy upravit. Hromadnou korespondenci lze definovat také z Wordu:

− Ve Wordu otevřeme nový dokument. − V kartě KORESPONDENCE ve skupině SSppuussttiitt hhrroommaaddnnoouu kkoorreessppoonnddeennccii klepneme do tlačítka

Vybrat příjemce a vybereme volbu POUŽÍT EXISTUJÍCÍ SEZNAM. − Vyhledáme umístění databáze Encian.accdb a vybereme tabulku Podniky. (Nejdříve jsou

v seznamu uvedeny dotazy, potom tabulky.) − V kartě KORESPONDENCE ve skupině ZZaappssaatt aa vvlloožžiitt ppoollee klepneme do tlačítka Vložit

slučovací pole. − Vybereme postupně pole adresy (Název_podniku, Ulice, PSČ, Obec) a tlačítkem Vložit nebo

poklepáním na název pole je vložíme do adresy na úvod dopisu. − Průvodce hromadnou korespondencí můžeme spustit klepnutím do tlačítka Spustit

hromadnou korespondenci ve skupině SSppuussttiitt hhrroommaaddnnoouu kkoorreessppoonnddeennccii v kartě KORESPONDENCE a výběrem volby PODROBNÝ PRŮVODCE HROMADNOU KORESPONDENCÍ.

− Vložená pole můžeme doprovodit konstantním textem. Data z Accessu je možné uložit do textového souboru, který může načíst řada

programů. Provedeme uložení obsahu tabulky Oddělení do textového souboru dvěma způsoby: − s oddělovači • V kartě EXTERNÍ DATA ve skupině EExxppoorrtt klepneme do tlačítka Export do textového

souboru. • V dialogovém okně EExxppoorrtt upřesníme soubor, do něhož obsah uložíme. Data uložíme do

souboru Oddělení1.txt. Ponecháme nezaškrtnuté pole Exportovat data s formátováním a rozložením.

• V prvním okně průvodce exportem textu ponecháme zvolenu možnost S oddělovači. • V druhém okně průvodce ponecháme vybraný oddělovač středník a zaškrtneme pole

Zahrnout názvy sloupců na prvním řádku. • V třetím okně průvodce potvrdíme umístění a název souboru. • Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu.

− s pevnou délkou • V kartě EXTERNÍ DATA ve skupině EExxppoorrtt klepneme do tlačítka Export do textového

souboru. • V dialogovém okně EExxppoorrtt upřesníme soubor, do něhož obsah uložíme. Data uložíme do

souboru Oddělení2.txt. Ponecháme nezaškrtnuté pole Exportovat data s formátováním a rozložením.

• V prvním okně průvodce exportem textu vybereme druhou možnost S pevnou délkou. • V druhém okně průvodce ponecháme čáry oddělující jednotlivá pole. Čáry bychom mohli

tažením přemístit. • V třetím okně průvodce potvrdíme umístění a název souboru. • Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu.

Vznikly dva textové soubory: − Každá věta tvoří ve výsledném souboru samostatný odstavec. − V prvním případě jsou pole oddělena vybraným znakem, např. středníkem. − V druhém případě je každé pole stejně dlouhé i za cenu doplnění mezer.

− V obou případech můžeme v jakémkoliv okně průvodce klepnout do tlačítka Upřesnit a obdobně jako při importu z formulářů Wordu uložit nastavené parametry exportu ve formě specifikace.

Na připravených textových souborech budeme demonstrovat import textových souborů do Accessu: − import souboru Oddělení1.txt

Access → textový soubor

Textový soubor → Access

Page 191: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 191

• V kartě EXTERNÍ DATA ve skupině IImmppoorrtt klepneme do tlačítka Import textového souboru. • V dialogovém okně NNaaččíísstt eexxtteerrnníí ddaattaa upřesníme umístění souboru, ponecháme

vybranou volbu Importovat zdrojová data do nové tabulky v aktuální databázi. • V prvním okně průvodce ponecháme vybranou volbu S oddělovači. • Ve druhém okně průvodce ponecháme jako oddělovač vybraný středník a zaškrtneme pole

První řádek obsahuje názvy polí. • V třetím okně potvrdíme názvy polí. • Ve čtvrtém okně vybereme vlastní primární klíč Oddělení. • V pátém okně potvrdíme název tabulky Oddělení1. • Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů importu.

− import souboru Oddělení2.txt Postup je obdobný jako při importu souboru Oddělení1.txt s následující rozdíly: • V prvním okně průvodce ponecháme vybranou volbu S pevnou délkou. • Ve druhém okně klepnutím do měřítka umístíme dvě čáry oddělující pole. • V třetím okně nazveme pole Oddělení, Oddělení_v, Vedoucí. • V pátém okně potvrdíme název tabulky Oddělení2.

− odkaz Oddělení3 na zdroj Oddělení1.txt Postup je obdobný jako při importu souboru Oddělení1.txt s následující rozdíly: • V dialogovém okně NNaaččíísstt eexxtteerrnníí ddaattaa vybereme volbu Vytvořit odkaz na zdroj dat

vytvořením propojené tabulky. • V pátém okně průvodce zadáme název tabulky Oddělení3.

Pokud bychom změnili obsah textového souboru Oddělení1.txt např. doplněním oddělení ZAH, zahraničí, Petr.Novak změnil by se obsah tabulky Oddělení3, tabulka Oddělení1 by zůstala s původním počtem vět.

9.3 Excel Import dat z Excelu do Accessu byl vyložen již v souvislosti s načítáním dat do

databáze v kap. 2. Import zahajujeme v kartě EXTERNÍ DATA ve skupině IImmppoorrtt klepnutím do tlačítka Excel. Importovaná data upřesňujeme výběrem ze seznamu tabulek nebo ze seznamu oblastí.

Export z Accessu do Excelu předvedeme na exportu dvou datových sad – tabulky Oddělení a dotazu NACE_Oddíly: − export tabulky • V navigačním podokně klepneme do tabulky Oddělení. • V kartě EXTERNÍ DATA ve skupině EExxppoorrtt klepneme do tlačítka Excel. • V dialogovém okně EExxppoorrtt upřesníme umístění a název souboru. Soubor nazveme Export.

V poli Formát souborů ponecháme vybraný formát xlsx. • V možnostech exportu zaškrtneme pole Exportovat data s formátováním a rozložením a Po

dokončení operace exportu otevřít cílový soubor. • Otevře se Excel v něm sešit Export.xlsx s listem Oddělení. Soubor zavřeme. • Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu.

− export dotazu • V navigačním podokně klepneme do dotazu NACE_Oddíly. • V kartě EXTERNÍ DATA ve skupině EExxppoorrtt klepneme do tlačítka Excel. • V dialogovém okně EExxppoorrtt upřesníme umístění a název souboru. Soubor opět nazveme

Export. V poli Formát souborů ponecháme vybraný formát xlsx. • Chceme, aby se vytvořil další list v sešitu Excelu. Nezaškrtneme proto žádnou

z nabízených možností exportu. Klepneme do tlačítka OK. • V Excelu otevřeme sešit Export.xlsx. Data z dotazu jsou uložena do dalšího listu

NACE_Oddíly. • Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu.

Excel → Access

Access → Excel

Page 192: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 192

9.4 PowerPoint

Access nenabízí export či import do či z PowerPointu. Export provedeme modulem, který budeme spouštět pomocí tlačítka Export v samostatném formuláři P94 ExportPowerPoint. Spustíme tak proceduru Export z globálního modulu P94 ExportPowerPoint, který využívá funkci v modulu P94 Ident.

Vytvoříme prezentaci s přehledem zaměstnanců. Na každém snímku bude celé jméno zaměstnance, jeho fotografie a charakteristika. Protože využijeme i metody PowerPointu, musíme nejprve v editoru Visual Basicu zadat příkaz TOOLS, REFERENCES a přidat k dostupným knihovnám Microsoft PowerPoint 12.0 Object Library. Procedura exportu je uvedena v obr. 9-12 včetně základního vysvětlujícího komentáře (který je kurzívou).

OBR. 9-12: PROCEDURA EXPORT_PP Z MODULU P94 EXPORT POWERPOINT

Public Sub Export_PP() '------------------------------------------------------ 'přiřazení hodnot Set Zam = CurrentDb.OpenRecordset("Personal") 'data čerpáme z tabulky Personal Dim PP As New PowerPoint.Application 'PP je nově otevřená aplikace PowerPointu Dim System_souboru 'objekt systému souborů Set Prezentace = PP.Presentations.Add 'prezentace je nově přidaná prezentace Set System_souboru = CreateObject("Scripting.FileSystemObject") '------------------------------------------------------ 'příprava PowerPointu před samotným cyklem zpracování jednotlivých vět With PP .Visible = True 'zviditelnění PowerPointu .Activate 'zaktivnění PowerPointu End With K = 1 'výchozí nastavení počítadla zaměstnanců '------------------------------------------------------ 'cyklus zpracování jednotlivých vět z tabulky Do Until Zam.EOF 'popř. Do Until Zam.EOF Or K = 5 'cyklus se provádí až do poslední věty, popř. pro ladění do čtvrté věty Set Snímek = Prezentace.Slides.Add(K, 11) 'přidání nového snímku s rozvržením číslo 11 (prázdný snímek pouze s objektem titulku) '---------- 'TITULEK SNÍMKU PREZENTACE (= NEVIDITELNÝ KOMENTÁŘ) With Snímek.Shapes.Placeholders(1) 'začátek operací s titulkem, tj. prvním a zatím jediným objektem snímku .Visible = False 'zneviditelnění (titulek není zobrazován, pouze definován kvůli navigaci mezi snímky) With .TextFrame.TextRange .Text = Zam!Příjmení & " " & Zam!Jméno 'text titulku je převzat z polí Příjmení a Jméno End With End With '---------- 'CELÉ JMÉNO (NAHOŘE) With Snímek.Shapes.AddShape(5, 220, 50, 280, 40) 'začátek operací s nově přidaným automatickým tvarem formátu č. 5 's definovanými protilehlými rohy .Fill.Visible = False 'objekt nemá pozadí (je průhledný, aby převzal případné pozadí prezentace z předlohy) .Line.Visible = False 'objekt nemá okraj With .TextFrame.TextRange .Text = CeléJméno(Zam!Titul1, Zam!Jméno, Zam!Příjmení, Zam!Titul2) 'nad budoucí fotografii jsou z tabulky převzata pole Příjmení a Jméno .Font.Size = 36 'velikost písma nadpisu End With End With

P94 Export PowerPoint

Access → PowerPoint

P94 Export PowerPoint

Page 193: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 193

'---------- 'KOMENTÁŘ (DOLE): v dolní části snímku zobrazíme Charakteristiku zaměstnance With Snímek.Shapes.AddShape(5, 20, 450, 680, 40) .Fill.Visible = False .Line.Visible = False With .TextFrame.TextRange .Text = Zam!Charakteristika .Font.Size = 36 End With End With '---------- 'FOTOGRAFIE (UPROSTŘED) Soubor = Application.CurrentProject.Path & "/web/" & Ident(Zam!Příjmení, Zam!Jméno) _ & "/" & Ident(Zam!Příjmení, Zam!Jméno) & ".gif" If System_souboru.FileExists(Soubor) Then Snímek.Shapes.AddPicture Soubor, False, True, 275, 200 'delší příkaz je možné rozdělit na více řádků, dílčí řádky končí mezerou a podtržítkem 'přidání obrázku - fotografie z příslušného adresáře z příslušného souboru s příponou gif 'fotografie je vložena (nikoliv propojena - parametr False) a uložena do souboru (True) 'poslední parametry: levý horní roh - x a y, popř. šírka, výška End If K = K + 1 'zvýšení počítadla zaměstnanců pro příkaz přidávání zaměstnanců Zam.MoveNext 'přechod na další větu tabulky Loop 'ukončení cyklu opakování End Sub

OBR. 9-13: FUNKCE IDENT Z MODULU P94 IDENT

Public Function Ident(Příjmení, Jméno) Ident = BezDiakritiky(Left(Příjmení, 8)) If Příjmení = "Škoda" Then Ident = Ident & BezDiakritiky(Left(Jméno, 1)) End Function

Aby se importovaly do prezentace PowerPointu obrázky zaměstnanců, je nutné, aby byly obrázky umístěny ve složce s databází Encian.accdb v podsložce web, v níž má každý zaměstnanec svou podsložku, např.: C:\prac

Encian.accdb web

Adamec Adamec.gif index.htm

Benes Benes.gif index.htm

V případě, že obrázek není dostupný, procedura jeho načtení bez chyby přeskočí.

9.5 Access Objekty připravené v jedné databázi lze často použít v další nové databázi. Do

databáze Accessu lze importovat objekty z jiné databáze: − Vytvoříme novou databázi klepnutím do tlačítka Office a příkazem NOVÁ DATABÁZE. Novou

prázdnou databázi nazveme Encian2. Zavřeme nabízenou prázdnou tabulku. − V kartě EXTERNÍ DATA ve skupině IImmppoorrtt klepneme do tlačítka Access. − V dialogovém okně NNaaččíísstt eexxtteerrnníí ddaattaa dohledáme databázi Encian a ponecháme

zaškrtnutou volbu Importovat tabulky,... − V dialogovém okně IImmppoorrtt oobbjjeekkttůů (viz obr. 9-14) vybereme objekty, které chceme do

nové databáze zkopírovat.

P94 Ident

Access → Access

Page 194: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 194

OBR. 9-14: DIALOGOVÉ OKNO IMPORT OBJEKTŮ

Vybereme objekty pro import: − Klepnutím do názvu objektu objekt vybereme. − Klepnutím do označeného objektu zrušíme výběr objektu. − Klepnutím do tlačítka Vybrat vše vybereme všechny objekty jednoho typu, např. tabulky. − Klepnutím do tlačítka Zrušit výběr zrušíme označení všech objektů jednoho typu. − Klepnutím do záložky zobrazíme objekty jiného typu. Současně můžeme označit objekty

různých typů. − Klepnutím do tlačítka Možnosti zobrazíme speciální parametry importu.

Ve speciálních parametrech importu v spodní části okna upřesňujeme import: − Současně s objekty vybranými v horní části můžeme ze zdrojové databáze importovat také: − relace, − nabídky a panely nástrojů218 (všechny, nelze vybrat jednotlivé), − specifikace pro import/export (všechny, nelze vybrat jednotlivé), − skupiny navigačního podokna (všechny, nelze vybrat jednotlivé).

− Pro tabulky vybrané v horní části můžeme omezit import na import prázdných tabulek (jen definice struktury tabulek).

− Místo návrhů dotazů můžeme importovat jejich výsledky ve formě stejnojmenných tabulek. Jiným způsobem čerpání dat z jiné databáze je propojení tabulek. Propojením na jiné

databáze se databáze nezvětšuje, čerpá aktuální údaje ze zdrojové databáze. Takto lze čerpat pouze z tabulek, nikoliv návrhy dotazů, formulářů, sestav či jiných objektů databáze. Databáze, z níž se čerpá, musí být k dispozici.

V našem případě provedeme import objektů: − tabulky Personal, Oddělení a Místnosti, − formulář P52a Personal – Identifikace, − relací. Tabulky importujeme jako definice a data, dotazy jako dotazy.

Tímto způsobem je možné importovat objekty i ze starších verzí Accessu (formát mdb verzí 2, 97, 2002, 2003).

Data lze exportovat, importovat i propojit s daty jiných aplikací: − databázové programy dBase (formát dbf), Paradox (formát db), − soubor xml (formát html ve struktuře xml), − tabulkový program Lotus 1-2-3 (formát wk3). 218 Úprava nabídek (menu) a panelu nástrojů Accessu není v této publikaci vysvětlována.

Propojení

Page 195: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 195

9.6 Visio

Četné možnosti využití dat z Accessu nabízí Visio. Visio je prostředkem vizualizace dat z Accessu či seznamů z Excelu. V diagramu Visia máme připraven diagram modelu životního cyklu našich odběratelů. Na základě dotazníkového průzkumu jsme rozdělili odběratele do 8 stadií (viz obr. 9-15).

OBR. 9-15: DIAGRAM MODEL ŽIVOTNÍHO CYKLU BEZ TEPLOMĚRŮ

Stadium je pro jednotlivé odběratele uvedeno v tabulce Podniky. Parametry stadia (Stupeň, Charakteristika, Dynamika_stadia) jsou upřesněny v tabulce Stadia. V dotazu Visio – Stadia jsou spočteny s využitím souhrnu počty odběratelů v jednotlivých stadiích (viz obr. 9-16).

OBR. 9-16: DOTAZ VISIO – STADIA

Data načteme do výkresu Visia: − Ve Visiu otevřeme výchozí diagram Enc-09-06a.vsd. − Zadáme příkaz Visia DATA, PROPOJIT DATA S OBRAZCI. − V prvním okně průvodce VVýýbběěrr ddaatt vybereme možnost Databáze aplikace Microsoft Office

Access. − V druhém okně procházením dohledáme databázi Encian.accdb a ve spodní části upřesníme

datovou sadu Visio – Stadia. − Ve třetím okně ponecháme vybrány všechny sloupce (pole) a všechny řádky (věty). − V čtvrtém okně vybereme jako identifikační pole Stadium. − V posledním okně klepneme do tlačítka Dokončit. − Výsledek dotazu se načte do diagramu Visia jako externí data s názvem Visio – Stadia, která

se zobrazí v samostatném okně EExxtteerrnníí ddaattaa. Data můžeme připojit k obrazcům diagramu tažením jednotlivých řádků z okna

EExxtteerrnníí ddaattaa na jednotlivé obrazce. Využijeme rychlejší automatický způsob: − Zadáme příkaz Visia DATA, AUTOMATICKY PROPOJIT. − V prvním okně průvodce ponecháme zaškrtnutu volbu Všechny obrazce na této stránce. − V druhém okně vybereme k propojení sloupec Stadium a pole obrazce Text obrazce. − Ve třetím okně potvrdíme propojení tlačítkem Dokončit. − S externími daty se propojily všechny elipsy s výjimkou elipsy koncepce, v tomto stadiu

žádný odběratel není. − U každé propojené elipsy je zobrazen název stadia počet podniků formou tzv. datového

symbolu.

Access → Visio

Enc-09-06a.vsd

Page 196: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 196

Datový symbol upravíme:

− Zadáme příkaz Visia DATA, ZOBRAZIT DATA OBRAZCŮ. − V podokně úloh DDaattoovvéé ssyymmbboollyy klepneme pravým tlačítkem do datového symbolu Visio –

Stadia a z místní nabídky vybereme UPRAVIT DATOVÝ SYMBOL. − V dialogovém okně UUpprraavviitt ddaattoovvýý ssyymmbbooll klepneme do obou položek Stadium a Počet

podniků a odstraníme je klepnutím do tlačítka Odstranit. − Klepneme do tlačítka Nová položka a vybereme typ Datová čára. − V dialogovém okně NNoovváá ddaattoovváá ččáárraa vybereme do Datového pole položku Počet podniků.

Jako Popisek ponecháme Teploměr. Upravíme Podrobnosti: • Maximální hodnota: 18 • Umístění popisků: Nezobrazeno

− Zrušíme zaškrtnutí pole Použít výchozí pozici. − Do pole Vodorovně zadáme Pravá hrana. − Do pole Svisle zadáme Doprostřed. − Klepnutím do tlačítka OK ukončíme práci s dialogovým oknem UUpprraavviitt ddaattoovvoouu ččáárruu. − Klepnutím do tlačítka OK ukončíme práci s dialogovým oknem UUpprraavviitt ddaattoovvýý ssyymmbbooll.

Nyní je pro každé stadium znázorněn počet odběratelů ve stadiu výší rtuti v teploměru (viz obr. 9-17).

OBR. 9-17: DIAGRAM MODEL ŽIVOTNÍHO CYKLU S TEPLOMĚRY

Data jsou nakopírována do diagramu a jsou nezávislá na databázi. Můžeme je však aktualizovat − příkazem DATA, AKTUALIZOVAT DATA, kterým se zobrazí dialogové okno AAkkttuuaalliizzoovvaatt

ddaattaa, − nastavit zobrazení okna pro aktualizaci vždy při otevření diagramu, − konfigurovat automatickou aktualizaci v pravidelných časových intervalech. Můžeme také změnit zdroj dat nebo jeho umístění.

Diagram můžeme vytvořit také automaticky, např. organizační diagram firmy: − Ve Visiu otevřeme nový výkres příkazem SOUBOR, NOVÝ, ZAČÍNÁME. − V kategorii Obchodní vybereme poklepáním šablonu Organizační diagram. − Otevře se nový výkres s vhodným vzhledem stránky včetně nastavení vhodného rozložení a

směrování. − Zadáme příkaz DATA, VLOŽIT DATOVÁ ŘEŠENÍ, ORGANIZAČNÍ DIAGRAM. − V prvním okně průvodce organizačním diagramem ponecháme vybránu volbu Informace již

uložené v souboru nebo databázi. − V druhém vybereme možnost Zdroj dat kompatibilní se standardem ODBC. − Ve třetím okně vybereme zdroje dat v MS Access Database a dohledáme umístění databáze

Encian.accdb. − Ve čtvrtém okně vybereme tabulku Personal. (Za tabulkami se nabízí dotazy.) − V pátém okně do pole Jméno vybereme pole Příjmení, v poli Nadřízený ponecháme vybrané

pole Nadřízený a pole První jméno nevyužijeme. − V šestém okně vybereme jako zobrazená pole Příjmení, Oddělení, Místnost. − V sedmém okně ponecháme vybrány jako datová pole obrazců všechna pole s výjimkou polí

Web, Foto a Přílohy. − V osmém okně ponecháme zaškrtnuté pole Propojit záznamy databáze s obrazci. − V devátém okně klepneme do tlačítka Dokončit.

Enc-09-06b.vsd

Organizační diagram

Page 197: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 197

Automaticky se vytvořil diagram, který zřetězil zaměstnance dle pole Nadřízený.

V diagramu provedeme některé úpravy: − Z místní nabídky Sladké vybereme ZMĚNIT TYP POZICE a zvolíme ASISTENT. Diagram

překreslíme příkazem ORGANIZAČNÍ DIAGRAM, ZNOVU ROZLOŽIT. − Klepneme na uzel Dvořák (KON) a v panelu nástrojů Organizační diagram klepneme do

tlačítka Přesunout doleva. Obdobně změníme pořadí dalších oddělení tak, aby oddělení byla v pořadí KON, ANA, REK, DIS, PRG.

− Klepneme na uzel Kolínská (PRG) a v panelu nástrojů Organizační diagram klepneme do tlačítka Vedle sebe, Jeden nahoře. Diagram překreslíme příkazem ORGANIZAČNÍ DIAGRAM, ZNOVU ROZLOŽIT.

− Příkazem ZOBRAZIT, MŘÍŽKA a ZOBRAZIT, SPOJOVACÍ BODY potlačíme zobrazování pomocných objektů Visia.

− Příkazem ZOBRAZIT, OKNO DAT OBRAZCE můžeme k jednotlivým uzlům zobrazit podrobná data (Oddělení, Telefon, Jméno, E_mail, Titul1, Příjmení atd.).

OBR. 9-18: ORGANIZAČNÍ DIAGRAM

V případě organizačního diagramu je možné data aktualizovat ve směru z Accessu i do Accessu.

Organizační diagram můžeme dále formátovat např. využitím datových symbolů (viz obr. 1-2 v kap. 1). Můžeme tak vizualizovat např. pole Oprávnění, Pohlaví (ikonami) a Oddělení (barva výplně). Můžeme také doplnit zobrazení dalších polí (Telefon) a fotografie zaměstnanců.

Visio může také automaticky sestavit kontingenční diagram (příkaz Data, Kontingenční diagram), který vychází z dat Acccessu. Můžeme tak např. vytvořit: − kontingenční diagram tržeb za prodané programy dle stadií a odběratelů, − kontingenční diagram tržeb a počtu prodaných programů dle programů a měsíců, − kontingenční diagram tržeb a počtu prodaných programů dle oddělení a zaměstnanců, − kontingenční diagram tržeb a počtu prodaných programů dle stadií a programů, − kontingenční diagram celkové délky služebních cest dle místa cest219.

9.7 Další aplikace Data lze importovat z či exportovat do dalších aplikací Microsoftu. Aplikace Project

je program, který se používá pro zpracování projektů. Projekt lze chápat jako plán práce, který má na konci výsledek. Aplikace Project eviduje jednotlivé úkoly včetně jejich návazností, dále eviduje zdroje využité pro realizaci úkolů včetně zamezení jejich přetížení, zaznamenává náklady na realizaci projektu. Umí také sledovat průběh projektu, konfrontovat plán a skutečnost.

219 Podrobný výklad práce s daty v aplikaci Visio je uveden v kap. 10 v publikaci KUBÁLEK, Tomáš, KUBÁLKOVÁ,

Markéta. Microsoft Office Visio 2007 jednoduše. Brno: ComputerPress, 2007. 152. s. ISBN 978-80-251-1883-2.

Enc-09-06c.vsd

Visio → Access

Kontingenční diagram

Project → Access

Page 198: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 198

Project ukládá data do své interní databáze. Ta obsahuje četné tabulky, jejichž

struktura je dána nebo ji mírně může ovlivnit uživatel definováním vlastních polí. Project s daty provádí četné výpočty a optimalizace. Data shromážděná v Projectu lze exportovat pro podrobnější analýzy a návaznosti v Accessu.

Firma Encián připravila a realizovala projekt přestavby zasedací místnosti na školící počítačovou místnost. Data lze exportovat z projektu v aplikaci Project: − V Projectu zadáme příkaz SESTAVA, VIZUÁLNÍ SESTAVY. − V dialogovém okně VViizzuuáállnníí sseessttaavvyy –– VVyyttvvoořřiitt sseessttaavvuu klepneme do tlačítka Uložit data. − V dialogovém okně VViizzuuáállnníí sseessttaavvyy –– UUlloožžiitt ddaattaa sseessttaavv klepneme do tlačítka Uložit

databázi. − Upřesníme název databáze a adresář jejího uložení. − Vytvoří se databáze ve formátu mdb, kterou můžeme otevřít v Accessu 2007. − Databáze obsahuje řadu tabulek a několik dotazů, mezi hlavní tabulky patří: • MSP_EpmTask: Úkoly (identifikátorem věty je pole TaskUID), • MSP_EpmResource: Zdroje (identifikátorem věty je pole ResourceUID), • MSP_Assignment: Používání zdrojů úkoly.220

Aplikace Outlook je organizátor osobních informací. Eviduje osobní kontakty, plní funkci poštovního klienta, eviduje plánované akce či celodenní události, eviduje úkoly, formou poznámek je možné v aplikaci zapsat nestrukturovaný text. Data ukládá aplikace do jediného souboru formátu pst. Soubor pst obsahuje jednotlivé složky (např. Kontakty, Doručená pošta). Outlook může pracovat současně s více soubory pst.

Data z libovolné složky můžeme importovat do Accessu, např. můžeme načíst kontakty na zaměstnance ze složky asistentky ředitele Marie Sladké: − V kartě EXTERNÍ DATA ve skupině IImmppoorrtt klepneme do tlačítka Další a vybereme SLOŽKA

APLIKACE OUTLOOK. − V dialogovém okně NNaaččíísstt eexxtteerrnníí ddaattaa ponecháme zaškrtnutu volbu Importovat zdrojová

data do nové tabulky v aktuální databázi.221 − V prvním okně průvodce importem vybereme soubor osobních složek (pst) a v něm složku,

např. soubor Marie Sladká a v něm složku Kontakty. − V druhém okně můžeme změnit názvy některých importovaných polí. Název musíme změnit

u polí, které obsahují tečku, tj. Ulice (dom.) přejmenujeme na Ulice (domů), Město (dom.) na Město (domů), Okres (dom.) na Okres (domů), PSČ (dom.) na PSČ (domů), Země (dom.) na Země (domů), Telefon (zam. 2) na Telefon (zam 2), 2. křestní jméno na Druhé křestní jméno.222

− Ve třetím okně neurčíme primární klíč. − Ve čtvrtém okně potvrdíme název tabulky Kontakty. − V dialogovém okně NNaaččíísstt eexxtteerrnníí ddaattaa vzhledem k četným změnám názvů polí uložíme

kroky importu pro případné opakování importu. − Vytvořili jsme tabulku Kontakty.

Access nepodporuje export do Outlooku. Výstup dat z Accessu můžeme řešit propojením se složkou Outlooku nebo importem ze strany Outlooku z formátu mdb (starší verze Accessu).

Před importem si připravíme v Outlooku vhodnou dílčí složku příkazem SOUBOR, SLOŽKA, NOVÁ SLOŽKA, např. Importované kontakty typu Kontakt. Zadáme příkaz SOUBOR, IMPORT A EXPORT. Dále nám pomáhá Průvodce importem a exportem: − V prvním okně zadáme Importovat z jiného programu nebo souboru. − V druhém okně vybereme Microsoft Access 97 – 2003. − Ve třetím okně upřesníme název databáze, z níž budeme importovat. Databáze nesmí být

otevřena. Dále upřesníme, zda: − zdvojené položky přepíšeme importovanými nebo

220 Podrobnější výklad sestav v aplikaci Project je uveden v kap. 8 v publikaci KUBÁLEK, Tomáš, KUBÁLKOVÁ,

Markéta. Řízení projektů v Microsoft Office Project: Učebnice pro vysoké školy. Brno: Computer Press, 2007. 264 s. ISBN 978-80-251-1770-5.

221 Pokud bychom vybrali volbu Vytvořit odkaz na zdroj dat vytvořením propojené tabulky, data v Accessu by se automaticky aktualizovala při změně dat v Outlooku. Soubor pst by však musel být dostupný v původním umístění.

222 Můžeme také obejít změnu názvu přeskočením importu těchto nevyplněných polí zaškrtnutím pole Neimportovat pole (přeskočit).

Enc-09-07a.mpp

Outlook → Access

Access → Outlook

Page 199: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 199

− umožníme tvorbu zdvojených položek nebo − neimportujeme duplicitní položky. V případě, že import provádíme do prázdné podsložky, je upřesnění zbytečné.

− Ve čtvrtém okně vybereme složku, do níž provádíme import, např. Importované kontakty. − V pátém okně, pokud databáze obsahuje více tabulek, musíme vybrat tabulku (popř.

tabulky), z nichž importujeme. Potom můžeme klepnutím do tlačítka Připojit vlastní pole zobrazit okno PPřřiippoojjiitt vvllaassttnníí ppoollee, v němž můžeme upřesnit, která pole databázové tabulky Accessu budou importována a do kterých polí Outlooku budou importována. (V případě databáze Encian bychom mohli vybrat tabulku Podniky a z ní provést následující přiřazení polí Accessu polím Outlooku: IČ – IČO, NACE1 – Kategorie, Název_podniku – Společnost, Obec – Město zam., Ulice – Ulice zam., PSČ – PSČ zam., Telefon – Telefon zam., Bankovní_účet – Účet, Bankovní_kód – Umístění).

Outlook může být využit také jako prostředek shromažďování dat v Accessu. Např. chceme, aby budoucí odběratel vyplnil o sobě data do formuláře a odeslal Outlookem: − V navigačním podokně klepneme na tabulku Podniky. − V kartě EXTERNÍ DATA ve skupině SShhrroommáážžddiitt ddaattaa klepneme do tlačítka Vytvořit e-mail. − První okno průvodce je informativní. Klepneme do tlačítka Další. − V druhém okně potvrdíme shromažďování pomocí formuláře ve formátu HTML223. − Ve třetím okně ponecháme vybranou volbu Pouze sběr nových informací.224 − Ve čtvrtém okně přidáme všechna pole do formuláře. V pravé části můžeme upřesnit popisky

polí ve formuláři. − V pátém okně můžeme upřesnit složky aplikace Outlook, kam přijdou odpovědi. Dále zde

můžeme zaškrtnout, aby se odpovědi automaticky zpracovaly (přidaly nové věty) do příslušné tabulky Accessu, popř. nastavit podrobnosti automatického zpracování.

− V šestém okně vybereme, odkud budeme čerpat adresy uživatelů vyzvaných k vyplnění formuláře: • Adresy můžeme zadat až v Outlooku před odesláním zprávy. • Adresy můžeme čerpat z některého pole tabulky. (Tato možnost se využívá při aktualizaci

dat.) Ponecháme vybranou volbu Zadat e-mailové adresy v aplikaci Microsoft Office Outlook.

− V sedmém okně můžeme upřesnit název a text zprávy. − V osmém informačním okně klepneme do tlačítka Vytvořit. − Vytvoří se e-mailová zpráva. Doplníme příjemce, můžeme upravit předmět a text zprávy.

Součástí textu je formulář k vyplnění. Některé kontroly jsou zapsány alespoň formou upozornění pod polem pro vložení dat (např. číselný charakter pole, délka textového pole).

− Zprávu odešleme. − Příjemce musí k přijetí zprávy použít aplikaci Outlook. Odpoví na naši výzvu tlačítkem

Odpovědět. Vyplní formulář a odešle jej tlačítkem Odeslat. − Data se po přijetí Outlookem automaticky doplní do tabulky v Accessu.225

Pokud v kartě EXTERNÍ DATA ve skupině SShhrroommáážžddiitt ddaattaa klepneme do tlačítka Správa odpovědí, zobrazí se přehled odeslaných zpráv. Můžeme modifikovat jejich možnosti, poslat je znovu nebo zprávu ze seznamu odstranit.

Aplikace OneNote je prostředek pro shromažďování, třídění, vyhledávání a sdílení informací. Access nenabízí export do ani import z OneNote. K přenosu dat lze využít schránku. − V tabulce či ve výsledku dotazu označíme celou datovou sadu či vybrané řádky nebo

sloupce. − Kombinací kláves Ctrl C v Accessu zkopírujeme označenou část do schránky. − Kombinací kláves Ctrl V ve OneNote vložíme obsah schránky do vhodné stránky ve

OneNote ve formě tabulky. Sloupce jsou nazvány názvy polí. Pod tabulkou se tučně vypíše název zdrojové tabulky či dotazu.

223 Aplikace InfoPath, která je nabízena jako druhá varianta typu formuláře, přináší větší možnosti návrhu formuláře po

sběr dat, pohodlnější vyplňování. Vyplňující však musí mít aplikaci nainstalovánu. 224 V případě aktualizace stávajících informací by bylo nutné, aby v každé větě bylo uvedeno s e-mailem uživatele,

kterého opravňujeme aktualizovat větu. 225 Pokud bychom dříve nezvolili automatické zpracování, museli bychom jednotlivé odpovědi v Outlooku akceptovat,

tj. na odpověď ve složce odpovědí klepnout pravým tlačítkem a vybrat volbu EXPORTOVAT DATA DO APLIKACE MICROSOFT OFFICE ACCESS.

Shromáždění dat

Access → OneNote

Page 200: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 200

Aplikace Publisher je určena pro tvorbu a publikování marketingových a dalších

materiálů pro tisk a web. Publisher obsahuje řadu šablon roztříděných do kategorií dle typů publikací.226 Obdobně jako Word nabízí Publisher hromadnou korespondenci pro tvorbu publikací s poli slučovanými z datového zdroje.

Ve firmě Encián připravíme potisk CD, na nichž poskytujeme software. Na CD má být uveden název a zkratka programu, číslo licence, její cena, IČ vlastníka (odběratele), název firmy vlastníka a datum prodeje licence. Nejprve v Accessu připravíme dotaz, který shromáždí uvedená data.

OBR. 9-19: DOTAZ P97 PUBLISHER

V aplikaci Publisher připravíme potisk CD: − Po příkazu SOUBOR, NOVÝ vybereme v kategorii Štítky šablonu Prázdný a klepneme do

tlačítka Vytvořit. − Tažením za vodorovné a svislé pravítko umístíme do návrhu potisku vodorovné a svislé

vodítko na pozici 6,2 cm (doprostřed). − Obdobně umístíme svislá vodítka doprostřed levé a pravé části potisku, tj. na pozice 2,2 cm a

10,2 cm. − Příkazem VLOŽIT, TEXTOVÉ POLE vložíme (dle obr. 9-20) textové pole do horní, pravé a

dolní části potisku.

OBR. 9-20: POTISK CD V APLIKACI PUBLISHER

226 Publisher nabízí šablony pro typy publikací: Brožury, Bulletiny, Dárkové poukázky, Diplomy, E-mail, Formuláře,

Hlavičkový papír, Kalendáře, Karty s pozdravem, Katalogy, Menu, Nápisy a výstrahy, Obálky, Oznámení, Papírové skládanky, Pohlednice, Pozvánky, Programy, Přání, Reklamy, Stručné publikace, Štítky, Vizitky, Webové servery, Životopisy.

Access → Publisher

P97 Publisher Podniky Faktury Licence Programy Personal (178 vět)

Enc-09-07b.pub

Page 201: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 201

− Z menu zadáme příkaz NÁSTROJE, HROMADNÉ KORESPONDENCE A KATALOGY, HROMADNÁ

KORESPONDENCE. − V prvním kroku průvodce hromadnou korespondencí ponecháme vybranou volbu Použít

existující seznam. − Ve druhém kroku průvodce dohledáme datový zdroj Encian.accdb a v něm vybereme dotaz

P97 Publisher. V seznamu záznamů datové sady ponecháme vybrány všechny záznamy. Klepneme do tlačítka OK. Ze seznamu polí přetáhneme do horního pole potisku pole Program. Stisknutím klávesy Enter vložíme nový řádek. Vložíme pole Program_v.

− Označíme text horního pole a změníme v panelu nástrojů Formát formátování. Zadáme tučné písmo velikosti 18 vyrovnané na střed.

− Obdobně vložíme text do pravého pole: • Na začátku je volný řádek. • Na druhém řádku je text Licence, po mezeře pole Sériové_číslo. • Po dvou volných řádcích je vloženo pole Cena. Z nabídky vyvolané klepnutím do

inteligentního tlačítka Pole hromadné korespondence vybereme FORMÁTOVAT MĚNU a upřesníme počet desetinných míst na 0.

• Označíme text pravého pole a změníme v panelu nástrojů Formát formátování. Zadáme písmo velikosti 14 vyrovnané na střed.

− Obdobně vložíme text do dolního pole: • V prvním řádku je text IČ vlastníka:, za ním vloženo pole IČ. • V druhém řádku je vloženo pole Název_podniku. • Ve čtvrtém řádku je vloženo pole Datum. Z nabídky vyvolané klepnutím do inteligentního

tlačítka Pole hromadné korespondence vybereme FORMÁTOVAT DATUM A ČAS a upřesníme formát na 5.1.2009.

• Označíme text dolního pole a změníme v panelu nástrojů Formát formátování. Zadáme písmo velikosti 14 vyrovnané na střed.

− Příkazem VLOŽIT, OBRÁZEK, ZE SOUBORU vložíme obrázek Encian_logo.png nad horní pole a upravíme jeho velikost.

− Příkazem VLOŽIT, OBRÁZEK, ZE SOUBORU vložíme obrázek Encian_uzivatel.png do levé části potisku a upravíme jeho velikost.

− Klepnutím mimo pole se vždy zobrazí hodnota polí z první věty dotazu. V podokně úloh HHrroommaaddnnáá kkoorreessppoonnddeennccee v poli Náhled příjemce můžeme nastavit zobrazení dat z jiné věty.

− Ve třetím okně průvodce můžeme publikaci vytisknout, sloučit do nové publikace nebo zobrazit její náhled. Zobrazíme náhled.

9.8 Hypertextové odkazy Hypertextové odkazy mohou být z databáze Accessu směrovány:

− na lokální soubory, − na soubory umístěné na webu, především na webové stránky.

Hypertextové odkazy mohou být: − nesvázané s obsahem databáze, potom jsou součástí formulářů227, − svázané s obsahem databáze, jejich obsah je potom diferencován pro jednotlivé věty dle

obsahu pole typu Hypertextový odkaz. Svázaný hypertextový odkaz může být součástí tabulky, výsledků dotazu, formuláře.

Nesvázané hypertextové odkazy budeme demonstrovat v novém formuláři: − V kartě VYTVOŘIT ve skupině FFoorrmmuulláářřee klepneme do tlačítka Prázdný formulář. − V návrhovém zobrazení v kartě NÁVRH ve skupině OOvvllááddaaccíí pprrvvkkyy klepneme do tlačítka

Vložit hypertextový odkaz nebo stiskneme kombinaci kláves Ctrl K. − V dialogovém okně VVlloožžiitt hhyyppeerrtteexxttoovvýý ooddkkaazz (viz obr. 9-21) můžeme v levé části vybrat

ze tří možností:

227 Hypertextový odkaz může být také součástí také sestavy, zde by však nebyl využitelný.

Cíl odkazů

Vazba odkazů

Nesvázané odkazy

P98d Odkazy

Page 202: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 202

OBR. 9-21: DIALOGOVÉ OKNO VLOŽIT HYPERTEXTOVÝ ODKAZ

• Existující soubor nebo webová stránka:

» Tlačítkem Procházet můžeme vybrat dostupný soubor (na lokálním či dostupném síťovém disku).

» Tlačítkem Procházet web spustíme webový prohlížeč, v němž dohledáme stránku, klepnutím zpět na okno VVlloožžiitt hhyyppeerrtteexxttoovvýý ooddkkaazz se adresa stránky vloží do pole Adresa.

• Objekt v této databázi: » Vybereme typ objektu (tabulky, dotazy, formuláře, sestavy, makra, moduly) a konkrétní

objekt, na nějž se chceme odkázat. • E-mailová adresa:

» Můžeme zadat E-mailovou adresu a Předmět, které budou použity pro odeslání e-mailu z databáze poštovním programem nastaveným na počítači.

− V našem případě využijeme objekt v této databázi, vybereme tabulku Personal. Upřesníme odkaz: • Do pole Zobrazený text zapíšeme Tabulka Personal. Tento text se bude zobrazovat ve

formuláři. • Klepneme do tlačítka Komentář a v dialogovém okně NNaassttaavviitt kkoommeennttáářř

hhyyppeerrtteexxttoovvééhhoo ooddkkaazzuu zapíšeme text Otevření tabulky Personal. Tento text se zobrazí v samostatném rámečku, když se přiblížíme kurzorem k odkazu ve formuláři.

− Obdobně doplníme do formuláře další odkazy, vždy klepnutím v návrhu označíme předchozí odkaz, aby se další umístil pod něj: • na dotaz P42a Křestní jména • na formulář P52a Personal – Identifikace • na sestavu P66 Telefonní seznam

Obdobně nachystáme odkazy na lokální soubory: − První odkaz bude na dokument Wordu 2007 Enc-09-08a.docx, který obsahuje tabulku cen

programů. Každý program má v dokumentu svou záložku228: • Klepneme na odkaz na sestavu. • Stiskneme kombinaci kláves Ctrl K. • Vybereme odkaz na Existující soubor nebo webovou stránku. • Dohledáme soubor Enc-09-08a.docx. • Do pole Zobrazený text zapíšeme Word – záložka FIN. • Do pole Adresa doplníme za odkaz #FIN, což upřesní odkaz na záložku. • Odkaz přemístíme do druhého sloupce odkazů (8 cm od levého okraje).

− Druhý odkaz je na sešit Excelu 2007 Enc-09-08b.xlsx, který obsahuje v prvním listě List1 tabulku cen programů a ve druhém listě Graf graf cen programů. Upřesníme skok na záložku (název) FIN229.

228 Ve Wordu 2007 jsme v přehledu programů označili tažením zkratku názvu jednotlivého programu a v kartě

VLOŽENÍ ve skupině OOddkkaazzyy jsme klepnuli do tlačítka Záložka. V dialogovém okně ZZáálloožžkkaa jsme záložku přidali tlačítkem Přidat.

Enc-09-08a .docx

Enc-09-08b .xlsx

Page 203: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 203

− Třetí odkaz je na buňku A1 listu Graf sešitu Enc-09-08b.xlsx. Upřesníme skok na záložku

(buňku) Graf!A1. − Čtvrtý odkaz je na prezentaci PowerPointu 2007 Enc-09-08c.pptx, která obsahuje na

jednotlivých snímcích ceny programů. Upřesníme skok na záložku (snímek) 2. V návrhu formuláře zobrazíme seznam vlastností. Vidíme, že adresu odkazu umisťuje

Access do dvou formátových vlastností: − Adresa odkazu: soubor, popř. webová adresa, v případě objektu ve stejné databázi

nevyplněn,230 − Podadresa odkazu: záložka, název, snímek, popř. záložka na webové stránce, v případě

objektu ve stejné databázi je zde anglický název typu objektu (např. Table) a po mezeře název konkrétního objektu (např. Personal).

Obdobně můžeme vlastnosti doplnit k tlačítku: − V kartě NÁVRH ve skupině OOvvllááddaaccíí pprrvvkkyy klepneme do tlačítka Tlačítko. Vymezíme

tlačítko v prvním sloupci odkazů. − Upravíme formátové vlastnosti tlačítka: • Titulek: Makro P72 Makro, • Podadresa odkazu: Macro P72 Makro231.

Výsledný stav formuláře je uveden v obr. 9-22.

OBR. 9-22: FORMULÁŘ P98D ODKAZY

V tabulce Personal jsou odkazy na webové stránky jednotlivých zaměstnanců uvedeny formou svázaného hypertextového odkazu. Pole Web můžeme naplnit automaticky aktualizačním dotazem. Vytvoříme dvě jeho verze: − webové adresy – čerpání stránek zaměstnanců z webu (viz obr. 9-23)

V aktualizačním dotazu naplníme první dvě složky hypertextového odkazu: • Do zobrazovaného textu naplníme konstantní text Internet a po pomlčce doplníme jméno a

příjmení. • Do adresy odkazu vygenerujeme adresu na webu. • Funkci Ident jsme definovali v modulu P94 Ident (viz kap. 9.4), vrací prvních 8 znaků

příjmení bez háčků a čárek, v případě Škody doplní první písmeno křestního jména, neboť zaměstnanci s příjmením Škoda jsou ve firmě dva.

OBR. 9-23: AKTUALIZAČNÍ DOTAZ P98E WEBOVÉ ADRESY

− lokální adresy – čerpání stránek zaměstnanců ze složky databáze (viz obr. 9-24). • První složka hypertextového odkazu je stejná. • Do adresy vygenerujeme odkaz na soubor index.htm v patřičné podsložce složky web,

která je umístěna ve stejné složce jako databáze.

229 V Excelu 2007 jsme v tabulce cen označili první dva sloupce a v kartě VZORCE jsme ve skupině DDeeffiinnoovvaatt nnáázzvvyy

klepnuli do tlačítka Vytvořit z výběru a vybrali jsme Levý sloupec. 230 Cesta se ukládá celá, pro univerzální použití je vhodné zkrátit ji na pouhý název souboru a předpokládat umístění

souboru ve stejné složce jako databáze. 231 Odkaz by nebyl funkční, pokud bychom vyplnili pro databázi vlastnost Základ hypertextového odkazu (tlačítko

Office, SPRAVOVAT, VLASTNOSTI DATABÁZE, karta Souhrnné informace).

Enc-09-08c .pptx

Svázané odkazy

P98e Webové adresy

P98f Lokální adresy

Page 204: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 204

OBR. 9-24: AKTUALIZAČNÍ DOTAZ P98F LOKÁLNÍ ADRESY

Svázaný hypertextový odkaz zobrazíme v speciálním poli prohlížeče ve formuláři (cílový stav formuláře je uveden v obr. 9-25):

OBR. 9-25: FORMULÁŘ P98G WEB STRÁNKA A FOTO – ZOBRAZENÍ

− V kartě VYTVOŘIT ve skupině FFoorrmmuulláářřee klepneme do tlačítka Návrh formuláře. − V datové vlastnosti formuláře Zdroj záznamů vybereme tabulku Personal. − Do formátových vlastností formuláře Dělení osy x mřížky a Dělení osy y mřížky vložíme

hodnotu 5. − Do formátové vlastnosti těla Barva pozadí vybereme Formulář pozadí. − Do formuláře umístíme textové pole E_mail a tři textová pole daná výrazy (viz obr. 9-26):

OBR. 9-26: FORMULÁŘ P98G WEB STRÁNKA A FOTO – HORNÍ ČÁST NÁVRHU

• WWW_text:

=HyperlinkPart([WWW];1) • WWW_odkaz:

=HyperlinkPart([WWW];2) • Foto_odkaz:

="web/" & Ident([Příjmení];[Jméno]) & "/" & Ident([Příjmení];[Jméno]) & ".gif" Textová pole s výrazy rekapitulují, které odkazy budeme zobrazovat ve spodní části formuláře. Kromě webové stránky zobrazujeme také fotografii zaměstnance ze souboru v jeho složce (lokální odkaz do složky databáze např. web/Adamec/ Adamec.gif).

− Zobrazování obsahu odkazu probíhá ve speciálním ovládacím prvku. V kartě NÁVRH ve skupině OOvvllááddaaccíí pprrvvkkyy klepneme do tlačítka Vložit ovládací prvek ActiveX a vybereme volbu MICROSOFT WEB BROWSER. Ovládací prvek umístíme pod textová pole a upravíme jeho parametry: • formátová vlastnost Šířka: 7,6 cm • formátová vlastnost Výška: 6 cm

P98g Web stránka a foto

Ovládací prvek ActiveX

Page 205: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 205

• jiná vlastnost Název: Web_p.

− Analogicky vytvoříme napravo druhý objekt s názvem Foto_p. − V zobrazení formuláře se na místě ovládacího prvku Prohlížeč zobrazuje zatím bílý

obdélník. Musíme ještě určit, jaký odkaz se má v prvku realizovat, a to metodou Navigate. − Úpravu zapíšeme do procedury, která se bude spouštět při přechodu na další větu. V řádku

vlastnosti Při události Current formuláře klepneme na konci do tlačítka se třemi tečkami. − Nejprve zapíšeme redukovaný obsah procedury, která bude funkční pouze pro webové

stránky zobrazované z Internetu (viz obr. 9-27).

OBR. 9-27: REDUKOVANÁ LOKÁLNÍ PROCEDURA FORMULÁŘE P98G STRÁNKA A FOTO

Private Sub Form_Current() Web_p.Navigate Form("Web_odkaz") End Sub

− Pro obrázky a pro webové stránky čerpané z lokálního adresáře proceduru doplníme o další

příkazy (viz obr. 9-28).

OBR. 9-28: ROZŠÍŘENÁ LOKÁLNÍ PROCEDURA FORMULÁŘE P98G STRÁNKA A FOTO

Private Sub Form_Current() Dim System_souboru 'Webová stránka Web_a = Form("Web_odkaz") If Left(Web_odkaz, 4) = "web/" Then Web_a = "file://" & Application.CurrentProject.Path & "/" & Web_a End If Web_p.Navigate Web_a 'Fotografie Foto_a = Application.CurrentProject.Path & "/" & Form("Foto_odkaz") Foto_p.Navigate "file://" & Foto_a Set System_souboru = CreateObject("Scripting.FileSystemObject") If System_souboru.FileExists(Foto_a) Then Foto_p.Visible = True Else Foto_p.Visible = False End If End Sub

− Metoda Navigate zobrazí do ovládacího prvku typu prohlížeč s názvem Web_p stránku

z adresy, která je dána odkazem v zobrazeném poli formuláře Web. − V případě odkazu na soubor (začíná textem web/) v poli Web, doplní modul na začátek

odkazu počáteční specifikaci file:// a odkaz na složku, v níž je uložena databáze. − Metoda Navigate zobrazí do ovládacího prvku typu prohlížeč s názvem Foto_p stránku ze

souboru, jehož adresa je dána složkou uložení webových stránek, podsložku dle identu a názvem souboru dle identu s příponou gif, tj. fotografie ve formátu gif.232

− V proceduře je ošetřen případ, kdyby fotografie zaměstnance nebyla dostupná. V tom případě by ovládací prvek prohlížeče nebyl viditelný.

− Ve formuláři provedeme úpravy vlastností: − formátová vlastnost Volič záznamů: ne, − datová vlastnost Povolit přidávání: ne, − datová vlastnost Povolit odstranění: ne, − datová vlastnost Povolit úpravy: ne.

− Ve formuláři tak máme zobrazeny příslušné webové stránky a fotografie. Díky vhodně nastaveným vlastnostem formulář slouží pouze k prohlížení, nemůžeme zde omylem provést žádné úpravy obsahu v tabulce Personal.

232 Fotografie by byly pravděpodobně uloženy ve formátu jpg. Formát gif je vhodnější pro kreslené obrázky, kterými

„fotografie“ v ilustrativní databázi jsou. Obrázky ve formátu wmf z galerie klipartů byly v aplikaci Visio zmenšeny tak, aby žádný z jejich rozměrů nebyl větší než 200 bodů, a byly exportovány do formátu gif.

Navigate

Page 206: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 206

9.9 Web a SharePoint

Data z Accessu lze publikovat na webu. Vytvořené webové stránky mohou být: − statické: jednorázový export do formátu html, který lze aktualizovat jen dalším exportem, tj.

dalším generováním stránky, − dynamické: stránka je generována vždy při jejím prohlížení na základě aktualizovaných dat

z databáze. Některé objekty Accessu lze exportovat do dokumentu ve formátu html a publikovat

na webu. Jedná se především o tabulky. Budeme exportovat tabulku Oddělení: − V navigačním podokně klepneme do tabulky Oddělení. − V kartě EXTERNÍ DATA ve skupině EExxppoorrtt klepneme do tlačítka Další a vybereme

DOKUMENT HTML. − V dialogovém okně EExxppoorrtt upřesníme název Odd a umístění souboru, zaškrtneme možnosti: • Exportovat data s formátováním a rozložením • Po dokončení operace exportu otevřít cílový soubor

− V dialogovém okně MMoožžnnoossttii vvýýssttuuppuu HHTTMMLL nevybereme šablonu233 a ponecháme Výchozí kódování.

− Access vygeneruje soubor ve formátu html a zobrazí jej ve webovém prohlížeči. Data jsou zobrazena ve formě tabulky (viz obr. 9-29).

− Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu.

OBR. 9-29: TABULKA ODDĚLENÍ VE FORMÁTU HTML

Obdobně můžeme ukládat další objekty: − Exportem dotazu se uloží výsledná datová sada ve formě tabulky. − Exportem formuláře se uloží podkladová data z formuláře ve formě tabulky bez ohledu na

uspořádání dat ve formuláři. − Exportem sestavy se uloží jednotlivé stránky sestavy do samostatných souborů v podobném

uspořádání jako v sestavě. Nejsou exportována případná ohraničení ovládacích prvků. Access může také čerpat data z webových stránek. Využijme k tomu, tabulku

Oddělení exportovanou do souboru Odd ve formátu html: − V kartě EXTERNÍ DATA ve skupině IImmppoorrtt klepneme do tlačítka Další a vybereme

DOKUMENT HTML. − V dialogovém okně NNaaččíísstt eexxtteerrnníí ddaattaa upřesníme umístění a soubor zdroje importu. Dále

upřesníme, jak a kam data uložíme. Data můžeme importovat do nové tabulky, připojit do stávající tabulky nebo propojit. Ponecháme vybranou volbu Importovat zdrojová data do nové tabulky v aktuální databázi.

− V prvním okně průvodce zaškrtneme pole První řádek obsahuje hlavičky sloupců234. − V druhém okně ponecháme nabízené názvy a typy importovaných polí. − Ve třetím okně vybereme primární klíč Oddělení. − V čtvrtém okně zadáme název nové tabulky Oddělení importovaná z webu. Tlačítkem

Upřesnit lze zadat speciální parametry importu a tyto parametry importu lze uložit do databáze ve formě specifikace.235

233 Šablona ovlivňuje formátování výsledné stránky, např. barvu pozadí. 234 První řádek obsahuje hlavičky sloupců jen tehdy, když jsme při exportu použili volbu Exportovat data

s formátováním a rozložením v dialogovém okně EExxppoorrtt. 235 Pokud se před dokončením importu zobrazí chybové hlášení Oddělovač polí textového souboru je shodný

s oddělovačem desetinných míst nebo s oddělovačem textu, upravíme pole Desetinný symbol ve specifikaci na tečku.

Statické stránky

Access → web

Web → Access

Import tabulky z webu

Oddělení importovaná z webu

Page 207: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 207

− Tlačítkem Dokončit importujeme tabulku.236 − Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů importu.

Importovaná tabulka je okamžitým snímkem dat z webu. Automatickou aktualizaci můžeme zajistit připojením tabulky z webu: − V kartě EXTERNÍ DATA ve skupině IImmppoorrtt klepneme do tlačítka Další a vybereme

DOKUMENT HTML. − V dialogovém okně NNaaččíísstt eexxtteerrnníí ddaattaa upřesníme umístění a soubor zdroje importu. Dále

vybereme volbu Vytvořit odkaz na zdroj dat vytvořením propojené tabulky. − V prvním okně zaškrtneme pole První řádek obsahuje hlavičky sloupců. − V druhém okně ponecháme nabízené názvy a typy importovaných polí. − Ve třetím okně zadáme název nové tabulky Oddělení propojená z webu. Tlačítkem Dokončit

propojíme tabulku. Demonstrujme si nyní rozdíl mezi importem a propojením.

− V tabulce Oddělení přidáme novou větu smyšleného oddělení ZAH, zahraničí, Novak.Petr. − Tabulku exportujeme do dokumentu html. − Když si nyní zobrazíme importovanou a propojenou tabulku, vidíme, že nové oddělení je

uvedeno pouze v propojené tabulce. − V tabulce Oddělení potom větu smyšleného oddělení odstraníme. Odstraníme také tabulky

Oddělení importovaná z webu a Oddělení propojená z webu. Pro úplnost dodejme, že při pokusu o import či propojení souboru, který obsahuje více

tabulek, se v horní části prvního okna průvodce objeví seznam tabulek, z nichž vybereme tabulku určenou k importování či propojení.

Dynamické stránky načítají data z databáze tak, aby byly aktuální a snadno generované. Jedním z prostředků publikace dynamických stránek je aplikace SharePoint.

SharePoint je integrovaná platforma pro intranet i internet firmy. Předpokladem využití je instalace SharePointu na serveru237. V kap. 3 jsme poznali, že v rámci SharePointu je možné snadno vytvářet seznamy (databázové tabulky) a aktualizovat je prostřednictvím webového rozhraní či prostřednictvím Accessu. Seznam SharePointu je možné také vytvořit z Accessu.

Databázi firmy Encián uložíme na serveru SharePoint, kde nadále budeme aktualizovat data prostřednictvím Accessu. Data budou dostupná také dalším uživatelům serveru SharePoint podle přístupových práv.

Postup přesunu databáze na server SharePoint: − Na serveru SharePointu připravíme vhodný web Encián.238 − Na serveru SharePointu připravíme v rámci založeného webu knihovnu dokumentů Objekty

Accessu.239 − V databázi v tabulce Personal nejprve nastavíme webové odkazy místo lokálních odkazů

aktualizačním dotazem P98e Webové adresy. − V kartě EXTERNÍ DATA ve skupině SSeezznnaammyy sseerrvveerruu SShhaarreePPooiinntt klepneme do tlačítka

Přesunout na server SharePoint. − V prvním okně průvodce: • Zapíšeme adresu nově vytvořeného webu např. http://min.vse.cz/access/encian, • Zaškrtneme pole Umožňuje uložit kopii databáze... • Klepneme do tlačítka Procházet a po chvíli a po přihlášení se k serveru SharePointu

vybereme knihovnu Objekty_Accessu v pracovním prostoru nového webu. Po výběru 236 Všechna textová pole importované tabulky mají ve struktuře tabulky definovánu velikost 255. 237 K dispozici je verze Windows SharePoint Services např. ve verzi 3, která je zdarma součástí Windows Serveru

2003. Větší rozsah funkcí nabízí SharePoint Server např. ve verzi 2007. Data ukládá SharePoint do vlastní databáze nebo do databáze Microsoft SQL serveru např. ve verzi 2005.

238 V rámci vhodného webu po přihlášení zadáme příkaz AKCE WEBU, VYTVOŘIT. Na stránce VVyyttvvoořřiitt v sekci WWeebboovvéé ssttrráánnkkyy vybereme volbu Weby a pracovní prostory. Na stránce NNoovvýý wweebb v sekci VVýýbběěrr ššaabblloonnyy zadáme Prázdný web. Do pole Nadpis zapíšeme Encián, do pole Popis zapíšeme Data z databáze Encián, do pole URL dopíšeme encian. Použijeme jedinečná oprávnění a nepřevezmeme horní panel odkazů z nadřazeného webu. Práci se stránkou ukončíme tlačítkem Vytvořit. Po chvíli jsme dotázáni na nastavení skupin uživatelů pro tento web. Klepneme do tlačítka OK.

239 V nově vytvořeném webu zadáme příkaz AKCE WEBU, VYTVOŘIT. Na stránce VVyyttvvoořřiitt v sekci KKnniihhoovvnnyy vybereme volbu Knihovna dokumentů. Na stránce NNoovváá do pole Název zapíšeme Objekty_Accessu, do pole Popis zapíšeme Objekty Accessu, do pole Šablona dokumentu vybereme Žádný.

Připojení tabulky z webu

Dynamické stránky SharePoint

Přesun na server SharePoint

Page 208: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 208

klepneme na stránce výběru do tlačítka Otevřít a po chvíli do tlačítka OK. Klepnutím do tlačítka Další přejdeme na další část průvodce.

− Průvodce postupně připravuje seznamy na serveru SharePoint a přesouvá do nich data z jednotlivých tabulek. Potom kopíruje na web databázi (s propojením na seznamy SharePointu) do vybrané knihovny.

− V posledním okně průvodce je informace o nastavení sdílení tabulek a upozornění, že při přesouvání tabulek došlo k problémům. Zaškrtneme pole Zobrazit podrobnosti a klepneme do tlačítka Dokončit.

− Po dokončení přesunu: • Na webu Encian byly vytvořeny seznamy, které obsahují data jednotlivých tabulek. • Access vytvořil záložní kopii databáze se stejným názvem rozšířeným o text _Záloha. • Databáze byla zkopírována do knihovny Objekty_Accessu na webu Encián. • Problémy při přesouvání tabulek souvisí s drobnými rozdíly uložení dat v Accessu a

SharePointu. Seznam problémů je uložen v Accessu v tabulce Problémy s přesunutím na web služby SharePoint. Mezi základní důvody problémů patří: » SharePoint nepodporuje referenční integritu. » SharePoint nepodporuje kaskádové aktualizace souvisejících polí. » Nelze vynutit jedinečný index v jiných polích než ID. » Nelze uplatnit pravidla ověřování platnosti dat. » SharePoint nepodporuje typ dat Desetinné číslo, je nahrazen polem typu Číslo nebo

Dvojitá přesnost. » SharePoint nepodporuje typ dat OLE Object.

• Do Accessu je propojen Seznam informací o uživatelích s nastavenými přístupovými právy.

Data jsou nyní uložena na serveru SharePoint a je možné je upravovat: − ve webovém prostředí SharePointu, které obsahuje seznamy, − v prostředí Accessu, jehož databáze obsahuje tabulky propojené do webu Encián.

Upravíme data seznamu Oddělení: − Ve webovém prohlížeči zadáme adresu webu Encián, např. http://min.vse.cz/access/encian. − Přihlásíme se k serveru SharePointu. − V levé navigaci Snadné spuštění klepneme do volby Seznamy. − Zobrazí se přehled všech seznamů (tabulek). Pro každý seznam je uveden počet položek

(vět) a čas poslední aktualizace. − Klepneme do seznamu Oddělení. − V rámci seznamu Oddělení klepneme do odkazu Všechny položky a vybereme UPRAVIT TOTO

ZOBRAZENÍ. − Na stránce UUpprraavviitt zzoobbrraazzeenníí zaškrtneme sloupec Upravit (odkaz pro úpravu položky) a

klepneme do tlačítka OK. − Zobrazí se seznam Oddělení s doplněným sloupcem tlačítka pro úpravy jednotlivých vět (viz

obr. 9-30).

OBR. 9-30: SEZNAM ODDĚLENÍ

− Řádky (věty) jsou seřazeny dle zkratky oddělení, tj. dle sloupce (věty) Oddělení. − Klepneme do tlačítka Upravit v řádku REK. Zobrazí se stránka s možností editace

jednotlivých polí (viz obr. 9-31).

Aktualizace dat na webu

Page 209: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 209

OBR. 9-31: ÚPRAVA POLOŽKY (VĚTY) REK

− Na stránce můžeme: • upravit hodnoty jednotlivých polí a úpravy potvrdit tlačítkem OK, • odstranit větu klepnutím do horního odkazu Odstranit položku, odstranění je nutno potvrdit

v samostatném okně, • stornovat provedenou editaci polí tlačítkem Storno, což provedeme v našem případě.

− Vrátili jsme se na seznam Oddělení. Volbou NOVÝ, NOVÁ POLOŽKA můžeme doplnit opět ve formuláři novou větu do tabulky.

Pohodlnější práci s daty umožňuje Access. Databázi s propojením na seznamy serveru SharePoint můžeme stáhnout z webu Encián: − V levé navigaci Snadné spuštění klepneme na odkaz Objekty_Accessu ve skupině

DDookkuummeennttyy. − Zobrazí se seznam dokumentů knihovny Objekty_Accessu. Klepnutím do odkazu na databázi

můžeme databázi stáhnout. Případné změny provedené v databázi Accessu se díky propojeným tabulkám

automaticky promítnou na webu a také změny na webu se promítnou v databázi Accessu. V databázi Accessu nemůžeme již provádět změny struktury tabulek. Tabulky jsou

propojeny do SharePointu, případné změny by bylo nutné provádět v seznamech na webu. V databázi Accessu můžeme provádět změny ostatních objektů (např. formulářů a

sestav). Rychlejší publikaci na server SharePointu umožňuje tlačítko Publikovat na web služby SharePoint nad navigačním podoknem. Klepnutím do tlačítka jsme po chvíli dotázáni na objekt knihovny, který máme aktualizovat. Po klepnutí do tlačítka Publikovat provedeme aktualizaci databáze (všech objektů s výjimkou tabulek) na webu.

Access je přichystán i na možnost, že nebudeme moci být neustále připojeni k Internetu. Můžeme provádět změny v režimu offline. Na služební cestě bez dosahu Internetu budeme postupovat následovně: − V kartě EXTERNÍ DATA ve skupině SSeezznnaammyy sseerrvveerruu SShhaarreePPooiinntt klepneme do tlačítka

Pracovat offline. − Změníme nyní: • v Accessu název oddělení REK na propagace a vedoucího PRG na Klimova.Jana, • na webu název oddělení KON na poradenství a vedoucího PRG na Sladkova.Alice.

− Po návratu ze služební cesty se připojíme k Internetu a zvolíme jednu z možností: • klepnutím do tlačítka Zahodit změny a volbou Zahodit všechny změny naše změny

zapomenout a nepřipojovat se k serveru SharePointu, • klepnutím do tlačítka Zahodit změny a volbou Zrušit všechny změny a aktualizovat naše

změny zapomenout, ale převzít změny ze serveru SharePointu, • klepnutím do tlačítka Synchronizovat promítnout naše změny na server SharePointu a

převzít změny ze serveru. V případě konfliktů, tj. změn v Accessu i na webu od poslední synchronizace se při

synchronizaci zobrazí dialogové okno VVyyřřeeššiitt kkoonnfflliikkttyy, v němž rozhodneme, která úprava se bude akceptovat (viz obr. 9-32).

Aktualizace dat v Accessu Aktualizace databáze na webu

Page 210: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 9: Externí data 210

OBR. 9-32: DIALOGOVÉ OKNO VYŘEŠIT KONFLIKTY

Shrnutí

1. Access nabízí četné možnosti využití jeho dat jinými aplikacemi či využití dat jiných aplikací v Accessu formou zpracování externích dat.

2. Ve Wordu je možné připravit formulář s poli podobnými svázaným ovládacím prvkům ve formuláři Accessu. Dokument formuláře je možné zamknout tak, aby bylo možné editovat jen obsah polí formuláře. Po vhodném uložení dat formuláře do textového souboru je možné data importovat do Accessu.

3. Data z Accessu je možné využít ve Wordu formou uložení datové sady či sestavy ve formátu rtf nebo vytvořením dokumentu hromadné korespondence (z Accessu či z Wordu) ve Wordu tak, aby dokument načítal data do dopisu, obálek a dalších dokumentů z datové sady Accessu.

4. Data z datových sad Accessu je možné exportovat do textových souborů, pole mohou být oddělena oddělovači či mohou mít pevnou délku. Access může také importovat nebo propojit data z textových souborů.

5. Data z datových sad Accessu je možné exportovat do jednotlivých listů sešitu Excelu. Naopak je možné vytvořit tabulku načtením z listů či nazvaných oblastí Excelu.

6. Access nenabízí možnost exportu do PowerPointu ani importu z PowerPointu. Data je možné exportovat využitím modulu. V modulu je možné přidat knihovnu příkazů PowerPointu a v modulu Accessu využívat příkazy Visual Basicu pro práci s PowerPointem.

7. Tabulky je možné načíst či propojit z jedné do druhé databáze Accessu. Mezi databázemi je možné také importování všech dalších objektů (tabulek, dotazů, formulářů, sestav, maker, modulů, relací, specifikací).

8. Visio umí data z Accessu vizualizovat v uživatelem vytvořených diagramech či automaticky generovaných diagramech (organizační struktura, kontingenční diagramy).

9. V Accessu je možné prohlédnout data z projektu Projectu a dále je analyzovat. 10. Access umí importovat či propojit data ze složek Outlooku, např. z kontaktů a úkolů. Data

lze také exportovat z Outlooku do Accessu. Outlook může být prostředníkem shromažďování dat od uživatelů formou formulářů v html formátu.

11. Data je možné z Accessu přenést do OneNote, kde jsou zobrazena jako tabulky. 12. Publisher umí využít obdobně jako Word data z Accessu formou hromadné

korespondence. 13. V objektech Accessu je možné se hypertextově odkazovat na další soubory či jejich části.

Odkazy mohou být nesvázané (např. formou odkazu na firemní webovou stránku) nebo svázané, tj. vložené do pole tabulky. Svázané odkazy lze ve formuláři Accessu zobrazit v poli typu prohlížeč. Obdobně lze zobrazit fotografie či obrázky uložené mimo databázi Accessu.

14. Data z Accessu lze publikovat na webu. Na web lze formou statických stránek exportovat jednotlivé tabulky, které lze z webu také čerpat.

15. Dynamickou formou publikace i možnost aktualizace stránek nabízí SharePoint. Server SharePointu může být úložištěm dat Accessu (propojených tabulek formou seznamů). Data je možné také aktualizovat lokálně a později se seznamy SharePointu synchronizovat.

Page 211: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 211

10. Databázové nástroje

10.1 Přehled V poslední kapitole budou vyloženy:

− nástroje nabízené v kartě DATABÁZOVÉ NÁSTROJE, jsou rozděleny do pěti skupin: •• Makro, Makro,•• Zobrazit či skrýt, Zobrazit či skrýt,•• Analyzovat, Analyzovat,•• Přesunout data, Přesunout data,•• Databázové nástroje. Databázové nástroje.

− nastavení, která je možné upřesnit po klepnutí do tlačítka Office a tlačítka Možnost aplikace Access,

− příkazy dostupné po klepnutí do tlačítka Office.

10.2 Skupina Makro Ze skupiny MMaakkrroo je možné:

− tlačítkem Visual Basic nebo kombinací kláves Alt F11 přejít do okna Visual Basicu – prostředí, v němž jsme připravovali moduly (viz kap. 8),

− tlačítkem Spustit makro zobrazit nabídku maker (viz kap. 7) a spustit některé z nich, jedná se o makra dostupná z navigačního podokna, nikoliv vnořená makra spouštěná z jiného objektu,

− tlačítkem Převést makra do jazyka Visual Basic můžeme makro převést do samostatného modulu: • V navigačním podokně vybereme makro např. P72 Makro. • Klepneme do tlačítka Převést makra do jazyka Visual Basic. • V dialogovém okně Převést makro ponecháme zaškrtnuté obě volby a klepneme do

tlačítka Převést. Převést makro

• Vytvoří se samostatný modul Převedené makro-P72 Makro s uživatelskou funkcí P72_Makro. Funkci bychom mohli použít např. z prázdného formuláře klepnutím do tlačítka a příkazem X = P72_Makro(). Modul nám může sloužit jako inspirace využití příkazů Visual Basicu.

Databázové nástroje umožňují upravit místní nabídku formuláře. Změníme místní nabídku formuláře pro vstup data o zaměstnancích, využijeme k tomu makro P76 Menu, které obsahuje skupinu dílčích maker: − V navigačním podokně klepneme na makro P76 Menu. − V kartě DATABÁZOVÉ NÁSTROJE ve skupině Makroo klepneme do tlačítka Vytvořit místní

nabídku z makra. Makr

− Zkopírujeme formulář P52a Personal – Identifikace pod názvem PA2a Personal – Identifikace a otevřeme nový formulář v návrhovém zobrazení.

− Do jiné vlastnosti formuláře Řádek místní nabídky vybereme P76 Menu. − Ve formulářovém zobrazení klepneme do pozadí formuláře pravým tlačítkem. Původní

místní nabídka je nahrazena nabídkou dílčích maker makra P76 Menu. − Možnost využití místní nabídky můžeme dočasně potlačit zadáním volby ne do jiné

vlastnosti Místní nabídka. − K původní místní nabídce se můžeme vrátit vymazáním hodnoty v jiné vlastnosti Řádek

místní nabídky. Vytvořená místní nabídka může být výchozí pro všechny objekty databáze:

− Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Access. − V kartě AKTUÁLNÍ DATABÁZE ve skupině Možnosti pásu a panelu nástrojů vybereme místní

nabídku v poli Řádek místní nabídky. (Nabízí se pouze makra, z nichž jsme vytvořili místní nabídku.)

Možnosti pásu a panelu nástrojů

− Po zadání se zobrazí upozornění o nutnosti zavřít a znovu otevřít aktuální databázi. − Databázi zavřeme klepnutím do tlačítka Office a výběrem příkazu ZAVŘÍT DATABÁZI. − Databázi otevřeme výběrem ze seznamu naposledy otevřených databází v okně Začínáme. Začínáme

Databázové nástroje

Převod makra do Visual Basicu

Místní nabídka formuláře

PA2a Personal – Identifikace

Globální místní nabídka

Page 212: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 212

− Po vyzkoušení fungování v jiném formuláři do pole Řádek místní nabídky vrátíme hodnotu

výchozí, opět zavřeme a otevřeme databázi. Do formuláře můžeme doplnit samostatnou kartu DOPLŇKY:

− Nejdříve připravíme vhodné makro: • V kartě VYTVOŘIT ve skupině Makroo klepneme do tlačítka Makro. Makr• Makro bude obsahovat jedinou akci s parametry:

» Název (dílčího) makra: Užitečné » Akce: PřidatNabídku » Název nabídky: Užitečné akce » Název makra nabídky: P76 Menu » Text na stavovém řádku: Nabídka užitečných akcí.

• Makro uložíme pod názvem PA2b Užitečné akce. − Formulář PA2a Personal – Identifikace otevřeme v návrhovém zobrazení. − Do jiné vlastnosti formuláře Řádek nabídek zapíšeme (vybrat nelze) PA2b Užitečné akce. − Ve formulářovém zobrazení se doplnila karta DOPLŇKY. Obsahuje jedinou skupinu Příkazy

nabídkyy. Klepnutím do tlačítka Užitečné akce se otevře nabídka dílčích maker makra P76 Menu.

Příkazynabídk

10.3 Skupina Zobrazit či skrýt Klepnutím do tlačítka Vztahy se zobrazí relace databáze (viz kap. 2). Zobrazí se také

aplikační karta NÁVRH se skupinami NNáássttrroojjee a VVzzttaahhyy. Aplikační kartu i vztahy zavřeme klepnutím do tlačítka Zavřít ve skupině VVzzttaahhyy.

Klepnutím do tlačítka Sestava relací ve skupině NNáássttrroojjee se vygeneruje účelová sestava s diagramem relací. Sestava nemá zdroj záznamů. Jedná se o statické zobrazení vztahů mezi tabulkami. Jednotlivé prvky jsou aplikací nesvázaných ovládacích prvků sestavy: − Názvy tabulek jsou vloženy jako popisky s tmavě modrým pozadím. − Pole tabulek jsou vloženy jako seznam, v jeho datové vlastnosti zdroj řádků je seznam názvů

polí. − Relace mezi tabulkami jsou vloženy jako čáry. − Čísla u relací (1, ∞) jsou vloženy jako obrázky. − V záhlaví sestavy je uveden nadpis a aktuální datum. − V kartě VZHLED STRÁNKY je často vhodné upravit orientaci na šířku a zmenšit okraje.

Tlačítkem Seznam vlastností nebo kombinací kláves Alt Enter zobrazíme vlastnosti objektu označeného v navigačním podokně. Úplné vlastnosti se zobrazují jen pro objekty, nikoliv pro jejich zástupce vzniklé zařazením do skupiny v rámci kategorie (např. do skupiny 10 Databázové nástroje v kategorii Struktura publikace).240

V dialogovém okně VVllaassttnnoossttii oobbjjeekkttuu (viz obr. 10-1) můžeme:

OBR. 10-1: DIALOGOVÉ OKNO VLASTNOSTI OBJEKTU

240 Vyřazení ze skupiny lze provést označením zástupce ve skupině a stisknutím klávesy Delete . Objekt se neodstraní,

pouze zařadí do skupiny Nepřiřazené objekty.

Karty Doplňky ve formuláři

PA2b Užitečné akce

Vztahy

Sestava relací

Seznam vlastností

Page 213: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 213

− doplnit popis objektu241, − skrýt objekt v navigačním podokně242.

Další databázový nástroj umí zobrazit závislosti objektů Accessu: − V navigačním podokně klepneme na tabulku Oddělení. − V kartě DATABÁZOVÉ NÁSTROJE ve skupině Zobrazit či skrýt klepneme do tlačítka Závislosti

objektů. Zobrazit či skrýt

− Zobrazí se upozornění, že aktualizace informací o závislostech může být časově náročná. Klepneme do tlačítka OK.

− V podokně Závislosti objektů se zobrazí pro jednotlivé typy objektů závislosti vybraného objektu (viz

Závislosti objektůobr. 10-2). Můžeme skrýt či zobrazit závislosti jednotlivých typů objektů

klepnutím do sbalovacího tlačítka před názvem typu objektu. V horní části můžeme vybírat ze dvou možností zobrazení: • Objekty závislé na mně (např. na tabulce Oddělení), • Objekty, na kterých závisím (např. objekty, na nichž je závislá tabulka Oddělení).

OBR. 10-2: PODOKNO ZÁVISLOSTI OBJEKTŮ

Pole Panel zpráv je dostupné, jen když je zobrazen panel zpráv243. Panel zpráv nabízí možnost povolit spuštění maker, modulů, akčních dotazů (viz obr. 10-3).

OBR. 10-3: PANEL ZPRÁV

Klepnutím do tlačítka Možnosti v panelu zpráv a zadáním volby Povolit tento obsah můžeme povolit spuštění maker, modulů a akčních dotazů.

10.4 Skupina Analyzovat Pod pojmem analýza shrnuje Access tři nástroje: analýzu tabulky, analýzu výkonu

objektu, dokumentaci objektu.

241 Popis objektu se zobrazí v navigačním podokně, když v místní nabídce nadpisu navigačního podokna vybereme

ZPŮSOB ZOBRAZENÍ a zadáme PODROBNOSTI. 242 Skryté objekty lze zobrazit, když klepneme z místní nabídky nadpisu navigačního podokna, vybereme MOŽNOSTI

NAVIGACE a zaškrtneme pole Zobrazit skryté objekty. Skryté objekty jsou potom zobrazeny světle šedivým písmem a lze upravit jejich vlastnosti, tj. také zrušit skrytí objektu.

243 Zobrazení panelu zpráv souvisí s nastavením zabezpečení databáze. Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Office. V kartě Centrum zabezpečení klepneme do tlačítka Nastavení Centra zabezpečení. V kartě Nastavení maker se nastavuje stupeň zabezpečení. Aby se zobrazil panel zpráv, zadáme Zakázat makra s oznámením. V kartě Panel zpráv musí být vybrána volba Zobrazit panel zpráv ve všech aplikacích.

Závislosti objektů

Panel zpráv

Page 214: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 214

Analýza tabulky je určena ke zdokonalování návrhu tabulek. Cílem je snížit množství

informací duplicitně uváděných v tabulce za účelem zmenšení databáze a prevence chyb při aktualizaci. Tabulky v databázi Encian jsou navrženy optimálně. Pro demonstraci analýzy tabulky proto připravíme tabulku s duplicitními informacemi: − Připravíme vytvářecí dotaz PA4 Tvorba Personal_duplicity (viz obr. 10-4), který sloučí

informace z tabulek Personal a Oddělení (všechna pole tabulky Personal s výjimkou pole Přílohy a pole Oddělení_v z tabulky Oddělení).

− Dotaz vytvoří novou tabulku Personal_duplicity. (V kartě NÁVRH ve skupině Typ dotazuu klepneme do tlačítka Vytvořit tabulku a upřesníme název tabulky Personal_duplicity.)

Typ dotaz

OBR. 10-4: VYTVÁŘECÍ DOTAZ PA4 TVORBA PERSONAL_DUPLICITY

Po spuštění dotazu vznikne tabulka Personal_duplicity, kterou budeme analyzovat: − V kartě DATABÁZOVÉ NÁSTROJE ve skupině Analyzovat klepneme do tlačítka Analýza

tabulky. Analyzovat

− První dvě okna průvodce jsou pouze informativní, nezadáváme zde žádné parametry. − Ve třetím okně zrušením zatržení pole Zobrazovat úvodní stránky potlačíme zobrazování

první dvou oken průvodce při jeho dalším použití. Dále vybereme ze seznamu tabulek tabulku Personal_duplicity, kterou chceme dále analyzovat.

− Ve čtvrtém okně odpovídáme na dotaz, kdo bude rozdělovat pole analyzované tabulky. Ponecháme volbu Ano, nechám rozhodnutí na průvodci.

− V pátém okně průvodce navrhl rozdělení tabulky na čtyři tabulky. Vyčlenění polí Nadřízený a Úvazek do samostatných tabulek není vhodné: − Tažením myší pole Nadřízený přesuneme z Tabulky3 do Tabulky1 za pole Telefon. − Tažením myší pole Úvazek přesuneme z Tabulky3 do Tabulky1 za pole Charakteristika.

Odstranili jsme tak z diagramu Tabulku3 a Tabulku4. − Zbývající dvě tabulky přejmenujeme a to tak, že tabulku označíme a klepneme do tlačítka

Přejmenovat tabulku nebo poklepeme na její název. Tabulky nazveme Personal2 a Oddělení2 (viz obr. 10-5).

− V šestém okně zkontrolujeme definice primárních klíčů. Access správně určil jako klíčové pole Oddělení v tabulce Oddělení2. Klepneme do pole E_mail v tabulce Personal2 a klepnutím do tlačítka Primární klíč vybereme klíčové pole také v tabulce Personal2.

− V posledním okně zadáme, že chceme vytvořit pomocný dotaz, který nahradí původní tabulku Personal_duplicity. Klepneme do tlačítka Dokončit.

− Access zobrazí nápovědu, jejíž okno zavřeme, a otevře výběrový dotaz Personal_duplicity, který nahradil tabulku Personal_duplicity. Dotaz spojuje nově vytvořené tabulky Personal2 a Pracoviště2 tak, aby byly i nadále funkční případné dotazy, formuláře, sestavy a jiné objekty založené na datové sadě Personal_duplicity. Původní tabulka Personal_duplicity je zálohována v tabulce Personal_duplicity_OLD.

− Access automaticky vytvořil relaci mezi tabulkami Personal2 a Pracoviště2. (V diagramu relací však není zobrazena. Stačí do diagramu doplnit jednu z tabulek a z místní nabídky zadat příkaz ZOBRAZIT PŘÍMÉ RELACE.)

Analýza tabulky

PA4 Tvorba Personal_duplicity

Page 215: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 215

OBR. 10-5: PÁTÉ OKNO PRŮVODCE ANALÝZOU TABULKY

− V tabulce Personal2 si všimněme, jak Access vyřešil pole Oddělení. Pole je na konci

struktury tabulky, má titulek Vyhledávání Oddělení2. Ve struktuře tabulky jsou upraveny vlastnosti v kartě Vyhledávání: − Zobrazit ovládací prvek: Pole se seznamem, − Zdroj řádků: SELECT [Oddělení] AS xyz_ID_xyz, [Oddělení] & ', ' & [Oddělení_v] AS

xyz_DispExpr_xyz, [Oddělení], [Oddělení_v] FROM [Oddělení2] ORDER BY [Oddělení], tj. dotaz dle obr. 10-6,

OBR. 10-6: DOTAZ ZE ZDROJE ŘÁDKŮ VYHLEDÁVÁNÍ POLE PRACOVIŠTĚ

− Počet sloupců: 4, − Šířky sloupců: 0cm;0,002cm;1,685cm;2,426cm, − Šířka seznamu: 4,617cm. Vlastnost Šířky sloupců ovlivňuje nejen rozbalovaný seznam (v němž sloupce s nulovou šířkou nejsou zobrazeny), ale také text zobrazený ve sloupci, když není seznam rozbalen. Ve sloupci je zobrazen text z prvního sloupce rozbalovaného seznamu s nenulovou šířkou. V našem případě je to druhý sloupec, v němž jsou textově sloučeny pole Oddělení a Oddělení_v. V rozbalovaném seznamu však vidíme až třetí a čtvrtý sloupec, neboť šířka druhého sloupce je minimální. Uživatel tak vybírá ze seznamu, v tabulce se zobrazí sloučený řetězec, do tabulky se ukládá nezobrazená hodnota z prvního sloupce seznamu.

Access také nabízí kontrolu výkonu jednotlivých objektů. Před aplikací na databázi Encian zrušíme relaci mezi tabulkami Personal a Oddělení.244 Provedeme analýzu výkonu: − V kartě DATABÁZOVÉ NÁSTROJE ve skupině Analyzovat klepneme do tlačítka Analýza

výkonu. Analyzovat

− V prvním okně průvodce vybereme analyzované objekty. Pro ilustraci vybereme v kartě Formuláře objekt P53 Podniky – Identifikace.

− Po klepnutí do tlačítka OK se ve druhém okně zobrazí návrhy Accessu na zvýšení výkonu.245 Návrhy jsou rozděleny do kategorií (viz obr. 10-7).

244 V kartě DATABÁZOVÉ NÁSTROJE ve skupině ZZoobbrraazziitt ččii sskkrrýýtt klepneme do tlačítka Vztahy. Klepnutím označíme

relaci mezi tabulkami Personal a Oddělení a klávesou Delele ji odstraníme. 245 Případné hlášení Položka nebyla v kolekci nalezena akceptujeme klepnutím do tlačítka OK.

Analýza výkonu

Page 216: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 216

OBR. 10-7: DRUHÉ OKNO PRŮVODCE ANALÝZOU VÝKONU

Náměty kategorie Doporučení a Rada může realizovat Access sám. V našem případě označíme řádek Tabulka Stadia: Vytvořit relaci s tabulkou Podniky a klepneme do tlačítka Optimalizace. Kategorie výsledku se změní z Nápadů na Pevný. Klepnutím do tlačítka Zavřít ukončíme práci s Průvodcem analýzou výkonu. V diagramu relací doplníme k vytvořené relaci referenční integritu (včetně aktualizace souvisejících polí v kaskádě).

V předcházejících kapitolách jsme poznali, že Access obsahuje značné množství objektů. Objekty obsahují dílčí ovládací prvky, které jsou charakterizovány řadou vlastností. Access nabízí automatickou dokumentaci databáze vypsáním jejích charakteristik do sestavy: − V kartě DATABÁZOVÉ NÁSTROJE ve skupině Analyzovat klepneme do tlačítka Dokumentace

databáze. Analyzovat

− Obdobně jako při analýze výkonu vybereme objekty, které chceme dokumentovat. Pro ilustraci vybereme pouze z karty aktuální databáze objekt Relace.

− Ve formě sestavy se zobrazí dokumentace, kterou můžeme klepnutím do tlačítka Office a příkazem TISK, TISK vytisknout.

− Prohlížení sestavy ukončíme tlačítkem Zavřít náhled.

10.5 Skupina Přesunout data Pokud je databáze složitá a vyžaduje práci více uživatelů, je vhodné transformovat ji

do databáze Microsoft SQL Server, čímž se optimalizuje výkon databáze, přizpůsobivost, zabezpečení, spolehlivost, obnovitelnost a dostupnost aplikace246: − V kartě DATABÁZOVÉ NÁSTROJE ve skupině Přesunout dataa klepneme do tlačítka SQL

server. Přesunout dat

− V prvním kroku průvodce přenesením rozhodujeme, zda z objektů databáze vytváříme novou SQL databázi nebo objekty přeneseme do dříve připravené SQL databáze.

− V druhém kroku zadáváme název serveru, který musí být dostupný. Dále vyplňujeme své uživatelské jméno na serveru včetně hesla. Zadáváme také název nově vytvořené SQL databáze či existující SQL databáze, do níž přenášíme objekty naší databáze Accessu.

− Ve třetím kroku vybereme ze seznamu tabulek tabulky, které chceme do databáze SQL převést.

− V čtvrtém kroku můžeme zaškrtnutím polí zajistit také exportování dalších atributů tabulek: − indexy, − ověřovací pravidla polí i tabulek, − výchozí hodnoty polí tabulek vložených při založení nového záznamu tabulky,

246 Předpokladem úspěšného převodu na databázi SQL serveru je instalace příslušného softwaru (Microsoft SQL Server

2000 či jiná verze) na serveru a přístup na takový server.

Dokumentace

Přesun na SQL server

Page 217: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 217

− relace mezi tabulkami. Můžeme také zajistit přidávání tzv. časového razítka, do každého záznamu (věty) tabulky je potom ukládán čas vzniku či poslední změny záznamu.

− V pátém kroku zajišťujeme snadné prohlížení SQL databáze. Můžeme vytvořit tzv. projekt, v němž jsou uloženy odkazy na objekty SQL databáze (projekt je uložen do souboru s příponou adp) nebo vytvořit propojení tabulek do stávající databáze Accessu.

− V případě, že jsme v pátém kroku vybrali vytvoření projektu, máme v šestém kroku možnost vyžádat otevření projektu po ukončení převodu.

V projektu SQL databáze vidíme známé objekty tabulky, formuláře, sestavy, stránky, makra a moduly. Seznam dotazů najdeme pod záložkou Zobrazení. Navíc jsou uvedeny záložky Databázové diagramy (obdoba relací) a Uložené procedury.

Práce s objekty databáze SQL je obdobná jako v Accessu. Uspořádání návrhových zobrazení se poněkud liší, zejména pro tabulky a dotazy.

Tvorba kvalitního návrhu databáze je dlouhodobý proces. Často se stává, že když už je databáze užívána více uživateli s různými daty, chceme upravit návrhy objektů v databázi. Musíme potom obtížně data načítat do nové databáze s upravenými návrhy objektů. Je proto vhodnější osamostatnit data od návrhů objektů. Rozdělení databáze vyzkoušíme na zjednodušené verzi databáze: − Klepnutím do tlačítka Office a příkazem NOVÁ založíme novou prázdnou databázi s názvem

Encian_predni. − Do nové databáze importujeme (viz kap. 9.5) z databáze Encian.accdb objekty: • tabulky Místnosti, Oddělení, Personal, • formulář P52a Personal – Identifikace.

− V kartě DATABÁZOVÉ NÁSTROJE ve skupině Přesunout dataa klepneme do tlačítka Databáze aplikace Access.

Přesunout dat

− V prvním okně průvodce rozdělením jsou uvedeny informace o rozdělování, klepneme do tlačítka Rozdělit databázi.

− Access vytvoří dvě dílčí databáze: − přední s původním názvem Encian_predni, v níž jsou uloženy návrhy objektů a odkazy

propojením na zadní databázi s daty, − zadní s datovými tabulkami.

− V druhém okně průvodce zadáme název zadní databáze Encian_zadni247 a klepneme do tlačítka Rozdělit. Po chvíli se vypíše hlášení o rozdělení databáze. Klepneme do tlačítka OK.

− Vznikly dvě databáze: − Encian_zadni: obsahuje tabulky, − Encian_predni: obsahuje ostatní objekty s výjimkou tabulek, kterou jsou do databáze

propojeny. − Nyní již můžeme upravovat přední databázi a uživatelům ji předávat s aktualizovanými

návrhy objektů, aniž narušíme uživatelská data ze zadní databáze. Princip rozdělení je podobný jako při přesunu dat na server SharePoint (viz kap. 9.9).

10.6 Skupina Databázové nástroje Access si v přední databázi pamatuje místo uložení propojených dat. Pokud uživatel

data uloží do jiné složky (adresáře), musíme upravit propojení tabulek. K tomu slouží další nástroj Správce propojených tabulek: − Přejmenujeme složku našich databází nebo databáze přesuneme do jiné složky. − Otevřeme přední databázi Encian_predni. Poklepáním na libovolnou tabulku zobrazíme

chybové hlášení, Access předpokládá uložení zadní databáze v původní složce. − V kartě DATABÁZOVÉ NÁSTROJE ve skupině Databázové nástrojee klepneme do tlačítka

Správce propojených tabulek. Databázové nástroj

− V dialogovém okně Správce propojených tabulek je seznam propojených tabulek. Klepneme do tlačítka Vybrat vše a potom do tlačítka OK.

Správce propojených tabulek

247 Nabízí se původní název přední databáze rozšířený o písmena be (back end).

Přesun do databáze Accessu

Správce propojených tabulek

Page 218: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 218

− V dalších oknech upřesníme, kde je soubor databáze (zadní databáze) pro jednotlivé vybrané

tabulky umístěn.248 Access upraví odkazy na propojené tabulky a vypíše hlášení, které ukončíme klepnutím do tlačítka OK.249

− Ručně bychom mohli nastavit propojení tabulky také odstraněním propojení a novým připojením klepnutím do tlačítka Access ve skupině Import v kartě EXTERNÍ DATA. Import

Nástroj Správce přepínacích panelů umožňuje vytvořit soustavu panelů pro přepínání mezi jednotlivými objekty či dalšími přepínacími panely. Pro ukázku připravíme výchozí přepínací panel Hlavní menu – přepínací panel (viz obr. 10-8), z něhož budou odkazy na panely: − Formuláře: nabídka dvou formulářů a možnost návratu na hlavní menu, − Sestavy: nabídka dvou sestav a možnost návratu na hlavní menu.

OBR. 10-8: PŘEPÍNACÍ PANELY V DATABÁZI ENCIÁN

Postup přípravy soustavy přepínacích panelů: − V kartě DATABÁZOVÉ NÁSTROJE ve skupině Databázové nástrojee klepneme do tlačítka

Správce přepínacích panelů. Databázové nástroj

− Access oznámí, že nemohl nalézt v databázi přepínací panel. Na dotaz, zda si přejeme vytvořit jej, klepneme do tlačítka Ano.

− Vytvoří se dva objekty databáze: • tabulka Switchboard Items, do níž se bude ukládat nastavení přepínacích panelů, • formulář Přepínací panel, v němž se hlavní i dílčí menu budou zobrazovat.

− Ve Správci přepínacích panelů klepneme do tlačítka Upravit. Správci přepínacích panelů− Název přepínacího panelu změníme z textu Hlavní přepínací panel na Hlavní menu –

přepínací panel a klepneme do tlačítka Zavřít. − Ve Správci přepínacích panelů nachystáme další dva přepínací panely (tzv. stránky): Správci přepínacích panelů

• Klepnutím do tlačítka Nový založíme první z nich. Nazveme jej Formuláře. • Klepnutím do tlačítka Nový založíme druhý z nich. Nazveme jej Sestavy.

− Klepnutím označíme stránku přepínacího panelu Hlavní menu a klepneme do tlačítka Upravit.

248 Propojené tabulky mohou být uloženy i v různých databázích 249 Někdy potřebujeme změnit odkaz na jinou verzi databáze umístěnou v jiném adresáři. Potom zaškrtneme pole Vždy

zobrazit dotaz na zadání umístění a Access nám dá možnost upřesnit umístění databáze i v případě, že databáze se stejným názvem v původním adresáři existuje.

Správce přepínacích panelů

Switchboard Items

Přepínací panel

Page 219: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 219

− V rámci hlavního menu doplníme položky přepínacího panelu klepáním do tlačítka Nový: • Pro první položku upravíme parametry:

» Text: Formuláře » Příkaz: přejít na přepínací panel » Přepínací panel: Formuláře

• Pro druhou položku upravíme parametry: » Text: Sestavy » Příkaz: přejít na přepínací panel » Přepínací panel: Sestavy

− Klepnutím do tlačítka Zavřít zavřeme úpravy Hlavního menu. − Klepnutím označíme stránku přepínacího panelu Formuláře a klepneme do tlačítka Upravit. − V rámci přepínacího panelu Formuláře doplníme položky přepínacího panelu klepáním do

tlačítka Nový: • Pro první položku upravíme parametry:

» Text: Formulář P52a Personal – Identifikace » Příkaz: otevřít formulář v režimu úpravy » Formulář: P52a Personal – Identifikace

• Pro druhou položku upravíme parametry: » Text: Formulář P53 Podniky – Identifikace » Příkaz: otevřít formulář v režimu úpravy » Formulář: P53 Podniky – Identifikace

• Pro třetí položku upravíme parametry: » Text: Návrat na hlavní menu » Příkaz: přejít na přepínací panel » Přepínací panel: Hlavní menu – přepínací panel

− Klepnutím do tlačítka Zavřít zavřeme úpravy přepínacího panelu Formuláře. − Klepnutím označíme stránku přepínacího panelu Sestavy a klepneme do tlačítka Upravit. − V rámci přepínacího panelu Sestavy doplníme položky přepínacího panelu klepáním do

tlačítka Nový: • Pro první položku upravíme parametry:

» Text: Sestava P62 Personal – Identifikace » Příkaz: otevřít sestavu » Sestava: P62 Personal – Identifikace

• Pro druhou položku upravíme parametry: » Text: Sestava P66 Telefonní seznam » Příkaz: otevřít sestavu » Sestava: P66 Telefonní seznam

• Pro třetí položku upravíme parametry: » Text: Návrat na hlavní menu » Příkaz: přejít na přepínací panel » Přepínací panel: Hlavní menu – přepínací panel

− Klepnutím do tlačítka Zavřít zavřeme úpravy přepínacího panelu Sestavy. − Klepnutím do tlačítka Zavřít zavřeme Správce přepínacích panelů.

Přepínací panely spustíme otevřením formuláře Přepínací panel. Poklepeme na jeho název v navigačním podokně. Soustavu přepínacích panelů můžeme kdykoliv modifikovat klepnutím do tlačítka Správce přepínacích panelů ve skupině DDaattaabbáázzoovvéé nnáássttrroojjee v kartě DATABÁZOVÉ NÁSTROJE.

Abychom zamezili neoprávněnému přístupu do databáze, můžeme databázi zašifrovat pomocí hesla: − Databázi musíme otevřením ve výhradním režimu, tj. režimu, kdy nemůže být otevřena

současně jiným uživatelem: • Klepneme do tlačítka Office a vybereme příkaz OTEVŘÍT. • Dohledáme databázi. • Z nabídky tlačítka Otevřít vybereme VÝHRADNÍ PŘÍSTUP.

− V kartě DATABÁZOVÉ NÁSTROJE ve skupině Databázové nástrojee klepneme do tlačítka Zašifrovat pomocí hesla.

Databázové nástroj

− V dialogovém okně Nastavit heslo databáze zadáme dvakrát heslo. Nastavit heslo databáze

Šifrování databáze

Page 220: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 220

− Při otevírání databáze jsme nadále vyzýváni k zadání hesla. Navíc je zašifrován obsah

databáze tak, aby nebylo možné číst obsah databáze např. programem pro práci se soubory. − Dešifrovat databázi můžeme klepnutím do tlačítka Dešifrovat databázi, které nahradilo

původní tlačítko Zašifrovat pomocí hesla. Při dešifrování musíme opět zadat heslo. Příprava databáze představuje pro autora hodiny usilovné práce. Access usnadňuje

šíření databáze bez možnosti uživatele nahlížet do návrhů formulářů, sestav a modulů: − V kartě DATABÁZOVÉ NÁSTROJE ve skupině Databázové nástrojee klepneme do tlačítka

Vytvořit databázi ACCDE.Databázové nástroj

250 − Upřesníme název a umístění databáze. − Otevírání databáze ACCDE probíhá stejně jako otevírání databáze ACCDB. − Pro objekty typu Formuláře, Sestavy a Moduly není k dispozici návrhové zobrazení. Obsah

modulů nelze prohlížet. − Ochranu před prohlížením návrhu nelze obejít ani importováním objektů. V dialogovém

okně importu nelze objekty formulářů, sestav, maker a modulů označit. − Chceme-li upravit návrh formulářů, sestav nebo modulů v databázi ACCDE, musíme otevřít

původní databázi, upravit ji a poté ji znovu uložit jako databázi ACCDE. Pro jakoukoliv databázi můžeme změnit příponu programem na správu souborů, např.

průzkumníkem251 z přípony ACCDB na ACCDR. Databázi potom můžeme spustit: − na počítači s nainstalovaným Accessem: • poklepáním na název souboru, • ze zástupce na ploše252,

− na počítači bez instalace Accessu: Z webu Microsoftu253 lze stáhnout zdarma tzv. runtime Accessu, tj. prostředek, který umožňuje pracovat s databází Accessu bez možnosti úpravy jejího návrhu.

Databáze ACCDR nemá k dispozici následující prvky: − navigační podokno, − pás karet, − návrhové zobrazení a zobrazení rozložení, − nápovědu. Je proto nutné doplnit výchozí nabídku spouštění objektů Accessu. V databázi Encian jsme poznali následující možnosti tvorby formuláře s nabídkou spouštění objektů: − formulář s tlačítky, k nimž jsou definovány událostní vlastnosti Při klepnutí (viz kap. 7.6), − formulář s hypertextovými odkazy na jednotlivé objekty databáze (viz kap. 9.8), − přepínací panel (viz kap. 10.6). Formulář s nabídkou objektů je nutné automaticky zobrazit při otevření databáze, což lze zajistit dvěma způsoby: − Formulář otevřeme makrem, které nazveme Autoexec (viz kap. 7.6). Makro Autoexec se

automaticky spouští po otevření databáze.254 − Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Access. V kartě Aktuální

databáze v sekci Možnosti aplikacee zadáme do pole Zobrazit formulář hodnotu P76 Menu. Možnosti aplikac

10.7 Možnosti aplikace Access Klepnutím do tlačítka Office a do tlačítka Možnosti aplikace Access zobrazíme

dialogové okno MMoožžnnoossttii aapplliikkaaccee AAcccceessss

s několika kartami: − Oblíbené: Zde můžeme mj.: • vybrat barevné schéma Accessu (modré, černé, stříbrné – viz kap. 5.2), • vybrat výchozí formát ukládání souborů databází,

250 Tvorbu databáze ACCDE musíme provádět po souhlasu s prováděním maker, modulů a akčních dotazů. 251 V průzkumníkovi musí být zobrazeny přípony souborů. Z menu zadáme příkaz USPOŘÁDAT, MOŽNOSTI SLOŽKY A

HLEDÁNÍ. V kartě Zobrazení zrušíme zaškrtnutí pole Skrýt příponu souborů známých typů. 252 Zástupce se bude odkazovat na program Access, který je v adresáři Program Files/Microsoft Office/Office12. Po

mezeře následuje název souboru databáze a po další mezeře text /runtime. Zástupce tak může obsahovat odkaz: "C:Program Files\Microsoft Office\Office12\MSACCESS.EXE" C:/data/Encian.accdr /runtime.

253 http://www.microsoft.com/downloads/details.aspx?familyid=d9ae78d9-9dc6-4b38-9fa6-2c745a175aed 254 Makro Autoexec může obsahovat i další příkazy, např. jako první akci zobrazení okna se zprávou o autorovi řešení.

Formulář by se potom zobrazil až po zavření okna se zprávou.

Formát ACCDE

Formát ACCDR

Formulář s nabídkou objektů

Automatické spuštění formuláře

Oblíbené možnosti

Page 221: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 221

• upřesnit uživatelské jméno a iniciály.

− Aktuální databáze: Nastavené parametry jsou platné jen pro aktuální databázi, mj.: • V sekci Možnostii aplikace můžeme upřesnit název aplikace, který se potom zobrazuje

v záložce spuštění Accessu ve Windows. Můžeme také upřesnit ikonu, která se zobrazí v záložce formou vhodného souboru ve formátu ico

Možnost

255. • V poli Zobrazit formulář můžeme vybrat formulář, který se má automaticky zobrazit po

otevření databáze (viz kap. 10.6). • V poli Možnosti okna dokumentu můžeme upravit způsob otevírání objektů v oknech,

nemusí to být karty, ale okna, na něž byli zvyklí uživatelé předchozích verzí Accessu. • Zaškrtnutím pole Komprimovat při zavření můžeme nastavit automatickou komprimaci

databáze při jejím zavírání, což však může při častější práci s databází brzdit zavírání. • V sekci Navigacee lze potlačit pro databázi zobrazování podokna navigace. Navigac• V sekci Možnosti pásu a panelu nástrojů můžeme vybrat řádek globální místní nabídky

(viz kap. 10.2). Možnosti pásu a panelu nástrojů

• V sekci Možnosti automatické opravy názvů můžeme potlačit automatickou úpravu názvů objektů v souvisejících objektech při změně názvu objektu, např. změnu názvu tabulky v podkladových dotazech formulářů při změně názvu tabulky.

Možnosti automatické opravy názvů

− Datový list: Pro datový list tabulek a výsledků dotazů lze nastavit výchozí barvy (písma, pozadí, mřížky), formát mřížky tabulky, výchozí písmo.

− Návrháři objektů: Pro jednotlivé objekty lze nastavit výchozí parametry: • Pro návrh tabulky vybrat výchozí typ pole (např. text), výchozí velikost textového pole,

výchozí velikost číselného pole. • Po návrh dotazu lze mj. potlačit zobrazení názvů tabulek v mřížce dotazu, povolit

automatické spojení tabulek při stejném jméně polí tabulek. • Pro formuláře a sestavy lze nastavit způsob vybírání více ovládacích prvků tažením, název

výchozí šablony formuláře a sestavy. − Kontrola pravopisu a mluvnice: • Tlačítkem Možnosti automatických oprav zobrazíme dialogové okno, v němž můžeme mj.

potlačit psaní velkých písmen na začátku vět a nahrazování textu při psaní obdobně jako u jiných programů Microsoft Office.

• V jednotlivých polích můžeme aktivovat přeskakování slov psaných velkými písmeny, obsahujících číslice, internetové adresy a adresy souborů.

• Klepnutím do tlačítka Vlastní slovníky můžeme » aktivovat použití vlastního slovníků či více slovníků, » upravit seznam slov v uživatelském slovníku, » vytvořit nový uživatelský slovník, » přidat dříve připravený uživatelský slovník, » odebrat užívaný uživatelský slovník.

− Upřesnit: • V sekci Úpravyy můžeme mj. ovlivnit chování Accessu po stisknutí klávesy Enter, chování Úprav

Accessu při používání kurzorových kláves, nastavit nutnost potvrzování akčních dotazů. • V sekci Zobrazitt můžeme mj. zadat počet zobrazovaných naposledy použitých databází,

nastavit chování inteligentních značek, zobrazování sloupců v návrzích maker. Zobrazi

• V sekci Tiskk můžeme nastavit velikosti okrajů tisku, které se uplatní např. při přímém tisku tabulky.

Tis

• V sekci Obecnéé můžeme mj. nastavit počet cifer při zobrazování roku. Obecn• V sekci Upřesnitt mj. nastavit automatické otevírání naposledy použité databáze při

spuštění Accessu. Dále zde můžeme nastavit výchozí režim otevírání databáze (sdílený či výhradní) a výchozí uzamčení záznamů při souběžné práci více uživatelů s databází.

Upřesni

10.8 Tlačítko Office (nabídka Soubor) Klepnutím do tlačítka Office otevřeme nabídku Soubor Accessu:

− NOVÁ: Otevřeme okno Začínáme s aplikací Microsoft Access, v němž můžeme založit novou databázi, která může vycházet ze šablony nebo být prázdná (viz kap. 1.3).

255 Pro vyzkoušení je v demonstračních souborech k dispozici soubor Encian.ico.

Možnosti aktuální databáze

Možnosti datového listu Možnosti návrhářů objektů

Možnosti kontroly pravopisu a mluvnice

Možnosti upřesnění

Tlačítko Office

Page 222: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Kapitola 10: Databázové nástroje 222

− OTEVŘÍT: Otevřeme dříve založenou databázi. V Accessu může být otevřena jen jedna

databáze. Můžeme však Access spustit vícekrát s otevřením různých databází. − ULOŽIT: Ukládá do databáze aktuálně otevřený objekt. Často se takto (kombinací Ctrl S)

provádí ukládání objektů formulář, sestava, makro. Obsah tabulky se ukládá automaticky při přechodu na další větu nebo při zavření tabulky.

− ULOŽIT JAKO: Otevřený objekt můžeme uložit do databáze pod dalším názvem. − TISK: Provede tisk otevřeného objektu, dílčí příkazy: • TISK: Před tiskem otevře okno Tisk, v němž lze nastavit tiskárnu či rozsah tisku. Tisk

• RYCHLÝ TISK: Provede přímo tisk objektu na výchozí tiskárnu. • NÁHLED: Zobrazí náhled tisku včetně aplikační karty NÁHLED.

− SPRAVOVAT: • ZKOMPRIMOVAT A OPRAVIT DATABÁZI: Provede komprimaci databáze, tj. databázi zavře,

uspořádá uložení objektů v databázi a databázi znovu otevře. Příkaz je možné také spustit bez předchozího otevření databáze a opravit tak případně databázi, kterou nelze otevřít.

• ZÁLOHOVAT DATABÁZI: Kopii databáze můžeme uložit pod jiným názvem. Prvotně se nabízí původní název rozšířený o datum ukládání.

• VLASTNOSTI DATABÁZE: Můžeme prohlédnout (v kartách Obecné, Statistické údaje, Obsah) a editovat (v kartách Souhrnné informace, Vlastní) vlastnosti databáze. Při vyplnění vlastnosti Základ hypertextového odkazu je využit základ pro hypertextové odkazy, nemusíme tak např. zadávat v jednotlivých větách webovou adresu firmy v odkazech na osobní stránky zaměstnanců. Vyplnění vlastnosti může však nepříznivě ovlivnit fungování odkazů na lokální soubory (viz kap. 9.8).

− E-MAIL: Objekt označený v navigačním podokně (např. tabulku) můžeme ve zvoleném formátu (např. xlsx) poslat e-mailem. Otevře se výchozí poštovní program s novou zprávou s přílohou objektu exportovaného do vybraného formátu.

− PUBLIKOVAT: • SERVER SPRÁVY DOKUMENTŮ: Access nabídne uložení databáze do některé síťové složky

nastavené v počítači. • ZABALIT A PODEPSAT: Umístí databázi do souboru nasazení aplikace Access (ACCDC),

balíček podepíše a podepsaný balíček uloží do určeného umístění. Uživatelé potom mohou databázi extrahovat z balíčku a pracovat přímo s ní a nikoliv se souborem balíčku.256

− ZAVŘÍT DATABÁZI: Zavře otevřenou databázi bez ukončení práce Accessu.

Shrnutí 1. Prostřednictvím makra se skupinou maker můžeme vytvořit pro formulář místní nabídku

formuláře. Takovou nabídku můžeme povýšit na globální místní nabídku. Do formuláře můžeme doplnit kartu Doplňky, v níž uvedeme makro obsahující akci PřidatNabídku.

2. K objektům databáze můžeme upřesnit vlastnosti: popis a atribut skrytí. 3. V samostatném podokně lze sledovat závislosti objektů databáze. 4. Analýza tabulky pomáhá vhodným rozdělením tabulky na dílčí tabulky zmenšit databázi,

usnadnit její aktualizaci a zabránit chybám při aktualizaci. 5. Analýza výkonu dává doporučení, rady a nápady k racionalizaci návrhu objektů. 6. Objekty je možné v Accessu automaticky dokumentovat. 7. Databázi lze z Accessu převést do SQL databáze. Z Accessu lze SQL databázi prohlížet

prostřednictvím projektu či propojením tabulek. 8. Databázi je vhodné rozdělit na přední databázi (všechny objekty kromě tabulek) a zadní

databázi (tabulky aktualizované uživatelem). Změnu umístění zadní databáze usnadňuje Správce propojených tabulek.

9. Správce přepínacích panelů umožňuje vytvořit soustavu panelů pro přepínání mezi jednotlivými objekty.

10. Databázi je možné zabezpečit heslem, databáze je navíc při použití hesla zašifrována. 11. Šíření databáze usnadňují formáty ACCDE a ACCDR. Uživatelé formátu ACCDR nemusí

mít nainstalovaný Access, mohou využít volně šířený runtime Accessu. 12. Fungování Accessu či jednotlivé databáze lze upravit v možnostech aplikace Access.

256 Podrobněji v nápovědě Accessu v hesle Zabezpečení a ochrana osobních údajů, Zabezpečení databáze aplikace

Access 2007, Zabalení, podepsání a distribuce databáze aplikace Access 2007.

Page 223: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha A: Použité objekty 223

Příloha A: Použité objekty Příloha A obsahuje objekty využité v databázi Encian včetně odkazů na stránku, na

níž byl objekt vytvořen. Seznam je seřazen dle abecedního řazení jednotlivých typů objektů.

Tabulky − Cesty (str. 13) − Faktury (str. 12) − Kontrola_cest (str. 173) − Licence (str. 12) − Majetek_typy (str. 14) − Majetek_umístění (str. 14) − Místnosti (str. 14, 26) − NACE (str. 12) − Oddělení importovaná z webu (str. 206) − Oddělení (str. 10, 17) − Oddělení_F (str. 81) − Oddíly_Sekce (str. 12)

− P92 Personal (str. 188) − P92a Adamec (str. 188) − P92b Beneš (str. 188) − Personal (str. 10, 17) − Podniky (str. 11) − Prodeje DIS (str. 90) − Programy (str. 13) − Sekce (str. 12) − Stadia (str. 11) − Switchboard Items (str. 218) − Výjezdy (str. 13)

Dotazy − NACE_Oddíly (str. 32) − P13 Zaměstnanci s oddělením (str. 18) − P22a Zaměstnanci s původními telefony

(str. 27) − P22b Místnosti se zaměstnanci (str. 28) − P23 Hledání nekonzistencí (str. 31) − P33a Inteligentní značky (str. 50) − P33d NACE4000 (str. 54) − P34 Filtr podle formuláře (str. 62) − P42a Křestní jména (str. 69) − P42b Seřazená jména (str. 71) − P42c Jména bez duplicit (str. 71) − P42d Pohlaví a oddělení (str. 72) − P42e Pohlaví a oddělení bez duplicit (str.

72) − P42f Pohlaví a oddělení jinak řetězené (str.

72) − P42g Lidé z PRG (str. 73) − P42h Lidé z PRG a ANA (str. 73) − P42i Lidé z PRG, ANA a REK (str. 73) − P42j Ženy z PRG (str. 74) − P42k Ženy z PRG a všichni z REK (str.

74) − P42l Ženy z PRG a muži z REK (str. 74) − P42m Více než poloviční úvazky (str. 74) − P42n Příjmení intervalu písmen (str. 74) − P42o Příjmení daného začátku (str. 75) − P42p Příjmení daného začátku a konce (str.

75) − P42q Příjmení s proměnlivým znakem (str.

75) − P42r Lidé mimo oddělení (str. 75) − P42s Lidé bez titulu (str. 75) − P42t Lidé v intervalu (str. 76) − P42u Lidé s oprávněním (str. 76) − P42v Březnové služební cesty (str. 76) − P42w Délky služebních cest (str. 78) − P42x Webové adresy (str. 78)

− P42y NACE 4724 (str. 78) − P42z Tituly lidí (str. 79) − P43a Původní telefony (str. 79) − P43b Faktury DIS (str. 80) − P43c Faktury DIS bez bakalářů (str. 80) − P43d Faktury vybraného oddělení (str. 80) − P43e Licence FIN pozitivní vývoj (str. 81) − P43f Licence stavebnictví (str. 81) − P43g Lidé na cestě 4 i 10 (str. 81) − P43h Lidé bez telefonu (str. 82) − P43i Cesta do Sokolova (str. 82) − P43j Faktury do cesty do Sokolova (str.

82) − P44a Délky cest (str. 83) − P44b Poslední cesty (str. 83) − P44c Délky cest do jednotlivých míst (str.

84) − P44d Cena dle místností (str. 84) − P44e Tržby za BON a FIN (str. 84) − P44f Tržby v týdnech (str. 85) − P44g Podniky s vysokými tržbami (str. 85) − P44h Prvních pět lidí (str. 85) − P44i První čtvrtina lidí (str. 85) − P44j Cesty první čtvrtiny lidí (str. 86) − P45a Měsíční tržby sekce (str. 86) − P45b Měsíční tržby NACE (str. 86) − P45c Cesty od zadaného data (str. 87) − P46a Počty lidí dle pohlaví a oddělení (str.

87) − P46b Křížová tabulka lidí (str. 88) − P46c Řazená oddělení (str. 89) − P46d Prodeje dle programů a měsíců (str.

89) − P46e Tržby dle programů a měsíců (str.

89) − P46f Průměrné délky cest (str. 89) − P47a Tvorba Prodeje DIS (str. 90) − P47b Bonita 2009 (str. 91)

Tabulky

Dotazy

Page 224: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha A: Použité objekty 224

− P47c Změny názvu programů (str. 91) − P47d Odstranění starších prodejů (str. 91) − P47e Odstranění růstových prodejů (str.

92) − P47f Přidání starších prodejů (str. 92) − P47g Přidání růstových prodejů (str. 93) − P48a Kódy (str. 93) − P48b Seřazené kódy (str. 94) − P49a Graf tržeb (str. 94) − P49b Procenta sloupcové hodnoty (str. 96) − P49c Procenta řádkové hodnoty (str. 96) − P49d Tržby za 2 programy (str. 97) − P49e Tržby v březnu a dubnu (str. 98) − P49f Délka cest (str. 98) − P53 Podniky – Identifikace (str. 98) − P57 Podklady grafů (str. 123) − P67 Tržby (str. 144) − P68 Tržby (str. 146)

− P72 Dotaz (str. 153) − P82 CeléJméno (str. 166) − P83 BezDiakritiky (str. 167) − P85 KontrolaUctu (str. 169) − P86 Aktualizace E_mail (str. 170) − P87 Kontrola cest (str. 173) − P97 Publisher (str. 200) − P98e Webové adresy (str. 203) − P98f Lokální adresy (str. 203) − PA4 Tvorba Personal_duplicity (str. 214) − dotazy pro učebnici Microsoft Office Visio

2007 jednoduše: • Visio – Kontingenční tabulka • Visio – Majetek • Visio – Místnosti • Visio – Personal • Visio – Rekapitulace • Visio – Stadia

Formuláře − P33b Místnosti (str. 53) − P33c Oddělení (str. 53) − P52a Personal – Identifikace (str. 110) − P52b Personal – automatický formát (str.

112) − P53 Podniky – Identifikace (str. 113) − P54 Cesty (str. 116) − P55 Licence (str. 117) − P56a Licence (str. 119) − P56b Faktury (str. 119) − P56c Faktury (str. 120) − P56d Licence (str. 120) − P56e Faktury (str. 121) − P56f Podniky (str. 121) − P57a Graf – Celkové tržby (str. 123) − P57b Graf – Personal (str. 124) − P57c Graf – Podniky (str. 126) − P58a Personal – Identifikace (str. 126) − P58b Faktury (str. 126) − P58c Graf – Personal (str. 126) − P58d Cesty (str. 126)

− P58e Karta – Personal (str. 126) − P58f Podniky – Identifikace (str. 128) − P58g Faktury (str. 128) − P58h Graf – Podniky (str. 128) − P58i Karta – Podniky (str. 128) − P72 Licence (str. 154) − P72 Oddělení (str. 156) − P73b Karta – Personal (str. 158) − P74a Podniky – Identifikace (str. 160) − P74b Personal – Identifikace (str. 160) − P76 Menu (str. 162) − P86 Personal – Identifikace (str. 170) − P87 Kontrola cest (str. 174) − P88 Formulář (str. 179) − P94 Export PowerPoint (str. 192) − P98d Odkazy (str. 201) − P98g Web stránka s foto (str. 204) − PA2a Personal – Identifikace (str. 211) − Přepínací panel (str. 218)

Sestavy − P62 Personal – Identifikace (str. 130) − P63 Cesty (str. 137) − P64 Licence (str. 138) − P65 Hlavní sestava (str. 141) − P66 Telefonní seznam (str. 143) − P67 Fakturace (str. 144)

− P68 Podíly (str. 144) − P69 Štítky (str. 150) − P72 Sestava (str. 157) − P75a Makro v těle sestavy (str. 161) − P75b Makro v záhlaví skupiny (str. 161) − P88 Sestava (str. 180)

Makra − P72 Makro (str. 154) − P73a Makro s podmínkou Where (str. 158) − P73b Makro s podmínkou Where (str. 158)

− P74 Makro ve formuláři (str. 159) − P76 Menu (str. 162) − PA2b Užitečné akce (str. 212)

Moduly − P81 Vlastní funkce (str. 165) − P88 Modul (str. 180) − P94 Export PowerPoint (str. 192)

− P94 Ident (str. 193)

Formuláře

Sestavy

Makra

Moduly

Page 225: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha B: Databáze k procvičení 225

Příloha B: Databáze k procvičení Příloha B obsahuje zadání samostatné cvičné databáze. Po pročtení jednotlivých

kapitol je možné prohloubit si získané poznatky vypracováním cvičné databáze. Zadání cvičné databáze je strukturováno dle jednotlivých dílčích kapitol. Zadání na sebe navazují. Vypracování jednotlivých fází řešení je vhodné ukládat do samostatných souborů, např. Dohody_01, Dohody_02 tak, abychom se mohli vrátit k předchozím fázím v případě chyb v pokročilejších fázích. Každý soubor po dokončení zkomprimujte257.

Ke kapitole 1 Databáze − Firma Encián se podílí na externí výuce a dalších pracích pro Fakultu mezinárodních vztahů

Vysoké školy ekonomické v Praze. K evidenci dohod použijeme databázi s tabulkami: • Personal

Obsahuje 20 vět. Každá věta se vztahuje k jednomu zaměstnanci. Pole: E_mail (klíčové), Titul1, Jméno, Příjmení, Titul2.

• Dohody Obsahuje 77 vět. Každá věta se vztahuje k jedné uzavřené dohodě. Pole: » Číslo_dohody: klíčové pole identifikující dohodu, » E_mail: zaměstnanec, s nímž je dohoda uzavírána, » Popis_práce: stručný popis práce, která je dle dohody prováděna, » Činnost: kód činnosti školy, v jejímž rámci je práce prováděna, » Hodin: dohodnutý počet hodin práce, » Sazba: hodinová sazba odměny zaměstnanci za dohodnutou práci, » Od, Do: doba, po kterou je práce konána, » Druh_dohody: PP = provedení práce nebo záznam, » Katedra: katedra, pro niž je práce vykonávána, » Zakázka: účetní číslo zakázky (projektu), v rámci něhož je práce dle dohody konána, » Datum_zaevidování, » Poznámka.

• Likvidace Obsahuje 57 vět. Každá věta se vztahuje k likvidaci (úhradě) jedné dohody, k jedné dohodě může být více likvidací (např. po měsících, např. dohoda číslo 4). Pole: » Číslo_dohody: dohoda, k níž se likvidace vztahuje, » Datum: datum příkazu k likvidaci, » Měsíc_výplaty: první den měsíce výplaty úplné či částečné dohodnuté částky, » Hodin_likvidace: hodiny, které byly likvidací zaplaceny, » Částka: vyplacená částka.

• Katedry Obsahuje 15 vět. Každá věta upřesňuje data o katedře.

• Činnosti Obsahuje 8 vět. Každá věta upřesňuje data o činnosti (slovní vysvětlení).

• Zakázky Obsahuje 26 vět. Seznam zakázek včetně činností fakulty, v rámci nichž jsou realizovány.

− Založte novou prázdnou databázi Dohody_01. − V databázi připravte tabulku Dohody s jednoduchou strukturou: • Číslo_dohody (klíčové pole). • E_mail: E_mail zaměstnance (firmy Encián), s nímž je smlouva uzavírána. • Popis_práce: jednoduchý popis práce zaměstnance, např. posudek ke studii. • Katedra: zkratka názvu katedry, pro niž zaměstnanec činnost vykonává.

− V databázi připravte tabulku Personal s jednoduchou strukturou: • E_mail (klíčové pole): uživatelské jméno zaměstnance ve firmě Encián. • Jméno • Příjmení

− V databázi připravte tabulku Katedry s jednoduchou strukturou: • Katedra: zkratka názvu katedry,

257 Klepněte do tlačítka Office a zadejte příkaz SPRAVOVAT, ZKOMPRIMOVAT A OPRAVIT DATABÁZI.

1 Databáze

Page 226: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha B: Databáze k procvičení 226

• Katedra_v: vysvětlivka názvu katedry.

− Do tabulky Katedry vložte věty: Katedra Katedra_v KMO katedra mezinárodního obchodu KPOL katedra politologie

− Do tabulky Personal vložte věty: E_mail Jméno Příjmení Benes.Pavel Pavel Beneš Janda.Frantisek František Janda

− Do tabulky Dohody vložte věty: Číslo dohody E_mail Popis_práce Katedra 1 Benes.Pavel posudek ke studii KPOL 2 Janda.Frantisek posudek ke studii KPOL 21 Benes.Pavel posudek na diplomovou práci KMO

− Připravte dotaz Dohody se zaměstnanci a katedrami, který ke každé dohodě vypíše pole Číslo_dohody, E_mail, Jméno, Příjmení, Popis_práce, Katedra, Katedra_v.

− Vytvořte v navigačním podokně kategorii Struktura publikace a vytvořené tabulky a dotazy zařaďte do skupiny 1 Databáze.

Ke kapitole 2 Relace − Importujte do nové databáze Dohody_02 tabulky Personal, Dohody, Likvidace, Katedry, Činnosti, Zakázky ze sešitu Dohody.xlsx. Při importu volte vhodné primární klíče. Pozor při stanovování klíče tabulky Likvidace! K jedné dohodě může být více likvidací.

− Doplňte do struktury tabulky Likvidace vhodné klíče. − V navigačním podokně přidejte do kategorie Struktura publikace skupinu 2 Relace a zařaďte

do ní vytvořené tabulky. − Definujte v databázi 5 vhodných relací mezi tabulkami včetně referenční integrity

s aktualizací souvisejících polí v kaskádě. Pozor! V případě jedné relace je nutné před aplikací referenční integrity upravit data v jedné větě. (V hodnotě jednoho pole je záměrně nepřesnost, která je příčinou nekonzistentnosti dat.)

− Rozmístěte přehledně tabulky v diagramu relací. − Nezapomeňte zkomprimovat soubor databáze.

Ke kapitole 3 Tabulky − Zkopírujte soubor databáze Dohody_02.accdb do souboru Dohody_03.accdb. − Upravte definici polí v návrhu tabulek: • v tabulce Personal:

» pole E_mail zkraťte na 20 znaků, » pole Titul zkraťte na 5 znaků, » pole Jméno zkraťte na 10 znaků, » pole Příjmení zkraťte na 12 znaků, » pole Titul2 zkraťte na 7 znaků,

• v tabulce Dohody: » pole Číslo_dohody upravte na celé číslo, » pole E_mail zkraťte na 20 znaků, » pole Popis_práce zkraťte na 30 znaků, » pole Činnost zkraťte na 4 znaky, » pole Druh_dohody zkraťte na 6 znaků, » pole Katedra zkraťte na 5 znaků, » pole Zakázka zkraťte na 8 znaků, » pole Hodin a Sazba upravte na celé číslo,

• v tabulce Likvidace: » pole Číslo_dohody, Hodin_likvidace a Částka upravte na celé číslo,

• v tabulce Katedry: » pole Katedra zkraťte na 5 znaků, » pole Katedra_v zkraťte na 60 znaků, » pole Fakulta zkraťte na 2 znaky,

2 Relace

3 Tabulky

Page 227: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha B: Databáze k procvičení 227

» pole Nákladové_středisko zkraťte na 4 znaky,

• v tabulce Činnosti: » pole Činnost zkraťte na 4 znaky, » pole Činnost_v zkraťte na 50 znaků,

• v tabulce Zakázky: » pole Zakázka zkraťte na 8 znaků, » pole Činnost zkraťte na 4 znaky.

− Optimalizujte šířku polí v zobrazení jednotlivých tabulek. − Ve struktuře tabulky Personal zajistěte: • První písmeno křestního jména a příjmení musí být velké. Ostatní písmena jsou malá,

minimální délka křestního jména i příjmení 3 znaky, maximální délka dle délky polí. • Titulek i popis křestního jména je Křestní jméno. • Pole Jméno a Příjmení je nutné vyplnit, nesmí být vyplněna prázdnou hodnotou. Pole

Titul1 je nutné vyplnit, může však být vyplněno prázdnou hodnotou. • Pro editaci pole Titul2 je připraveno pole se seznamem s hodnotami: , Ph.D. a , CSc.

− Ve struktuře tabulky Dohody zajistěte: • Pole Činnost je v nové větě vyplněno hodnotou 1000. • Sazba musí dodržovat pravidlo, že je nejméně 100, nejvýše 2000 Kč. Při nedodržení

pravidla se bude vypisovat vhodný text. • Pole Datum_zaevidování má doplněnu inteligentní značku Datum. • Hodnota pole Do musí být větší nebo rovna hodnotě pole Od, jinak zobrazte vhodný text.

− Ve struktuře dalších tabulek zajistěte: • V tabulce Likvidace zadejte formát pro zobrazování měsíce výplaty m/yyyy tak, aby byly

zobrazeny pouze měsíce data výplaty. V tomto tvaru je také možné data zadávat. (Vloží se datum prvního dne měsíce.)

• Ve struktuře tabulky Katedry zajistěte, aby nebyla vyplněna duplicitně hodnota pole Nákladové_středisko.

− Do zobrazení tabulky Likvidace doplňte součty polí Hodin_likvidace a Částka. − Tabulku Katedry řaďte dle nákladového střediska. − V tabulce Dohody nastavte filtr pro zobrazování vět s hodnotou PP v poli Druh_dohody. − V zobrazení kontingenční tabulky zobrazte pro tabulku Dohody celkové počty hodin dohod

pro jednotlivé katedry. − V zobrazení kontingenčního grafu potlačte zobrazení pracoviště CES. (Potlačení zobrazení se

promítne i do kontingenční tabulky.) − V navigačním podokně změňte název skupiny 2 Relace na 3 Tabulky.

Ke kapitole 4 Dotazy − Pro editaci polí Titul1, Jméno v tabulce Personal připravte pole se seznamem s dosud

vloženými hodnotami (bez duplicit a mimo prázdné hodnoty seřazené dle abecedy). − Připravte dotazy nazvané Dotaz D01, D02, ... D34:

1. Vypište popisy práce z dohod seřazená dle abecedy bez duplicit. 2. Vypište popisy práce a zakázky v řazení dle zakázek bez duplicit kombinací popisů práce

a zakázek a to pouze pro věty s vyplněnou zakázkou. 3. Vypište čísla dohod, popis práce a katedru v řazení dle čísla dohod pro dohody na výuku,

přednášky a přednášku v anglickém jazyce. 4. Vypište čísla dohod, popis práce a katedru v řazení dle čísla dohody pro dohody na výuku

KMO a posudky na diplomovou práci na KCR. 5. Vypište čísla dohod, e-mail pracovníka, popis práce a sazbu pro dohody se sazbou větší

nebo rovnou 500 Kč v řazení sestupně dle sazby a vzestupně dle čísla dohody. 6. Vypište kód a vysvětlivku činností, jejichž vysvětlivka je v abecedě mezi písmeny H a

S v řazení dle kódu činnosti. 7. Vypište popisy práce dohod, jejichž popis začíná písmenem p a končí písmenem i bez

duplicit v řazení dle popisů. 8. Vypište číslo dohody a datum zahájení plnění dohody (pole Od) pro dohody zahájené

v lednu. Vypisujte též den v týdnu zahájení plnění. Věty vypisujte v řazení dle data zahájení plnění a dle čísla dohody.

4 Dotazy 4.2 Výběrové dotazy z jedné tabulky

Page 228: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha B: Databáze k procvičení 228

9. Pro jednotlivé dohody vypište jejich číslo, datum zahájení a dokončení plnění a délku

plnění dohody ve dnech a to v řazení dle čísla dohody. 10. Pro jednotlivé dohody v řazení dle čísla dohody vypište číslo dohody, popis práce, druh

dohody a ve sloupci Vysvětlivka text provedení práce pro druh dohody PP a záznam pro druh záznam.

11. K likvidacím vypište číslo dohody, datum likvidace, zlikvidovaných hodin (ve sloupci Likvidace), hodin v dohodě (ve sloupci Dohoda) v řazení dle čísla dohody a data likvidace.

12. Vypište jméno, příjmení a likvidovanou částku pro zaměstnance, kterým byly likvidovány dohody v lednu a to v řazení dle příjmení.

13. Vypište e-maily zaměstnanců, kteří uzavírali dohodu na práce pro KCR i KMO. 14. Vypište (v řazení dle data zahájení a čísla dohod) čísla a data zahájení plnění dohod,

jejichž plnění začalo později než zahájení plnění dohody s popisem prezentace obhajob DP. (Neuvádějte konkrétní datum, ale odkaz na datum z dohody prezentace obhajob DP.) Vzniklé dotazy uložte pod názvy Dotaz D14a a Dotaz D14b.

15. Vypište pro jednotlivé zaměstnance jejich e-mail a datum dokončení plnění poslední dohody.

16. Vypište pro jednotlivé zaměstnance jejich křestní jméno, příjmení, celkovou dohodnutou odměnu a celkovou likvidovanou částku. Nápověda: Vytvořte nejprve Dotaz D16a, v němž zjistíte za jednotlivé zaměstnance celkovou dohodnutou odměnu jako součet součinů. Potom vytvořte Dotaz D16b, v němž zjistíte za jednotlivé zaměstnance celkovou likvidovanou částku. Na závěr vytvořte Dotaz D16c, v němž uvedete za jednotlivé zaměstnance celkovou dohodnutou odměnu, celkovou likvidovanou částku a jejich rozdíl.

17. Vypište datum a částku likvidace 4 dohod s nejvyšší dohodnutou odměnou. 18. Vypište čísla dohod, popis práce, činnost pro dohody vybrané činnosti. 19. Vypište čísla dohod, popis práce, datum zahájení plnění pro dohody se zahájením

v zadaném datu či později v řazení dle data zahájení a čísla dohody. 20. Vypište číslo dohody, datum likvidace, částku pro likvidace s vyšší než zadanou částkou

v sestupném řazení dle částky a vzestupném řazení dle čísla dohody. 21. Sestavte křížovou tabulku, v níž v řádcích budou katedry, ve sloupcích činnosti, v tabulce

celková výše dohodnutých hodin. 22. Sestavte křížovou tabulku, v níž v řádcích budou katedry KCR, KMO, KOPKK, ve

sloupcích činnosti, v tabulce celková dohodnutá částka a to pouze za činnosti 1000 a 3000.

23. Sestavte křížovou tabulku, v níž v řádcích budou katedry, ve sloupcích činnosti, v tabulce celková likvidovaná částka.

24. Vypočtěte průměrnou délku dohodnutého plnění dohody na dvě desetinná místa dle kateder a druhu dohody.

25. Vytvořte tabulku Jazykové likvidace, v níž bude přehled likvidací za KAJ, KNJ, KROJ a KRUJ. Pro každou likvidaci uveďte číslo dohody, e-mail zaměstnance, popis práce, katedra, datum likvidace, likvidovaná částka.

26. V tabulce Jazykové likvidace změňte popis práce výuka doktorandů na výuka studentů doktorského studia.

27. V tabulce Jazykové likvidace odstraňte věty KAJ. 28. Z tabulky Jazykové likvidace odstraňte věty týkající se dohod činnosti 9000. 29. Do tabulky Jazykové likvidace přidejte likvidace týkající se dohod činnosti 9000 a KAJ. 30. Vypište kódy a vysvětlivky kateder i činností zakázek. Sloupce správně nadepište Kód a

Kód_v. Seznam vypište v řazení dle kódů. 31. Zobrazte sloupcovým skládaným grafem dohodnuté odměny za jednotlivé katedry za

jednotlivé činnosti. Do pole filtrů umístěte druh dohody. Kontingenční graf vyberte jako výchozí zobrazení.

32. Vypočtěte podíly dohodnutých odměn za jednotlivé katedry a jednotlivé činnosti na celkové dohodnuté odměně za všechny činnosti. Kontingenční tabulku vyberte jako výchozí zobrazení.

33. Zobrazte dohodnuté odměny v jednotlivých činnostech za dvě katedry s nejvyššímu dohodnutými odměnami. Kontingenční tabulku vyberte jako výchozí zobrazení.

34. Zobrazte sloupcovým skládaným grafem likvidované odměny za jednotlivé katedry za jednotlivé činnosti. Do pole filtrů umístěte druh dohody. Kontingenční graf vyberte jako výchozí zobrazení.

4.3 Výběrové dotazy z více tabulek

4.4 Výpočty

4.5 Parametrické dotazy

4.6 Křížové dotazy

4.7 Akční dotazy

4.8 Jazyk SQL 4.9 Kontingenční tabulka a graf z výsledků dotazu

Page 229: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha B: Databáze k procvičení 229

− V navigačním podokně zařaďte vytvořené dotazy a tabulku Jazykové likvidace do skupiny

4 Dotazy.

Ke kapitole 5 Formuláře − Připravte formulář Dohody 1 dle obr. B-1.

OBR. B-1: FORMULÁŘ DOHODY 1

− Upřesnění formuláře: • Jedná se o rozdělený formulář. • Popisky polí obsahujících pomlčku (Číslo_dohody, E_mail, Popis_práce, Druh_dohody,

Datum_zaevidování) jsou upraveny. • Pole E_mail je vloženo jako pole se seznamem z tabulky Personal, zobrazeny jsou

4 sloupce se šířkami 0,002 cm, 0 cm, 2 cm, 2 cm. Vkládání je omezeno na seznam. • Pole Popis_práce je vloženo jako pole se seznamem s hodnotami dosud vloženými jako

Popis práce seřazenými dle abecedy a uvedenými bez duplicit. • Pole Činnost je vloženo jako pole se seznamem z tabulky Činnosti, zobrazeny 2 sloupce se

šířkami 1 cm a 7 cm. • Za pole Sazba je doplněno textové pole s výpočtem dohodnuté odměny. Styl okraje

nastaven na průhledný. Přístup klávesou tabelátor je potlačen. • Za pole Do je doplněno textové pole s výpočtem délky plnění dohody ve dnech. Styl okraje

je nastaven na průhledný. Přístup klávesou tabelátor je potlačen. • Pole Druh_dohody je vloženo jako pole se seznamem s hodnotami PP a záznam

s vysvětlivkami provedení práce a záznam. • Pole Katedra je vloženo jako pole se seznamem z tabulky Katedry, jsou zobrazeny

2 sloupce se šířkami 1 cm a 9 cm. • Pole Zakázka je vloženo jako pole se seznamem z tabulky Zakázky, jsou zobrazeny

2 sloupce. − Připravte formulář Likvidace 1 dle obr. B-2. − Upřesnění formuláře: • Popisky polí obsahujících pomlčku (Číslo_dohody, Měsíc_výplaty) jsou upraveny. • Ve formuláři je zobrazováno pole Sazba z tabulky Dohody, která je vynásobena hodnotou

Hodin, aby součin mohl být použit jako východisko pro vyplnění částky k likvidaci. • Sloupce Sazba a Návrh nejsou přístupné klávesou tabelátor, jsou uzamčeny, jsou odlišeny

barvou pozadí Formulář pozadí. • Částky k likvidaci větší nebo rovné 10 000 Kč jsou vypisovány červeně.

5 Formuláře 5.2 Samostatný formulář

5.4 Nekonečný formulář 5.5 Formulář se souhrny

Page 230: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha B: Databáze k procvičení 230

OBR. B-2: FORMULÁŘ LIKVIDACE 1

• V zápatí formuláře jsou sečteny hodnoty ve sloupcích Hodin a Částka. − Upravte formulář Dohody 1 na Dohody 2, formulář Likvidace 1 na Likvidace 2 a vložte je

jako podformuláře do formuláře Personal dle obr. B-3.

OBR. B-3: FORMULÁŘ PERSONAL

− Upřesnění formulářů: • V záhlaví formulářů jsou odstraněny obrázky před textem, písmo zmenšeno na velikost 11

tučně. Z pozadí formulářů je odstraněn obrázek258 • Ve formuláři Dohody 2 jsou pole uspořádána do dvou sloupců. • Pro podformuláře jsou odstraněny popisky.

− Připravte formulář Katedry, v němž jsou pro jednotlivé katedry zobrazeny počty hodin dohodnuté s jednotlivými zaměstnanci v členění dle zakázek (viz obr. B-4).

258 Ve formátové vlastnosti formuláře Obrázek odstraníme obsah (obrázek). Ve formátové vlastnosti záhlaví formuláře

nastavíme Barvu pozadí na hodnotu Automaticky, tj. #FFFFFF.

5.6 Podformulář

5.7 Graf

Page 231: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha B: Databáze k procvičení 231

OBR. B-4: FORMULÁŘ KATEDRY

− Upřesnění formuláře: • V sloupcovém skládaném grafu není uveden nadpis grafu. • Velikost písma popisků osy x, y, legendy a popisků dat je 10.

− V navigačním podokně zařaďte vytvořené formuláře do skupiny 5 Formuláře.

Ke kapitole 6 Sestavy − Připravte sestavu Měsíční likvidace dle obr. B-5. Sestava vypisuje data o likvidacích dle

nákladových středisek za měsíc zadaný před spuštěním sestavy259.

OBR. B-5: SESTAVA MĚSÍČNÍ LIKVIDACE

− Upřesnění sestavy: • Likvidace jsou seskupeny dle nákladových středisek. • Za jednotlivými středisky jsou součty částek.

− Připravte sestavu Podíly, v níž budou vypočteny podíly jednotlivých kateder na vyplacených likvidacích v rámci měsíce i celého roku dle obr. B-6.

259 Východiskem sestavy bude parametrický dotaz Měsíční likvidace.

6 Sestavy 6.1 – 6.7

6.8 Sestavy s podíly

Page 232: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha B: Databáze k procvičení 232

OBR. B-6: SESTAVA PODÍLY

...

− Upřesnění sestavy: • Podíly jsou uváděny v procentech. • Součtová pole jsou nazvána Částka_měsíc, Částka_rok. • Za jednotlivými středisky jsou součty částek.

− Připravte sestavu Štítky, v níž budou štítky o rozměru 3,6 x 5,4 cm tištěné na volné listy A4 s nakládacím okrajem 0,9 cm nahoře. Na každém štítku bude pro jednotlivého zaměstnance v jediném řádku jeho titul před jménem, křestní jméno, příjmení a titul za jménem. Štítky budou řazeny dle příjmení a jména.

− V navigačním podokně zařaďte vytvořené sestavy do skupiny 6 Sestavy.

Ke kapitole 7 Makra − Vytvořte tabulku Katedry_F, v níž budou zkratky kateder KCR a KMO. Připravte formulář

Katedry_F, v němž bude tlačítko, které zobrazí dohody kateder z tabulky Katedry_F. K zobrazení dohod použijte formulář Dohody_F. V případě, že jsou vybrány katedry, které neuzavřely dohody, zobrazte chybové hlášení (FMV, DEK2, ICRE) Vybrané katedry neuzavřely žádnou dohodu.

− Připravte modifikaci formuláře Personal pod názvem Personal s podmínkou. Ve formuláři se zobrazuje pole Titul2 jen, když je vyplněno pole Titul1. Polím o zaměstnanci odeberte rozložení ovládacího prvku, aplikujte styl okraje plná čára.260

− Připravte modifikaci dotazu a sestavy Měsíční likvidace pod názvem Měsíční likvidace barevně. V sestavě budou vypisovány po měsících všechny likvidace. V případě druhu dohod PP vypisujte příjmení zaměstnance modře, v případě druhu záznam červeně.

− Připravte modifikaci formuláře Personal pod názvem Personal se sestavou. Formulář obsahuje tlačítko Sestava. Klepnutím do tlačítka se spustí makro Personal se sestavou, které zobrazí sestavu Měsíční likvidace barevně pro zaměstnance, který je zobrazen ve formuláři.

− Připravte makro Autoexec, které otevře formulář Menu. Ve formuláři jsou tlačítka, při klepnutí na tlačítka se otevřou formuláře Personal, Personal se sestavou, Personal s podmínkou a sestavy Měsíční likvidace, Podíly, Štítky, Měsíční likvidace barevně.

− V navigačním podokně zařaďte vytvořené objekty do skupiny 7 Makra.

260 Předpokládáme, že neexistují zaměstnanci, kteří mají titul za jménem a nemají titul před jménem. Ve skutečnosti

tato varianta může nastat.

6.9 Štítky

7 Makra

Page 233: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha B: Databáze k procvičení 233

Ke kapitole 8 Moduly − Připravte funkci Likvidace v modulu Funkce pro výpočet částky k likvidaci dohod (z hodin a

sazby). Funkci využijte v dotazu K likvidaci, který za jednotlivé dohody uvede číslo dohody, počet hodin k likvidaci (ve sloupci Hodin), sazbu (Sazba), částku k likvidaci (K likvidaci).

− Zajistěte, aby se v modifikaci formuláře Dohody 1 nazvané Dohody s vkládáním textů: • poklepáním na pole Popis_práce vložil text posudek na diplomovou práci, • poklepáním na pole Datum_zaevidování vložilo aktuální datum.

− Zajistěte, aby se v modifikaci formuláře Likvidace 1 nazvané Likvidace s vkládáním částky: • poklepáním na pole Částka vložila hodnota k likvidaci vypočtená z polí Hodin_likvidace a

Sazba pomocí funkce Likvidace. − Ve formuláři Odstupy zobrazte e-mail zaměstnance, číslo dohody, popis práce, zahájení a

dokončení plnění dohod v řazení dle zaměstnanců, data zahájení plnění dohody a čísla dohody. Po klepnutí do tlačítka Odstupy zobrazte ve sloupci Odstup odstupy dohod. (Formulář bude zobrazovat tabulku Odstupy, kterou vytvoříte z tabulky Dohody dotazem Odstupy – tvorba.)

− V navigačním podokně zařaďte vytvořené objekty do skupiny 8 Moduly.

Ke kapitole 9 Externí data − Připravte ve Wordu formulář pro vkládání dohod dle obr. B-7.

OBR. B-7: FORMULÁŘ DOHOD

− Upřesnění formuláře: • Číslo dohody, Hodin a Sazba jsou číselná pole. Číslo dohody může být maximálně

tříciferné, hodiny tříciferné, sazba čtyřciferná. • Od, Do a Zaevidování jsou pole typu datum. • K sloupci Druh dohody doplňte vhodnou nápovědu. • Druh dohody vybírejte formou rozevíracího pole se seznamem s hodnotami PP a záznam. • V E-mailu zajistěte vložení velkých písmen. • Katedra je vypisována velkými písmeny.

− Vložte zobrazenou větu a importujte ji do databáze jako tabulku Dohody – import z Wordu. − Připravte formou dotazu Mzdy export pro mzdové oddělení za měsíc březen 2009.

V textovém souboru s položkami oddělenými středníky uveďte e-mail zaměstnance a částku k likvidaci v řazení dle e-mailu. Export proveďte do souboru Mzdy.txt. Uložte kroky exportu s popisem Export pro mzdové oddělení.

− Proveďte export tabulky Katedry do sešitu Excelu Katedry. − Vytvořte modifikaci tabulky Katedry pod názvem Katedry – web. Doplňte do tabulky pole

Web a v něm připravte odkazy ve tvaru http://kcr.vse.cz pomocí aktualizačního dotazu Katedry – adresy.

− V navigačním podokně zařaďte vytvořené objekty do skupiny 9 Externí data.

Ke kapitole 10 Databázové nástroje − Rozdělte databázi na Dohody_zadni (tabulky) a Dohody_predni (ostatní objekty). − Vytvořte soustavu přepínacích panelů včetně návratových voleb: • Formuláře: Personal, Personal se sestavou, Personal s podmínkou, • Sestavy: Měsíční likvidace, Podíly, Štítky, Měsíční likvidace barevně.

− V navigačním podokně zařaďte vytvořené objekty do skupiny 10 Databázové nástroje.

8 Moduly

9 Externí data

10 Databázové nástroje

Page 234: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 234

Příloha C. Dodatek ke kap. 4: Dotazy z databáze Banka

C.1 Výběrové dotazy z jedné tabulky

R42A ÚČELY VÝDAJŮ: VÝBĚR NESEŘAZENÉHO POLE S DUPLICITAMI

Vypište účely výdajů.

R42B SEŘAZENÉ ÚČELY: VÝBĚR SEŘAZENÉHO POLE S DUPLICITAMI

Vypište vzestupně seřazené účely výdajů.

R42C ÚČELY BEZ DUPLICIT: VÝBĚR SEŘAZENÉHO POLE BEZ DUPLICIT

Vypište vzestupně seřazené jedinečné účely výdajů (bez duplicit).

R42D POLOŽKY A ÚČTY: VÝBĚR NESEŘAZENÝCH POLÍ S DUPLICITAMI

Vypište položky a účty pohybů.

R42E SEŘAZENÉ POLOŽKY A ÚČTY: VÝBĚR SEŘAZENÝCH POLÍ BEZ DUPLICIT

Vypište položky a účty pohybů bez duplicit ve vzestupném seřazení dle položky a účtu.

R42F JINAK SEŘAZENÉ POLOŽKY A ÚČTY: VÝBĚR POLÍ SEŘAZENÝCH DLE NESTANDARDNÍ

HIERARCHIE ŘAZENÍ

Vypište položky a účty pohybů bez duplicit ve vzestupném seřazení dle účtu a položky.

R42G PRAŽSKÁ ENERGETIKA: VÝBĚR VĚT S DANÝM OBSAHEM JEDNOHO POLE

Vypište datum zaúčtování, název účtu a částku pohybů Pražské energetiky v sestupném řazení

dle částky a dle data zaúčtování.

R42a Účely

výdajů

Detaily

(185 vět)

R42b Seřazené

účely

Detaily

(185 vět)

R42c Účely

bez duplicit

Detaily (50 vět)

R42d Položky

a účty

Pohyby (150 vět)

R42e Seřazené

položky a účty

Pohyby (78 vět)

R42f Jinak

seřazené

položky a účty

Pohyby

(78 vět)

R42g Pražská

energetika

Page 235: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 235

R42H PRAŽSKÁ ENERGETIKA A ČESKÁ POŠTA: VÝBĚR VĚT S NĚKOLIKA VARIANTAMI

OBSAHU JEDNOHO POLE

Vypište datum zaúčtování, název účtu a částku pohybů Pražské energetiky a České pošty, s.p.

v sestupném řazení dle částky a dle data zaúčtování.

R42I ENERGETIKA, POŠTA A ENCIÁN: VÝBĚR VĚT S NĚKOLIKA VARIANTAMI OBSAHU

JEDNOHO POLE

Vypište název účtu, datum zaúčtování, a částku pohybů Pražské energetiky, České pošty, s.p. a Enciánu Praha dle názvu účtu, data zaúčtování a částky.

R42J PRAHA 1 V ČS: VÝBĚR VĚT S DANÝM OBSAHEM VÍCE POLÍ

Vypište město, umístění a ulici automatů v Praze 1 s umístěním v pobočkách České spořitelny, a.s.

R42K PRAHA 1 V ČS A PRAHA 9: ALTERNATIVNÍ VÝBĚR VĚT S DANÝM OBSAHEM POLÍ

Vypište místo, umístění a ulici automatů v pobočkách ČS v Praze 1 a všech automatů v Praze 9.

R42L P1 V ČS A P9 V METRU: VÝBĚR S VARIANTNÍMI OMEZENÍMI V RŮZNÝCH POLÍCH

Vypište místo, umístění a ulici automatů v pobočkách ČS v Praze 1 a automatů v metru v Praze 9.

R42M VYŠŠÍ VÝBĚRY: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU ČÍSELNÉHO POLE

Vypište výběry z automatů s výběrem vyšším než 2000 Kč.

Pohyby

(4 věty)

R42h Pražská

energetika a

Česká pošta

Pohyby

(11 vět)

R42i

Energetika,

Pošta a Encián

Pohyby (18 vět)

R42j Praha 1

v ČS

Automaty

(3 věty)

R42k Praha 1

v ČS a Praha 9

Automaty (24 vět)

R42l P1 v ČS a

P9 v metru

Automaty (9 vět)

R42m Vyšší

výběry

Pohyby

(5 vět)

Page 236: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 236

R42N AUTOMATY NA ULICI H – S: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU

TEXTOVÉHO POLE

Vypište automaty, které jsou umístěny v ulicích s názvem začínajícím písmeny v intervalu H (včetně) až S (kromě) v seřazení dle názvu ulice.

R42O AUTOMATY KO: VÝBĚR VĚT S POŽADOVANÝM ZAČÁTKEM OBSAHU TEXTOVÉHO POLE

Vypište automaty umístěné v ulicích s názvem začínajícím písmeny Ko.

R42P AUTOMATY NA LINCE B: VÝBĚR VĚT S POŽADOVANÝM KONCEM TEXTOVÉHO POLE

Vypište automaty umístěné v stanicích metra linky B.

R42Q AUTOMATY KXS: ZÁSTUPNÝ ZNAK PRO JEDEN TEXTOVÝ ZNAK

Vypište automaty umístěné v ulicích, jejichž název začíná písmenem K a na třetí pozici má písmeno s.

R42R AUTOMATY BEZ NEPŘETRŽITÉHO PROVOZU: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI

OBSAHU POLE

Vypište automaty, které nemají nepřetržitý provoz.

R42S OMEZENÉ AUTOMATY: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU POLE

Vypište automaty, které nejsou otevřeny nepřetržitě ani v době 5 – 24 hodin.

R42T POHYBY BEZ ÚČTU: VÝBĚR VĚT S PRÁZDNÝM OBSAHEM POLE

Vypište pohyby, v nichž není vyplněn účet.

R42n

Automaty na

ulici H – S

Automaty

(92 vět)

R42o

Automaty Ko

Automaty

(4 věty)

R42p

Automaty na

lince B Automaty

(25 vět)

R42q

Automaty Kxs

Automaty

(3 věty)

R42r

Automaty bez

nepřetržitého

provozu

Automaty (62 vět)

R42s Omezené

automaty

Automaty

(40 vět)

R42t Pohyby

bez účtu

Pohyby

(27 vět)

Page 237: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 237

R42U POHYBY S INTERVALEM VÝDAJE: VÝBĚR S INTERVALOVOU PODMÍNKOU OBSAHU POLE

Vypište pohyby s výdajovou částkou z intervalu <2000;10000>.

R42V POHYBY S INTERVALEM BEZ SIPO: VÝBĚR VĚT S INTERVALOVOU PODMÍNKOU A

PODMÍNKOU KONCE TEXTU

Vypište pohyby s výdajovou částkou z intervalu <2000;10000> avšak s výjimkou inkasa SIPO (sdružené inkaso plateb obyvatel).

R42W LEDNOVÉ POHYBY: VÝBĚR VĚT S DANÝM MĚSÍCEM V ČASOVÉM POLI

Vypište datum zaúčtování, pořadí měsíce, název dne, název měsíce, týden a čtvrtletí lednových pohybů v řazení dle data zaúčtování.

R42X AUTOMATY, KARTY, PŘÍKAZY: VĚTVENÝ VÝRAZ A VÝBĚR VŠECH POLÍ VĚTY

Vypište všechna data o výběrech z automatů („automat“), platby platební kartou („karta“) a platby dle trvalých příkazů („trvalý příkaz“) v řazení dle data zaúčtování.

C.2 Výběrové dotazy z více tabulek

R43A DETAILY POHYBŮ: VÝBĚR SOUVISEJÍCÍCH VĚT ZE DVOU TABULEK

Vypište k pohybům upřesnění výdajů.

R43B VÝBĚRY V PRAZE 1:VÝBĚR S PROPOJENÍM DVOU TABULEK S PODMÍNKOU

Vypište pohyby, které byly realizovány výběrem z automatu v Praze 1.

R43C VÝBĚRY V PRAZE 1 MIMO METRO: VÝBĚR S PROPOJENÍM DVOU TABULEK A DVOJÍ

PODMÍNKOU

Vypište pohyby, které byly realizovány výběrem z automatu v Praze 1 a to nikoliv v metru.

R42u Pohyby

s intervalem

výdaje

Pohyby (24 vět)

R42v Pohyby

s intervalem

bez SIPO

Pohyby

(17 vět)

R42w Lednové

pohyby

Pohyby

(17 vět)

R42x

Automaty,

karty, příkazy

Pohyby

(100 vět)

R43a Detaily

pohybů

Pohyby

Detaily

(185 vět)

R43b Výběry

v Praze 1

Pohyby

Automaty – R Automaty

(12 vět)

R43c Výběry

v Praze 1

mimo metro

Pohyby

Automaty – R

Automaty

(1 věta)

Page 238: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 238

R43D AUTOMATY VYBRANÉHO MĚSTA: VÝBĚR POMOCÍ OBSAHU POMOCNÉ TABULKY

Vypište automaty z vybraného města.

R43E DETAILY VÝBĚRŮ: VÝBĚR S PROPOJENÍM ČTYŘ TABULEK

Vypište výdaje vyplývající z výběru z automatů.

R43F DETAILY Z VYBRANÉHO MĚSTA: VÝBĚR S PROPOJENÍM PĚTI TABULEK

Vypište výdaje vyplývající z výběru z automatů z vybraného města.

R43G PONDĚLNÍ I ČTVRTEČNÍ AUTOMATY: VÝBĚR S PROPOJENÍM TABULKY DO SEBE

Vypište automaty, z nichž bylo vybráno v (libovolné) pondělí a zároveň v (libovolný) čtvrtek.

R43H POHYBY BEZ DETAILŮ: VÝBĚR VĚT S NEEXISTUJÍCÍM PROPOJENÍM DO JINÉ TABULKY

Vypište pohyby, k nimž nejsou uvedeny výdaje.

R43I DATUM VÝDAJE NA DOVOLENOU: VÝBĚR HODNOT POLE PRO PŘESNĚ DEFINOVANOU

VĚTU ČI VĚTY

Vypište datum zaúčtování pohybu výdaje na dovolenou.

R43J POHYBY PO DOVOLENÉ: DOTAZ NA ZÁKLADĚ VÝSLEDKU JINÉHO DOTAZU

Vypište pohyby, které byly realizovány ve stejný den nebo později než výdaj za dovolenou.

R43d

Město_F

Automaty

(11 vět)

R43e Detaily

výběrů

Detaily

Pohyby Automaty – R

Automaty

(14 vět)

R43f Detaily

z vybraného

města Detaily

Pohyby Automaty – R

Automaty

Město_F (1 věta)

R43g Pondělní

i čtvrteční

automaty Pohyby

Pohyby_1

(2 věty)

R43h Pohyby

bez detailů

Pohyby

Detaily

(0 vět)

R43i Datum

výdaje na

dovolenou

Pohyby

Detaily (1 věta)

R43j Pohyby

po dovolené

Pohyby

R43i Datum výdaje na

dovolenou

(46 vět)

Page 239: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 239

C.3 Výpočty

R44A ROZDÍL DOB: VÝPOČTY Z HODNOT POLÍ V RÁMCI VĚTY

Vypište pro jednotlivé pohyby rozdíl mezi dobou zaúčtování a zpracování.

R44B NEJ PRO AUTOMATY: SOUHRN POLÍ ZA SKUPINU VĚT

Vypište pro jednotlivé automaty nejdřívější a nejpozdější výběr a celkovou vybranou částku.

R44C CELKOVÝ ROZDÍL DOB: SOUČET VÝRAZU Z NĚKOLIKA POLÍ ZA SKUPINU VĚT

Vypište celkový rozdíl doby zaúčtování a zpracování za jednotlivé trvalé příkazy.

R44D PRŮMĚRNÝ ROZDÍL DOB: VÝRAZ ZE SOUHRNU VĚT

Vypište průměrný rozdíl doby zaúčtování a zpracování za jednotlivé trvalé příkazy.

R44E VÝDAJE ZA INKASO A SIPO: KRITÉRIUM V SOUHRNU

Vypište součty výdajů za čtvrtletí dohromady za inkaso a inkaso SIPO.

R44F AUTOMATY V TÝDNECH: SOUHRN DLE ČÁSTI POLE

Vypište celkové částky vybrané v jednotlivých týdnech z automatů.

R44G AUTOMATY S VYSOKÝM VÝBĚREM: KRITÉRIUM VE VÝSLEDKU SOUHRNU

Vypište automaty, z nichž bylo vybráno více než 10 000 Kč.

R44a Rozdíl

dob

Pohyby

(150 vět)

R44b Nej pro

automaty

Pohyby (4 věty)

R44c Celkový

rozdíl dob

Pohyby (5 vět)

R44d

Průměrný

rozdíl dob Pohyby

(5 vět)

R44e Výdaje

za inkaso a

SIPO Pohyby

(3 věty)

R44f

Automaty

v týdnech Pohyby

(12 vět)

R44g

Automaty

s vysokým

výběrem

Page 240: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 240

R44H BRZKÉ VÝBĚRY: OMEZENÍ POČTU VĚT VE VÝSLEDCÍCH

Vypište 2 automaty s nejdřívějším výběrem.

R44I ČTVRTINA AUTOMATŮ: VÝBĚR NĚKOLIK VĚT S NEJVYŠŠÍ HODNOTOU POLE

Vypište 25 % automatů s nejdřívějším výběrem.

R44J POHYBY ČTVRTINY AUTOMATŮ: UPŘESNĚNÍ ÚDAJŮ O VYBRANÝCH VĚTÁCH

Vypište pohyby pro 25 % automatů s nejdřívějším výběrem.

C.4 Parametrické dotazy

R45A POHYBY V MĚSÍCI: PARAMETRICKÝ DOTAZ S PŘESNÝMI KRITÉRII

Vypište pohyby v zadaném měsíci.

R45B VYBRANÉ POHYBY: PARAMETRICKÝ DOTAZ S PŘIBLIŽNÝM KRITÉRIEM

Vypište pohyby v zadaném měsíci nebo všechny pohyby.

R45C POHYBY DLE DATA: OMEZENÍ DATOVÉHO TYPU PARAMETRU PARAMETRICKÉHO

DOTAZU

Vypište pohyby od zadaného data.

Pohyby

Automaty – R Automaty

(3 věty)

R44h Brzké

výběry

Pohyby Automaty – R

Automaty

(2 věty)

R44i Čtvrtina

automatů

Pohyby

Automaty – R

Automaty (1 věta)

R44j Pohyby

čtvrtiny

automatů

R44i

Automaty – R Pohyby

(5 vět)

Automaty – R

Pohyby (4 věty)

R45a Pohyby

v měsíci

Pohyby

(pro leden 17 vět)

R45b Vybrané

pohyby

Pohyby

(pro leden 17 vět pro rok 150 vět)

R45c Pohyby

dle data

Page 241: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 241

C.5 Křížové dotazy

R46A POHYBY DLE POLOŽKY A MĚSÍCE: SOUHRN TABULKY DLE DVOU POLÍ

Vypište částky pohybů v součtu dle položky a měsíce.

R46B KŘÍŽOVÁ TABULKA POHYBŮ: KŘÍŽOVÝ DOTAZ S BĚŽNÝM POŘADÍM SLOUPCŮ

Vypište částky pohybů v součtu dle položky (řádky) a měsíce (sloupce) formou křížové tabulky.

R46C POHYBY DLE POLOŽKY A DNE: KŘÍŽOVÁ TABULKA SE ZADANÝM POŘADÍM SLOUPCŮ

Vypište částky pohybů v součtu dle položky (řádky) a dne v týdnu výběru (sloupce) formou křížové tabulky. Uveďte jen výběry ve středu, čtvrtek a pátek.

C.6 Akční dotazy

R47A TVORBA VÝBĚRŮ Z AUTOMATŮ: VYTVÁŘECÍ DOTAZ

Vytvořte tabulku Výběry z automatu, v níž bude přehled výběrů z automatů. Pro každý výběr uveďte všechna pole z tabulky Pohyby, z tabulky Automaty pole Umístění, Ulice, Město.

R47B METRO NÁRODNÍ: AKTUALIZAČNÍ DOTAZ

V tabulce Výběry z automatu změňte umístění Metro Národní I (B) na Metro Národní (B).

R47C UMÍSTĚNÍ DLE AUTOMATŮ: AKTUALIZAČNÍ DOTAZ S VYUŽITÍM DAT Z JINÉ TABULKY

V tabulce Výběry z automatu změňte umístění automatu dle umístění v tabulce Automaty.

Pohyby

(89 vět)

R46a Pohyby

dle položky a

měsíce Pohyby

(123 vět)

R46b Křížová

tabulka pohybů

Pohyby (56 vět)

R46c Pohyby

dle položky a

dne

Pohyby (56 vět)

R47a Tvorba

Výběrů z

automatu

Pohyby Automaty – R

Automaty

(13 vět)

R47b Metro

Národní

Výběry z automatu

(5 vět)

R47c Umístění

dle Automatů

Výběry z automatu

Automaty – R

Automaty (13 vět)

Page 242: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 242

R47D VÝBĚRY OD ČERVNA 2009: ODSTRAŇOVACÍ DOTAZ DLE POLE Z REDUKOVANÉ

TABULKY

Z tabulky Výběry z automatu odstraňte věty o výběrech po 1. 6. 2009.

R47E NEPŘETRŽITÁ DOBA: ODSTRAŇOVACÍ DOTAZ DLE POLE Z JINÉ NEŽ REDUKOVANÉ

TABULKY

Z tabulky Výběry z automatu odstraňte výběry z automatů s nepřetržitou dobou provozu.

Položka Položka v tabulce Automaty2 musí být klíčová.

R47F PŘIDÁNÍ POZDNÍCH VÝBĚRŮ: PŘIDÁVACÍ DOTAZ DLE POLE Z ROZŠIŘOVANÉ TABULKY

Do tabulky Výběry z automatu přidejte výběry realizované po 1. 6. 2009.

Pohyby, Automaty – R, Automaty (4 věty)

R47G PŘIDÁNÍ NEPŘETRŽITÝCH AUTOMATŮ: PŘIDÁVACÍ DOTAZ DLE POLE Z JINÉ NEŽ

ROZŠIŘOVANÉ TABULKY

Do tabulky Výběry z automatu přidejte výběry realizované v automatech s nepřetržitým provozem.

Pohyby, Automaty – R, Automaty (3 věty)

C.7 Jazyk SQL

R48A SJEDNOCENÍ ÚČTŮ A NÁZVŮ ÚČTŮ: SJEDNOCOVACÍ DOTAZ

Zobrazte z tabulky Pohyby všechny Účty a Názvy_účtů.

SELECT Pohyby.Účet

FROM Pohyby;

UNION SELECT Pohyby.Název_účtu

FROM Pohyby;

R48B SJEDNOCENÍ BEZ DUPLICIT: SJEDNOCOVACÍ DOTAZ S NÁZVEM A BEZ DUPLICIT

Zobrazte z tabulky Pohyby všechny Účty a Názvy_účtů bez duplicit, výsledný sloupec nadepište Název.

SELECT DISTINCT Pohyby.Účet AS Název

FROM Pohyby;

UNION SELECT DISTINCT Pohyby.Název_účtu

FROM Pohyby;

R47d Výběry

od června 2009

Výběry z automatu

(4 věty)

R47e

Nepřetržitá

doba

Automaty – R

(198 vět)

Výběry z automatu Automaty2

(3 věty)

R47f Přidání

pozdních

výběrů

R47g Přidání

nepřetržitých

automatů

R48a

Sjednocení

Účtů a Názvů

účtů

Pohyby (64 vět)

R48b

Sjednocení bez

duplicit

Pohyby

(64 vět)

Page 243: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 243

C.8 Kontingenční tabulka a graf z výsledků dotazu

R49A GRAF VÝDAJŮ DLE KATEGORIÍ: KONTINGENČNÍ TABULKA V PROCENTECH

Zobrazte graficky výdaje za jednotlivé kategorie výdajů v jednotlivých měsících.

R49B PODÍLY NA POLOLETÍ: KONTINGENČNÍ TABULKA V PROCENTECH

Zobrazte podíly výdajů za jednotlivé kategorie výdajů v jednotlivých měsících na celkových výdajích za leden – červenec

R49C PODÍLY ZA SKUPINY: SESKUPENÍ ŘÁDKŮ A SLOUPCŮ KONTINGENČNÍ TABULKY

Vypočtěte podíl výdajů za jednotlivé kategorie na celkových výdajích za čtvrtletí. Kategorie rozdělte do několika skupin.

R49D DVĚ NEJVYŠŠÍ KATEGORIE: ŘAZENÍ A FILTROVÁNÍ V KONTINGENČNÍ TABULCE

Zobrazte výdaje za jednotlivé kategorie v jednotlivých měsících za dvě kategorie s nejvyššími výdaji.

R49a Graf

výdajů dle

kategorií

Pohyby Detaily

(185 vět)

R49b Podíly na

pololetí

R49c Podíly za

skupiny

Pohyby

Detaily

(153 vět)

R49d Dvě

nejvyšší

kategorie

Page 244: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Rejstřík 244

Rejstřík

A

Access import z jiné databáze 193

akční dotazy 90

aktualizační dotaz 91

aktuální datum a čas 137

analýza tabulky 214

výkonu 215

automatická velikost 107, 137

automatické opravy názvů

polí 64

automatické spuštění

formuláře 220

automatický formát 112

automatický přepočet 66, 98

barvy ve formuláři 110

B

blokové rozložení sestavy 143

C

cíl odkazů 201

D

databáze 9

databázové modely 9

databázové nástroje 211

databázový systém 9

definice pole 43

deklarace 163

dialogové okno se zprávou

179

dokumentace 216

druhy dotazů 69

druhy formulářů 101

druhy sestav 129

duplikace hodnoty

z předchozí věty 26

dynamická sada a snímek 70

dynamické stránky 207

E

editace funkce 165

Excel export z Accessu 191

import do Accessu 191

import z Excelu 28

F

filtr 55

formát 45 ACCDE 220

ACCDR 220

písma 132

textu 51

výsledného pole 89

zobrazení datového listu 58

formulace dotazu 69

formulář s nabídkou objektů

220

formulář ve Wordu nápověda ve formuláři 183

rozevírací pole 184

tisk formuláře 186

ukládání dat z formuláře 186

zámek dokumentu 185

zaškrtávací políčko 184

formulářové zobrazení 105

funkce HyperLinkPart 78, 132

IIf 116

Left 78

Len 78, 108

Max 85

Min 85

Month 76

Sum 83

Switch 79

Val 85

G

globální místní nabídka 211

graf 123

H

hlavičky sloupců 52

hledání 62

hromadná korespondence 152

hypertextový odkaz 57

I

import tabulky z webu 206

indexování 48

inteligentní značky 49

J

jazyk SQL 93

K

karta 127 Doplňky ve formuláři 212

komprese kódu 49

kontingenční graf 67 z dotazu 94

kontingenční tabulka 65 v procentech 96

z dotazu 94

kontrola dotazu a spuštění 90

kontrola pravopisu 59

kopírování formátu 108

křížový dotaz 88

M

makro 153 akce dle zabezpečení 153

akce Krok 157

akce Najít další 155

akce Najít záznam 154

akce Nastavit vlastnost 159

akce Okno se zprávou 155

akce Otevřít formulář 154

akce Otevřít sestavu 157

akce Přejít na ovládací prvek

154

akce Zavřít 156

akce Zrušit událost 157

akce Zvukový signál 155

argumenty 153

krokování 157

opakování podmínky 155

podmínka akce 153, 155

podmínka Where 158

skupina maker 153, 162

spouštění maker 153

ve formuláři 159

v sestavě 161

metoda Navigate 205

místní nabídka formuláře 211

modifikace fungování kláves 64

hledání 64

seznamu 109

moduly 163

možnosti aktuální databáze 221

datového listu 221

kontroly pravopisu 221

návrhářů objektů 221

upřesnění 221

Page 245: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Rejstřík 245

zvětšení a zmenšení 134, 139

mřížka v rozložení 149

N

náhled 134

nahrazování 63

navazující dotazy 82

navigační podokno 20

návrh databáze 23

návrhové zobrazení 21, 103

název písma 145

nekonečný formulář 116

nekonzistentnost dat 31

nesvázané odkazy 201

normalizace 23, 34

nová relace 33

nové hodnoty 45

nulová délka 48

nutnost zadat 48

O

objekt OLE 57

objektová funkce CurrentDb

175

objekty, Accessu 9

metody, vlastnosti 174

oblíbené možnosti 220

obrysové rozložení sestavy

148

odebrání rozložení 107

odsazované rozložení sestavy

145

odstranění stránky 127

odstraňovací dotaz 91

omezení počtu vět 85

omezit na seznam 52

OneNote import do Accessu 199

opakované spojení tabulky 32

operace se záznamy 59

operátor & 78

>= 74

and 74

between 76

kde 84

not 75

null 76

or 73

orientace 55

Outlook export do Accessu 198

import do Accessu 198

kontakty do a z Outlooku 60

shromáždění dat 199

ověřovací pravidlo 47, 54

ověřovací text 48, 54

ovládací prvek 51, 102, 130 ActiveX 204

označování více objektů 107

P

panel nástrojů Rychlý přístup 18

zpráv 213

parametrický dotaz 86

pás karet 19

počet desetinných míst 45

počet řádků seznamu 52

počet sloupců 52

počet stránek a počet vět 137

podformulář 119

podíly v sestavě 149

podokno objektu 21

podsestava 142

pole s více hodnotami 53

se seznamem 106

ve formuláři 104

popis tabulky 54

pořadí prvků ve formuláři 109

sloupců 89

pořadí stránek 127

pouze přidat 51

PowerPoint 192

procedury 163

Project import do Accessu 197

propojení tabulek 36

průběžný součet 149

průvodce dotazem 144

importem textu 186

sestavou 143

vyhledáváním 54

překreslení formuláře 176

přesnost a měřítko 45

přesun do databáze Accessu 217

na SQL server 216

převod makra do Visual

Basicu 211

přidání obsahu tabulky do jiné 188

pole do návrhové mřížky 70

tabulky do konstrukce dotazu 69

přidávací dotaz 92

příkaz Do – Loop 175

For – Next 167

If – Then – Else 167

přiřazovací 165

Select – Case 180

With 176

příklady použití VBA 163

připojení tabulky z webu 207

Publisher export z Accessu 200

R

referenční integrita 25

relace dotazu a tabulky 32

tabulky ke stejné tabulce 32

vícenásobná 32

rozdělení formuláře 115

rozložení ovládacích prvků 105

v relacích 33

RTF formátování 58

Ř

řazení 55, 139

řazení a filtrování 61 v kontingenční tabulce 97

řazení výsledků dotazu 71

S

seskupení dle prvního znaku 145

řádků a sloupců kontingenční

tabulky 96

seskupování a řazení 148

seskupování ovládacích

prvků 107

sestava relací 212

seznam vlastností 212

SharePoint 207 aktualizace dat na webu 208

aktualizace dat v Accessu 209

aktualizace databáze na webu

209

přesun na server SharePoint 207

seznam serveru SharePoint 40

zobrazení SharePointu 56

schránka 58

sjednocovací dotaz 93

skrytí duplikátů 143

sloupce 60

podrobnosti 66

Page 246: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Rejstřík 246

tabulky v relacích 33

skupiny příkazů 19

skupiny tabulek 30

směry komunikace 181

Snapshot Viewer 135

součty za sekce a sestavu 149

souhrn ve formuláři 118

souhrnné dotazy 83

souhrny 59

specifikace importu 187

spojení tabulky do sebe 81

správce propojených tabulek 217

přepínacích panelů 218

spuštění Accessu 15

dialogového okna 20

statické stránky 206

stavový řádek 21

struktura formuláře 101

sestavy 129

svázané odkazy 203

Š

šablony místní 15

online 16

sestavy 136

šifrování databáze 219

šíření aplikací 10

šířka seznamu 52

šířka sloupce 52, 60

štítky 150

T

tabulka 16

textový soubor export z Accessu 190

import do Accessu 190

tisk na tiskárně 135

tisk relací 33

tisk vět ve sloupcích 140

titulek 47, 66 výrazu 77

titulkový pruh 19

tlačítka tvorby formuláře 102

tlačítka tvorby sestavy 130

tlačítko Office 18, 221

tlačítko s obrázkem 171

tvorba dotazu 17

tabulky 17, 39

tabulky návrhem tabulky 40

tabulky vyplněním prázdné

tabulky 40

tabulky ze šablony 39

tvůrce výrazu 76

typy dotazů 90

relací 24

spojení 24, 27

zdroje řádků 51

U

uložení dotazu 70

makra 153

modulu 165

relací 25

sestavy 136

úpravy ovládacích prvků 105

relace 33

seznamu hodnot 53

tabulky pro seznam 53

uložení podkladového dotazu

114

uzamčení pole 106

V

vázaný sloupec 52

vazba odkazů 201

velikost číselného pole 44

formuláře 113

těla sestavy 133

textového pole 43

Visio export z Accessu 195

import do Accessu 197

kontingenční diagram 197

organizační diagram 196

Visual Basic for Applications

163

vlastnost dotazu 71

formuláře 104

Při ztrátě fokusu 160

Při události Current 160

tabulky 54

textového pole 183

událostní 160

vložení obrázku 144

vnořený datový list 26, 55, 60

vstupní maska 46

výběr data 51

výchozí hodnota 47

hodnota v nové větě 58

nastavení prvku 108, 136

zobrazení 54

výplň ovládacího prvku 139

výpočet ve větě 83, 171

vypočtené celkové hodnoty a

pole 98

výraz v sestavě 131

výraz ve formuláři 108

výsledky dotazu 70

výška řádku 60

vytvářecí dotaz 90

vytvoření databáze 16

vytvoření a přejmenování

stránky 127

význam formulářů 101

sestav 129

vztahy 212

W

Web export z Accessu 206

import do Accessu 206

Word export části datové sady 189

export datové sady 189

export sestavy 189

export z Accessu 189

hromadná korespondence 189

import do Accessu 181

Z

zarovnání textu 50

zástupný symbol * 75

zástupný symbol ? 75

závislosti objektů 213

zdroj řádků 51

změny návrhu tabulky v

datovém listu 63

zmrazení sloupce 60

zobrazené hodnoty 54

zobrazení formuláře 101

rozložení 106

sestavy 129

tabulky 39

tabulky v relacích 33

výsledků 69

Page 247: Databázový systém Microsoft Access 2010 Access 2007... · Příklady použití VBA.) 163 8.2 Funkce výpisu celého jména ... Skripta jsou napsána tak, aby čtenář mohl pochopit

Databázový systém

Microsoft Access

2007

Tomáš Kubálek

Markéta Kubálková

Manažerská informatika

Publikace Databázový systém Microsoft Access 2007 je určena pro

výuku předmětu 2OP483 Manažerská informatika 3, který je zařa-

zen jako povinný předmět ve vedlejší specializaci 2MI Informační a

prezentační technologie v praxi a jako fakultně volitelný předmět

bakalářského a navazujícího magisterského studia na Fakultě mezi-

národních vztahů. Publikace je připravena tak, aby ji k samostudiu

mohli využít i další zájemci bez přímé výuky.

Obsahuje výklad jednotlivých objektů aplikace Microsoft Access

2007 na příkladu případové studie ve fiktivní firmě Encián:

Databáze

Relace

Tabulky

Dotazy

Formuláře

Sestavy

Makra

Moduly

Externí data

Databázové nástroje

Pořadí kapitol umožňuje čtenáři postupné studium programu. Kapi-

toly nemají stejný rozsah. Uspořádání textu dle objektů aplikace

Access usnadňuje návrat pokročilému uživateli k detailním informa-

cím o programu.

Na závěr publikace jsou uvedeny náměty samostatných cvičení

k jednotlivým kapitolám.

Soubory příkladů používaných v publikaci lze stáhnout z webové

stránky http://min.vse.cz či z http://fak2.vse.cz/kubalek.

Výuka realizovaná na základě publikace je zaznamenána na webu

http://multimedia.vse.cz (video, zvuk, prezentace, pracovní plocha).

O autorech:

Tomáš Kubálek je docentem

na Fakultě mezinárodních vzta-

hů VŠE v Praze, kde učí před-

měty zabývající se aplikací kan-

celářských programů. Byl řeši-

telem rozvojových projektů

např. na zavedení evropského

systému transferových kreditů (ECTS),

distanční formy výuky, vícedruhových zázna-

mů výuky či vzdělávání zaměstnanců. Podílel

se na projektu vybavení Rajské budovy VŠE

mobiliářem, audiovizuální technikou a infor-

mačním systémem. Několik let působil ve

funkci proděkana pro pedagogiku a informa-

tizaci Fakulty podnikohospodářské. Nyní je

systémovým integrátorem Fakulty mezinárod-

ních vztahů a akademickým ředitelem Univer-

zity třetího věku VŠE v Praze. Je testerem

ECDL. Předměty Manažerská informatika učí

od roku 1990.

Markéta Kubálková je odbor-

nou asistentkou na Fakultě

mezinárodních vztahů VŠE

v Praze, kde učí předměty za-

bývající se aplikací kancelář-

ských programů. Podílela se na

řešení několika rozvojových

projektů. Ve výzkumné práci se zabývá fakto-

ry ovlivňujícími budoucí úspěšnost malých a

středních podniků a modelem růstu malých a

středních podniků. Vede počítačová školení

učitelů a zaměstnanců školy i externí školení.

Je testerkou ECDL. Předměty Manažerská

informatika učí od roku 1993.

Vysoká škola ekonomická v Praze

Fakulta mezinárodních vztahů

Katedra obchodního podnikání

nová budova, 2. patro, kancelář 246

nám. W. Churchilla 4

130 67 Praha 3

224 095 646

[email protected]

[email protected]

http://min.vse.cz

http://fmv.vse.cz