")=0;Len([Charakteristika]) ; InStr(1;[charakteristika];"<em>")>=1; Len([Charakteristika])-20; InStr(1;[charakteristika];"<strong>")>=1; Len([Charakteristika])-28; InStr(1;[charakteristika];"
")>=1; Len([Charakteristika])-11) 111
5 Formuláře Pořadí prvků ve formuláři
105
V zobrazení rozložení nebo v návrhovém zobrazení klikneme v kartě NÁVRH ve skupině ZÁHLAVÍ NEBO ZÁPATÍ do tlačítka Pořadí ovládacích prvků. Zobrazí se dialogové okno Pořadí prvků (viz obr. 5-2). OBR. 5-2: DIALOGOVÉ OKNO POŘADÍ PRVKŮ
P52 Osoby – Identifikace
V okně jsou uvedeny názvy vázaných ovládacích prvků (tj. hodnota jejich vlastnosti Název). Kliknutí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. Klikneme do tlačítka Automatické pořadí. Access zvolí sám pořadí po „řádcích“ formuláře. Položky Foto a Prohlížeč webu zaměstnance (jediné ve druhém sloupci formuláře) přesuneme tažením za počáteční volič na konec seznamu. Kliknutí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.113 Klikneme 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.114 Kliknutím označíme původní telefon a do jiné vlastnosti Popis ovládacího prvku zapíšeme hodnotu Původní telefon. Popis 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 kliknutím do tlačítka ULOŽIT nebo kombinací kláves Ctrl S. Zobrazí se dialogové okno Uložit jako s připraveným názvem Form1. Název přepíšeme na P52 Osoby – Identifikace.115
113
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 . 114 Zůstávají dostupné kliknutí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 kliknout do ovládacího prvku. 115 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 Osoby – 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.
5 Formuláře Barvy ve formuláři
106
Ve formuláři chceme barevně zvýraznit klíčové pole Osoba: Kliknutím označíme pole Osoba. Ve formátové vlastnosti Barva popředí je hodnota Text 1, Světlejší 25%. Základní barvy vycházejí z motivu databáze, který nabízí 10 nazvaných barev (Pozadí 1, Text 1, Pozadí 2, Text2, Zvýraznění 1 – 6) a 2 barvy pro hypertextové odkazy (Hypertextový odkaz a Použitý hypertextový odkaz). Motivy jsou čerpány z kancelářského balíku Office. Motiv je možné pro databázi změnit, když v kartě NÁVRH ve skupině MOTIVY klikneme do tlačítka Motivy. Kromě 10 připravených motivů (Kancelář, Fazeta, Galerie, Integrál, Ion, Organika, Retrospektiva, Řez, Stébla, Zasedací místnost) můžeme vytvářet své vlastní motivy prostřednictvím výběru barev (12 barev) a písma. Barvu můžeme zadat: výběrem z předdefinované nazvané barvy, použitím tvůrce barev přesným určením zastoupení barev, např. #BA1419 zastupuje tmavě červenou barvu. 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. Seznam předdefinovaných barev rozbalíme kliknutí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. 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.116 Nejprve vybereme ze stávající motivu Kancelář barvu Zvýraznění 2: Ve vlastnosti Barva popředí klikneme do druhého tlačítka Tvůrce (tři tečky) na konci řádku vlastnosti Barva popředí se zobrazí okno s nabídkou barev (viz obr. 5-3): 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 nabízí barvy z nastaveného motivu. Umístěním ukazatele myši nad barvu se zobrazí název barvy. Klikneme do barvy Zvýraznění 2. V dalších pěti řádcích jsou různě světlé varianty barvy z motivu. 116
Např. ve Windows 10 lze nastavit barvy příkazem START, NASTAVENÍ, PŘIZPŮSOBENÍ, Barvy a MOTIVY.
5 Formuláře
107
Skupina STANDARDNÍ BARVY nabízí jednoduché barvy. 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.117 Umístěním ukazatele myši nad naposledy použitou barvu se zobrazí její kód v RGB modelu.118 Pro prohlédnutí zobrazení barvy Zvýraznění 2 z motivu nastavíme barvu s daným RGB: Ve vlastnosti Barva popředí klikneme do druhého tlačítka Tvůrce. Kliknutím do volby Další barvy zobrazíme dialogové okno Barvy se dvěma kartami: » 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
Velikost formuláře
červená: #BA, tj. 11*16 + 10 * 1 = 176 + 10 = 186 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 Osoba barvy: Barva popředí: tmavě červená #BA1419 Barva okraje: tmavě červená #BA1419 Barva pozadí: pozadí #E0E0E0 Ovládací prvek Osoba ještě formátujeme tučným písmem: kombinací kláves Ctrl B nebo v kartě DOMŮ ve skupině FORMÁTOVÁNÍ TEXTU kliknutím do tlačítka Tučné 119. Na závěr přípravy formuláře omezíme jeho výšku. Myší se přiblížíme k spodní hranici podrobností formuláře. Objeví se symbol dvojité šipky. Spodní hranici přitáhneme 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 podrobností formuláře120 Výška. Formulář uložíme a zavřeme. 117
Barvu lze vybírat také v kartě DOMŮ ve skupině FORMÁTOVÁNÍ TEXTU kliknutím do pravé části tlačítka Barva písma. Na tlačítku se pamatuje naposledy použitá barva, kterou lze aplikovat na jiný ovládací prvek jeho výběrem a kliknutím do levé části tlačítka. 118 Bohužel části RGB modelu jsou v opačném pořadí. Barva #BA1419 je tak zobrazena jako #1914BA. 119 Formát lze upravit v návrhovém zobrazení nebo zobrazení rozložení v kartě FORMÁT ve skupině PÍSMO tlačítkem Tučné. 120 V kap. 5.4 poznáme, že formulář se skládá ze sekcí. Náš formulář obsahuje jedinou sekci Podrobnosti.
5 Formuláře
108
5.3 Další samostatný formulář P53 Podniky – Identifikace
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 Osoby 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 stádiu vývoje a k jednotlivým činnostem NACE (cílový stav formuláře je v obr. 5-5). OBR. 5-5: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P53 PODNIKY – IDENTIFIKACE
Tentokrát vytvoříme formulář s větší pomocí Accessu: V navigačním podokně klikneme ve skupině TABULKY do tabulky Podniky. V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Formulář. Vytvoří se formulář, který se otevře v zobrazení rozložení: V záhlaví formuláře je logo a název formuláře. V podrobnostech formuláře jsou 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. Podle obrazovky počítače jsou pole v rozložení v jednom či ve dvou sloupcích. Každý sloupec obsahuje popisky a svázaná pole. V případě, že rozložení má dva sloupce tažením v zobrazení rozložení či návrhovném zobrazení postupně přesuneme z pravého do levého sloupce pole Bankovní_účet, Bankovní_kód, PSČ, Obec, Ulice, GPS, Šířka a Délka i s popiskami. Přesuneme rozložení tažením za rohový kříž na pozici 0,2;0,2. Sjednotíme výšku polí. V kartě USPOŘÁDÁNÍ ve skupině NASTAVENÍ VELIKOST A POŘADÍ klikneme do tlačítka Velikost a mezery a v sekci VELIKOST vybereme volbu Podle nejkratšího (správně by mělo být uvedeno Podle nejnižšího). Snížíme šířku polí v rozložení asi na polovinu, tj. na vodorovném pravítku do 7 cm. Zobrazíme seznam polí. Klikneme do odkazu Zobrazit všechny tabulky. Tažením ze skupiny POLE DOSTUPNÁ V SOUVISEJÍCÍCH TABULKÁCH přesuneme do formuláře pole Stupeň z tabulky Stádia a ovládací prvek modifikujeme: Umístíme ovládací prvek napravo od pole Stádium. Zúžíme jeho šířku. Styl okraje zadáme průhledný.
5 Formuláře Úprava a uložení zdrojového dotazu
109
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ÁCH 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. Odstraníme popisek vysvětlivky NACE1. Ovládací prvek vysvětlivky rozšíříme tak, aby v něm byl zobrazen celý text vysvětlivky, tj. prodloužíme jej dle vodorovného pravítka do 15 cm. Styl okraje vysvětlivky NACE zadáme průhledný. Povýšíme vlastnosti vysvětlivky NACE na výchozí nastavení textového pole. V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Výchozí nastavení prvku. Obdobně přesuneme NACE_v tentokrát již ze skupiny POLE DOSTUPNÁ PRO TOTO ZOBRAZENÍ napravo od NACE2. Díky výchozímu nastavení textového pole je již popisek odstraněn a pole prodlouženo. 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 zdrojového dotazu, tj. datovou vlastnost formuláře Zdroj záznamů (viz obr. 5-6). OBR. 5-6: DOTAZ K FORMULÁŘI P53 PODNIKY – IDENTIFIKACE
tabulky: NACE (6x) Podniky Stádia (69 vět)
Tlačítkem Zobrazit tabulku ve skupině NASTAVENÍ DOTAZU v kartě NÁVRH zobrazíme seznam tabulek. Tabulku NACE přidáme ještě pětkrát. 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. Pro všechna nová spojení zadáme typ spojení Zahrnout všechny záznamy z tabulky Podniky.121 Do návrhové mřížky dotazu doplníme NACE z tabulek NACE_1, _2, ..., _5 s titulkem NACE_v2, 3, ..., 6. Zdrojový dotaz uložíme v kartě NÁVRH ve skupině ZAVŘÍT tlačítkem Uložit jako pod názvem P53 Podniky – Identifikace a zavřeme s uložením do formuláře. 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. 121
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.
5 Formuláře
Mapa ve formuláři
Rozdělení formuláře
110
Do formuláře doplníme ze seznamu polí NACE_v2, 3, ..., 6. Odebereme rozložení. Klikneme do rohového kříže. V kartě USPOŘÁDÁNÍ ve skupině TABULKA klikneme do tlačítka Odebrat rozložení. Označíme pole Název_podniku, Stupeň s jeho popiskem, NACE_v, NACE_v2, …, 6 a sjednotíme jejich výšku dle nejvyššího Názvu_podniku. V kartě USPOŘÁDÁNÍ ve skupině NASTAVENÍ VELIKOSTI A POŘADÍ klikneme do tlačítka Velikost a mezery. V sekci VELIKOST vybereme volbu Podle nejvyššího. Umístíme do jednoho řádku pole vztahující se ke Stádiu. Předpokládáme, že stupeň je mírně níže. Označíme celý řádek. V kartě USPOŘÁDÁNÍ ve skupině NASTAVENÍ VELIKOSTI A POŘADÍ klikneme do tlačítka Zarovnat a vybereme volbu Nahoru. Obdobně zarovnáme řádek NACE6. Označíme pole NACE_v2, 3, …, 6 a svisle je rovnoměrně rozmístíme. V kartě USPOŘÁDÁNÍ ve skupině NASTAVENÍ VELIKOSTI A POŘADÍ klikneme do tlačítka Velikost a mezery. V sekci MEZERY vybereme volbu Vyrovnat svisle. 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. Napravo od vysvětlivek NACE vložíme webovou stránku s mapou umístění podniku: V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Ovládací prvek webového prohlížeče. Vymezíme umístění prvku s levým horním rohem 0,2;15,2 cm na pozici a pravým dolním rohem na pozici 14,8;28,8 cm. V dialogovém okně Vložit hypertextový odkaz klikneme do tlačítka Zrušit. Do zdrojového dotazu doplníme sloupec Šířka_z: Šířka. Název upravujeme, aby nedocházelo k využití vlastnosti šířka podrobností. Do datové vlastnosti ovládacího prvku webový prohlížeč Zdroj ovládacího prvku vložíme: ="http://www.mapy.cz/?query=" & [Šířka_z] & "%20" & [Délka] V prohlížeči se zobrazí mapy Seznamu.cz se zobrazením umístění podniku. Potlačíme zobrazování sekce Záhlaví formuláře, aby byla mapa lépe vidět: V místní nabídce kterékoliv sekce formuláře klikneme do volby Záhlaví a zápatí formuláře. Potvrdíme, že odstraněním sekcí budou odstraněny také všechny ovládací prvky v těchto sekcích. 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 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 nebo karet zadáme volbu Sbalit pás karet, potlačit zobrazování navigačního podokna, když klikneme do tlačítka Otevření nebo uzavření příčky (<<) v pravém horním rohu navigačního podokna. Nyní můžeme snadno najít v datovém listu podniku, po kliknutí do jeho řádku se informace o něm 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. Vybereme Datový list napravo. Datový list rozděleného formuláře: Můžeme potlačit možnost editace v datovém listu.
5 Formuláře
111
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.1 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.)
5.4 Nekonečný formulář P54 Cesty
Další formulář bude sloužit ke vkládání a prohlížení tabulky Cesty. Cílový vzhled formuláře je uveden v obr. 5-7. OBR. 5-7: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P54 CESTY
Nekonečný formulář
Vytvoříme formulář s větší pomocí Accessu: V navigačním podokně klikneme ve skupině TABULKY do tabulky Cesty. V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Další formuláře a vybereme volbu Více položek. 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 na 0,6 cm. 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í klikneme v kartě NÁVRH ve skupině OVLÁDACÍ PRVKY do tlačítka Textové pole. 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 popisku zapíšeme text Délka.
5 Formuláře
Podmíněné formátování
112
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í: v kartě FORMÁT ve skupině PÍSMO kliknutím do tlačítka Zarovnat doprava nebo do formátové vlastnosti Zarovnání textu pole Délka zadáme hodnotu vpravo. Obdobně zarovnáme příslušný popisek v záhlaví tabulky. Zúžíme šířku sloupce. Délku chceme zobrazovat barevným pruhem dle její hodnoty: Klikneme do libovolného řádku do sloupce Délka. V kartě FORMÁT ve skupině FORMÁTOVÁNÍ OVLÁDACÍHO PRVKU klikneme do tlačítka Podmíněné formátování. V dialogovém okně Správce pravidel podmíněného formátování klikneme do tlačítka Nové pravidlo (viz obr. 5-8). OBR. 5-8: DIALOGOVÉ OKNO SPRÁVCE PRAVIDEL PODMÍNĚNÉHO FORMÁTOVÁNÍ
V dialogovém okně Nové pravidlo formátování (viz obr. 5-9): » V horní části vybereme v poli Vyberte typ pravidla hodnotu Porovnat hodnoty s jiným záznamy. » Ve spodní části ponecháme nastaveny parametry nastavení datové pruhu (typ a barva pruhu). OBR. 5-9: DIALOGOVÉ OKNO NOVÉ PRAVIDLO FORMÁTOVÁNÍ
Ve formuláři jsou délkou pruhu odlišeny různé délky cest. Odstraníme mezery mezi sloupci: Kliknutím ve svislém pravítku označíme všechna pole v sekci PODROBNOSTI. V kartě USPOŘÁDÁNÍ ve skupině UMÍSTĚNÍ klikneme do tlačítka Výplň ovládacího prvku a vybereme volbu Žádná. Tažením za spodní hranu minimalizujeme sekci PODROBNOSTI.
5 Formuláře
113
Kombinací kláves Ctrl A označíme všechny prvky formuláře a posuneme je k levému kraji. Formulář uložíme pod názvem P54 Cesty. (Tento modifikovaný formulář se později stane podformulářem hlavního formuláře o tabulce Osoby.)
5.5 Formulář se souhrny P55 Licence
Ú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ě klikneme ve skupině TABULKY do tabulky Licence. V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Další formuláře a vybereme volbu Více položek. 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í. 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 na 0,6 cm. 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í a 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ách122 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í klikneme 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. 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. 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. Kliknutím do tlačítka Zavřít ukončíme změnu návrhu dotazu. Potvrdíme jeho uložení.
122
Pokud není skupina zobrazena, klikneme do volby Zobrazit všechny tabulky v horním kraji okna Seznam polí.
5 Formuláře
114
Odstraníme mezery mezi sloupci: Kliknutím ve svislém pravítku označíme všechna pole v sekci PODROBNOSTI. V kartě USPOŘÁDÁNÍ ve skupině UMÍSTĚNÍ klikneme do tlačítka Výplň ovládacího prvku a vybereme volbu Žádná. Tažením za spodní hranu minimalizujeme sekci PODROBNOSTI. Kombinací kláves Ctrl A označíme všechny prvky formuláře a posuneme je k levému kraji. Souhrn ve formuláři
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. (Umístěním pod horní hranu sekce se automaticky sekce otevře.) Jeho popisek změníme na Celkové tržby. Klikneme na ovládací prvek Program_v v podrobnostech a s klávesou Shift na popisek Celkové tržby. Zarovnáme je zleva. V kartě USPOŘÁDÁNÍ ve skupině NASTAVENÍ VELIKOSTI a pořadí klikneme do tlačítka Zarovnat a vybereme volbu Vlevo. Obdobně zarovnáme pole Cena v podrobnostech a v záhlaví formuláře. Pro Cenu v podrobnostech a v záhlaví sjednotíme ještě šířku. V kartě USPOŘÁDÁNÍ ve skupině NASTAVENÍ VELIKOSTI A POŘADÍ klikneme do tlačítka Velikost a mezery. V sekci VELIKOST vybereme volbu Podle nejužšího. 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 podrobnostech formuláře. Upravíme formát celkových tržeb: Do formátové vlastnosti Styl okraje zadáme hodnotu Průhledná čára. Do formátové vlastnosti Barva popředí pro popisek zadáme hodnotu Text1, Světlejší 25 %. Formulář uložíme pod názvem P55 Licence.
5.6 Podformulář
P56a Licence
P56b Faktury
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 Osoby. 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 formátová vlastnost Šířka seznamu: 3,5cm, 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. Osoba. 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. Pokud je to nutné, 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):
5 Formuláře
115 OBR. 5-11: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P56B FAKTURY
Podformulář
P56c Faktury
P56d Licence
V navigačním podokně klikneme ve skupině TABULKY do tabulky Faktury. V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Další formuláře a vybereme volbu Více položek. 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 na 0,6 cm. Tažením za jednotlivé svislé čáry zúžíme šířku pro jednotlivé sloupce tabulky. Upravíme popisek Osoba na Zaměstnanec. V návrhovém zobrazení změníme typy ovládacích prvků: Pole Osoba změníme na pole se seznamem, zdrojem řádků bude tabulka Osoby, 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 V rozbalovacím seznam se tak zobrazují pole IČ a Název_podniku. Odstraníme mezery mezi sloupci: Kliknutím ve svislém pravítku označíme všechna pole v sekci PODROBNOSTI. V kartě USPOŘÁDÁNÍ ve skupině UMÍSTĚNÍ klikneme do tlačítka Výplň ovládacího prvku a vybereme volbu Žádná. Tažením za spodní hranu minimalizujeme sekci PODROBNOSTI. Kombinací kláves Ctrl A označíme všechny prvky formuláře a posuneme je k levému kraji. Formulář uložíme pod názvem P56b Faktury. Pro další úpravy vytvoříme kopii formuláře: Kliknutí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 upravíme název 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. 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 podrobnosti 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 podrobnostech 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. Kliknutím do tlačítka OK změníme formulář S56c Faktury na samostatný.
5 Formuláře
116 OBR. 5-12: SOUSTAVA FORMULÁŘŮ
Kliknutím označíme a klávesou Delete odstraníme popisek podformuláře.123 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 podrobnosti 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 o licencích 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 Podřízené propojovací pole (z podformuláře), které mají shodnou hodnotu Faktura. Pokud by vlastnost 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 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. 124 Výsledný stav formuláře je uveden v obr. 5-13. OBR. 5-13: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P56C FAKTURY
123
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. 124 Ovládací prvky podformuláře lze označit i při práci s hlavním formulářem. Prvním kliknutím označíme podformulář (a vidíme jeho vlastnosti), druhým kliknutím vybereme ovládací prvek podformuláře.
5 Formuláře P56e Faktury
P56f Podniky
117
Fakturu nemůžeme vystavit 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ě klikneme ve skupině TABULKY do tabulky Podniky. V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Průvodce formulářem. 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). Klikneme do tlačítka Další. OBR. 5-14: PRŮVODCE FORMULÁŘEM - PRVNÍ OKNO
Ve druhém okně Průvodce vybereme rozložení Tabulka (pole ve sloupcích) a klikneme do tlačítka Další. Ve třetím okně Průvodce zadáme název formuláře P56f Podniky a ponecháme vybránu volbu Otevřít formulář pro zobrazení nebo zadávání informací. Klikneme 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. Snížíme výšku polí v podrobnostech na 0,6 cm. Přidáme popisky a pole podrobností do tabulkového rozložení. Průvodce nepřidává bohužel pole do rozložení. Upravíme šířky sloupců tabulky. Odstraníme mezery mezi sloupci: » Kliknutím ve svislém pravítku označíme všechna pole v sekci PODROBNOSTI. » V kartě USPOŘÁDÁNÍ ve skupině UMÍSTĚNÍ klikneme do tlačítka Výplň ovládacího prvku a vybereme volbu Žádná. » Přesuneme pole podrobností těsně pod horní hranu podrobností. » Tažením za spodní hranu minimalizujeme sekci PODROBNOSTI. » Kombinací kláves Ctrl A označíme všechny prvky formuláře a posuneme je k levému kraji. 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. V návrhovém zobrazení změníme formátovou vlastnost formuláře Výchozí zobrazení na hodnotu Samostatný formulář.
5 Formuláře
118
V návrhovém zobrazení zvýšíme výšku podrobností na 10 cm a tažením vložíme do podrobností asi 1 cm pod pole IČ podformulář P56e Faktury. Odstraníme popisek podformuláře P56e Faktury a posuneme podformulář nahoru asi 0,2 cm pod ovládací prvek IČ. Zvýšíme podformulář na výšku 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 podformuláře Faktury odstraníme pole IČ. Zkontrolujeme, že v datových vlastnostech podformuláře Faktury je pole IČ uvedeno ve vlastnostech Řídící propojovací pole a Podřízené propojovací pole. Závěrem vhodně upravíme šířku formulářů a objektů podformulářů125. Výsledný stav formuláře je uveden v obr. 5-15. OBR. 5-15: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P45F PODNIKY
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é, když v kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Podformulář či podsestava a upřesněníme vlastností podformuláře v průvodci podformulářem, či přímo ve vlastnostech (především Zdrojový objekt, Řídící a Podřízená propojovací pole). Podformulář vloží za vhodných podmínek do formuláře Access sám při prvotní definici formuláře. Podformulář je však v tomto případě zobrazen formou tabulky, což lze upravit výběrem vhodného podformuláře do datové vlastnosti Zdrojový objekt v návrhovém zobrazení. 125
Podformulář můžeme v návrhovém zobrazení zobrazit v samostatném novém okně, když v kartě NÁVRH ve skupině NÁSTROJE klikneme do Podformulář v novém okně.
5 Formuláře
119
Podformulář může být s formulářem propojen i skupinou více polí. Potom jsou jednotlivá pole ve vlastnosti Řídící a Podřízená 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. kliknutím do tlačítka na konci řádku Řídící propojovací pole nebo Podřízená propojovací pole.
5.7 Graf 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.
5.7.1 Graf za všechny věty P57 Podklady grafů
Nejdříve připravíme zdrojový 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Ů
P57a Graf – Celkové tržby
První graf celkových tržeb za podnik připravíme do prázdného formuláře bez datového zdroje: V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Návrh formuláře. V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Graf. Graf vymezíme po celé ploše podrobností 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ý. Ve čtvrtém okně upřesníme umístění polí v grafu: Tažením do pravé poloviny okna pod seznam polí 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 Řada 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 ze zdrojové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í dvojitě klikneme na graf. Graf se zobrazí v aplikaci Microsoft Graph, v níž upravíme typ grafu: Z menu zadáme příkaz GRAF, TYP GRAFU.
5 Formuláře
120
V dialogovém okně Typ grafu vybereme v rámci typu grafu Sloupcový první podtyp grafu Skládaný sloupcový a klikneme do tlačítka OK. Kliknutí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á čára. 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
5.7.2 Graf za jednotlivé zaměstnance P57b Graf – Osoby
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 Osoby: V navigačním podokně klikneme ve skupině TABULKY do tabulky Osoby. V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Průvodce formulářem: V prvním okně Průvodce vybereme pouze pole Osoba. V druhém okně ponecháme rozložení Sloupce (pole v řádcích). V třetím okně nazveme formulář P57b Graf – Osoby. V návrhovém zobrazení potlačíme zobrazení sekce Záhlaví formuláře z místní nabídky sekce výběrem volby Záhlaví a zápatí formuláře. Odsouhlasíme odstranění sekce. Jediné pole v podrobnostech posuneme do levého horního rohu. Zúžíme popisek Zaměstnanec. Přisuneme pole Osoba. Upravíme vlastnosti ovládacího prvku Osoba: formátová vlastnost Styl okraje: Průhledná čára 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: V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Vložit graf. Pod polem Osoba 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 do pravé poloviny okna pod seznam polí 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 Řada přetáhneme Měsíc. Tlačítkem Náhled grafu můžeme zobrazit ukázkový náhled. V pátém okně jsme 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
5 Formuláře
121
Pole grafu pole Osoba. Později bude vyplněno do vlastností Řídící a Podřízená 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í dvojitě klikneme 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 klikneme do tlačítka OK. Kliknutí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á čára. Výsledný formulář uložíme pod názvem P57b Graf – Osoby. 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 Podřízená propojovací pole hodnotou Osoba. OBR. 5-18: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P57B GRAF – OSOBY
V návrhovém zobrazení změníme ještě vlastnosti formuláře: formátová vlastnost Výchozí zobrazení: Rozdělit formulář 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.
5.7.3 Graf za jednotlivé podniky P57c Graf – Podniky
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 Osoby. Zobrazuje IČ a název podniku. Formulář vytvoříme průvodcem, odstraníme v něm záhlaví. IČ a název podniku umístíme do jednoho řádku vedle sebe. Pole IČ a Název_podniku jsou bez ohraničující čáry a uzamčené. Do grafu jsou umístěna pouze pole Program (Osa) a Cena (Data). Polem spojujícím větu a graf je pole IČ. Graf je nadepsán Tržby za prodeje vybranému podniku. Není zobrazena legenda.
5 Formuláře
122
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áře s nabídkou dalších objektů 5.8.1 Formulář s kartou P58e Karta – Osoby
Karta
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 několika stránek tzv. karty. Stránky karty se ve formuláři překrývají podobně jako karty v dialogových oknech programů. Access nazývá objekt se záložkami karta, každá záložka zastupuje jednu stránku. Využijeme stávající formuláře a vložíme je jako podformuláře na stránky karty komplexního formuláře. V podformulářích na stránkách karty budeme chtít zobrazovat jen věty, které se vztahující se k zaměstnanci zobrazenému v komplexním formuláři. Formulář bude obsahovat kartu se čtyřmi stránkami s podformuláři, které budeme mírně modifikovat, a proto si nejprve připravíme jejich kopie: P52 Osoby – Identifikace zkopírujeme do formuláře P58a Osoby – Identifikace, P56c Faktury zkopírujeme do formuláře P58b Faktury. P57b Graf – Osoby zkopírujeme do formuláře P58c Graf – Osoby. P54 Cesty zkopírujeme do formuláře P58d Cesty. Provedeme následující úpravy ve formulářích: P58a Osoby – Identifikace: Odstraníme pole a popisek Osoba, neboť bude uvedeno v hlavním formuláři. Ostatní ovládací prvky v levé části přesuneme v podrobnostech nahoru. P58b Faktury: Odstraníme pole Osoba. P58c Graf – Osoby: Odstraníme pole Osoba a Oprávnění. Graf posuneme nahoru. Zmenšíme výšku podrobností. 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 Osoba z tabulky Výjezdy. Pole Osoba do podformuláře neumístíme. Vytvoříme hlavní formulář, který bude obsahovat pouze pole Osoba a kartu s podformuláři. Připravíme kopii formuláře P57b Graf – Osoby pod názvem P58e Karta – Osoby. Odstraníme pole Oprávnění a graf. Do formuláře nachystáme objekt karta: V návrhovém zobrazení klikneme v kartě NÁVRH ve skupině OVLÁDACÍ PRVKY do tlačítka Karta. Kartu vymezíme v podrobnostech formuláře pod polem Osoba. Pravý dolní roh bude na pozici 15;12. Kartu bude možné později označit kliknutím napravo od poslední záložky. Kliknutím do některé ze záložek bude možné označit dílčí stránku karty.
5 Formuláře Vytvoření a přejmenování stránky
Odstranění stránky Pořadí stránek
123
V kartě jsou přichystány dvě stránky. Postupně klikneme na jejich záložky a upravíme jinou vlastnost Název na hodnotu Identifikace pro první stránku a Faktury pro druhou stránku126. Do karty chceme vložit další dvě stránky. Označíme kartu či některou stránku a v kartě NÁVRH klikneme 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. Kliknutím pravým tlačítkem do záložky stránky zobrazíme místní nabídku, v níž můžeme: volbou Odstranit stránku označenou stránku odstranit, volbou 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 - OSOBY
P58i Karta – Podniky
V návrhovém zobrazení klikneme 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ánky127 Identifikace formulář P58a Osoby – Identifikace. Pokud je podformulář vyšší či širší, automaticky se změní velikost stránky (v našem případě její výška i šířka). 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. 128 Podformuláře vkládáme do levého horního rohu stránek. Podformulář je propojen s hlavním formulářem polem Osoba. Pro podformulář na stránce Graf prodejů musíme upřesnit vlastnost Řídící a Podřízené propojovací pole na hodnotu Osoba. Obdobně připravíme komplexní formulář o podnicích, nejprve připravíme 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. 126
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. 127 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. 128 Po odstranění popisku prvního podformuláře je vhodné nastavení vlastností pole podformuláře definovat jako výchozí, když v kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Výchozí nastavení prvku, Ostatní podformuláře se potom vkládají bez popisku.
5 Formuláře
124
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 Osoby – Karta na jednotlivé stránky kopírujeme upravené podformuláře.
5.8.2 Formulář s navigací Formulář s navigací
P58j Navigační formulář
Formuláře bez návaznosti na hlavní formulář můžeme umístit do karet ve formuláři s navigací (viz obr. 5-21): V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Navigace a vybereme volbu Vodorovné karty, 2 úrovně. V první úrovni záložek navigačního formuláře dvojitě klikneme do záložky Přidat nový. Do záložky zapíšeme název Osoby a odešleme. Obdobně připravíme záložku Podniky. Ve druhé úrovni dvojitě klikneme do záložky Přidat nový. Zapíšeme název Identifikace. Do datové vlastnosti záložky Název cílové navigace vybereme Formulář P52 Osoby – Identifikace. Obdobně připravíme další záložky s formuláři: Osoby Podniky » Faktury: Formulář P56b Faktury » Identifikace: Formulář P53 Podniky - Identifikace » Graf: Formulář P57b Graf – Osoby » Faktury: Formulář P56b Faktury » Cesty: Formulář P54 Cesty » Graf: Formulář P57c Graf - Podniky Ve formulářovém zobrazení se kliknutím do záložky zobrazí příslušný objekt – formulář nebo graf. Název záložky je uveden ve formátové vlastnosti Titulek. OBR. 5-21: NAVIGAČNÍ FORMULÁŘ
5.8.3 Formulář s odkazy na objekty
P58k Formulář s odkazy na objekty Automatické otevření formuláře po otevření databáze
Formulář s odkazy na objekty
Do prázdného formuláře můžeme vložit hypertextové odkazy na libovolné objekty Accessu či odkazy na lokální soubory nebo na webové adresy (viz obr. 5-22): V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Návrh formuláře. V prázdném formuláři stiskneme v kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Hypertextový odkaz nebo stiskneme kombinaci kláves Ctrl K. V dialogovém okně Vložit hypertextový odkaz dohledáme v záložce Objekt v této databázi příslušný formulář a klikneme do tlačítka OK. Obdobně vložíme hypertextové odkazy na další objekty. Další odkazy se vkládají pod sebe. Poslední tři odkazy tažením přesuneme do druhého sloupce. Ve formulářovém zobrazení se po kliknutí na odkaz otevře objekt v samostatné kartě. Jakýkoliv formulář můžeme otevřít automaticky po spuštění databáze. V kartě SOUBOR vybereme Možnosti. V kartě Aktuální databáze v sekci MOŽNOSTI APLIKACE vybereme formulář do pole Zobrazit formulář. Změna se projeví po novém otevření databáze. OBR. 5-22: FORMULÁŘ S ODKAZY NA OBJEKTY
6 Sestavy
125
6 Sestavy 6.1 Druhy sestav Význam sestav
Druhy sestav
Zobrazení sestavy
Struktura sestavy
Sestavy slouží k prezentaci dat, zejména k tisku dat na tiskárně. Tisknout lze i formuláře129, 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. K dispozici je však jediný druh sestavy, který je analogií nekonečného formuláře. Tisknou se tedy všechny věty. Neexistuje analogie samostatného ani 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 rámci datové vlastnosti sestavy Filtr. 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ími130: Zobrazení sestavy: Sestava je zobrazena podobně, 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. Sestava není rozdělena na stránky, nezobrazuje se např. rozdělení do sloupců. 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 kliknutí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í šířky 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, 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 podrobností sestavy, můžeme tak ušetřit sloupec tabulky. Sestavu zaměstnanců můžeme např. seskupit dle pole Oddělení a 129
Tisknout lze také přímo tabulky. V navigačním podokně kliknutím označíme tabulku. V kartě SOUBOR klikneme v dílčí kartě TISK do tlačítka 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ů. Pokud je otevřena tabulka či dotaz tiskne se otevřený objekt, nikoliv objekt vybraný v navigačním podokně. 130 Ve vlastnostech sestavy lze zamezit nabízení některých zobrazení (zobrazení sestavy, zobrazení rozložení).
6 Sestavy
Ovládací prvky
Tlačítka tvorby sestavy
126
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. Podrobnosti obsahují prvky vztahující se k jednotlivým větám. Zápatí skupiny je vytištěno na konci skupiny. Může obsahovat např. volný prostor k oddělení skupin nebo součet za skupinu. 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ánky131. 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ŘENÍ ve skupině SESTAVY. 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ě. 132 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.133 Ovládací prvky jsou v tabulkovém rozložení. Tažením za kraj ovládacího prvku tak můžeme snadno měnit jeho umístění ve sloupcích. Sestava se zobrazí v zobrazení rozložení. Návrh sestavy: Vytvoří se nová prázdná sestava, která nemá definován datový zdroj. Sestava se zobrazí v 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í. Ovládací prvky nejsou v 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í. 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.
131
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 podrobnostech poslední věty na poslední stránce. 132 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 SESTAVY dostupná. 133 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.
6 Sestavy
127
6.2 Sestava s výrazy P62 Osoby – Identifikace
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 Osoby – Identifikace vypsána o zaměstnanci známá pole, přičemž: OBR. 6-1: SESTAVA P62 OSOBY – 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_stránka). 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ě klikneme ve skupině TABULKY do tabulky Osoby. V kartě VYTVOŘENÍ ve skupině SESTAVY klikneme do tlačítka Návrh sestavy. Vytvoří se sestava bez zdroje záznamů se sekcemi Záhlaví stránky, Podrobnosti, Zápatí stránky. Kliknutím do tlačítka Záhlaví a zápatí stránky ve skupině ZOBRAZIT ČI SKRÝT v kartě USPOŘÁDÁNÍ potlačíme zobrazení záhlaví a zápatí stránky. V kartě NÁVRH ve skupině NÁSTROJE klikneme do tlačítka Přidat existující pole. Zobrazí se okno Seznam polí, v němž zobrazíme všechny tabulky. Rozbalíme seznam polí tabulky Osoby a dvojitě klikneme na první pole Osoba. Pole Osoba včetně popisku se umístilo včetně popisku do podrobností. 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 podrobností umístíme celé jméno zaměstnance včetně titulů: Klikneme do vázaného ovládacího prvku Osoba a založíme skládané rozložení. V kartě USPOŘÁDÁNÍ ve skupině TABULKA klikneme do tlačítka Skládané. V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Textové pole. Tažením vymezíme textové pole pod polem Osoba. Tažením přesuneme nové pole na začátek skládaného rozložení.
6 Sestavy
128
Upravíme popisek nového pole na Celé jméno. Výraz v sestavě Do datové vlastnosti Zdroj ovládacího prvku nového pole zapíšeme výraz: =Trim([Titul1] & " " & [Jméno] & " " & [Příjmení] & [Titul2]) 134 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.135 Kliknutím do tlačítka Zobrazení rozložení ve stavovém řádku přejdeme do zobrazení sestavy. Access nás vyzve k zadání parametru Titul1, neboť v podkladovém dotazu sestavy není pole Titul1. Kliknutím do tlačítka Storno se vrátíme zpět do návrhového zobrazení. Ze Seznamu polí přidáme pod rozložení pole Titul1, Jméno, Příjmení a Titul2. Přidají se tak do zdrojového dotazu. Označíme je a odstraníme klávesou Delete ze sestavy. Ve zdrojovém 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. 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_stránka, Oprávnění. Kliknutím pravým tlačítkem a volbou 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 Pohlaví chceme vypisovat vysvětlivku. Proto upravíme vlastnosti: jiná vlastnost Název: Pohlaví_v136 datová vlastnost Zdroj ovládací prvku: =IIf([Pohlaví]="M";"muž";"žena") Funkce Pro pole Web_stránka chceme vypisovat druhou část pole adresy, proto upravíme vlastnosti: HyperLinkPart jiná vlastnost Název: Web_stránka_2 datová vlastnost Zdroj ovládací prvku: =HyperLinkPart(Web_stránka;2) formátová vlastnost Hypertextový odkaz: ne137 Stav Oprávnění 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: V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Textové pole. 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.") 138 Popisek Oprávnění fakturovat chceme odstranit. Musíme nejdříve odebrat ovládací prvek Oprávnění_v z rozložení. Označíme jej kliknutím a v kartě USPOŘÁDÁNÍ klikneme ve skupině
134
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. 135 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] 136 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 ze zdrojové tabulky či dotazu. Pokud bychom název nezměnili, v sestavě by se vypisoval chybný výstup.) 137 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. 138 Pole Oprávnění je přímo logickou hodnotou s výsledkem Ano či Ne. Funkce IIf nemusí obsahovat třetí parametr, který vypočítává hodnotu při nesplnění podmínky. Při nesplnění podmínky je výsledkem prázdný řetězec.
6 Sestavy
Formát písma
Velikost podrobností sestavy
139
129
TABULKA do tlačítka Odebrat rozložení. Kliknutím označíme popisek a odstraníme jej klávesou Delete. Ovládací prvek Oprávnění_v tažením za kraj posuneme doleva a rozšíříme. Obdobně odebereme z rozložení Celé_jméno. Posuneme dolů zbývající rozložení. Odstraníme popisek Celé jméno a textové pole posuneme doleva a rozšíříme. V kartě FORMÁT ve skupině PÍSMO klikneme do tlačítka Velikost písma a zvětšíme písmo v poli Celé_jméno na 14. Tlačítkem Tučné nebo kombinací kláves Ctrl B 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 kliknutím do tlačítka Tvůrce na konci řádku vlastnosti. V kartě NÁVRH ve skupině NASTAVENÍ DOTAZU klikneme do tlačítka Zobrazit tabulku. Zobrazí se dialogové okno Zobrazit tabulku, v němž dvojitě klikneme na tabulku Osoby. Dialogové okno zavřeme. Tažením pole Osoba z tabulky Osoby_1 na pole Nadřízený v tabulce Osoby propojíme tabulky Osoby a Osoby_1. Upravíme typ spojení na Zahrnout všechny z tabulky Osoby pro případ, že by některý zaměstnanec neměl vyplněného nadřízeného. Dvojitým kliknutím v tabulce Osoby_1 v podokně Diagram vybereme Titul1, Jméno, Příjmení, Titul2. 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. 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í. V kartě NÁVRH ve skupině ZAVŘÍT klikneme do tlačítka Zavřít. Potvrdíme uložení dotazu. Zkopírujeme obsah datové vlastnosti pole Zdroj ovládacího prvku pole Celé_jméno do schránky.139 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 podrobností sestavy: Označíme kliknutím do voliče (kříže) v levém horním rohu skládané rozdělení. V kartě USPOŘÁDÁNÍ ve skupině POZICE klikneme do tlačítka Výplň ovládacího prvku. Z nabídky vybereme ŽÁDNÁ. Pole jsme tak přiblížili k sobě. Kombinací kláves Ctrl A označíme všechny ovládací prvky sestavy. Za držení klávesy Shift klikneme do ovládacího prvku Celé_jméno, vyjme jej tak z označené skupiny. V kartě NÁVRH ve skupině PÍSMO rozbalíme tlačítko Velikost písma a vybereme velikost 9. Pro označené prvky snížíme formátovou vlastnost Výška na 0,4 cm. Ovládací prvky v rozložení se přisunou k sobě. Ručně přisuneme Oprávnění. V zobrazení rozložení 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 (šířka 2,4 cm). 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 (na 3 cm), tak abychom mohli později zúžit sestavu na 8 cm. Pole Foto umístíme napravo od kratších položek: Přesuneme tažením pole Nadřízený pod pole Úvazek. Pole Nadřízený a Web_stránka odebereme z rozložení. Popisek Web_stránka odstraníme. Pole Web_stránka_2 přesuneme doleva. Klikneme do další vlastnosti Formát textu. Kombinací kláves Shift Tab vybereme celý obsah vlastnosti Zdroj záznamů. Kombinací kláves Ctrl C zkopírujeme obsah vlastnosti do schránky.
6 Sestavy
Možnost zmenšení
Náhled
130
Textová pole Nadřízený_celé_jméno, Web_stránka_2 a Oprávnění_v rozšíříme tak, aby šířka sestavy byla 9 cm. Ze seznamu polí přetáhneme pole Foto napravo od pole Celé_jméno 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,4 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 9 cm. Do formátové vlastnosti Styl okraje zadáme hodnotu Průhledná čára. Označíme ohraničená pole. Na vodorovném pravítku klikneme nad polem Osoba. Zrušíme ohraničení. Do formátové vlastnosti Styl okraje zadáme hodnotu Průhledná čára. Pod pole Oprávnění umístíme vodorovnou čáru: V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Čára. Čáru nakreslíme v šířce 9 cm pod polem Oprávnění a případně ji tažením posuneme těsně pod Oprávnění. Sestavu tažením za dolní a pravý kraj zmenšíme na minimum. 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.140 Do formátové vlastnosti podrobností Možnost zmenšení zadáme hodnotu ano. Každá druhá věta má šedé pozadí podrobností. Potlačíme alternativní pozadí: V sekci PODROBNOSTI ve formátové vlastnosti Alternativní barvy pozadí zadáme barvu Pozadí 1. Sestavu prohlédneme v náhledu. V kartě NÁVRH klikneme do spodní části tlačítka Zobrazení ve skupině ZOBRAZENÍ a vybereme NÁHLED nebo klikneme do tlačítka Náhled ve stavovém řádku. Pás karet nyní nahradil stávající karty aplikační kartou NÁHLED, která obsahuje několik skupin tlačítek141: Ve skupině VELIKOST STRÁNKY: Tlačítkem Velikost můžeme vybrat velikost papíru, na nějž budeme sestavu tisknout. 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 ve skupině Rozložení stránky po kliknutí do tlačítka Vzhled stránky. Zaškrtávací pole Zobrazit kraje není v náhledu dostupné.142 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ářů. Ve skupině ROZLOŽENÍ STRÁNKY: Tlačítky Na výšku a Na šířku můžeme vybrat orientaci tisku.143 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. 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. Ve skupině LUPA: 140
Volný řádek se přesune v zobrazení sestavy za čáru mezi zaměstnanci, protože jsme nepovolili zmenšení podrobností sestavy. 141 Skupiny VELIKOST STRÁNKY a ROZLOŽENÍ STRÁNKY je dostupná také v zobrazení rozložení či návrhovém zobrazení na kartě VZHLED STRÁNKY. 142 V zobrazení rozložení můžeme potlačit zobrazování okraje tisku. 143 Parametry velikosti a orientace se ukládají se sestavou. Mohou být pro různé sestavy nastaveny různě.
6 Sestavy
Tisk na tiskárně
131
Kliknutím do horní části tlačítka Lupa přiblížíme či vzdálíme náhled. Stejného výsledku dosáhneme kliknutím myší do okna náhledu. Kliknutí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. Kliknutí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. Kliknutí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. Kliknutím do tlačítka Jedna stránka se můžeme vrátit k zobrazení jediné stránky. Ve skupině DATA: Tlačítka Aktualizovat vše, Seznam SharePoint, Databáze ODBC nejsou v obecné skupině DATA pro sestavy aktivní.144 Kliknutím do tlačítka Excel můžeme podkladový dotaz exportovat do Excelu. Kliknutím do tlačítka Textový soubor 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. Kliknutím do tlačítka PDF nebo XPS exportujeme data do souboru PDF nebo XPS. Exportují se také obrázky a čáry. Kliknutím do tlačítka E-mail se provede export do připojeného souboru e-mailové zprávy. Kliknutím do tlačítka Další zobrazíme nabídku dalších výstupních formátů exportu: » Word: 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. » Dokument HTML: 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. Neexportují se obrázky a čáry. Ve skupině TISK: Kliknutím do tlačítka Tisk zobrazíme dialogové okno 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ě Tisk: » Před tiskem můžeme vybrat tiskárnu či změnit vlastnosti tisku (např. zadat úsporný režim tisku).
144
Tlačítka Seznam SharePoint, Databáze ODBC jsou aktivní pro náhled tabulky.
6 Sestavy
132
» Jestliže zaškrtneme pole Vytisknout do souboru, budeme po kliknutí 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. » 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). » Kliknutím do tlačítka Nastavit zobrazíme dialogové okno Vzhled stránky bez karty Stránka. Ve skupině ZAVŘÍT NÁHLED: 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. Uložení sestavy
Sestavu uložíme kombinací kláves Ctrl S pod názvem P62 Osoby – Identifikace. Pokud bychom chtěli po dvojitém kliknutí 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 Osoba do zdroje dat) je v obr. 6-3. OBR. 6-3: SESTAVA P63 CESTY
Výchozí nastavení prvku
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 Osoby – Identifikace v návrhovém zobrazení. Klikneme do libovolného textového pole s popiskem s velikostí 9, např. do pole Osoba. V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Výchozí nastavení prvku, čímž způsobíme, že: 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í. Obdobně uložíme výchozí formátování libovolného popisku.
6 Sestavy Šablona sestavy
P63 Cesty
Aktuální datum a čas
Počet stránek a počet vět
133
Uložíme sestavu a zavřeme její návrh. Povýšíme sestavu na šablonu: V kartě SOUBOR klikneme do tlačítka Možnosti. V dialogovém okně Možnosti aplikace Access v kartě Návrháři objektů v předposlední sekci NÁVRHOVÉ ZOBRAZENÍ FORMULÁŘE NEBO SESTAVY zadáme do pole Šablona sestavy hodnotu P62 Osoby – Identifikace. Šablonu musíme vyplnit, nelze ji vybrat ze seznamu sestav. Vybraná sestava bude (pokud bude v databázi k dispozici145) 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, popisky, pole se seznamem a další) i některé vlastnosti sestavy a jejich sekcí. Vytvoříme novou sestavu: V navigačním podokně klikneme ve skupině TABULKY do tabulky Cesty. V kartě VYTVOŘENÍ ve skupině SESTAVY klikneme do tlačítka Sestava. 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. Vytvořená sestava má několik sekcí: V Záhlaví sestavy je: » ikona sestavy a název sestavy Cesty146, » v pravé části aktuální datum jako textové pole s výrazem =Date(), » aktuální čas jako textové pole s výrazem =Time(). Ovládací prvky v záhlaví sestavy jsou součástí společného rozložení. V Záhlaví stránky jsou popisky sloupců tabulkového rozložení (velikosti 9). 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 Podrobnostech 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 Počet cest v záhlaví sestavy je součástí tabulkového rozložení, které tak obsahuje ovládací prvky ze tří sekcí: Záhlaví stránky, Podrobnosti, Zápatí sestavy. Sestava se stane podsestavou hlavní sestavy dat o zaměstnancích. Provedeme proto některé úpravy: V návrhovém zobrazení v záhlaví sestavy odebereme rozložení: označíme libovolný ovládací prvek, klikneme do křížového voliče rozložení a v kartě USPOŘÁDÁNÍ ve skupině TABULKA klikneme do tlačítka Odebrat rozložení, odstraníme logo sestavy, aktuální datum, aktuální čas. Název Cesty zmenšíme na velikost 9, formátujeme je kurzívou, zmenšíme jeho ovládací prvek a přesuneme do levého horního rohu Záhlaví sestavy.
145
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. 146 Název lze snadno vložit do sestavy, když v kartě NÁVRH ve skupině ZÁHLAVÍ NEBO ZÁPATÍ klikneme do tlačítka Název.
6 Sestavy
134
V záhlaví sestavy změníme pozadí, tj. nastavíme formátovou vlastnost Barva pozadí na hodnotu Pozadí 1 (automatická barva). V zápatí stránky odstraníme číslování stránek, které nebude v rámci hlavní sestavy nutné. Zápatí stránky minimalizujeme. Záhlaví stránky by se v podsestavě nevypisovalo, proto popisky umístíme do záhlaví sestavy: Popisky nelze přesunout, pokud jsou součástí rozložení. Označíme rozložení a odebereme jej. V kartě USPOŘÁDÁNÍ ve skupině TABULKA klikneme do tlačítka Odebrat rozložení. Všimněme si, že již není zobrazena čára pod popisky a nad počtem vět. Kliknutím do svislého pravítka označíme popisky Rok, Cesta, Zahájení, Dokončení, Místo a přesuneme je do záhlaví sestavy pod název Cesty. Potlačíme zobrazení záhlaví a zápatí stránky. V místní nabídce sekce ZÁHLAVÍ STRÁNKY vybereme volbu Záhlaví a zápatí stránky. Tažením ve svislém pravítku označíme popisky a textová pole tabulky a opět je uspořádáme do tabulkového rozložení. V kartě USPOŘÁDÁNÍ ve skupině TABULKA klikneme do tlačítka Tabulkové. V zobrazení rozložení zmenšíme šířku sloupců na minimum (Rok: 0,9 cm, Cesta: 0,9 cm, Zahájení: 1,6 cm, Dokončení: 1,6 cm, Místo: 3 cm). Pole Rok, Cesta, Zahájení, Dokončení i jejich popisky zarovnáme zprava. Označíme kliknutím do svislého pravítka všechna pole podrobností a upravíme pro ně: formátovou vlastnost Styl okraje na hodnotu plná čára, v kartě USPOŘÁDÁNÍ ve skupině POZICE klikneme do tlačítka Výplň ovládacího prvku a vybereme volbu ŽÁDNÁ. Tažením za křížový volič rozložení posuneme ovládací prvky záhlaví sestavy a podrobností doleva. Tažením přesuneme všechna pole podrobností v rámci podrobností nahoru. Minimalizujeme výšku záhlaví sestavy a podrobností. V zápatí sestavy upravíme pro jediný ovládací prvek výraz uvedený v datové vlastnosti Zdroj ovládacího prvku na tvar: ="Počet cest: " & Count(*) Ovládací prvek v zápatí sestavy rozšíříme (na 2 cm) a přisuneme nahoru. Minimalizujeme zápatí sestavy. Minimalizujeme šířku sestavy. Je nyní široká asi 8 cm. Sestava se stane podsestavou hlavní sestavy s daty o zaměstnanci. Musíme proto připravit propojující pole Osoba 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 podrobností pole Osoba jako další sloupec tabulkového rozložení. Pole Osoba odstraníme. Minimalizujeme šíř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 P64 Licence
V další sestavě chceme vytisknout seznam licencí prodaných programů. Cílový stav sestavy (pouze pro Miloše Adamce) je v obr. 6-4.147
147
V náhledu se někdy mezi řádky zobrazují zdvojené vodorovné čáry. Při tisku na papír by se nevytisknuly.
6 Sestavy
135 OBR. 6-4: SESTAVA P64 LICENCE (POUZE LICENCE MILOŠE ADAMCE)
Vytvoříme novou sestavu: V navigačním podokně klikneme ve skupině TABULKY do tabulky Licence. V kartě VYTVOŘENÍ ve skupině SESTAVY klikneme do tlačítka Sestava. Vytvoří se sestava, jejímž zdrojem záznamů je tabulka Licence (viz datová vlastnost sestavy Zdroj záznamů). Textová pole a popisky v sestavě mají velikost 9, nadále využíváme společnou šablonu dle sestavy P62 Osoby – Identifikace. Změníme pořadí sloupců a doplníme do sestavy nové sloupce: Přesuneme sloupec Faktura tažením textového pole i popisku 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 Osoba z tabulky Faktury a hned jej ze sestavy odstraníme. Pole Osoba se tak stalo součástí zdrojového dotazu. Upravíme názvy sloupců:148 Změníme název sloupce Faktura na Fa. Zúžíme sloupec (0,8 cm). Sloupec Datum zarovnáme zprava a zúžíme (1,7 cm). Změníme název sloupce Název_podniku na Odběratel. Sloupec zúžíme (1,5 cm). Změníme název sloupce Program na Prg. Sloupec zúžíme (0,7 cm). Změníme název sloupce Sériové_číslo na Čís. Textové pole i popisek zarovnáme zprava. Zúžíme sloupec (0,7 cm). Textové pole i popisek Cena zarovnáme zprava a zúžíme (0,9 cm). Upravíme sestavu tak, aby byla co nejmenší: Ze záhlaví sestavy odebereme rozložení a odstraníme logo, aktuální datum a aktuální čas. Písmo v názvu sestavy zmenšíme na 9. Vypíšeme jej kurzívou. Zmenšíme velikost pole. V kartě USPOŘÁDÁNÍ ve skupině NASTAVENÍ VELIKOSTI A POŘADÍ klikneme do tlačítka Velikost a mezery. V sekci VELIKOST vybereme volbu Přizpůsobit obsahu. Pole přesuneme do levého horního rohu záhlaví sestavy. Změníme barvu pozadí záhlaví sestavy. Ve formátové vlastnosti Barva pozadí zadáme automatickou barvu Pozadí 1. Minimalizujeme záhlaví sestavy. 148
Nastavení šířky sloupců a zrušení výplně ovládacích prvků budeme muset po odebrání a přidání tabulkového uspořádání provést znovu.
6 Sestavy Výplň ovládacího prvku
Řazení
136
Ze zápatí stránky odstraníme číslování stránky a minimalizujeme zápatí stránky. Označíme všechna textová pole podrobností a změníme výplň jejich ovládacího prvku na žádnou. V kartě USPOŘÁDÁNÍ ve skupině POZICE klikneme do tlačítka Výplň ovládacího prvku a vybereme volbu Žádná. Pro textová pole podrobností změníme formátovou vlastnost Styl okraje na hodnotu Plná čára. Přesuneme popisky ze záhlaví stránky do záhlaví sestavy: Odebereme rozložení popisků a textových polí záhlaví stránky, podrobností a záhlaví sestavy. Popisky přesuneme ze záhlaví stránky do záhlaví sestavy pod název Licence. Označíme popisky a textová pole sloupců tabulky a uspořádáme je do tabulkového rozložení. Pokud se rozmístí popisek a odpovídající textového pole do různých sloupců, přesuneme textové pole do sloupce popisku. Odstraníme neobsazené sloupce označením buňky tabulky v záhlaví sestavy i buňky v podrobnostech a stisknutím klávesy Delete. Zadáme žádnou výplň ovládacích prvků textových polí. Textová pole podrobností posuneme v podrobnostech nahoru. Minimalizujeme výšku podrobností. Potlačíme zobrazování záhlaví a zápatí stránky. Zmenšíme šířku sloupců (Faktura: 0,8 cm, Datum: 1,7 cm, Odběratel: 1,5 cm, Prg: 0,7 cm, Čís.: 0,7 cm, Cena: 0,9 cm). Minimalizujeme šířku sestavy (asi 6,4 cm). 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 (2,3 cm) 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. V kartě NÁVRH ve skupině SKUPINY A SOUHRNY klikneme do tlačítka Seskupit a seřadit. V podokně Skupina, řazení a souhrn klikneme do tlačítka Přidat řazení. Ze seznamu polí vybereme pole Faktura. Klikneme do tlačítka Přidat řazení a vybereme pole Program. Klikneme do tlačítka Přidat řazení a vybereme pole Sériové_číslo. V podokně Skupina, řazení a souhrn je hierarchie řazení naznačena graficky (viz obr. 6-5). OBR. 6-5: PODOKNO SKUPINA, ŘAZENÍ A SOUHRN
Tisk vět ve sloupcích
Věty jsou v sestavě řazeny již dle našeho požadavku. Minimalizujeme šířku sestavy. Sestava je poměrně úzká (asi 6,5 cm) a dlouhá. Budeme ji proto vypisovat ve dvou sloupcích: V kartě VZHLED STRÁNKY v skupině ROZLOŽENÍ STRÁNKY klikneme do tlačítka Sloupce. Zobrazí se karta Sloupce dialogového okna Vzhled stránky (viz obr. 6-6).
6 Sestavy
137 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ů149 + levý okraj + pravý okraj <= šířka papíru, tj. v našem případě 6,5 * 2 + 2 + 0,6 + 0,6 = 16,2 <= 21 cm Vzdálenost řádků: Můžeme definovat rozestupy mezi řádky. (Jiným způsobem dosažení rozestupů je úprava podrobností 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 podrobnosti, akceptuje se šířka a výška věty z podrobností 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“ 150, 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ý. Uspořádání sestavy do sloupců se projevuje pouze v náhledu sestavy. Popisky jsou bohužel vytištěny jen v prvním sloupci151. Sestavu uložíme pod stejným názvem kombinací kláves Ctrl S.
6.5 Hlavní sestava a podsestavy P65 Hlavní sestava
Vytvoříme hlavní sestavu, která bude pro jednotlivé zaměstnance zobrazovat: osobní data (k jedné větě hlavní sestavy jedna věta podsestavy P62 Osoby – 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 Osoba s řazením 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ů.
149
Při více než dvou sloupcích musíme počítat s hodnotou vzdálenost sloupců * (počet sloupců – 1) „Řádek“ obsahuje podrobnosti věty, může to být více než jeden řádek. 151 Můžeme rozšířit sestavu a v záhlaví sestavy uvést popisky znovu. Rozšíříme tím i podrobnosti sestavy, protože šířka sestavy je společná pro všechny sekce. V kartě VZHLED STRÁNKY klikneme ve skupině ROZLOŽENÍ STRÁNKY do tlačítka Vzhled stránky. V dialogovém okně Vzhled stránky v kartě Sloupce zrušíme zaškrtnutí pole Stejná jako pro podrobnosti. 150
6 Sestavy
138 OBR. 6-7: SESTAVA P65 HLAVNÍ SESTAVA PRO PETRA NOVÁKA A ALENU POSPÍŠILOVOU
Podsestava
Vytvoříme novou sestavu: V navigačním podokně klikneme ve skupině TABULKY do tabulky Osoby. V kartě VYTVOŘENÍ ve skupině SESTAVY klikneme do tlačítka Sestava. Vytvoří se sestava, jejímž zdrojem záznamů je tabulka Osoby. Kliknutím do křížového voliče označíme tabulkové rozložení a klávesou Delete odstraníme všechny jeho ovládací prvky. Zdroj Osoby zůstane připojen (viz datová vlastnost sestavy Zdroj záznamů). Prázdné Záhlaví stránky a Zápatí sestavy je minimalizováno. Upravíme barvu pozadí záhlaví sestavy. Do formátové vlastnosti záhlaví sestavy Barva pozadí zadáme automatickou barvu Pozadí 1. V záhlaví sestavy odebereme rozložení a 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 19 cm a zarovnáme na střed. Text upravíme na znění: Informace o zaměstnancích firmy Encián Aktuální datum přesuneme pod název sestavy úplně vlevo, upravíme jeho šířku na 19 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 19 cm. Ponecháme jeho hodnotu: ="Stránka " & [Page] & " z " & [Stránky] Šířku stránky zúžíme na 19 cm. Do hlavní sestavy umístíme první podsestavu: Sestavu P62 Osoby – Identifikace táhneme z navigačního podokna na pozici podrobností asi 0,5;0 umístíme. Mírný odstup od horního kraje podrobností byl nutný, abychom snadno mohli označit popisek, který odstraníme. Ovládací prvek podsestavy umístíme do levého horního rohu podrobností hlavní sestavy. Šířku podsestavy ponecháme 9 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.
6 Sestavy
Výchozí zobrazení
139
Aby podsesestava nebyla ohraničena, upravíme její formátovou vlastnost Styl okraje na hodnotu Průhledná čára. Abychom nemuseli u dalších podsestav odstraňovat popisek a ohraničení, povýšíme formát první podsestavy na výchozí: Označíme podsestavu kliknutím. V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Výchozí nastavení prvku. 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 podrobností sestavu P63 Cesty. 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 hlavní sestavě 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: Kliknutím označíme první podsestavu. Dalším kliknutím označíme její libovolný ovládací prvek. Tažením za dolní okraj podrobností podsestavy podrobnosti dočasně zvýšíme. Kliknutím označíme čáru pod Oprávněním. Kombinací kláves Ctrl X ji vyjmeme do schránky. Minimalizujeme opět podrobnosti podsestavy. Zvýšíme tažením za dolní kraj podrobností 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 podrobností hlavní sestavy pod třetí podsestavu a rozšíříme ji na šířku hlavní sestavy, tj. 19 cm. Pokud je to nutné, omezíme opět šířku hlavní sestavy na 19 cm. Access propojil všechny tři podsestavy s daty v hlavní sestavě, tj. naplnil hodnotou Osoba jejich datové vlastnosti Řídící propojovací pole a Podřízená propojovací pole. Díky tomu se v podsestavách zobrazí pouze věty (zaměstnanec, cesty, licence) se shodným polem Osoba v hlavní sestavě. Sestavu musíme prohlédnout v náhledu, jedině v tomto zobrazení je korektně zobrazena (zobrazí se dva sloupce). 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 podrobností 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. (Např. pro Evu Benešovou je vypsán začátek první vědy již na první stránce.) Jednotlivé věty podsestavy jsou umístěny na stejné stránce, což by bylo možné uvolnit ve formátové vlastnosti podrobností podsestavy Udržovat pohromadě. Aby uživatel zobrazil prvotně sestavu v náhledu, upravíme formátovou vlastnost hlavní sestavy Výchozí zobrazení na hodnotu Náhled tisku. Hlavní sestavu uložíme pod názvem P65 Hlavní sestava. Potvrdíme uložení podsestav, v nichž jsme v rámci hlavní sestavy provedli změny.
6.6 Sestava bez duplikátů P66 Telefonní seznam
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).
6 Sestavy
140 OBR. 6-8: SESTAVA P66 TELEFONNÍ SEZNAM ODDĚLENÍ ANALÝZA A DISTRIBUCE
Průvodce sestavou
Blokové rozložení sestavy
Vytvoříme novou sestavu: Nechceme již navazovat na šablonu první sestavy: V kartě SOUBOR klikneme do tlačítka Možnosti. V kartě Návrháři objektů ve skupině NÁVRHOVÉ ZOBRAZENÍ FORMULÁŘE NEBO SESTAVY zadáme do pole Šablona sestavy text Normální. Zavřeme databázi a znovu ji otevřeme. Do sestavy chceme zahrnout jen vybraná pole tabulky Osoby, proto využijeme Průvodce sestavou. V navigačním podokně klikneme ve skupině TABULKY do tabulky Osoby. V kartě VYTVOŘENÍ ve skupině SESTAVY klikneme do tlačítka Průvodce sestavou. V prvním okně vybereme z tabulky Osoby pole Jméno, Příjmení, Osoba, Místnost a Telefon. Z tabulky Oddělení (výběrem v poli Tabulky či dotazy, v seznamu jsou dle abecedy nejprve tabulky, potom dotazy) vybereme pole Oddělení_v. V druhém okně zadáme, že chceme data prohlížet dle polí 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 Blok (viz obr. 6-9) a ponecháme orientaci na výšku. OBR. 6-9: ROZLOŽENÍ SESTAVY
V šesté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 upravíme sestavu: Označíme všechny ovládací prvky sekcí Záhlaví sestavy a Podrobnosti. Uspořádáme prvky do tabulkového rozložení. V kartě USPOŘÁDÁNÍ ve skupině TABULKA klikneme do tlačítka Tabulkové.
6 Sestavy
Skrytí duplikátů
Vložení obrázku
141
Změníme postupně typy polí pro Jméno a Místnost na textové pole. V zobrazení rozložení upravíme šířky sloupců (Oddělení_v: 2,4 cm, Příjmení: 2 cm, Jméno: 1,6 cm, Osoba: 2,9 cm, Místnost: 1,6 cm, Telefon: 1,4 cm). Zarovnáme pole Místnost a Telefon na střed. Upravíme popisek Oddělení_v na Oddělení. Pro pole Jméno a Místnost upravíme formátovou vlastnost Styl okraje na hodnotu Průhledná čára. Oddělení budeme vypisovat tučně. Klikneme do libovolného oddělení a stiskneme kombinaci kláves Ctrl B. Potlačíme šedé alternativní zobrazení podrobností. Ve formátové vlastnosti podrobností Alternativní barva pozadí zadáme hodnotu Bez barvy, popř. Pozadí 1 Prů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í. V kartě FORMÁT ve skupině SKUPINY A SOUHRNY klikneme do tlačítka Seskupit a seřadit. Zobrazí se dialogové okno Skupina, řazení a souhrn. Vidíme v něm, že sestava je: seskupena dle Oddělení, seřazena dle Příjmení a Jména. Do sestavy vložíme obrázek: Klikneme do tlačítka Logo ve skupině OVLÁDACÍ PRVKY v kartě FORMÁT. Dohledáme umístění souboru obrázku.152 Obrázek se umístí do levého horního rohu Záhlaví sestavy. Obrázek umístíme úplně vlevo nahoru. Ve formátových vlastnostech obrázku: Zvětšíme šířku obrázku na 1,5 cm, výšku obrázku na 1,5 cm. 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í je barva Pozadí 1 pro okraje, které vznikají zachováním proporcí. Ve vlastnosti Styl okraje je hodnota Průhledná čára. Posuneme název sestavy napravo od obrázku. Upravíme barvu pozadí záhlaví sestavy. Do formátové vlastnosti Barva pozadí zadáme automatickou baru Pozadí 1. 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 12,6 cm na vodorovném pravítku). 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. Pole zúžíme a zarovnáme zprava. Čí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 12,6 cm. V kartě VZHLED STRÁNKY ve skupině ROZLOŽENÍ STRÁNKY klikneme do tlačítka Vzhled stránky Zobrazí se dialogové okno 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 12,6 cm zbývá na okraje 21 – 12,6 = 8,4 cm, chceme sestavu tisknout doprostřed stránky, tj. na levý i pravý okraj zbývá 8,4/2 = 4,2 cm.) Sestavu přejmenujeme na P66 Telefonní seznam.
152
Ukázkový obrázek je uložen v souboru Telefon.gif. Je převzat z galerie klipartů a je zmenšen.
6 Sestavy
142
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-10. OBR. 6-10: SESTAVA P67 FAKTURACE
P67 Tržby Průvodce dotazem
P67 Fakturace
Seskupení dle prvního znaku
Odsazované rozložení sestavy
Sestava bude vycházet z tabulek Osoby, 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ě klikneme ve skupině TABULKY do tabulky Osoby. V kartě VYTVOŘENÍ ve skupině DOTAZY klikneme do tlačítka Průvodce dotazem. V prvním okně průvodce vybereme Průvodce jednoduchým dotazem. Ve druhém okně vybereme z tabulky Osoby pole Osoba a z tabulky Programy pole Cena. V třetím okně vybereme druh dotazu Souhrnný. Klikneme 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ě klikneme ve skupině TABULKY do tabulky Osoby. V kartě VYTVOŘENÍ ve skupině SESTAVY klikneme do tlačítka Průvodce sestavou. V prvním okně vybereme z tabulky Osoby pole Příjmení, Jméno, z tabulky Oddělení pole Oddělení_v, z tabulky Osoby pole Úvazek, Oprávnění (opakovaně čerpáme z tabulky Osoby, abychom připravili pořadí polí v sestavě), z dotazu P67 Tržby pole Tržby. V druhém okně přidáme seskupení podle pole Příjmení. Klikneme 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. V třetím okně zadáme řazení vět dle Jména. V čtvrtém okně vybereme rozložení sestavy Odsazované a ponecháme orientaci na výšku. V pátém okně nazveme sestavu P67 Fakturace a zadáme zobrazení náhledu sestavy.
6 Sestavy
Název písma
143
V návrhu sestavy provedeme změny: Do formátové vlastnosti záhlaví sestavy Barva pozadí zadáme hodnotu Pozadí 1. Uspořádáme popisky ze sekcí Záhlaví stránky, Záhlaví Příjmení a Podrobnosti do tabulkového rozložení. Rozložení posuneme doleva Popisek Příjmení podle prvního písmena nahradíme pomlčkou. Popisek Oddělení_v upravíme na Oddělení. Změny typ na textové pole a potlačíme ohraničení pro pole Jméno a Úvazek. Vhodně upravíme šířku sloupců (První písmeno: 0,5 cm, Jméno: 1,2 cm, Příjmení: 1,8 cm, Oddělení: 2 cm, Úvazek: 1,2 cm, Oprávnění: 1,6 cm, Tržby: 1,3 cm). 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 Osoby na typ Zahrnout všechny záznamy z tabulky Osoby. Nyní se vypisuje již všech 20 zaměstnanců. Místo hodnoty tržeb vypíšeme symbol smutku (zamračené tváře) pro zaměstnance, kteří nefakturovali žádné prodeje: Upravíme v sekcích Záhlaví Příjmení a Podrobnosti vlastnost Alternativní barva pozadí na hodnotu Pozadí 1. 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 prázdným polem Tržby 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. (L písmem Wingdings je symbol zamračené tváře.) Popisek i textové pole 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 popisek i textové 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í];"ţ"). Znak ţ zapíšeme z klávesnice držením klávesy Alt a stisknutím kláves 0254 na numerické klávesnici. Kódy znaků můžeme najít např. při vkládání symbolů do Wordu. V kartě VLOŽENÍ ve skupině SYMBOLY klikneme do tlačítka Symbol a vybereme volbu Další symboly. Můžeme vyhledat vhodný symbol a pod tabulkou symbolů k němu Kód znaku (viz obr. 6-11). OBR. 6-11: VYHLEDÁNÍ KÓDU ZNAKU VE WORDU
6 Sestavy
144
formátovou vlastnost Název písma na hodnotu Wingdings, zarovnáme popisek i textové pole na střed. Zúžíme sloupec (na 1,7 cm). 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 10,4 cm a zarovnáme na střed. Sestavu zúžíme na 10,4 cm. Upravíme levý kraj stránky na 53 mm (21 – 10,4 = 10,6 cm, polovina je 5,3 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-12. OBR. 6-12: SESTAVA P68 PODÍLY
začátek stránky 1
konec stránky 2
konec sestavy
6 Sestavy P68 Tržby
145
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ě klikneme ve skupině TABULKY do tabulky NACE. V kartě VYTVOŘENÍ ve skupině DOTAZY klikneme do tlačítka Průvodce dotazem. V prvním okně průvodce vybereme Průvodce jednoduchým dotazem. Ve druhém okně vybereme z tabulky Sekce pole Sekce a Sekce_v, z tabulky NACE pole NACE a NACE_v a z tabulky Programy pole Cena. Zobrazí se upozornění, že některé vybrané tabulky nejsou propojeny relacemi. Příčinou je propojení tabulek Sekce a NACE prostřednictvím dotazu. Klikneme do tlačítka Zrušit. Opět ve druhém okně odebereme pole Sekce a Sekce_v. Ve třetím okně vybereme pole Souhrnný dotaz a klikneme 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-13, kde je již dotaz upraven). OBR. 6-13: DOTAZ P68 TRŽBY
P68 Podíly
V kartě NÁVRH ve skupině NASTAVENÍ DOTAZU klikneme 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. Do podokna Mřížka doplníme na začátek pole s výrazem Sekce_s: [Sekce].[Sekce] & " " & [Sekce_v]153 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ě klikneme ve skupině DOTAZY do dotazu P68 Tržby. V kartě VYTVOŘENÍ ve skupině SESTAVY klikneme do tlačítka Průvodce sestavou.
153
Upřesnění tabulky Sekce pro pole Sekce je nutné, neboť pole Sekce se vyskytuje také v tabulce Oddíly_Sekce.
6 Sestavy
Obrysové rozložení sestavy
146
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.154 V čtvrtém okně vybereme rozložení sestavy Osnova a ponecháme orientaci na výšku. V pátém okně nazveme sestavu P68 Podíly a zadáme zobrazení náhledu sestavy. V návrhu sestavy provedeme změny: v sekci ZÁHLAVÍ SESTAVY: Název sestavy v Záhlaví sestavy změníme na Tržby za sekce a posuneme do levého horního rohu. Nastavíme velikost názvu sestavy. V kartě USPOŘÁDÁNÍ ve skupině NASTAVENÍ VELIKOSTI A POŘADÍ klikneme do tlačítka Velikost a mezery a v sekci VELIKOST vybereme volbu Přizpůsobit obsahu. Nastavíme formátovou vlastnost záhlaví sestavy na automatickou barvu Pozadí 1. Výšku Záhlaví sestavy minimalizujeme. v sekci Záhlaví Sekce_s: Odstraníme popisek Sekce_s. textové pole Sekce_s přesuneme do levého horního rohu Záhlaví Sekce_s a rozšíříme na šířku 19 cm. v sekcích Záhlaví Sekce_s a Podrobnosti: Označíme tažením ve svislém pravítku všechny ovládací prvky a uspořádáme je do tabulkového rozložení. V kartě USPOŘÁDÁNÍ ve skupině TABULKA klikneme do tlačítka Tabulkové. Odstraníme výplň ovládacích prvků v tabulkovém rozložení. V kartě USPOŘÁDÁNÍ ve skupině POZICE klikneme do tlačítka Výplň ovládacího prvku a vybereme volbu Žádná. Tažením za křížový úchyt posuneme rozložení doleva. Popisky táhneme v záhlaví Sekce_s nahoru pod pole Sekce_s a sekci minimalizujeme. Textová pole táhneme v Podrobnostech nahoru a sekci minimalizujeme. Pro textová pole v Podrobnostech doplníme okraj. Do formátové vlastnosti Styl okraje vyplníme hodnotu Plná čára. Upravíme text popisků. Popisek NACE_k změníme na NACE. Popisek NACE_v změníme na Název základní činnosti. Připustíme zvětšení textového pole NACE_v na více řádků. Do formátové vlastnosti Možnost zvětšení zadáme hodnotu Ano. Upravíme šířku sloupců (NACE_k: 1,1 cm, NACE_v: 11,4 cm, Tržby: 1,6 cm). V sekcích Záhlaví Sekce_s, Podrobnosti, Zápatí Sekce_s nastavíme alternativní barvu pozadí na Pozadí 1. 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. Upravíme ještě formátové vlastnosti tržeb v sekcích Podrobnosti, Zápatí Sekce_s a Zápatí sestavy: Do formátové vlastnosti Formát vložíme hodnotu Standardní. Do formátové vlastnosti Počet desetinných míst vložíme hodnotu 0.
154
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. Kliknuli 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.
6 Sestavy Seskupování a řazení
147
Nyní doplníme do sestavy součet tržeb za jednotlivé sekce a za všechny sekce: V kartě NÁVRH ve skupině SKUPINY A SOUHRNY klikneme do tlačítka Seskupit a seřadit. Zobrazí se podokno Skupina, řazení a součet (viz obr. 6-14), v němž klikneme do tlačítka Další, abychom zobrazili další možnosti okna. Tlačítko Další je nahrazeno tlačítkem Méně. Kliknutím do rozbalovacího tlačítka můžeme rozbalit nabídku jednotlivých prvků (trojúhelníková tlačítka na pravém konci ovládacích tlačítek). OBR. 6-14: PODOKNO SKUPINA, ŘAZENÍ A SESKUPOVÁNÍ
Součty za sekce a sestavu
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 (probereme dále pro náš případ podrobně), s názvem: možnost přidat do podokna Skupina, řazení a souhrn pro záhlaví sekce seskupení jeho název (nezobrazuje se v sestavě, zobrazuje se v nevybraných sekcích), s oddílem 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. Doplníme k tržbám součty pro skupinu Sekce_s: Rozbalíme nabídku bez součtů (kliknutím do trojúhelníku na konci). V poli Souhrn pole vybereme Tržby. V poli Typ ponecháme Součet. Zaškrtneme pole Zobrazit celkový součet a pole Zobrazit v zápatí skupiny. Uchováme skupinu na stejné stránce: Rozbalíme nabídku neudržovat skupinu… a vybereme volbu udržovat celou skupinu na jedné stránce. 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 popř. Zápatí sestavy. Doplníme popisek k součtu za sekci: V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Popisek. 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. Popisky součtů umístíme do druhého sloupce tabulkového rozložení (Název základní činnosti.) Upravíme čáry v sestavě a její vzhled: Potlačíme čáry nad součty v Zápatí Sekce_s i v Zápatí sestavy změnou formátové vlastnosti Styl mřížky nahoře na hodnotu Průhledná čára. Potlačíme ohraničení součtů změnou formátové vlastnosti Styl okraje na hodnotu Průhledná čára. Součtové řádky v sekcích Zápatí Sekce_s i v Zápatí sestavy posuneme nahoru.
6 Sestavy
Podíly v sestavě
Průběžný součet
148
Chceme, aby celá skupina byla vždy na stejné stránce. V podokně Skupina, řazení a součet pro seskupení Sekce_s vybereme udržovat celou skupinu pohromadě na jedné stránce. Pod součtovým řádkem ponecháme mezery pro přehlednější oddělení sekcí od sebe. Doplníme sloupec s podílem jednotlivých činností na tržbách za všechny sekce: Klikneme do popisku Tržby. S klávesou Shift klikneme 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.155 Tažením doprava vložené prvky posuneme za první sloupec tržeb. Minimalizujeme Záhlaví Sekce_s a Podrobnosti. 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 Podrobnostech: datovou vlastnost Zdroj ovládacího prvku na hodnotu =Tržby/Tržby_vše156, 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 a Podrobnosti. 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_sekce]. 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.
6.9 Štítky Štítky
P69 Š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-15).157 Vytvoříme novou sestavu: V navigačním podokně klikneme ve skupině TABULKY do tabulky Podniky. V kartě VYTVOŘENÍ ve skupině SESTAVY klikneme do tlačítka Štítky. V prvním okně Průvodce štítky se nabídne řada typů štítků (viz obr. 6-16). V poli Druh štítků ponecháme vybrány Volné listy158, v poli Filtrovat podle výrobce můžeme vybrat výrobce štítků, jeho štítky se potom nabízí v horním seznamu. 155
Sloupec jsme vkládali kopírováním, abychom zachovali společné rozložení popisku, textového pole v podrobnostech a součtu v zápatí skupiny. 156 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. I zde nám pomáhá našeptávač. 157 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. 158 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.
6 Sestavy
149 OBR. 6-15: VOLNÝ LIST A4 ADRESNÍCH ŠTÍTKŮ
OBR. 6-16: PRVNÍ OKNO PRŮVODCE ŠTÍTKY
Nevyužijeme žádný nabízený formát štítků, připravíme vlastní. Klikneme do tlačítka Přizpůsobit. Zobrazí se dialogové okno Nová velikost štítku. Zde může být uveden seznam dříve vytvořených vlastních štítků. Klikneme do tlačítka Nový. Zobrazí se dialogové okno Úprava štítku, v němž zadáme hodnoty dle obr. 6-17. 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árnou 159. Okraj mezi štítky zadáme jako dvojnásobek levého kraje. I na prostředním štítku 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 159
Šířka okraje je různá dle typu tiskáren. Nebývá větší než 0,8 cm.
6 Sestavy
150 OBR. 6-17: DIALOGOVÉ OKNO ÚPRAVA ŠTÍTKU
Kliknutím do tlačítka OK ukončíme definici parametrů štítku. Kliknutím do tlačítka Zavřít zavřeme dialogové okno Nový štítek.160 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-18). Na začátku vynecháme volný řádek, aby text byl uprostřed štítku. OBR. 6-18: TŘETÍ OKNO PRŮVODCE ŠTÍTKY
Ve čtvrtém okně zadáme řazení štítků dle IČ. V pátém okně zadáme název sestavy P69 Štítky, ponecháme vybrané zobrazení náhledu vytištěných štítků a klikneme do tlačítka Dokončit. Případné hlášení o nezobrazení některých dat odsouhlasíme kliknutím do tlačítka OK. Zobrazí se náhled sestavy štítků (viz obr. 6-19). OBR. 6-19: SESTAVA P69 ŠTÍTKY – PRVNÍ ŘADA TŘÍ ŠTÍTKŮ
160
Definice vlastního štítku se neukládá do databáze, ale do uživatelských nastavení Accessu.
7 Makra
151
7 Makra 7.1 Druhy a struktura maker Makro
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 v návrháři maker akce z katalogu 67 akcí. Fungování akcí upřesňujeme prostřednictvím argumentů akcí. Typy akcí Akce jsou rozděleny do 8 skupin podle typů: Databázové objekty (11 akcí), např. Otevřít formulář Filtr/Dotaz/Hledání (12 akcí), např. Najít záznam Import/Export dat (5 akcí), např. HromadnáPoštaWord Operace zadávání dat (3 akce), např. UložitZáznam Příkazy maker (14 akcí), např. ZrušitUdálost Příkazy systému (4 akce), např. ZavřítDatabázi Příkazy uživatelského rozhraní (9 akcí), např. OknoSeZprávou Správa okna (5 akcí), např. ZavřítOkno Dále jsou k dispozici nástroje pro běh programu (4 speciální akce): podmínka, komentář, seskupení, submakro. Argumenty Akce lze parametrizovat prostřednictvím argumentů. Jednotlivé příkazy mají různé argumenty. Hodnoty argumentů lze často vybírat z rozevíracích seznamů. Podmínka akce 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í. Komentář Komentáře usnadňují čtení maker. Komentář je dokumentační akce s textem a:seskupení vysvětlujícím chod makra. Akce lze seskupovat. Skupinu je možné nazvat a sbalit tak, aby nerušila čtení dalších akcí. Skupiny maker 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. Spouštění Z hlediska spouštění makra lze makra rozdělit na: maker makra spouštěná přímo z navigačního podokna, vložená makra spouštěná z jiných objektů (především formulářů a sestav) při zadané události (např. při kliknutí 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í. 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. Ukládání Makra mohou být uložena: maker jako objekty zobrazované v navigačním podokně, jako vložené makro spouštěné při události v jiném objektu, makro je potom uložené přímo v tomto objektu a není možné používat jej v jiném objektu.161
161
Různé způsoby uložení jsou analogické jako uložení dotazů. Např. zdrojem 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.
7 Makra
152
7.2 Makro spustitelné samostatně
P72 Dotaz
P72 Licence
Akce Otevřít formulář
P72 Makro
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 zdrojový 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: Zdrojový dotaz vychází z tabulek Oddělení_F, Osoby, Faktury, Licence, z nichž vybere: » z tabulky Osoby: Jméno, Příjmení, » 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 kliknutím objekt P72 Dotaz. V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Další formuláře a vybereme volbu Více položek. V automaticky vytvořeném formuláři upravíme v zobrazení rozložení šířku sloupců, tak aby jejich šířka odpovídala obsahu (Jméno: 1,9 cm, Příjmení: 2,5 cm, Faktura: 1,4 cm, Datum: 2 cm, IČ: 2 cm, Program: 1,5 cm, Sériové číslo: 2,3 cm). Formulář uložíme pod názvem P72 Licence. Připravíme jednoduché makro, které pouze otevře vytvořený formulář: V kartě VYTVOŘENÍ ve skupině MAKRA A KÓD klikneme do tlačítka Makro. Zobrazí se návrhář makra. V levé části budou jednotlivé akce makra s možností rozbalit jejich parametry. V pravém podokně je Katalog akcí. Akce jsou rozděleny do dvou kategorií: Běh programu: nejčastější akce. Akce: rozbalením typu akce zobrazíme nabídku akcí daného typu. Kliknutím do akce se ve spodní části Katalogu akcí zobrazí stručné vysvětlení funkce akce. Akci lze do makra zadat několika způsoby: výběrem z katalogu akcí dvojitým kliknutím na akci, výběrem ze seznamu akcí, který rozbalíme kliknutí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ů). V kartě NÁVRH jsou ve skupině Zobrazit nebo skrýt dvě tlačítka regulující zobrazené objekty: Zobrazit všechny akce: Zobrazí/skryje pokročilejší akce ikonou trojúhelníku. Katalog akci: Zobrazí/skryje podokno Katalog akcí. V našem případě táhneme z navigačního podokna formulář P72 Licence do prvního řádku tabulky akcí. Nastaví se akce Otevřít formulář s argumenty (kliknutím do rozbalovacího tlačítka lze argumenty skrýt): Název formuláře: P72 Licence Zobrazit: formulář Režim okna: normální V katalogu akcí dvojitě klikneme do akce Komentář. Za akci Otevřít formulář se doplnil komentář. Kliknutím do tlačítka Posunout nahoru (zelená šipka nahoru) přesuneme komentář na začátek makra. Vyplníme jednoduchý komentář Otevření formuláře licencí. Klikneme do druhé akce Otevřít formulář. Komentář je vypsán zeleně. Před spuštěním makro uložíme kliknutím do tlačítka Uložit v panelu nástrojů Rychlý přístup pod názvem P72 Makro. V kartě NÁVRH ve skupině NÁSTROJE klikneme do tlačítka Spustit a spustíme tak makro. (Z navigačního podokna můžeme makro spustit dvojitým kliknutím na jeho název.)
7 Makra
Akce Skupina
Akce Najít Záznam
Akce Přejít Na Ovládací Prvek
Akce Najít Další Záznam Akce Zvukový Signál
153
Otevře se formulář P72 Dotaz. Po otevření je kurzor v prvním sloupci Jméno. Zavřeme formulář. Budeme demonstrovat další akce: Několik dalších akcí se bude vztahovat k hledání. Seskupíme je do skupiny Hledání. V katalogu akcí dvojitě klikneme v kategorii BĚH PROGRAMU do akce Seskupit. Do názvu skupiny zapíšeme Hledání. Do skupiny doplníme akci Najít záznam (typu Filtr/Dotaz/Hledání). 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 (48. věta). Chceme však hledat v poli Program. Akce NajítZáznam prohledává aktuální pole: Do skupiny Hledání doplníme akci PřejítNaOvládacíPrvek (typ Databázové objekty) s jediným argumentem Název ovládacího prvku, vložíme do něj hodnotu Program. Hodnotu nelze vybrat z rozbalovacího seznamu. Dále znovu vložíme akci NajítZáznam. Zadáme argument Najít s hodnotou FIN. Po spuštění makra se otevře formulář a kurzor se umístí do věty licence programu FIN (4. věta). Vzhledem k argumentu Prohledávat o hodnotě všechno se hledá znovu od začátku tabulky. Chceme vyhledat druhý výskyt licence FIN: Doplníme akci NajítDalšíZáznam (typ Filtr/Dotaz/Hledání), 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 (8. věta). Konec průběhu makra oznámíme zvukovým signálem: Doplníme do makra na konec akci ZvukovýSignál (typ Příkazy systému), která nemá žádný argument. Před každou akcí s argumenty je rozbalovací tlačítko, které umožňuje zobrazit či potlačit zobrazení argumentů (viz obr. 7-1). Sbalené argumenty jsou uvedeny v závorce za akcí). Obdobně můžeme sbalit či rozbalit akce sloučené do skupiny. Sbalení či rozbalení usnadňují tlačítka v kartě NÁVRH ve skupině SBALIT NEBO ROZBALIT: Rozbalit akce/Sbalit akce: rozbalí či sbalí argumenty akcí. Rozbalit vše/Sbalit vše: rozbalí či sbalí argumenty akcí i skupiny akcí. OBR. 7-1: ROZBALENÁ SKUPINA AKCÍ
7 Makra
154
Před dalšími úpravami makra odstraníme skupinu Hledání včetně jejich akcí. Na konci řádku skupiny klikneme do tlačítka Odstranit. Na konec makra doplníme akci Zvukový signál (typ Příkazy systému). Formulář chceme zobrazit pouze v případě, že výsledkem podkladového dotazu je jedna či více vět: Podmínka akce V katalogu akcí v kategorii BĚH PROGRAMU dvojitě klikneme do akce If. Tlačítkem Přesunout nahoru akci přesuneme na začátek makra za komentář. Akce Otevřít formulář je až za podmíněným výrazem. V jejím řádku klikneme do tlačítka Přesunout nahoru, akce je tak již provedena jen po splnění podmínky. V řádku akce If 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. 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ě: Akce Klikneme na akci If. Okno Se Před řádkem End If klikneme do odkazu Přidat blok Else. Zprávou Přidáme akci OknoSeZprávou (typ Příkazy uživatelského rozhraní) a upřesníme 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-2). OBR. 7-2: DIALOGOVÉ OKNO UPOZORNĚNÍ
P72 Oddělení
V případě, že výsledkem dotazu není žádná věta, chceme po uzavření dialogového okna Upozornění, otevřít formulář pro editaci tabulky Oddělení_F: V navigačním podokně označíme tabulku Oddělení_F. V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Další formuláře a vybereme volbu Více položek. 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 upřesníme název formuláře P72 Oddělení. Výsledné znění makra je uvedeno v obr. 7-3. OBR. 7-3: MAKRO P72 MAKRO
7 Makra
Akce Zavřít Okno
P72 Sestava
155
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 záhlaví formuláře odebereme rozložení. Velikost názvu Oddělení_F přizpůsobíme obsahu. V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Tlačítko. Vymezíme tlačítko v Záhlaví formuláře napravo od popisku Oddělení_F v šířce (na vodorovném pravítku) 6 – 10 cm. Ukončíme průvodce kliknutím do tlačítka Storno. Do tlačítka napíšeme text Formulář licencí. Upravíme tak formátovou vlastnost Titulek. V událostní vlastnosti Při kliknutí klikneme 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: Popisek P72 Dotaz změníme na Licence a přizpůsobíme jeho velikost obsahu. V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Tlačítko. Vymezíme tlačítko v Záhlaví formuláře napravo od popisku P72 Dotaz v šířce 6 – 10 cm. Ukončíme průvodce kliknutím do tlačítka Storno. Do tlačítka napíšeme text Výběr oddělení. V událostní vlastnosti Při kliknutí vytvořeného tlačítka klikneme do druhého tlačítka Tvůrce a vybereme Tvůrce maker. Vytvořili jsme tak vložené makro, které je uloženo v objektu formuláře. Vložené makro bude obsahovat dvě akce: » OtevřítFormulář (typ Databázové objekty) s argumentem: Název formuláře: P72 Oddělení » ZavřítOkno (typ Správa okna) s argumenty: Typ objektu: formulář Název objektu: P72 Licence Uložit: výzva V kartě NÁVRH ve skupině ZAVŘÍT klikneme do tlačítka 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ářů: Dvojitým kliknutí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 kliknutí do tlačítko OK se otevře formulář Oddělení_F. Doplníme v něm druhé oddělení DIS. Stiskneme kombinaci kláves Shift Enter, aby se druhá věta uložila. Klikneme do tlačítka Formulář licencí. Zobrazí se formulář P72 Licence. Klikneme do tlačítka Výběr oddělení. Zavře se formulář P72 Licence a otevře se formulář P72 Oddělení. 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ŘENÍ ve skupině SESTAVY klikneme do tlačítka Sestava. V zobrazení rozložení vytvořené sestavy zúžíme šířku sloupců (Jméno: 1,8 cm, Příjmení: 2 cm, Faktura: 1,5 cm, Datum: 2 cm, IČ: 2 cm, Program: 1,5 cm, Sériové číslo: 2,3 cm). 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 událostní vlastnost sestavy Při nepřítomnosti dat. Vložíme do ní vložené makro se dvěma akcemi: OknoSeZprávou (typ Příkazy uživatelského rozhraní) s argumenty: » Zpráva: V sestavě licencí nejsou žádná data. » Typ: kritický stav
7 Makra
156
» Titulek: Upozornění ZrušitUdálost (typ Příkazy maker) 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 vložené makro s jedinou akcí: Akce OtevřítSestavu (typ Databázové objekty) s argumenty: Otevřít Sestavu » 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 kliknutí do tlačítka OK se nezobrazí sestava. Kroková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 klikneme ve skupině NÁSTROJE do tlačítka Krok. Nastavení zapnutí krokování se pamatuje pro další spouštění všech maker. Makro spustíme kliknutím do tlačítka Spustit. 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 obr. 7-4). Akce Zrušit Událost
OBR. 7-4: DIALOGOVÉ OKNO KROKOVAT MAKRO
Akce Krok
Tlačítkem Krok pokračujeme krokováním dalších akcí. Tlačítkem Pokračovat pokračujeme 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 vlož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 (typ Příkazy maker). Při spuštění makra kliknutím do tlačítka se spustí krokování. Akci z makra odstraníme. Dialogové okno Krokovat makro se zobrazuje také, když v průběhu provádění makra zastavíme makro kombinací kláves Ctrl Pause.
7 Makra
157
7.3 Makro filtrující sestavu P73a Makro s podmínkou Where
Podmínka Where
P73b Makro s podmínkou Where
P73b Karta – Osoby
Ú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 (typ Databázové objekty). Upravíme argumenty akce: Název sestavy: Ponecháme Accessem doplněnou hodnotu P65 Hlavní sestava. Zobrazit: Zadáme hodnotu náhled, aby se sestava zobrazila v zobrazení náhledu. 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ý.162 Podmínka Where: Můžeme omezit věty vypisované v sestavě, v našem případě zadáme: Osoba="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 – Osoby. 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 – Osoby. 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: [Osoba]=[Formuláře]![P73b Karta - Osoby]![Osoba] (Můžeme využít našeptávače.) 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 Osoba má hodnotu shodnou s hodnotou ovládacího prvku Osoba ve formuláři P73b Karta – Osoby, který musí být otevřený: Před testováním musíme proto otevřít formulář P73b Karta – Osoby. Zobrazíme v něm např. větu Evy Benešové (3. věta) 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 dvojité kliknutí do těla formuláře: Ve vlastnostech těla formuláře P73b Karta – Osoby proto upravíme vlastnost Při pokliknutí. Na konci řádku klikneme do rozbalovacího tlačítka. Vybereme makro P73b Makro s podmínkou Where. Když nyní otevřeme formulář S73b Karta – Osoby, zobrazíme libovolnou větu a dvojitě klikneme na tělo formuláře, tj. do bílého pozadí 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 dvojitým kliknutím zobrazit 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 klikneme v kartě NÁVRH ve skupině OVLÁDACÍ PRVKY do tlačítka Tlačítko. Tlačítko vymezíme napravo od pole Osoba v šířce 7 – 10 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ě FORMÁT ve skupině PÍSMO klikneme do tlačítka Barva pozadí a vybereme Automaticky. Do událostní vlastnosti tlačítka Při kliknutí vybereme P73b Makro s podmínkou Where. 162
Mohli bychom připravit dotaz vycházející z tabulky Osoby, v němž vybereme pole Oddělení s kritériem ANA.
7 Makra
158
7.4 Makro ve formuláři 7.4.1 Makro s vlastností Viditelné 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-5). OBR. 7-5: MAKRO P74A MAKRO VE FORMULÁŘI
P74a Makro ve formuláři
Akce Nastavit Vlastnost
Nejprve vytvoříme makro: V kartě VYTVOŘENÍ ve skupině MAKRA A KÓD klikneme do tlačítka Makro. Zapíšeme první operaci v makru, která v případě, že je nevyplněné pole NACE4 nezobrazí pole NACE5 ve formuláři (např. pro 2. větu). Z katalogu akcí vybereme akci If. Do podmínky zapíšeme výraz NACE 4 Is Null. V případě splnění podmínky provedeme akci Nastavit vlastnost (typ Databázové objekty), která 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, tj. NACE5 Do argumentu Vlastnost vybereme měněnou vlastnost. Nabízí se 11 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ě),
7 Makra
159
» 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). » Hodnota: nastavení hodnoty pole, tj. možnost vložit konkrétní hodnotu do tabulky. 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). V prvním řádku makra jsme řešili větu, v níž NACE4 je prázdné. Přechodem na větu s vyplněným NACE4 by však zůstal nezobrazen ovládací prvek NACE5. Musíme proto doplnit opačný případ: Klikneme na akci makra NastavitVlastnost a zkopírujeme ji kombinací kláves Ctrl C do schránky. Klikneme do odkazu Přidat blok Else. Do větve Else vložíme kombinací kláves Ctrl V obsah schránky. Upravíme argument Hodnota na -1. Makro uložíme pod názvem P74a Makro ve formuláři a zavřeme jeho návrh. Makro chceme spustit: P74a Podniky – při otevírání formuláře, Identifikace při přechodu na jinou větu. Událostní Spuštění makra v průběhu práce s formulářem zajišťují událostní vlastnosti. vlastnosti S vlastnostmi Při pokliknutí a Při kliknutí 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. Klikneme do záložky Událostní. Vlastnost Základní událostní vlastností formuláře je vlastnost Při události Current. Zde zadaná Při události událost se provede, když otevřeme formulář nebo přejdeme na novou větu. Událostí může být Current makro nebo modul163. V našem případě chceme připojit jako událost makro. Klikneme 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í zkontrolujeme fungování makra. Pro NACE se nabízí možnost doplnit NACE5 jen, pokud je vyplněno NACE4. Vlastnost Když vyplníme NACE4, další volné pole se zobrazí až při přechodu na další větu a po Při ztrátě přechodu zpět na původní větu. V druhé větě přidáme NACE4 o hodnotě 9900. V rámci stejné fokusu 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 NACE4 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í NACE4 se i v rámci stejné věty zobrazí pole pro další NACE5. Obdobně se potlačí zobrazení prázdného NACE5 při smazání obsahu předchozího NACE4. Do makra doplníme analogické akce pro nezobrazení či zobrazení NACE2, NACE3, NACE4, NACE6: V makru vložíme do schránky akci If. Do schránky se vloží včetně větve Else. Obsah schránky vložíme do makra 4x. Upravíme podmínky a názvy ovládacích prvků dle obr. 7-5. Uložíme makro a vrátíme se do formuláře. Vyzkoušíme funkčnost řešení: Pro NACE se nabízí možnost doplnit vždy jen jednu NACE tak, abychom nevynechali např. prázdnou NACE2 a nezadali NACE3. Access nyní zobrazuje pouze jedno volné pole NACE.
163
Výklad modulů je zařazen do kap. 8.
7 Makra
160
7.4.2 Makro s vlastnostmi Titulek a Barva popředí P74b Osoby – Identifikace
Do formuláře pro editaci dat o zaměstnanci doplníme popisek, který bude textově vyjadřovat výši úvazku zaměstnance: Formulář P52 Osoby – Identifikace zkopírujeme pod názvem P74b Osoby – 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 vložené makro kliknutím do tlačítka Tvůrce a výběrem Tvůrce maker. Do makra doplníme akce dle obr. 7-6. OBR. 7-6: VLOŽENÉ MAKRO VE FORMULÁŘI
Pro editaci makra využijeme kopírování prostřednictvím schránky, do níž uložíme: Akci NastavitVlastnost pro Titulek a později pro Barvu popředí. Akci If. 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).
7.5 Makro v sestavě 7.5.1 Makro v podrobnostech sestavy Makro v sestavě P75a Makro v těle sestavy
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 Osoby pole Pohlaví do tabulkového rozložení v těle na konec. 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 klikneme ve skupině ROZLOŽENÍ STRÁNKY do tlačítka Vzhled stránky a upravíme hodnotu pravého okraje na 10 mm. Do událostní vlastnosti Při formátování těla sestavy vložíme pomocí tvůrce maker vložené makro dle obr. 7-7. Druhý řádek makra zkopírujeme z prvního řádku a upravíme podmínku a barvu. 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ě.
7 Makra
161 OBR. 7-7: MAKRO VLOŽENÉ V SESTAVĚ P75A MAKRO V TĚLE SESTAVY
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 dvojitém kliknutí na název sestavy v navigačním podokně. Barevné odlišení můžeme řešit také podmíněným formátováním, které využijeme pro Jméno: Kliknutím označíme textové pole Jméno. V kartě FORMÁT ve skupině FORMÁTOVÁNÍ OVLÁDACÍHO PRVKU klikneme do tlačítka Podmíněné formátování. V dialogovém okně Správce pravidel formátování klikneme do tlačítka Nové pravidlo. Do prvního pole Formátovat pouze buňky, kde vybereme hodnotu výraz je a vložíme výraz: [Pohlaví]="M" V spodní části okna zvolíme modrou barvu písma. Obdobně nastavíme pro ženy (Z) červenou barvu písma.
7.5.2 Makro v záhlaví skupiny P75b Makro v záhlaví skupiny
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ěratelé 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 vložené makro dle obr. 7-8. 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-8: MAKRO VLOŽ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 dvojitém kliknutí na název sestavy v navigačním podokně.
7 Makra
162
7.6 Skupina maker Skupina maker
P76 Menu
I velmi stručné makro může uživateli usnadnit práci. Za účelem přehlednosti seznamu maker je někdy vhodné makra vložit 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: V kartě VYTVOŘENÍ ve skupině MAKRA A KÓD klikneme do tlačítka Makro. Z katalogu akcí vybereme akci Submakro a nazveme je Osoby_karta. Do submakra vložíme akci OtevřítFormulář s formulářem P73b Karta – Osoby. Obdobně připravíme další submakra dle obr. 7-9. 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-9: MAKRO FORMULÁŘ P76 MENU
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-10): OBR. 7-10: FORMULÁŘ P76 MENU
V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Návrh formuláře. V návrhovém zobrazení vložíme kliknutím do tlačítka Tlačítko ve skupině OVLÁDACÍ PRVKY v kartě NÁVRH první tlačítko dle obr. 7-10. Dvojitým kliknutím na tlačítko upravíme formátovou vlastnost Titulek na hodnotu Osoby – 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 kombinace kláves Ctrl V vložíme tlačítko 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 kliknutí 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. Můžeme také zadat název formuláře P76 Menu do pole Zobrazit formulář v okně Možnosti aplikace Access v kartě Aktuální databáze.
8 Moduly
163
8 Moduly 8.1 Druhy modulů Visual Basic for Pro řešení složitějších aplikací nabízí Access programovací jazyk Visual Basic for Applications 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. Moduly 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.). Procedury 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. Deklarace 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. Příklady použití VBA se používá pro: VBA 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í: pro generování zkráceného účtu z příjmení a jména při editaci osob (viz kap. 8.6). 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í, kde složitější postupy mohou být naprogramovány a realizovány kliknutí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í a titul za jménem. Funkce bude vracet celé jméno včetně titulů: V kartě VYTVOŘENÍ ve skupině MAKRA A KÓD klikneme do tlačítka Modul.
8 Moduly
164
V novém okně se otevře samostatná aplikace Microsoft Visual Basic s ovládáním v angličtině. Aplikace VBA nevyužívá uživatelské rozhraní s pásem karet. Editor Visual Basicu se skládá z několika částí zobrazovaných v samostatných oknech164 (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. Okno vlastností (Properties): Jednotlivé objekty Visual Basicu mají své vlastnosti. Můžeme zde např. změnit název modulu. Okno kódu (Code): Zde budeme vytvářet funkce a podprogramy. Okamžité okno (Immediate): V okně můžeme zadat nebo vložit řádek kódu a odesláním klávesou Enter jej spustit. 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 kukátek (Watches): Umožňuje průběžně zkoumat hodnoty vybraných proměnných. V úvodu okna kódu je příkaz Visual Basicu Option Compare, který upřesňuje způsob porovnávání řetězců.165 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.166 Doplníme další text kódu: Zadáme z menu VBA příkaz INSERT, PROCEDURE nebo klikneme do tlačítka Insert Procedure (vybereme z nabídky tří tlačítek, která se nabízí při kliknutí do šipky napravo od druhého tlačítka panelu nástrojů). 164
Zobrazování oken lze zadat příkazy: VIEW, PROJECT EXPLORER (prohlížeč projektu) Ctrl R , VIEW, PROPERTIES WINDOW (okno vlastností) F4, VIEW, CODE (okno kódu) F7, VIEW, IMMEDIATE WINDOW (okamžité okno) Ctrl G, VIEW, LOCALS WINDOW (okno místních položek), VIEW, WATCH WINDOW (okno kukátek). 165 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í. 166 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.
8 Moduly
165
V dialogovém okně Add Procedure (viz obr. 8-2) zadáme název funkce CeléJméno167, v poli Type vybereme Function, zbývající pole ponecháme beze změny. OBR. 8-2: DIALOGOVÉ OKNO ADD PROCEDURE
Editace funkce
Přiřazovací příkaz
Uložení modulu
P81 Vlastní funkce
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(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 nevypisovala, když není titul vyplně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 nebo mohou být uvedeny za příkazem na stejném řádku. Komentář 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. 168 Pro přehlednost Visual Basic zobrazuje před začátkem procedury vodorovnou čáru 169. Uložíme vytvořený modul (či všechny moduly) příkazem FILE, SAVE ENCIAN nebo klávesami Ctrl S nebo kliknutí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.170 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. Přepínat se mezi oknem Accessu a editorem Visual Basicu můžeme také pomocí tlačítek na liště Windows. 167
V ukázkové databázi Encian již je funkce přichystána, proto ji nazveme CeléJméno2. 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. 169 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. 170 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ř. CeléJméno2. Název funkce i procedury se nesmí shodovat s názvem modulu. 168
8 Moduly
P82 CeléJméno
166
Moduly můžeme uložit kdykoliv při jejich tvorbě příkazem z menu FILE, SAVE nebo kombinací kláves Ctrl S nebo kliknutím do tlačítka Save.171 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. Ověříme fungování připravené funkce: Připravíme jednoduchý dotaz vycházející z tabulky Osoby. Vypíšeme příjmení, jméno a výraz:172 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 stejně jako u předdefinovaných funkcí. 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é173: V navigačním podokně dvojitě klikneme na modul P81 Vlastní funkce.174 Kliknutím do tlačítka Insert Procedure vložíme další funkci tentokrát s názvem BezDiakritiky175. 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
Funkce CeléJméno
Funkce BezDiakritiky
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(SDiakritikou) Písmena1 = "áčďéěíĺľňóřšťúůýžäëöü" '21 písmen Písmena2 = "acdeeillnorstuuyzaeou" BezDiakritiky = SDiakritikou For J = 1 To Len(BezDiakritiky) For K = 1 To Len(Písmena1) If Mid(BezDiakritiky, J, 1) = Mid(Písmena1, K, 1) Then P = Mid(Písmena2, K, 1) If J = 1 Then P = UCase(P) BezDiakritiky = Left(BezDiakritiky, J - 1) & P & Right(BezDiakritiky, Len(BezDiakritiky) - J) End If Next K Next J End Function 171
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 použitím tvůrců a před ukončení práce s databází, neboť moduly se ukládají do souboru databáze. 172 Funkci ve výrazu můžeme připravit Tvůrcem výrazů. V levém dolní části okna dvojitě klikneme na řádek Funkce a v rámci funkcí klikneme na řádek Encian. V prostřední části okna se zobrazí seznam modulů obsahujících funkce. Klikneme na název modulu P81 Vlastní funkce. V pravé části okna se zobrazí seznam funkcí modulu, tj. zatím pouze funkce CeléJméno. Dvojitým kliknutím na funkci vložíme do výrazu včetně seznamu argumentů. 173 K nahrazení znaků s diakritikou za znaky bez diakritiky lze použít funkci Replace. Popsaný postup na rozdíl od využití funkce umožňuje výklad důležitých příkazů programovacího jazyka. 174 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. 175 V ukázkové databázi Encian již je funkce přichystána, proto ji nazveme BezDiakritiky2.
8 Moduly
167
Nejprve si vyložme způsob odstranění háčků a čárek: Vstupní argument funkce je nazván SDiakritikou. V pomocné proměnné Písmena1 připravíme formou řetězce všechna písmena s háčky, čárkami a dalšími diakritickými znaménky (kroužek, přehláska). 176 Písmeno ĺ se zapisuje jako l s čárkou, ľ se zapisuje jako písmeno l s háčkem, která se vyskytují v českém a slovenském textu.177 Abychom nemuseli přepínat jazyk klávesnice, je vhodné užívat kombinace pravé klávesy Alt , popř. kombinace Ctrl a levé klávesy Alt, a dalších kláves pro psaní některých znaků: 1/~, q/\, f/[, g/], :/$, x/#, c/&, v/@, b/{, n/}, />, ?/* (viz obr. 8-4). OBR. 8-4: VKLÁDÁNÍ SPECIÁLNÍCH ZNAKŮ
zdroj obrázku: http://dusan.pc-slany.cz/klavesnice/ceska_klavesnice.htm
For – Next
V pomocné proměnné Písmena2 budou stejná písmena ve stejném pořadí bez znamének. Do proměnné BezDiakritiky zkopírujeme hodnotu proměnné SDiakritikou. Po jednotlivých znacích procházíme proměnnou BezDiakritiky. Každý jednotlivý znak hledáme v proměnné Písmena1. Když se shoduje znak z proměnné BezDiakritiky se znakem v proměnné Písmena1, nahradíme znak z proměnné BezDiakritiky znakem z proměnné Písmena2 ze stejné pozice, na níž jsme jej našli v proměnné Písmena1. Před začátek procedury doplníme komentář s popisem funkce. Obdobně doplníme komentář pro funkci CeléJméno. 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 cyklu178, 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)179: For čítač = začátek To konec [Step krok] [příkazy] [Exit For] [příkazy] Next [čítač] 176
Od diakritických znamének je třeba odlišovat interpunkční znaménka, která signalizují vztahy mezi větami v souvětí nebo mezi částmi věty a modální postoj mluvčího. 177 Abychom nemuseli přepínat jazyk klávesnice, je vhodné užívat kombinace pravé klávesy Alt, popř. kombinace Ctrl a levé klávesy Alt, a dalších kláves pro psaní některých znaků: 1/~, q/\, f/[, g/], :/$, x/#, c/&, v/@, b/{, n/}, />, ?/*. 178 Příkaz cyklu obsahuje několik dílčích příkazů – řádků. 179 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.
8 Moduly
If – Then – Else
P83 BezDiakritiky
168
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á verze 180: 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 Osoby. Vypíšeme pole Příjmení, Jméno, Osoba a výraz: Osoba2: 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 Osoba v tabulce Osoby. Funkci použijeme ve formuláři s lokální procedurou výpočtu ve větě (viz kap. 8.6).
8.4 Funkce kontroly rodného čísla Duv-08-01
V databázi Důvěrné (DUV), kterou jsme vytvořili v kap. 3.2, doplníme do tabulky Děti další pole Rč s rodným číslem (pole typu Číslo s velikostí pole dvojitá přesnost181) a zapíšeme hodnoty: Erika: 1958030151, Lukáš: 1404180140. Rodné číslo je správné, když je dělitelné 11 182. Do modulu Vlastní funkce připravíme funkci KontrolaRč (viz obr. 8-5): OBR. 8-5: FUNKCE KONTROLARČ V DATABÁZI DUV
Funkce KontrolaRč
P84 KontrolaRč
Option Compare Database 'Kontrola rodného čísla na dělitelnost 11 Public Function KontrolaRč(Rč) KontrolaRč = IIf(Rč = Int(Rč / 11) * 11, "ano", "ne") End Function Funkce má jediný vstupní argument Rč. Funkce Int vypočte celou část z jedné jedenáctiny Rč. 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, Rč a výraz Kontrola: KontrolaRč([Rč]) 180
Na jeden řádek můžeme napsat více příkazů oddělených dvojtečkou. Pole Rč by v databázi mělo být typu krátký text, aby bylo možné vkládat i rodná čísla začínající 0. Typ číslo použijeme pro zjednodušení v uvedeném příkladu. 182 Platí pro rodná čísla přidělovaná po 1. 1. 1954. Dřívější rodná čísla nemají doplněnu poslední kontrolní číslici. 181
8 Moduly
169
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ř. zvýšením hodnoty o 1. Dotaz uložíme pod názvem P84 KontrolaRč.
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 vydě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 funkci pro kontrolu druhé části čísla účtu (viz obr. 8-6): OBR. 8-6: FUNKCE KONTROLAÚČTU V DATABÁZI ENCIAN
Public Function KontrolaÚčtu(Účet) 'Výpočet váženého součtu číslic účtu a dělitelnosti jedenácti Součet = 0 Součet = Součet + Val(Mid(Účet, 10, 1)) * 1 Součet = Součet + Val(Mid(Účet, 9, 1)) * 2 Součet = Součet + Val(Mid(Účet, 8, 1)) * 4 Součet = Součet + Val(Mid(Účet, 7, 1)) * 8 Součet = Součet + Val(Mid(Účet, 6, 1)) * 5 Součet = Součet + Val(Mid(Účet, 5, 1)) * 10 Součet = Součet + Val(Mid(Účet, 4, 1)) * 9 Součet = Součet + Val(Mid(Účet, 3, 1)) * 7 Součet = Součet + Val(Mid(Účet, 2, 1)) * 3 Součet = Součet + Val(Mid(Účet, 1, 1)) * 6 KontrolaÚčtu = IIf(Součet = Int(Součet / 11) * 11, "ano", "ne") End Function
Funkce KontrolaÚčtu
P85 KontrolaÚčtu
Funkce má jediný vstupní argument Učet. 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: KontrolaÚčtu([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ř. zvýšením hodnoty o 1. Dotaz uložíme pod názvem P85 KontrolaÚčtu.
8 Moduly Banka
170
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-7). OBR. 8-7: FUNKCE V DATABÁZI BANKA
Funkce KontrolaPole
Funkce Kontrola Předčíslí
Funkce Kontrola HlavnihoCisla
Funkce KontrolaÚčtu
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 KontrolaPředčíslí(Pole) 'Kontrola předčísla čísla účtu, tj. části před pomlčkou If KontrolaPole(Pole) = "je účet" Then Předčíslí = Left(Pole, InStr(Pole, "-") - 1) KontrolaPředčíslí = KontrolaÚčtu(Předčíslí) End If End Function Public Function KontrolaHlavníhoČísla(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) KontrolaHlavníhoČísla = KontrolaÚčtu(HlavniCislo) End If End Function Public Function KontrolaÚčtu(Účet) 'Výpočet váženého součtu číslic účtu a dělitelnosti jedenácti Součet = 0 If Len(Účet) >= 10 Then Součet = Součet + Val(Mid(Účet, Len(Účet) - 9, 1)) * 6 If Len(Účet) >= 9 Then Součet = Součet + Val(Mid(Účet, Len(Účet) - 8, 1)) * 3 If Len(Účet) >= 8 Then Součet = Součet + Val(Mid(Účet, Len(Účet) - 7, 1)) * 7 If Len(Účet) >= 7 Then Součet = Součet + Val(Mid(Účet, Len(Účet) - 6, 1)) * 9 If Len(Účet) >= 6 Then Součet = Součet + Val(Mid(Účet, Len(Účet) - 5, 1)) * 10 If Len(Účet) >= 5 Then Součet = Součet + Val(Mid(Účet, Len(Účet) - 4, 1)) * 5 If Len(Účet) >= 4 Then Součet = Součet + Val(Mid(Účet, Len(Účet) - 3, 1)) * 8 If Len(Účet) >= 3 Then Součet = Součet + Val(Mid(Účet, Len(Účet) - 2, 1)) * 4 If Len(Účet) >= 2 Then Součet = Součet + Val(Mid(Účet, Len(Účet) - 1, 1)) * 2 If Len(Účet) >= 1 Then Součet = Součet + Val(Mid(Účet, Len(Účet), 1)) * 1 KontrolaÚčtu = IIf(Součet = Int(Součet / 11) * 11, "ano", "ne") End Function 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ězec183) 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 KontrolaPředčíslí provede kontrolu části čísla před pomlčkou, tj. předčíslí pomocí racionalizované funkce KontrolaÚčtu. Výsledkem je: prázdná hodnota (nejednalo se o číslo účtu) nebo ano (správné předčíslí) nebo 183
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.
8 Moduly
R85 KontrolaPole
171
ne (špatné předčíslí). V případě, že se jedná o číslo účtu, třetí funkce KontrolaHlavníhoČísla provede kontrolu části čísla po pomlčce, tj. hlavního čísla pomocí racionalizované funkce KontrolaÚčtu. Výsledkem je prázdná hodnota, ano nebo ne. Racionalizovaná funkce KontrolaÚčtu 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í: KontrolaPředčíslí([Účet]) Kontrola hlavního čísla: KontrolaHlavníhoČísla([Úč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ě P86 Aktualizace Osoba
Funkci BezDiakritiky budeme aplikovat na tabulku Osoby. Pole Osoba 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 Osoba, vytvoříme obsah pole Osoba znovu aktualizačním dotazem (viz obr. 8-8). Dotaz bude čerpat z tabulky Osoby, pomocí výrazu s využitím dříve připravené funkce sestavíme obsah pole Osoba.184 OBR. 8-8: DOTAZ P86 AKTUALIZACE OSOBA
P86 Osoby – Identifikace
Chceme uživateli usnadnit vkládání nových zaměstnanců, při němž musí vložit pole Osoba, neboť je primárním klíčem. Do formuláře P52 Osoby – Identifikace chceme vložit tlačítko, které v aktuální větě sestaví pole Osoba z polí Příjmení a Jméno. Nejprve vytvoříme kopii formuláře P52 Osoby – Identifikace pod názvem P86 Osoby – Identifikace. 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ů. Ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Tlačítko. Tlačítko umístíme do formuláře dle obr. 8-9. OBR. 8-9: TLAČÍTKO TVORBA VE FORMULÁŘI P86 OSOBY – 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 byl text dobře vidět. Raději zobrazíme na tlačítku obrázek. Klikneme do tlačítka se třemi tečkami na konci řádku formátové vlastnosti Obrázek. Zobrazí se dialogové okno Tvůrce obrázku (viz obr. 8-10).
184
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í Osoby – Faktury a Osoby – Výjezdy.
8 Moduly
172 OBR. 8-10: DIALOGOVÉ OKNO TVŮRCE OBRÁZKU
Tlačítko s obrázkem Výpočet ve větě
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). Kliknutím do tlačítka OK se obrázek přiřadí tlačítku. Chceme, aby se při kliknutí na tlačítko provedl programový kód sestavující z polí Příjmení a Jméno pole Osoba: V řádku událostní vlastnosti Při kliknutí tlačítka Tvorba klikneme do tlačítka Tvůrce se třemi tečkami. V dialogovém okně Zvolit tvůrce zvolíme Tvůrce kódu. 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 kliknutí – Click).185 Mezi příkazy začátku a konce procedury dopíšeme jediný příkaz, kterým do pole Osoba vložíme spojení textových polí Příjmení a Jméno bez diakritiky oddělených tečkou (obr. 8-11). OBR. 8-11: PROCEDURA TVORBA_CLICK
Podprogram Tvorba_Click
Option Compare Database 'Pro řetězce se použije porovnávání nastavené v databázi Private Sub Tvorba_Click() Osoba = 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š“ na „František“ a klikneme do tlačítka Tvorba. E-mail se upravil. Chceme, aby se pole Osoba upravilo vždy, když upravíme pole Jméno nebo Příjmení a přejdeme na jiné pole (klávesou Enter, tabulátorem nebo kliknutí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-12). OBR. 8-12: PROCEDURY JMÉNO_EXIT A PŘÍJMENÍ_EXIT
Podprogram Jméno_Exit Podprogram Příjmení_Exit
Private Sub Jméno_Exit(Cancel As Integer) Osoba = BezDiakritiky(Příjmení) & "." & BezDiakritiky(Jméno) End Sub Private Sub Příjmení_Exit(Cancel As Integer) Osoba = BezDiakritiky(Příjmení) & "." & BezDiakritiky(Jméno) End Sub
185
Když změníme název tlačítka, nezmění se bohužel automaticky název procedury.
8 Moduly
173
Aby stejný kód nebyl obsažen ve třech procedurách (např. pro pohodlnější pozdější úpravu kódu), připravíme společný podprogram: Zůstaneme stále v modulu Form_P86 Osoby – Identifikace. Klikneme do tlačítka Insert Procedure a vytvoříme podprogram (Sub) s názvem TvorbaOsoba 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-13). OBR. 8-13: ZAVEDENÍ SPOLEČNÉ PROCEDURY
Option Compare Database Private Sub Jméno_Exit(Cancel As Integer) TvorbaOsoba End Sub Private Sub Příjmení_Exit(Cancel As Integer) TvorbaOsoba End Sub Private Sub Tvorba_Click (Cancel As Integer) TvorbaOsoba End Sub Public Sub TvorbaOsoba() Osoba = 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šek“ na „Miloš“ a klávesou tabulátoru přejdeme na příjmení. Hodnota pole Osoba se upravila. Accessem vkládané událostní procedury jsou seřazeny dle abecedy. V okně kódu jsou zobrazeny všechny procedury. Kliknutí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 TvorbaOsoba budeme demonstrovat nástroje pro ladění průběhu procedur: Nejprve rozdělíme jediný příkaz podprogramu na dva dle obr. 8-14. OBR. 8-14: LADÍCÍ OKNA VBA
Změnu proměnné P chceme sledovat v kukátku: V kódu procedury označíme název proměnné P. Zadáme příkaz DEBUG, ADD WATCH.
8 Moduly
174
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 obr. 8-15). OBR. 8-15: DIALOGOVÉ OKNO ADD WATCH
Obdobně přidáme do kukátek proměnnou Osoba, pro níž ponecháme ve spodní části dialogového okna Add Watch vybránu možnost Watch Expression. Po změně jména či příjmení se spustí podprogram TvorbaOsoba. Podprogram se zastaví po provedení prvního řádku, tj. naplnění proměnné P186 (viz obr. 8-14): 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 obr. 8-14 je stav, kdy měníme hodnotu pole Osoba 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 kliknutím do tlačítka na začátku jeho řádku rozbalit). V okně Immediate bychom mohli napsat přímý příkaz VBA, který by se realizoval, např. bychom mohli do proměnné P uložit hodnotu Adamec.Ales a ručně tak nastavit hodnotu ukládanou do pole Osoba. Další pokračování běhu aplikace VBA spustíme příkazem RUN, CONTINUE nebo kliknutí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 kliknutím do tlačítka Reset (Nulování). V okně Watches klikneme pravým tlačítkem myši na proměnnou P a volbou DELETE WATCH ji odstraníme z okna.
8.7 Lokální podprogram výpočtu mezi větami
P87 Dotaz Kontrola cest Kontrola_cest
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-16) bude vycházet z tabulky Cesty, z níž převezme všechna pole, a z tabulky Výjezdy, z níž převezme pole Osoba. Navíc doplní pole Odstup. Dotaz vytvoří tabulku Kontrola_cest. Dotaz nazveme P87 Dotaz Kontrola cest.
186
Zastavení nastane jen po změně proměnné, nikoliv naplnění pole věty, proto jsme hodnotu vkládali nejprve do proměnné E.
8 Moduly
175 OBR. 8-16: DOTAZ P87 DOTAZ KONTROLA CEST
Cesty Výjezdy (30 vět)
P87 Formulář Kontrola cest
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ŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Další formuláře a vybereme volbu Více položek. Snížíme výšku řádku věty (0,55 cm) a zúžíme dle obsahu šířku jednotlivých sloupců (Osoba: 3 cm, Rok: 1,2 cm, Cesta: 1,2 cm, Zahájení: 2,2 cm, Dokončení: 2,2 cm, Místo: 3,4, Odstup: 1,4 cm). Ve sloupci Odstup nastavíme podmíněným formátováním zobrazování záporných hodnot červeně: V kartě FORMÁT ve skupině FORMÁTOVÁNÍ OVLÁDACÍHO PRVKU klikneme do tlačítka Podmíněné formátování. V dialogovém okně Správce pravidel podmíněného formátování klikneme do tlačítka Nové pravidlo. Nastavíme pravidlo hodnota pole je menší než 0, ve formátu zadáme červenou barvu písma. Pro všechna pole v podrobnostech odstraníme výplň: Kliknutím ve svislém pravítku označíme všechna pole podrobností. V kartě USPOŘÁDÁNÍ ve skupině VÝPLŇ OVLÁDACÍHO PRVKU klikneme do tlačítka Výplň ovládacího prvku a vybereme volbu Žádná. Minimalizujeme výšku podrobností. Název formuláře Kontrola_cest přizpůsobíme obsahu. Označíme název. V kartě USPOŘÁDÁNÍ ve skupině NASTAVENÍ VELIKOSTI A POŘADÍ klikneme do tlačítka Velikost a mezery a vybereme volbu Přizpůsobit obsahu. Zúžíme formulář na 16 cm. Formulář uložíme pod názvem P87 Formulář Kontrola cest. Do zápatí formuláře umístíme příkazová tlačítka s názvy i titulky Nulování, Kontrola1, Kontrola2, Kontrola3, Kontrola4, Kontrola5a, Kontrola 5b – viz obr. 8-17. OBR. 8-17: FORMULÁŘ P87 FORMULÁŘ KONTROLA CEST
Připravíme jednoduchý formulář P87 Formulář Menu (viz obr. 8-18) s odkazy na tabulku Kontrola cest, vytvářecí dotaz P87 Dotaz Kontrola cest a formulář P87 Formulář Kontrola cest: V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Návrh formuláře.
8 Moduly
176 OBR. 8-18: FORMULÁŘ P87 FORMULÁŘ MENU
V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Hypertextový odkaz nebo stiskneme kombinaci kláves Ctrl K. V dialogovém okně Vložit hypertextový odkaz v kartě Objekt v této databázi vybereme jednotlivý objekt. Ve formuláři potlačíme zobrazení navigace. Nastavíme na hodnotu ne formátové vlastnosti formuláře: Volič záznamů, Navigační tlačítka. Odkazy posuneme na pozici 0,2;0,2. Zobrazíme formulář P87 Formulář Kontrola cest. Vlastnosti Při kliknutí 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é KonecPředchozí, viz obr. 8-19). OBR. 8-19: PROCEDURA KONTROLA1_CLICK
Podprogram Kontrola1 _Click
Objekty, metody, vlastnosti
Objektová funkce CurrentDb
Option Compare Database Private Sub Kontrola1_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") KonecPředchozí = 0 Do Until Kontrola.EOF Kontrola.Edit Kontrola!Odstup = Kontrola!Zahájení - KonecPředchozí KonecPředchozí = 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ů.187 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 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. V dalším kódu se budeme odkazovat na objekt názvem proměnné. 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 ikonkami188. 187
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. 188 Access pomáhá i s laděním programů. Po odeslání špatně zapsaného příkazu je takový příkaz zobrazen červeně.
8 Moduly
Do – Loop
177
Vybereme (vyhledáním v seznamu a dvojitým kliknutí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.189 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é KonecPředchozí 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:190 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é KonecPředchozí). Při zpracování první věty bude výsledkem sériové číslo data zahájení cesty (pořadí od roku 1900), neboť v proměnné KonecPředchozí byla uložena nula. Pro zpracování další věty si do proměnné KonecPředchozí uložíme 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.191 Po zpracování všech vět zobrazíme hlášení Hotovo! v okně s titulkem Microsoft Access.192 Po zapsání programového kódu se vrátíme do Accessu, kde po vytvoření tabulky Kontrola_cest zobrazíme formulář a kliknutí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 klikneme do jednotlivých hodnot pole Odstup či stiskneme kombinaci kláves Ctrl F9, aktualizují se. Program funguje, pouze se neaktualizovalo zobrazení ve formuláři. 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ě. 189 Tento objekt připojí do kolekce Recordsets. 190 Závorky {} značí, že vybíráme některou z položek uvedených v seznamu a oddělených od sebe znakem |. 191 Podobně existuje vlastnost BOF (bottom of file), která má hodnotu False, pokud není ukazovátko před první větou. 192 Příkaz MsgBox je analogií akce OknoSeZprávou v makrech.
8 Moduly
178
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 kliknutí programový kód dle obr. 8-20. 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-20: PROCEDURA KONTROLA2_CLICK193
Podprogram Kontrola2 _Click
With
Překreslení formuláře
Private Sub Kontrola2_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") KonecPředchozí = 0 With Kontrola Do Until .EOF .Edit !Odstup = !Zahájení - KonecPředchozí KonecPředchozí = !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 (KonecPředchozí) 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 Formulář Kontrola cest]194, 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. Zavřeme formulář P87 Formulář Kontrola cest. Z formuláře P87 Formulář Menu anulujeme odstupy spuštěním dotazu P87 Dotaz Kontrola cest. Potom znovu otevřeme formulář P87 Formulář Kontrola cest a klikneme do tlačítka Kontrola2. 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-21). Poznámky k proceduře spouštěné tlačítkem Kontrola3: Před cyklem zpracování vět datové sady připravíme zpracování první věty. Do proměnné OsobaPředchozí 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 (stejný obsah pole Osoba), 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 obsah pole Osoba v proměnné OsobaPředchozí. 193 194
Příkazy shodné s předchozí procedurou jsou vypisovány kurzívou. Hranaté závorky jsou nutné v případě, že se název objektu skládá z více slov.
8 Moduly
179 OBR. 8-21: PROCEDURA KONTROLA3_CLICK
Podprogram Kontrola3 _Click
Private Sub Kontrola3_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") With Kontrola OsobaPředchozí = "žádný" Do Until .EOF .Edit If !Osoba = OsobaPředchozí Then !Odstup = !Zahájení - KonecPředchozí Else !Odstup = Null OsobaPředchozí = !Osoba End If KonecPředchozí = !Dokončení .Update .MoveNext Loop End With Repaint MsgBox "Hotovo!" End Sub
OBR. 8-22: PROCEDURA KONTROLA4_CLICK
Podprogram Kontrola4 _Click
Private Sub Kontrola4_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") With Kontrola K=1 OsobaPředchozí = "žádný" KonecPředchozí = "žádný" Do Until .EOF .Edit T = K & ". věta" & Chr(13) T = T & "Osoba předchozí: " & OsobaPředchozí & Chr(13) T = T & "Konec předchozí: " & KonecPředchozí & Chr(13) T = T & "Osoba aktuální: " & !Osoba & Chr(13) T = T & "Začátek aktuální: " & !Zahájení & Chr(13) If !Osoba = OsobaPředchozí Then !Odstup = !Zahájení - KonecPředchozí Else !Odstup = Null OsobaPředchozí = !Osoba End If KonecPředchozí = !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
8 Moduly
180
Proceduru spouštěnou kliknutím do tlačítka Kontrola4 doplníme o vypisování mezivýsledků formou dialogového okna se zprávou (viz horní část obr. 8-24). 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 kliknutí do tlačítka OK. Proceduru můžeme předčasně ukončit stisknutím kombinace kláves Ctrl Break a kliknutím do tlačítka End v dialogovém okně Microsoft Visual Basic. 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 kliknutím do tlačítka, nikoliv jen kombinací kláves Ctrl Break. OBR. 8-23: PROCEDURY KONTROLA5, KONTROLA5A_CLICK A KONTROLA5B_CLICK
Podprogramy Kontrola5 Kontrola5a _Click Kontrola5b _Click
Private Sub Kontrola5(Přepínač) Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") With Kontrola K=1 OsobaPředchozí = "žádný" KonecPředchozí = "žádný" Do Until .EOF .Edit T = "Osoba předchozí: " & OsobaPředchozí & Chr(13) T = T & "Konec předchozí: " & KonecPředchozí & Chr(13) T = T & "Osoba aktuální: " & !Osoba & Chr(13) T = T & "Začátek aktuální: " & !Zahájení & Chr(13) If !Osoba = OsobaPředchozí Then !Odstup = !Zahájení - KonecPředchozí Else !Odstup = Null OsobaPředchozí =!Osoba End If KonecPředchozí = !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 Přepínač = "ano" Then V = MsgBox(T, vbYesNo, K & ". věta") If V = vbNo Then Přepínač = "ne" End If .Update .MoveNext K=K+1 Loop End With Repaint MsgBox "Hotovo!" End Sub
8 Moduly
181
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í procedury by mohly být řešeny samostatně, byly by však velmi podobné, proto je budeme diferencovat vstupním parametrem Přepínač.
Dialogové okno se zprávou
Z formuláře se kombinací kláves Alt F11 přesuneme do editoru VBA, kde příkazem INSERT, PROCEDURE či kliknutí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).195 Do procedury Kontrola5 zkopírujeme kód z procedury Kontrola4_Click a upravíme jej dle obr. 8-23. Poznámky k proceduře: Procedura bude spouštěna z procedury tlačítka Kontrola5a (se vstupní proměnnou Přepínač o hodnotě ano, tj. uživatel chce zobrazit mezivýsledky) nebo z procedury tlačítka Kontrola5b (se vstupní proměnnou Přepínač o hodnotě ne, tj. uživatel nechce zobrazit mezivýsledky). Dialogové okno zobrazí mezivýsledky po jednotlivých OBR. 8-24: MEZIVÝSLEDKY větách jen, když Přepínač 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. Výsledkem funkce je číslo různé podle tlačítka, které použil uživatel v dialogovém okně. 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)196, zobrazuje se dialogové okno s tlačítky Ano a Ne (viz obr. 8-24). Po kliknutí do tlačítka Ano funkce MsgBox vrací hodnotu 6 (tj. vbYes), po kliknutí do tlačítka Ne funkce vrací hodnotu 7 (tj. vbNo)197. Jestliže uživatel klikne v dialogovém okně se zprávou do tlačítka Ne, uložíme do proměnné Přepínač 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. Po kliknutí do tlačítka Kontrola5a se spustí procedura Kontrola5 s argumentem ano. Po kliknutí do tlačítka Kontrola5b se spustí procedura Kontrola5 s argumentem ne. Závěrem uložíme formulář P87 Formulář Kontrola cest, čímž uložíme také lokální procedury. 195
U veřejných procedur se předpokládá jejich využití i v jiných modulech. 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. 197 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). 196
8 Moduly
182
8.8 Globální podprogram formátování čísla účtu
P88 Formulář
P88 Modul
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ŘENÍ ve skupině MAKRA A KÓD klikneme do spodní části tlačítka Modul. Vytvořený modul v okně Properties v poli Name přejmenujeme na P88 Modul. Do modulu vložíme veřejnou proceduru Barvy s kódem dle obr. 8-25. OBR. 8-25: PROCEDURA KONTROLA1_CLICK
Podprogram Barvy
Select – Case
P88 Sestava
Option Compare Database Public Sub Barvy(Objekt) Select Case KontrolaÚčtu(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ář](10), kde 10 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 Select Case se syntaxí: Select Case testovaná hodnota [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 průvodcem sestavou (bez seskupení a bez řazení v tabulkovém rozležení sestavy) sestavu P88 Sestava, v níž uvedeme pouze sloupce IČ, Název_podniku, Bankovní_účet, Bankovní_kód. Upravíme název sestavy na Podniky. Upravíme popisky na texty IČ, Název, Účet, Kód. Uspořádáme prvky záhlaví stránky a podrobností do tabulkového rozložení. Upravíme šířku sloupců (IČ: 1,8 cm, Název: 1,3 cm, Účet: 2,2 cm, Kód: 1 cm). Globální podprogram spouštíme jediným příkazem Barvy(Me) v procedurách 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 sestavy Výchozí zobrazení sestavy na hodnotu Náhled tisku (jen v náhledu se aplikují událostní procedury).
9 Externí data
183
9 Externí data 9.1 Možnosti exportu a importu Směry komunikace
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 9.2 textový procesor Word formát txt formát accdb, rtf textové soubory formát txt, csv formát txt 9.3 tabulkový program Excel formát xlsx, xls formát xlsx, xls Lotus formát wk1, wk3 formát wk1, wk3 9.4 prezentační program PowerPoint modul 9.5 databázový program Access formát accdb dBase formát dbf formát dbf Paradox formát db formát db 9.6 tvorba diagramů Visio formát accdb 9.7 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 publikace Publisher formát accdb 9.8 hypertextové odkazy 9.9 web SharePoint seznam seznam
9.2 Word Word Access
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 či k řešení v SharePointu. 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 Osoby198). Nejprve parametrizujeme Word 2016 pro přípravu formuláře: Spustíme Word 2016. Word 2007 a novější verze nepodporují ukládání dat z formulářů, obsahují však tlačítko pro práci s nástroji starších verzí v běžně nezobrazené kartě VÝVOJÁŘ. Klikneme pravým tlačítkem myši na pás karet a vybereme volbu Přizpůsobit pás karet.
198
S výjimkou polí Foto a Přílohy, které by nebylo možné vložit do formuláře Wordu.
9 Externí data
Enc-09-02 .docx
184
V dialogovém okně Možnosti aplikace Word v kartě Přizpůsobit pás karet zaškrtneme v pravé sekci PŘIZPŮSOBIT PÁS KARET kartu Vývojář. Do nového prázdného dokumentu připravíme formulář: V kartě ROZLOŽENÍ STRÁNKY ve skupině VZHLED STRÁNKY klikneme 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ě STYLY kliknutí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Í klikneme ve skupině TABULKA 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. 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ě OVLÁDACÍ PRVKY klikneme do tlačítka Nástroje starší verze. Dále budeme používat tlačítka ze sekce STARŠÍ FORMULÁŘE. Klikneme 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ě OVLÁDACÍ PRVKY klikneme do tlačítka Vlastnosti nebo dvojitě klikneme na vložené pole. Zobrazí se dialogové okno Možnosti textového pole formuláře (viz obr. 9-2). OBR. 9-2: DIALOGOVÉ OKNO MOŽNOSTI TEXTOVÉHO POLE FORMULÁŘE
9 Externí data Vlastnosti textového pole
Nápověda ve formuláři
185
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 zkrácený účet 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á. Zkrácený účet 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 pole Osoba 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 kliknutím v kartě VLOŽENÍ ve skupině ODKAZY do tlačítka Hypertextový odkaz) na záložky. Uživatel se pak kliknutí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. Kliknutím do tlačítka Nápovědný text zobrazíme dialogové okno Nápovědný text pole formuláře (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 zkrácený účet zadáme Do pole Osoba zapisujeme zkrácený účet, např. Novak.Petr), text, který se zobrazí při vyplňování pole po stisknutí klávesy F1 (pro Osobu 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é autotexty199. 199
Autotexty jsou jedním z tzv. stavebních bloků. Autotext lze po jeho výběru vložit do šablony v kartě VLOŽENÍ, ve skupině TEXT kliknutím do tlačítka Rychlé části a výběrem ULOŽIT VÝBĚR DO GALERIE RYCHLÝCH ČÁSTÍ.
9 Externí data
186
Obdobně vložíme pole: Titul před jménem (Maximální délka: 10), Křestní jméno (Maximální délka: 10, Formát textu: První velké), Příjmení (Maximální délka: 15, Formát textu: První velké), Titul za jménem (Maximální délka: 7), Pro pohlaví lze zadat jen dvě možnosti (M – muž, Z – žena). Tentokrát klikneme v sekci STARŠÍ FORMULÁŘE do tlačítka Pole se seznamem a ve skupině OVLÁDACÍ PRVKY do tlačítka Vlastnosti. Zobrazíme okno Možnosti rozevíracího pole formuláře (viz obr. 9-4).
Rozevírací pole
OBR. 9-4: DIALOGOVÉ OKNO MOŽNOSTI ROZEVÍRACÍHO POLE FORMULÁŘE
Zaškrtávací políčko
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), Oddělení (Pole se seznamem, Rozevírací seznam: ANA, DIS, KON, MAR, PRG, RED), Charakteristika, Úvazek (Typ: číslo, Formát čísla: 0,00), Web. stránka. Oprávnění fakturovat nabývá hodnotu ano či ne. Pro jeho zadávání použijeme zaškrtávací políčko. Klikneme do tlačítka Zaškrtávací políčko formuláře a zobrazíme dialogové okno Možnosti zaškrtávacího políčka formuláře (viz obr. 9-5) např. dvojitým kliknutím na zaškrtávací pole. OBR. 9-5: DIALOGOVÉ OKNO MOŽNOSTI ZAŠKRTÁVACÍHO POLÍČKA
9 Externí data
Zámek dokumentu
Enc-09-02 .docx
Enc-09-02a .docx
187
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ě ZÁMEK klikneme do tlačítka Omezit úpravy. V podokně Omezit úpravy zaškrtneme v sekci 2. OMEZENÍ ÚPRAV pole Povolit v dokumentu pouze tento typ úprav a vybereme VYPLŇOVACÍ FORMULÁŘE. V sekci 3. OMEZENÍ ÚPRAV klikneme do tlačítka Použít zámek. V dialogovém okně Použít zámek nevyplňujeme heslo a klikneme 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ě ZÁMEK zadáme OMEZIT FORMÁTOVÁNÍ A ÚPRAVY. V okně Omezit formátování a úpravy klikneme 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
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. Osobu 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.200) 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.
200
V budoucím exportu ukončení řádku klávesou Enter značí přechod na další větu, my však zapisujeme jedinou.
9 Externí data Tisk formuláře
Ukládání dat z formuláře
188
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: V kartě Soubor klikneme do tlačítka Možnosti. V kartě Upřesnit v sekci PŘI TISKU TOHOTO DOKUMENTU zaškrtneme pole Tisknout pouze data z formuláře.201 Obdobně jako při tisku lze uložit formulář jako dokument nebo pouze jeho data jako textový soubor: V kartě SOUBOR klikneme do tlačítka Uložit jako. V okně Uložit jako klikneme pod formátem souboru do odkazu Další možnosti. V dialogovém okně Uložit jako klikneme ve spodní části do tlačítka Nástroje a vybereme volbu Možnosti ukládání. V dialogovém okně Možnosti aplikace Word v kartě Upřesnit v sekci PŘI SDÍLENÍ TOHOTO DOKUMENTU ZACHOVAT VĚRNOST zaškrtneme pole Ukládat data formulářů jako textový soubor s oddělovači. V poli Uložit jako upřesníme formát ukládání prostý text. Potvrdíme název souboru Enc-09-02a.txt. V dialogovém okně Převod souboru 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
Enc-09-02a.txt
"Adamec.Milos";"";"Miloš";"Adamec";"";"M";"12";"DIS";"vzpěrač";"1,00"; "#http://sp.vse.cz/sites/fak2/min/encian/weby/Adamec/index.aspx";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).202 Data formuláře uložíme jako soubor Enc-09-02b.txt. OBR. 9-8: VYPLNĚNÝ FORMULÁŘ S ÚDAJI O DRUHÉM ZAMĚSTNANCI
Průvodce importem textu
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ě IMPORTOVAT A PROPOJIT klikneme do tlačítka Textový soubor. V dialogovém okně Načíst externí data 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.
201 202
V náhledu se však bude zobrazovat vždy formulář včetně mřížky a popisků. 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 kliknutím do tlačítka Obnovit pole formuláře v sekci STARŠÍ FORMULÁŘE.
9 Externí data
189
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 Osoby uvedené v obr. 3-3 (v kap. 3.3.1 na str. 43). Žádné pole neindexujeme. Volby v horní části okna zadáváme pro pole, které jsme kliknutím do nadpisu sloupce označili v dolní části. Nezapomeneme kromě názvů polí upravit typy polí (Charakteristika: dlouhý text, Úvazek: jednoduchá přesnost, Web_stránka: hypertextový odkaz, Oprávnění: ano/ne). OBR. 9-9: PRŮVODCE IMPORTEM TEXTU – ČTVRTÉ DIALOGOVÉ OKNO
Specifikace importu
P92a Adamec
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 Zvolit vlastní primární klíč pro pole Osoba. (Zajistíme tak v nové tabulce, abychom omylem dvakrát neimportovali stejnou větu.) V pátém okně nejprve klikneme 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). Stejnou specifikaci chceme použít i později, proto klikneme 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. Kliknutí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 klikneme do tlačítka Dokončit. Access nabídne uložení kroků importu, které nevyužijeme. Klikneme do tlačítka Zavřít. V databázi vznikla nová tabulka s námi zadaným názvem P92a Adamec.
9 Externí data
190 OBR. 9-10: SPECIFIKACE IMPORTU
P92b Beneš
Přidání obsahu tabulky do jiné tabulky P92 Osoby
Obdobně importujeme druhou větu: V kartě EXTERNÍ DATA ve skupině IMPORT klikneme do tlačítka Import textového souboru. V dialogovém okně Načíst externí data 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 klikneme do tlačítka Upřesnit. V dialogovém okně Specifikace importu klikneme do tlačítka Podrobnosti a vybereme P92 Specifikace importu z formuláře Wordu. Kliknutím do tlačítka OK uzavřeme okno Specifikace importu. Kliknutím do tlačítka Další postupně projdeme průvodce, jako vlastní primární klíč vybereme opět pole Osoba. V posledním okně změníme název tabulky na P92b Beneš. Vytvoříme tabulku P92 Osoby, 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 vložíme kombinací kláves Ctrl V. V dialogovém okně Vložit tabulku jako (viz obr. 9-11) vybereme volbu Strukturu a data a tabulku nazveme P92 Osoby. 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 Osoby. 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.
9 Externí data
191
Tabulku ze schránky zkopírujeme kombinací kláves Ctrl V. V dialogovém okně Vložit tabulku jako vybereme volbu Připojit data k existující tabulce a do pole Název tabulky zapíšeme opět P92 Osoby.203 Prohlédneme si obsah tabulky P92 Osoby. Tabulka obsahuje dvě věty. Věty nové tabulky se pokusíme přidat do tabulky Osoby: V navigačním podokně klikneme do tabulky P92 Osoby a stiskneme kombinaci kláves Ctrl C . Potom stiskneme kombinaci kláves Ctrl V. V dialogovém okně Vložit tabulku jako zadáme název tabulky Osoby a vybereme poslední nabízenou možnost, abychom neodstranili stávající obsah tabulky Osoby. Po kliknutí do tlačítka OK Access vypíše chybové hlášení. Nové věty nelze přidat pro porušení pravidel klíčů. Osoba je totiž klíčovým polem tabulky Osoby a e-maily Adamec.Milos a Benes.Pavel se již v tabulce Osoby vyskytují. Nové věty by se podařilo přidat jen při opravě klíčů v poli Osoba v tabulce P92 Osoby např. na Adamec.Milos2 a Benes.Pavel2. Access Podstatně jednodušší je komunikace z Accessu do Wordu. Existuje několik způsobů Word komunikace: Export datové Export datové sady (tabulky či výsledku dotazu): sady V navigačním podokně označíme kliknutím tabulku či dotaz, např. tabulku Oddělení. V kartě EXTERNÍ DATA klikneme ve skupině EXPORTOVAT do tlačítka Další a vybereme volbu Word. 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 kliknutí 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) je v dokumentu Wordu uložen 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ě EXPORTOVAT nebo tlačítkem Uložené importy ve skupině IMPORTOVAT A PROPOJIT 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 P52 Osoby – Identifikace). Export sestavy 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 Export části datové sady: 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ě Export pod názvem souboru zaškrtnout pole Exportovat pouze vybrané záznamy. Exportují se potom pouze vybrané řádky či sloupce. Data z Accessu Export datové sady jako zdroje dat hromadné korespondence ve Wordu: jako zdroj dat Chceme napsat dopis odběratelům firmy Encián. hromadné V navigačním podokně klikneme do tabulky Podniky. korespondence V kartě EXTERNÍ DATA ve skupině EXPORTOVAT klikneme do tlačítka Sloučit ve Wordu. Wordu 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ě Hromadná korespondence Word: 203
Mohli jsme také první větu importovat přímo do nové tabulky P92 Osoby a na začátku importu druhé věty vybrat v průvodci volbu Připojit kopii záznamů k tabulce P92 Osoby. V tom případě bychom však nevyzkoušeli aplikaci uložené specifikace importu.
9 Externí data
Access textový soubor
192
» V prvním kroku ponecháme vybrané pole Dopisy. Klikneme 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ě ZAPSAT A VLOŽIT POLE klikneme do tlačítka Vložit slučovací pole. Vybereme postupně pole adresy (Název_podniku, Ulice, PSČ, Obec) vložíme je do adresy na úvod dopisu. Tlačítkem Náhledy výsledků ze skupiny NÁHLED VÝSLEDKŮ můžeme zobrazit dopis se sloučenými daty. Tlačítky v horní části skupiny NÁHLED VÝSLEDKŮ (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 nebo můžeme vložit přímo pořadí věty. » 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ě SPUSTIT HROMADNOU KORESPONDENCI klikneme 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ě ZAPSAT A VLOŽIT POLE klikneme do tlačítka Vložit slučovací pole. Vybereme postupně pole adresy (Název_podniku, Ulice, PSČ, Obec) a vložíme je do adresy na úvod dopisu. Také můžeme spustit průvodce hromadnou korespondencí. V kartě KORESPONDENCE ve skupině SPUSTIT HROMADNOU KORESPONDENCI klikneme do tlačítka Spustit hromadnou korespondenci a vybereme volbu Podrobný průvodce hromadnou korespondencí. Vložená pole můžeme doprovodit konstantním textem, obrázky a dalšími objekty. Data z Accessu je možné uložit do textového souboru, který může načíst řada programů. Uložíme obsah tabulky Oddělení do textového souboru dvěma způsoby: s oddělovači V kartě EXTERNÍ DATA ve skupině EXPORTOVAT klikneme do tlačítka Textový soubor. V dialogovém okně Export zadá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. Kliknutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu. s pevnou délkou V kartě EXTERNÍ DATA ve skupině EXPORTOVAT klikneme do tlačítka Textový soubor. V dialogovém okně Export zadá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 šířkou. 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. Kliknutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu.
9 Externí data
193
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 (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 kliknout do tlačítka Upřesnit a obdobně jako při importu z formulářů Wordu uložit nastavené parametry exportu ve formě specifikace. Textový soubor Na připravených textových souborech budeme demonstrovat import textových Access souborů do Accessu: import souboru Oddělení1.txt V kartě EXTERNÍ DATA ve skupině IMPORTOVAT A PROPOJIT klikneme do tlačítka Textový soubor. V dialogovém okně Načíst externí data vyhledá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. Kliknutí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ě kliknutím do měřítka umístíme dvě čáry oddělující pole. (Tažením je možné měnit pozici čáry. Dvojitým kliknutím je možné čáru odstranit.) 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ě Načíst externí data 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í SLU, služby, Petr.Novak změnil by se obsah tabulky Oddělení3, tabulka Oddělení1 by zůstala v původní podobě.
9.3 Excel Excel Access
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ě IMPORTOVAT A PROPOJIT kliknutím do tlačítka Excel. Importovaná data upřesňujeme výběrem ze seznamu tabulek nebo ze seznamu oblastí. Access Excel 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ě klikneme do tabulky Oddělení. V kartě EXTERNÍ DATA ve skupině EXPORTOVAT klikneme do tlačítka Excel. V dialogovém okně Export zadá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 sešit Export.xlsx s listem Oddělení s formátovaným záhlavím. Soubor zavřeme. Kliknutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu. export dotazu
9 Externí data
194
V navigačním podokně klikneme do dotazu NACE_Oddíly. V kartě EXTERNÍ DATA ve skupině EXPORTOVAT klikneme do tlačítka Excel. V dialogovém okně Export zadá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. Klikneme do tlačítka OK. V Excelu otevřeme sešit Export.xlsx. Data z dotazu jsou uložena (bez formátování záhlaví) do dalšího listu NACE_Oddíly. Kliknutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu.
9.4 PowerPoint P94 Export PowerPoint Access 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 Export PowerPoint. Spustíme tak proceduru ExportPP z globálního modulu P94 Export PowerPoint, který využívá funkci Ident 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 16.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 EXPORTPP Z MODULU P94 EXPORT POWERPOINT
Public Sub ExportPP() '-----------------------------------------------------'přiřazení hodnot Set Zam = CurrentDb.OpenRecordset("Osoby") 'data čerpáme z tabulky Osoby Dim PP As New PowerPoint.Application 'PP je nově otevřená aplikace PowerPointu Dim SystémSouborů 'objekt systému souborů Set Prezentace = PP.Presentations.Add 'prezentace je nově přidaná prezentace Set SystémSouborů = 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 '----------
9 Externí data
195
'CELÉ JMÉNO (NAHOŘE) With Snímek.Shapes.AddShape(5, 20, 50, 680, 40) 'začátek operací s nově přidaným automatickým tvarem formátu č. 5 'x = 20, y = 50 souřadnice levého horního rohu, 680 šířka, 40 výška .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 .Font.Color = vbBlack 'černá barva písma nadpisu End With End With '---------'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 Ch = Zam!Charakteristika 'do proměnné Ch je uložena charakteristika s párovými značkami P = Ch 'do proměnné P je uložena charakteristika bez párových značek If InStr(1, Ch, "
") >= 1 Then P = Mid(Ch, 6, Len(Ch) - 11) If InStr(1, Ch, "<em>") >= 1 Then P = Mid(Ch, 10, Len(Ch) - 20) If InStr(1, Ch, "<strong>") >= 1 Then P = Mid(Ch, 14, Len(Ch) - 28) With .TextFrame.TextRange .Text = Zam!Charakteristika .Font.Size = 36 .Font.Color = vbBlack 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 SystémSouborů.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
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
9 Externí data
196
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 Access Access
Objekty připravené v jedné databázi lze použít v jiné databázi. Do databáze Accessu lze importovat objekty z jiné databáze: Vytvoříme novou databázi. V kartě SOUBOR klikneme do tlačítka Nový a vybereme volbu Prázdná databáze. Novou prázdnou databázi nazveme Encian2. Zavřeme nabízenou prázdnou tabulku. V kartě EXTERNÍ DATA ve skupině IMPORTOVAT A PROPOJIT klikneme do tlačítka Access. V dialogovém okně Načíst externí data dohledáme databázi Encian a ponecháme zaškrtnutou volbu Importovat tabulky,... V dialogovém okně Import objektů (viz obr. 9-14) vybereme objekty, které chceme do nové databáze zkopírovat. OBR. 9-14: DIALOGOVÉ OKNO IMPORT OBJEKTŮ
Vybereme objekty pro import: Kliknutím do názvu objektu objekt vybereme. Kliknutím do označeného objektu zrušíme výběr objektu. Kliknutím do tlačítka Vybrat vše vybereme všechny objekty jednoho typu, např. tabulky. Kliknutím do tlačítka Zrušit výběr zrušíme označení všech objektů jednoho typu. Kliknutím do záložky zobrazíme objekty jiného typu. Současně můžeme označit objekty různých typů. Kliknutím do tlačítka Možnosti zobrazíme speciální parametry importu.
9 Externí data
Propojení
197
Ve speciálních parametrech importu ve 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ů204 (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 Osoby, Oddělení a Místnosti, formulář P52 Osoby – 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).
9.6 Visio Access 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 stádií (viz obr. 9-15). OBR. 9-15: DIAGRAM MODEL ŽIVOTNÍHO CYKLU BEZ TEPLOMĚRŮ
Stádium je pro jednotlivé odběratele uvedeno v tabulce Podniky. Parametry stádia (Stupeň, Charakteristika, Dynamika_stádia) jsou upřesněny v tabulce Stádia. V dotazu Visio – Stádia jsou spočteny s využitím souhrnu počty odběratelů v jednotlivých stádiích (viz obr. 9-16).
204
Úprava nabídek (menu) a panelu nástrojů Accessu není v této publikaci vysvětlována.
9 Externí data
198 OBR. 9-16: DOTAZ VISIO – STÁDIA
Enc-09-06a.vsd
Data načteme do výkresu Visia: Ve Visiu otevřeme výchozí diagram Enc-09-06a.vsd. V kartě DATA ve skupině EXTERNÍ DATA klikneme do tlačítka Vlastní import. V prvním okně průvodce Výběr dat vybereme možnost Databáze aplikace Microsoft Office Access. V druhém okně dohledáme databázi Encian.accdb a ve spodní části upřesníme datovou sadu Visio – Stádia. 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 Stádium (místo pole Počet podniků, musíme využít svislý posuvník). V posledním okně klikneme do tlačítka Dokončit. Výsledek dotazu se načte do diagramu Visia jako externí data s názvem Visio – Stádia, která se zobrazí v samostatném okně Externí data. Data můžeme připojit k obrazcům diagramu tažením jednotlivých řádků z okna Externí data na jednotlivé obrazce. Využijeme rychlejší automatický způsob: V kartě DATA ve skupině ROZŠÍŘENÁ DATOVÁ PŘIPOJENÍ klikneme do tlačítka Propojit data. 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 Stádium 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 stádiu žádný odběratel není. U každé propojené elipsy je zobrazen název stádia počet podniků formou tzv. datového symbolu. Datový symbol upravíme: V kartě DATA ve skupině ROZŠÍŘENÁ DATOVÁ PROPOJENÍ klikneme do tlačítka Rozšířené datové symboly. Pravým tlačítkem klikneme do datového symbolu Data – Visio – Stádia a z místní nabídky vybereme UPRAVIT DATOVÝ SYMBOL. V dialogovém okně Upravit datový symbol klikneme do obou položek Charakteristika a Počet podniků a odstraníme je kliknutím do tlačítka Odstranit. Klikneme do tlačítka Nová položka. V dialogovém okně Nová položka upřesníme: Datové pole: Počet podniků Zobrazeno jako: Datový pruh Styl: Teploměr Maximální hodnota: 18 Umístění popisků: Nezobrazeno Zrušíme zaškrtnutí pole Použít výchozí pozici. Vodorovně: Pravá hrana Svisle: Doprostřed
9 Externí data
Enc-09-06b.vsd
199
Kliknutím do tlačítka OK ukončíme práci s dialogovým oknem Nová položka. Kliknutím do tlačítka OK ukončíme práci s dialogovým oknem Upravit datový symbol. Nyní je pro každé stádium znázorněn počet odběratelů ve stádiu výší rtuti v teploměru (viz obr. 9-17). OBR. 9-17: DIAGRAM MODEL ŽIVOTNÍHO CYKLU S TEPLOMĚRY
Organizační diagram
Enc-09-06c.vsd
Data jsou nakopírována do diagramu a jsou nezávislá na databázi. Můžeme je však aktualizovat. V kartě DATA ve skupině EXTERNÍ DATA klikneme do (horní části) tlačítka Aktualizovat vše. Můžeme upřesnit parametry aktualizace: V kartě DATA ve skupině EXTERNÍ DATA klikneme do (spodní části) tlačítka Aktualizovat vše a vybereme volbu Aktualizovat data. V dialogovém okně Aktualizovat data klikneme do tlačítka Konfigurovat. V dialogovém okně Konfigurovat aktualizaci můžeme mj. nastavit interval automatické aktualizace. 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. V kartě SOUBOR klikneme do tlačítka Nový. V horní části vybereme šablony dle Kategorie. Klikneme do kategorie OBCHODNÍ. Klikneme do dlaždice šablony Organizační diagram. Díky šabloně je zobrazena karta ORGANIZAČNÍ DIAGRAM a vzorník Pás – obrazce organizačního diagramu. V kartě ORGANIZAČNÍ DIAGRAM ve skupině DATA ORGANIZACE klikneme do tlačítka Importovat. 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, klikneme do tlačítka Další a dohledáme umístění databáze Encian.accdb. Ve čtvrtém okně vybereme tabulku Osoby. (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 v poli První jméno ponecháme vybrané pole Jméno. V šestém okně vybereme jako zobrazená pole Příjmení, Oddělení, Charakteristika, Místnost, Telefon. V sedmém okně vybereme jako datová pole obrazců všechna pole s výjimkou polí Titul1, Titul2, Nadřízený, Web_stránka, Web_foto, Foto a Přílohy. V osmém okně zaškrtneme pole Propojit záznamy databáze s obrazci. V devátém okně dohledáme složku, v níž jsou fotografie zaměstnanců (složka portréty). V poli Porovnávat obrázky podle ponecháme hodnotu Osoba. Fotografie musí být nazvány jako klíčové pole Osoba. V desátém okně vybereme volbu Chci, aby průvodce automaticky přerušil organizační diagram mezi stránkami: Vysoce postavený vedoucí a klikneme do tlačítka Dokončit. Automaticky se vytvořil diagram, který zřetězil zaměstnance dle pole Nadřízený (viz obr. 9-18). V diagramu provedeme některé úpravy:
9 Externí data
200 OBR. 9-18: ORGANIZAČNÍ DIAGRAM
Z místní nabídky Sladké vybereme Změnit typ pozice a zvolíme Asistent. Diagram překreslíme. V kartě ORGANIZAČNÍ DIAGRAM ve skupině ROZLOŽENÍ klikneme do tlačítka Znovu rozložit. Klikneme na uzel Dvořák (KON) a v kartě ORGANIZAČNÍ DIAGRAM ve skupině USPOŘÁDAT klikneme do tlačítka Přesunout doleva. V panelu nástrojů Organizační diagram klikneme do tlačítka Přesunout doleva. Obdobně změníme pořadí dalších oddělení tak, aby oddělení byla v pořadí ANA, PRG, MAR, DIS, KON. Klikneme na uzel Kolínská (PRG). V kartě ORGANIZAČNÍ DIAGRAM ve skupině ROZLOŽENÍ klikneme do tlačítka Rozložení a vybereme v sekci VEDLE SEBE volbu Jeden ze shora. Diagram překreslíme. V kartě ORGANIZAČNÍ DIAGRAM ve skupině ROZLOŽENÍ klikneme do tlačítka Znovu rozložit. K formátování uzlů diagramu využijeme datový symbol: Klikneme na uzel Marie Sladké. V kartě DATA ve skupině ROZŠÍŘENÁ DATOVÁ PŘIPOJENÍ klikneme do tlačítka Rozšířené datové symboly a do volby Vytvořit nový datový symbol. V dialogovém okně Nový datový symbol klikneme do tlačítka Nová položka a upřesníme parametry: Datové pole: Oddělení Zobrazeno jako: Barva podle hodnoty » ANA: Červená, Zvýraznění 1, velmi světlá 60 % » DIS: Olivově zelená, Zvýraznění 2 » KON: Tmavě modrá, Čára, velmi světlá 60 % » MAR: Azurová, Zvýraznění 4 » PRG: Oranžová, Zvýraznění 5 » RED: Levandulová, Zvýraznění 3 Doplníme další položky: Datové pole: Oprávnění » Zobrazeno jako: Sada ikon » Styl: Zaškrtnutí v zeleném kolečku » Vodorovně: Pravá hrana » Svisle: Nahoře Datové pole: Úvazek » Zobrazeno jako: Sada ikon » Styl: Graf » Vodorovně: Pravá hrana » Svisle: Doprostřed
9 Externí data
Visio Access Kontingenční diagram
201
Datové pole: Pohlaví » Zobrazeno jako: Sada ikon » Styl: Praporek » Vodorovně: Pravá hrana » Svisle: Dolů V dialogovém okně Nový datový symbol klikneme do tlačítka OK. Na dotaz Chcete tento datový symbol použít pro vybrané obrazce? klikneme do tlačítka Ano. V kartě DATA ve skupině ROZŠÍŘENÁ DATOVÁ PROPOJENÍ klikneme do tlačítka Rozšířené datové symboly a z místní nabídky Datového symbolu vybereme Přejmenovat. Zadáme název Uzel. Datový symbol Uzel aplikujeme na všechny uzly diagramu. Označíme jej a vybereme datový symbol. Z místní nabídky Nováka vybereme Změnit typ pozice a zvolíme Vedoucí (místo Ředitel, který je jinak barevně řešen). V případě organizačního diagramu je možné data aktualizovat ve směru z Accessu i do Accessu. 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 stádií 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 stádií a programů, kontingenční diagram celkové délky služebních cest dle místa cest205.
9.7 Další aplikace 9.7.1 Project Project Access
Enc-09-07a.mpp
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. 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 do Accessu pro podrobnější analýzy a sledování návazností. 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 v kartě SESTAVY ve skupině EXPORT klikneme do tlačítka Vizuální sestavy. V dialogovém okně Vizuální sestavy – Vytvořit sestavu klikneme do tlačítka Uložit data. V dialogovém okně Vizuální sestavy – Uložit data sestav klikneme do tlačítka Uložit databázi. Zadáme název databáze a složku pro její 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.206 205
Podrobný výklad práce s daty v aplikaci Visio je uveden v kap. 10 v publikaci KUBÁLEK, Tomáš, KUBÁLKOVÁ, Markéta. Program pro tvorbu diagramů Microsoft Visio 2013. Praha: Nakladatelství Oeconomica, 2015. 152. s. ISBN 978-80245-2105-3. 206 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 97880-251-1770-5.
9 Externí data
202
9.7.2 Outlook
Outlook Access
Access Outlook
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 ze složky asistentky ředitele Marie Sladké: V kartě EXTERNÍ DATA ve skupině IMPORTOVAT A PROPOJIT klikneme do tlačítka Další a vybereme SLOŽKA APLIKACE OUTLOOK. V dialogovém okně Načíst externí data ponecháme zaškrtnutu volbu Importovat zdrojová data do nové tabulky v aktuální databázi.207 V prvním okně průvodce importem vybereme účet a složku, např. účet Marie Sladká a v něm složku Kontakty (Contacts). V druhém okně můžeme změnit názvy některých importovaných polí. Ve třetím okně neurčíme primární klíč. Ve čtvrtém okně potvrdíme název tabulky Kontakty. 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.
9.7.3 OneNote Access OneNote
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.
9.7.4 Publisher Access Publisher
P97 Publisher Podniky Faktury Licence Programy Osoby (178 vět)
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í.208 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 z tabulek Programy, Licence, Faktury, Podniky. OBR. 9-19: DOTAZ P97 PUBLISHER
207
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í. 208 Publisher nabízí šablony pro typy publikací: Brožury, Bulletiny, Dárkové poukázky, Diplomy, E-mail, Hlavičkový papír, Kalendáře, Karty s pozdravem, Katalogy, Nabídky, Nápisy, Nápisy a výstrahy, Obálky, Obchodní formuláře, Oznámení, Papírové skládanky, Pohlednice, Pozvánky, Programy, Přání, Reklamy, Rychlé publikace, Štítky, Vizitky, Životopisy.
9 Externí data Enc-09-07b.pub
203
V aplikaci Publisher připravíme potisk CD: Po příkazu SOUBOR, NOVÝ vybereme v kategorii Předdefinované / Štítky šablonu Štítek na média (s větším středovým otvorem) a klikneme 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 5,8 cm (doprostřed). Obdobně umístíme svislá vodítka doprostřed levé a pravé části potisku, tj. na pozice 2 cm a 9,5 cm. V kartě DOMŮ ve skupině OBJEKTY klikneme do tlačítka Nakreslit textové pole. Postupně nakreslíme obrysy 3 textových polí (dle obr. 9-20).209 OBR. 9-20: POTISK CD V APLIKACI PUBLISHER
V kartě KORESPONDENCE ve skupině ZAČÁTEK klikneme do tlačítka Hromadná korespondence a vybereme volbu Podrobný průvodce hromadnou korespondencí. 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. Klikneme 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. V kartě NÁSTROJE TEXTOVÉHO POLE / FORMÁT nastavíme: ve skupině PÍSMO velikost písma 18 a tučné písmo, ve skupině ZAROVNÁNÍ nastavíme Zarovnat 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 volném řádku je vloženo pole Cena. Z místní nabídky pole Cena vybereme FORMÁT MĚNY a upřesníme Kč čeština a počet desetinných míst na 0. Označíme text pravého pole. V kartě NÁSTROJE TEXTOVÉHO POLE / FORMÁT nastavíme: 209
Ohraničení textový polí lze zvýraznit. V kartě ZOBRAZENÍ ve skupině ZOBRAZIT zaškrtneme pole Ohraničení.
9 Externí data
204
ve skupině PÍSMO velikost písma 14, ve skupině ZAROVNÁNÍ nastavíme Zarovnat na střed. Obdobně vložíme text do dolního pole (pro přechod na další řádek použijeme kombinaci kláves Shift Enter): 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 třetím řádku je vloženo pole Datum. Z místní nabídky vybereme volbu Formát data a času a zadáme 06.01.2025. Označíme text dolního pole. V kartě NÁSTROJE TEXTOVÉHO POLE / FORMÁT nastavíme: ve skupině PÍSMO velikost písma 14, ve skupině ZAROVNÁNÍ nastavíme Zarovnat na střed. V kartě VLOŽENÍ ve skupině ILUSTRACE klikneme do tlačítka Obrázky. Vložíme obrázek Encian.png nad horní pole. Upřesníme pozici a velikost obrázku. Když v kartě KORESPONDENCE ve skupině NÁHLED VÝSLEDKŮ klikneme do tlačítka Náhled výsledků, zobrazíme místo názvů polí jejich hodnoty. Obdobně jako v hromadné korespondenci Wordu můžeme přejít na zobrazení hodnot z jiných vět. 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 Cíl odkazů Vazba odkazů
Nesvázané odkazy
P98d 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ářů 210, 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 či sestavy. Nesvázané hypertextové odkazy budeme demonstrovat v novém formuláři: V kartě VYTVOŘENÍ ve skupině FORMULÁŘE klikneme do tlačítka Návrh formuláře. V návrhovém zobrazení v kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Vložit hypertextový odkaz nebo stiskneme kombinaci kláves Ctrl K. V dialogovém okně Vložit hypertextový odkaz (viz obr. 9-21) můžeme v levé části vybrat ze čtyř možností: OBR. 9-21: DIALOGOVÉ OKNO VLOŽIT HYPERTEXTOVÝ ODKAZ
210
Hypertextový odkaz může být také součástí také sestavy, zde by však nebyl využitelný.
9 Externí data
Enc-09-08a .docx
Enc-09-08b .xlsx
Enc-09-08c .pptx
205
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, kliknutím zpět na okno Vložit hypertextový odkaz se adresa stránky vloží do pole Adresa. » Po levé straně můžeme využít záložky pro rychlé vyhledání odkazu: Aktuální složka, Prohlédnuté stránky, Naposledy otevřené soubory. » Tlačítko Záložka je určeno pouze pro odkazy na objekty aktuální databáze Accessu. Umožňuje vybrat objekt z otevřené databáze. 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. Tvůrce hypertextových odkazů: Používá se ve svázaných odkazech. Umožňuje složit adresu odkazu s využitím polí z aktuální věty. Využívá se také při zobrazení interního webového prohlížeče (viz kap. 5.2). V našem případě využijeme objekt v této databázi, vybereme tabulku Osoby. Upřesníme odkaz: Do pole Zobrazený text zapíšeme Tabulka Osoby. Tento text se bude zobrazovat ve formuláři. Klikneme do tlačítka Komentář a v dialogovém okně Nastavit komentář hypertextového odkazu zapíšeme text Otevření tabulky Osoby. 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 kliknutí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ář P52 Osoby – Identifikace na sestavu P66 Telefonní seznam Obdobně nachystáme odkazy na lokální soubory: První odkaz bude na dokument Wordu Enc-09-08a.docx, který obsahuje tabulku cen programů. Každý program má v dokumentu svou záložku211: Klikneme 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ů (5 cm od levého okraje). Druhý odkaz je na sešit Excelu 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) #FIN212. 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 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í: 211
Ve Wordu jsme v přehledu programů označili tažením zkratku názvu jednotlivého programu a v kartě VLOŽENÍ ve skupině ODKAZY jsme kliknuli do tlačítka Záložka. V dialogovém okně Záložka jsme záložku přidali tlačítkem Přidat. 212 V Excelu jsme v tabulce cen označili první dva sloupce a v kartě VZORCE jsme ve skupině DEFINOVAT NÁZVY kliknuli do tlačítka Vytvořit z výběru a vybrali jsme Levý sloupec.
9 Externí data
206
Adresa odkazu: soubor, popř. webová adresa, v případě objektu ve stejné databázi nevyplněn,213 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ř. Osoby). Obdobně můžeme vlastnosti doplnit k tlačítku: V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme 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 Makro214. Výsledný stav formuláře je uveden v obr. 9-22. OBR. 9-22: FORMULÁŘ P98D ODKAZY
Svázané odkazy
P98e Webové adresy
V tabulce Osoby jsou odkazy na webové stránky jednotlivých zaměstnanců uvedeny formou svázaného hypertextového odkazu. Pole Web_stránka 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 Webová stránka 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
P98f Lokální 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. OBR. 9-24: AKTUALIZAČNÍ DOTAZ P98F LOKÁLNÍ ADRESY
213
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. 214 Odkaz by nebyl funkční, pokud bychom vyplnili pro databázi vlastnost Základ hypertextového odkazu (karta Soubor, Odkaz Zobrazit a upravit vlastnosti databáze, karta Souhrnné informace).
9 Externí data
207
9.9 Webová aplikace pro Access Access umožňuje ukládat do SharePointu: tabulky formou seznamů, každá tabulka je v jednotlivém seznamu, Aplikace pro Access, všechny tabulky jsou v jedné tzv. webové aplikaci pro Access. Připravíme webovou aplikaci Dovolené, do níž budou zaměstnanci firmy Encián prostřednictvím portálu Office 365 zapisovat vé dovolené. Tvorba webové Aplikaci můžeme vytvořit: aplikace z Acessu: V kartě SOUBOR klikneme do tlačítka Nový a vybereme šablonu Vlastní webová aplikace. V dialogovém okně Vlastní webová aplikace vyplníme parametry: » Název aplikace: Dovolené Encián » Adresa URL webu SharePointu nebo Office 365: adresa týmového webu předmětu v osobní kolekci webů Office 365, např. https://vse-my.sharepoint.com/personal/kubalek_vse_cz/2OP483/ Klikneme do tlačítka Vytvořit. z SharePointu: V portálu Office 365 spustíme aplikaci OneDrive pro firmy. Klikneme do tlačítka Nastavení (ozubené kolečko). Do vyhledávacího pole zadáme Obsah webu a klikneme na odkaz Obsah webu. V podřízených webech vybereme dříve založený web 2OP483 (viz kap. 3.2.5). V levém panelu Snadné spuštění klikneme do odkazu Obsah webu. Klikneme do tlačítka Přidat aplikaci. Do vyhledávacího pole zapíšeme Access. Zadáme název aplikace Dovolené Encián. Klikneme do dlaždice Aplikace pro Access. Zadáme název aplikace Dovolené a klikneme do tlačítka Vytvořit. Klikneme do dlaždice Dovolené Encián. Na další stránce Access klikneme do odkazu Otevřete tuto aplikaci v Accessu a můžete přidávat tabulky. Stáhne se soubor App.accdw, který otevřeme. Potvrdíme stažení informací z intranetu. Import tabulky Importujeme do webové aplikace Accessu tabulky: Ve spodní části klikneme do tlačítka Access. (Můžeme také importovat data z Excelu, SQL serveru, textového souboru nebo seznamu SharePointu.) V dialogovém okně Načíst externí data klikneme do tlačítka Procházet a dohledáme databázi Encian.accdb. Klikneme do tlačítka OK. V dialogovém okně Import objektů kliknutím vybereme jedinou tabulku Osoby. Klikneme do tlačítka OK. V dialogovém okně Chyby a upozornění importu jsme upozornění, že se neimportovalo pole Foto, SharePoint nepodporuje objekty typu Objekt OLE. Klikneme do tlačítka Zavřít. V kartě DOMŮ ve skupině VYTVOŘIT klikneme do tlačítka Tabulka. Importujeme tabulku Dovolené z databáze Duv-08-01.accdb. Okno webové Webové aplikace mají omezený rozsah karet a tlačítek: aplikace V kartě DOMŮ ve skupině ZOBRAZIT klikneme do tlačítka Navigační podokno, abychom zobrazili navigační podokno. V kartě DOMŮ ve skupině VYTVOŘIT klikneme do tlačítka Tabulka, abychom zavřeli okno Přidat tabulky. Pro objekt databáze je k dispozici pouze karta DOMŮ (viz obr. 9-25). V navigačním podokně je seznam objektů dle jejich kategorií: Tabulky: importované tabulky Dovolené a Osoby Formuláře: ke každé importované tabulce jsou automaticky vytvořeny dva formuláře – datový list s větami v tabulce (obdoba nekonečného formuláře) a seznam s větou na samostatné stránce (obdoba samostatného formuláře). Ukládání do SharePointu
9 Externí data
208 OBR. 9-25: DATABÁZE DOVOLENÉ ENCIÁN
Ikona tabulky
Úprava formuláře
V kartě objektu databáze je oblast výběru tabulky, jak bude zobrazena na webu. Před tabulkou je ikona tabulky. Změníme ikony tabulek: V oblasti výběru tabulky klikneme na tabulku Osoby. V místním panelu nástrojů v pravém dolním rohu vedle názvu tabulky klikneme do tlačítka Formátování a vybereme ikonu Lidé. Obdobně pro tabulku Dovolené vybereme ikonu Pláž. Upravíme formulář Seznam: Klikneme na tlačítko Upravit. V další kartě se zobrazí návrh formuláře a k němu kontextová kartě NÁVRH (viz obr. 9-26). OBR. 9-26: FORMULÁŘ OSOBY SEZNAM
Na začátek formuláře doplníme obrázek: V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Obrázek. Pole obrázku táhneme ve formuláři nad pole Osoba. Popisek a textové pole Zahájení a Dokončení přesuneme pod osobu. Klikneme do pole obrázku a v místním panelu nástrojů do tlačítka Data. Do parametru URL obrázku vložíme odkaz na vhodnou webovou adresu, např. http://u3v.vse.cz/wp-content/uploads/2016/08/Dovolena.png Osobu chceme vyhledávat ze seznamu osob: V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Pole se seznamem. Odstraníme původní textové pole Osoba a na jeho místo umístíme pole se seznamem, upřesníme jeho parametry: » Název ovládacího prvku: Osoba – textové pole » Zdroj ovládací prvku: Osoba » Typ zdroje řádků: Tabulka nebo dotaz » Zdroj řádků: Osoby
9 Externí data
209
» Vázané pole: Osoba » Zobrazované pole: Osoba » Překryvné okno: Osoby Seznam215 Pro zahájení a dokončení nechceme zobrazovat čas, proto upravíme jejich formát: V místním panelu nástrojů klikneme do tlačítka Formátování. V poli Zobrazit jako vybereme hodnotu Krátké datum. Do pole Popis zapíšeme Datum zahájení/ukončení služební cesty. Do formuláře vypočteme délku služební cesty: Klikneme do popisku Zahájení. V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Popisek. Nový popisek se umístí za popisek Zahájení. Do popisku zapíšeme Délka cesty. Klikneme do textového pole Zahájení. V kartě NÁVRH ve skupině OVLÁDACÍ PRVKY klikneme do tlačítka Pole se seznamem. V místním panelu nástrojů klikneme do tlačítka Data a upřesníme parametry pole: » Název ovládacího prvku: Délka » Zdroj ovládací prvku: klikneme do tlačítka Tvůrce (tři tečky) a zapíšeme výraz: =Day([Dokončení – textové pole])-Day([Zahájení – textové pole])+(Month([Dokončení – textové pole])-Month([Zahájení – textové pole]))*31 Ve webové aplikaci bohužel není dostupná funkce Val, proto počítáme délku z rozdílu dnů, korekce přechodu na další měsíc je pro zjednodušení funkce přesná pouze pro měsíce s délkou 31 dnů. V místním panelu nástrojů klikneme do tlačítka Formátování a upřesníme parametry pole: » Zobrazit jako: Standardní » Desetinná místa: 0 Upravený formulář uložíme kliknutím do tlačítka Uložit v panelu nástrojů Rychlý přístup nebo kombinací kláves Ctrl S. OBR. 9-27: WEBOVÝ FORMULÁŘ DOVOLENÉ SEZNAM
215
Překryvné okno se zobrazí po kliknutí do odkazu s osobou ve formuláři dovolených.
9 Externí data Webový formulář Seznam
Webový formulář Datový list a export
210
Přejdeme do okna webu či spustíme webovou aplikaci, když v kartě DOMŮ ve skupině ZOBRAZENÍ klikneme do tlačítka Spustit aplikaci. V obr. 9-28 je stránka po kliknutí do odkazu Novak.Petr, tj. po zobrazení překryvného okna. Vysvětlivky k formuláři: V levé oblasti výběru tabulky můžeme vybírat tabulku. V horní části vybíráme formulář. V Accessu můžeme doplnit i další vlastní formuláře. Význam tlačítek panelu nástrojů: Přidat, možno také klávesou N: přidání nové věty, Odstranit Delete: odstranění věty, Upravit E: editace věty, Uložit Ctrl S: uložení věty a ukončení editace, Storno Esc: ukončení editace bez uložení věty. Data můžeme z tabulky exportovat do Excelu: Zobrazíme kliknutím do odkazu v horním seznamu formulářů formulář Dovolené Datový list. V panelu nástrojů formuláře klikneme do tlačítka Stáhnout (viz obr. 9-28). Data se uloží do sešitu Excelu. OBR. 9-28: WEBOVÝ FORMULÁŘ DOVOLENÉ DATOVÝ LIST
Přechody z webové aplikace Sestavy
Z webové aplikace můžeme přejít: tlačítkem Zpět na web (vlevo nahoře) do týmového webu, v níž je aplikace uložena, tlačítkem Nastavení (ozubené kolečko vpravo nahoře) a volbou Upravit v Accessu do otevření webové databáze v Acccessu. Úpravy struktury tabulek a návrhu formuláře můžeme provádět pouze v Accessu. K tabulkám a formulářům můžeme doplnit sestavy dostupné pouze v klientské databázi Accessu: V kartě SOUBOR v dílčí kartě Informace klikneme do tlačítka Sestava z mých dat. Vytvoříme tak klientskou databázi, která je propojena s tabulkami uloženými v aplikaci SharePointu (se službami Access Services). Data jsou v SharePointu uložena v databázi SQL. Přístup k SQL serveru: V Accessu ve webové aplikaci v kartě INFORMACE v dílčí kartě Informace klikneme do tlačítka Spravovat. Zde můžeme upravit rozsah přístupu k databázi (z mého umístění / z libovolného umístění, jen pro čtení / i pro zápis). Volbou Zobrazit informace pro připojení se zobrazí přístupové údaje pro připojení k SQL serveru: OBR. 9-29: INFORMACE O PŘIPOJENÍ K SQL SERVERU
Data z SQL serveru můžeme potom připojit či exportovat z prázdné databáze Accessu. V kartě EXTERNÍ DATA ve skupině IMPORTOVAT A PROPOJIT klikneme do tlačítka Databáze ODBC.
Databázové nástroje
211
10 Databázové nástroje 10.1 Přehled Databázové nástroje
V poslední kapitole budou vyloženy: nástroje nabízené v kartě DATABÁZOVÉ NÁSTROJE, jsou rozděleny do pěti skupin: NÁSTROJE, MAKRO, ZOBRAZIT ČI SKRÝT, ANALYZOVAT, PŘESUNOUT DATA, DATABÁZOVÉ NÁSTROJE. vybrané nástroje dostupné v Accessu mimo standardní karty, nastavení, která je možné upřesnit v kartě SOUBOR po kliknutí do tlačítka Možnosti, další volby v kartě SOUBOR.
10.2 Skupina Nástroje Komprimace databáze Oprava databáze
Automatická komprimace
Když v kartě DATABÁZOVÉ NÁSTROJE ve skupině NÁSTROJE klikneme do tlačítka Zkomprimovat a opravit databázi, spustí se dva procesy: komprimace: Komprimace zmenší soubor databáze, omezí nepoužívané místo v souboru accdb, který se může podstatně zmenšit. Komprimaci je vhodné provést zejména po odstranění tabulek či více vět. Komprimace může zvýšit výkon databáze. oprava: Soubor accdb se může poškodit zejména, pokud je sdílen v síti. Při poškození jsou většinou narušeny návrhy objektů, nikoliv data. Access vytvoří v tabulce MSysCompactErrors seznam objektů, které nebyly opraveny. Neopravené objekty můžeme importovat ze zálohy databáze, pokud jsme ji dříve vytvořili. Tlačítko je také dostupné v kartě SOUBOR v dílčí kartě Informace. Můžeme nastavit automatickou komprimaci při zavírání databáze: V kartě SOUBOR klikneme do tlačítka Možnosti. V dialogovém okně Možnosti aplikace Access v kartě Aktuální databáze v sekci MOŽNOSTI APLIKACE zaškrtneme pole Komprimovat při zavření.
10.3 Skupina Makro Ze skupiny MAKRO 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,
10.4 Skupina Relace Vztahy
Sestava relací
Kliknutím do tlačítka Relace se zobrazí relace databáze (viz kap. 2). Zobrazí se také aplikační karta NÁVRH se skupinami NÁSTROJE a RELACE. Aplikační kartu i schéma relací zavřeme, když v kartě NÁVRH ve skupině RELACE klikneme do tlačítka Zavřít. Když v kartě NÁVRH ve skupině NÁSTROJE klikneme do tlačítka Sestava relací, vygeneruje se účelová sestava s diagramem relací a zobrazí se v náhledu. 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.
Databázové nástroje
Závislosti objektů
212
Čí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. Další databázový nástroj umí zobrazit závislosti objektů Accessu: V navigačním podokně klikneme na tabulku Oddělení. V kartě DATABÁZOVÉ NÁSTROJE ve skupině RELACE klikneme do tlačítka Závislosti objektů. Zobrazí se upozornění, že aktualizace informací o závislostech může být časově náročná. Klikneme do tlačítka OK. V podokně Závislosti objektů se zobrazí pro jednotlivé typy objektů závislosti vybraného objektu (viz obr. 10-1). Můžeme skrýt či zobrazit závislosti jednotlivých typů objektů dvojitým kliknutím na typ objektu, např. Dotazy. 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-1: PODOKNO ZÁVISLOSTI OBJEKTŮ
10.5 Skupina Analyzovat Analýza tabulky
PA1 Tvorba Osoby_duplicity
Pod pojmem analýza shrnuje Access tři nástroje: analýzu tabulky, analýzu výkonu objektu, dokumentaci objektu. 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 PA1 Tvorba Osoby_duplicity (viz obr. 10-2), který sloučí informace z tabulek Osoby a Oddělení (všechna pole tabulky Osoby a pole Oddělení_v z tabulky Oddělení). Dotaz vytvoří novou tabulku Osoby_duplicity. (V kartě NÁVRH ve skupině TYP DOTAZU klikneme do tlačítka Vytvářecí a zadáme název tabulky Osoby_duplicity.) Po spuštění dotazu vznikne tabulka Osoby_duplicity, kterou budeme analyzovat: V kartě DATABÁZOVÉ NÁSTROJE ve skupině ANALYZOVAT klikneme do tlačítka Analýza tabulky. První dvě okna průvodce jsou pouze informativní, nezadáváme zde žádné parametry.
Databázové nástroje
213
OBR. 10-2: VYTVÁŘECÍ DOTAZ PA1 TVORBA OSOBY_DUPLICITY
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 Osoby_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 klikneme do tlačítka Přejmenovat tabulku nebo dvojitě klikneme na její název. Tabulky nazveme Osoby2 a Oddělení2 (viz obr. 10-3). OBR. 10-3: PÁTÉ OKNO PRŮVODCE ANALÝZOU TABULKY
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. Klikneme do pole Osoba v tabulce Osoby2 a kliknutím do tlačítka Nastavit jedinečný identifikátor vybereme klíčové pole také v tabulce Osoby2. V posledním okně zadáme, že chceme vytvořit pomocný dotaz, který nahradí původní tabulku Osoby_duplicity. Klikneme do tlačítka Dokončit. Access zobrazí nápovědu, jejíž okno zavřeme, a otevře výběrový dotaz Osoby_duplicity, který nahradil tabulku Osoby_duplicity. Dotaz spojuje nově vytvořené tabulky Osoby2 a Pracoviště2 tak, aby byly i nadále funkční případné dotazy, formuláře, sestavy a jiné objekty založené na
Databázové nástroje
214
datové sadě Osoby_duplicity. Původní tabulka Osoby_duplicity je zálohována v tabulce Osoby_duplicity_OLD. Access automaticky vytvořil relaci mezi tabulkami Osoby2 a Pracoviště2. (V diagramu relací však není zobrazena. Stačí do diagramu doplnit jednu z tabulek a z místní nabídky tabulky vybrat volbu Zobrazit přímé relace.) V tabulce Osoby2 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-4, OBR. 10-4: DOTAZ ZE ZDROJE ŘÁDKŮ VYHLEDÁVÁNÍ POLE PRACOVIŠTĚ
Analýza výkonu
Dokumentace
Počet sloupců: 4, Šířky sloupců: 0cm;0,002cm;1,553cm;2,336cm, Šířka seznamu: 4,395cm. 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 zkratek a názvů oddělení, v tabulce se zobrazí sloučený řetězec, do tabulky se ukládá nezobrazená hodnota z prvního sloupce seznamu (zkratka). Access také nabízí kontrolu výkonu jednotlivých objektů. Před aplikací na databázi Encian zrušíme relaci mezi tabulkami Podniky a Stádia.216 Provedeme analýzu výkonu: V kartě DATABÁZOVÉ NÁSTROJE ve skupině ANALYZOVAT klikneme do tlačítka Analýza výkonu. V prvním okně průvodce vybereme analyzované objekty. Pro ilustraci vybereme v kartě Formuláře objekt P53 Podniky – Identifikace. Po kliknutí do tlačítka OK se ve druhém okně zobrazí návrhy Accessu na zvýšení výkonu. Návrhy jsou rozděleny do kategorií (viz obr. 10-5). Náměty kategorie Doporučení a Návrh může realizovat Access sám. V našem případě označíme řádek Tabulka Stádia: Vytvořit relaci s tabulkou Podniky z kategorie Rada a klikneme do tlačítka Optimalizovat. Kategorie výsledku se změní z Rady na Pevný. Kliknutím do tlačítka Zavřít ukončíme práci s Průvodcem analýzou výkonu. V diagramu relací zobrazíme vytvořenou relaci a doplníme k ní referenční integritu (včetně kaskádové aktualizace souvisejících polí). 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 klikneme do tlačítka Dokumentace databáze. 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. 216
V kartě DATABÁZOVÉ NÁSTROJE ve skupině RELACE klikneme do tlačítka Relace. Kliknutím označíme relaci mezi tabulkami Podniky a Stádia a klávesou Delele ji odstraníme.
Databázové nástroje
215 OBR. 10-5: DRUHÉ OKNO PRŮVODCE ANALÝZOU VÝKONU
Ve formě sestavy se zobrazí dokumentace, kterou můžeme v kartě SOUBOR kliknutím do tlačítka Tisk a volbou Tisk vytisknout. Prohlížení sestavy ukončíme tlačítkem Zavřít náhled.
10.6 Skupina Přesunout data Přesun do databáze Accessu
Přesun do SharePointu
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: V kartě SOUBOR klikneme do tlačítka Nový. Založíme novou prázdnou databázi s názvem Encian_přední. Do nové databáze importujeme (viz kap. 9.5) z databáze Encian.accdb objekty: tabulky Místnosti, Oddělení, Osoby, formulář P52 Osoby – Identifikace. V kartě DATABÁZOVÉ NÁSTROJE ve skupině PŘESUNOUT DATA klikneme do tlačítka Databáze aplikace Access. V prvním okně průvodce rozdělením jsou uvedeny informace o rozdělování, klikneme do tlačítka Rozdělit databázi. V druhém okně průvodce zadáme název zadní databáze Encian_zadní217 a klikneme do tlačítka Rozdělit. Po chvíli se vypíše hlášení o rozdělení databáze. Klikneme do tlačítka OK. Access vytvoří dvě dílčí databáze: přední s původním názvem Encian_přední, v níž jsou uloženy návrhy objektů a odkazy propojením na zadní databázi s daty, zadní s datovými tabulkami. 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. Tabulky databáze Encian_zadní můžeme umístit formou seznamu na web SharePointu: Otevřeme databázi Encian_zadní. V kartě DATABÁZOVÉ NÁSTROJE ve skupině PŘESUNOUT DATA klikneme do tlačítka SharePoint. V prvním okně průvodce zadáme adresu webu, např. https://vse-my.sharepoint.com/personal/kubalek_vse_cz/2op483
217
Nabízí se původní název přední databáze rozšířený o písmena be (back end).
Databázové nástroje
216
V druhém okně průvodce zaškrtneme pole Zobrazit podrobnosti. Ve webu SharePointu se vytvořily tabulky Místnosti, Oddělení, Osoby a vytvořila se záložní kopie databáze Encian_zadní_Záloha.accdb. V tabulce Problémy s přesunutím na web služby SharePoint je protokol chyb: SharePoint nepodporuje kaskádové aktualizace souvisejících polí (Místnosti – Osoby, Oddělení – Osoby, Osoby – Osoby). SharePoint nepodporuje datový typ Desetinné číslo, je využit typ Číslo (Úvazek). SharePoint nepodporuje datový typ Objekt OLE, příslušné pole není přesunuto (Foto).
10.7 Vlastní karta Užitečné 10.7.1 Vlastní karta Access obsahuje další nástroje nedostupné ze standardních karet. Připravíme vlastní kartu a umístíme do ní tlačítka pro vybrané další nástroje: V kartě SOUBOR klikneme do tlačítka Možnosti. V okně Možnosti aplikace Access v kartě Přizpůsobit pás karet klikneme v pravé části do tlačítka Nová karta. Klikneme na řádek Nová karta a do tlačítka Přejmenovat. Zadáme název Užitečné. Obdobně přejmenujeme Novou skupinu na Makra a doplníme (využitím tlačítka Nová skupina) skupinu Nástroje. V levé části okna zobrazíme zadáme do pole Zvolit příkaz z hodnotu Všechny příkazy. V pravé části označíme skupinu a tlačítkem Přidat přidáme příkaz, který je označený v levém seznamu, do označené skupiny. Přidáme tyto příkazy: do skupiny MAKRA » Vytvořit místní nabídku z makra do skupiny NÁSTROJE » Správce propojených tabulek » Správce přepínacích panelů » Vytvořit soubor MDE (vloží se tlačítko Vytvořit databázi ACDDE)
10.7.2 Nabídky z maker Místní nabídka formuláře
PA7a Osoby – Identifikace
Globální místní nabídka
V databázi Encian 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ě klikneme na makro P76 Menu. V kartě UŽITEČNÉ ve skupině MAKRO klikneme do tlačítka Vytvořit místní nabídku z makra. Zkopírujeme formulář P52 Osoby – Identifikace pod názvem PA7a Osoby – 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í klikneme 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: V kartě Soubor klikneme do tlačítka Možnosti. 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.) Po zadání se zobrazí upozornění o nutnosti zavřít a znovu otevřít aktuální databázi. Databázi zavřeme v kartě SOUBOR kliknutím do tlačítka Zavřít.
Databázové nástroje
Karta Doplňky ve formuláři
PA7b Užitečné akce
217
Databázi otevřeme v kartě SOUBOR kliknutím do tlačítka Otevřít. Databázi vybereme ze seznamu naposledy otevřených databází. 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ŘENÍ ve skupině MAKRO A KÓD klikneme do tlačítka Makro. Makro bude obsahovat jedinou akci Přidat nabídku (typ Příkazy uživatelského rozhraní) s parametry: » 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 PA7b Užitečné akce. Formulář PA7a Osoby – Identifikace otevřeme v návrhovém zobrazení. Do jiné vlastnosti formuláře Řádek nabídek zapíšeme (vybrat nelze) PA7b Užitečné akce. Ve formulářovém zobrazení se zobrazuje karta DOPLŇKY. Obsahuje jedinou skupinu PŘÍKAZY NABÍDKY. Kliknutím do tlačítka Užitečné akce se otevře nabídka dílčích maker makra P76 Menu.
10.7.3 Správce propojených tabulek Správce propojených tabulek
Access si v přední databázi pamatuje místo uložení propojených dat. Pokud uživatel data uloží do jiné složky, musíme upravit propojení tabulek. K tomu slouží nástroj Správce propojených tabulek: Přejmenujeme složku našich databází Encian_přední a Encian_zadní nebo databázi Encian_přední přejmenujeme či přesuneme do jiné složky. Otevřeme databázi Encian_přední. Dvojitým kliknutí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ě UŽITEČNÉ ve skupině NÁSTROJE klikneme do tlačítka Správce propojených tabulek. V dialogovém okně Správce propojených tabulek je seznam propojených tabulek. Klikneme do tlačítka Vybrat vše a potom do tlačítka OK. V dalších oknech upřesníme, kde je soubor databáze (zadní databáze) pro jednotlivé vybrané tabulky umístěn.218 Access upraví odkazy na propojené tabulky a vypíše hlášení, které zavřeme kliknutím do tlačítka OK.219 Ručně bychom mohli upravit propojení tabulky také odstraněním propojení a novým připojením kliknutím v kartě EXTERNÍ DATA ve skupině IMPORTOVAT A PROPOJIT do tlačítka Access.
10.7.4 Správce přepínacích panelů Správce přepínacích panelů
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-6), 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. Postup přípravy soustavy přepínacích panelů: V kartě UŽITEČNÉ ve skupině NÁSTROJE klikneme do tlačítka Správce přepínacích panelů. Access oznámí, že nemohl nalézt v databázi přepínací panel. Na dotaz, zda si jej přejeme vytvořit, klikneme do tlačítka Ano.
218 219
Propojené tabulky mohou být uloženy i v různých databázích 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.
Databázové nástroje
218 OBR. 10-6: PŘEPÍNACÍ PANELY V DATABÁZI ENCIÁN
Switchboard Items Přepínací panel
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ů klikneme do tlačítka Upravit. Název přepínacího panelu změníme z textu Hlavní přepínací panel na Hlavní menu a klikneme do tlačítka Zavřít. Ve Správci přepínacích panelů nachystáme další dva panely (tzv. stránky): Kliknutím do tlačítka Nový založíme první z nich. Nazveme jej Formuláře. Kliknutím do tlačítka Nový založíme druhý z nich. Nazveme jej Sestavy. Kliknutím označíme stránku přepínacího panelu Hlavní menu a klikneme do tlačítka Upravit. V rámci hlavního menu doplníme položky přepínacího panelu kliká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 Kliknutím do tlačítka Zavřít zavřeme okno pro úpravy Hlavního menu. Kliknutím označíme stránku přepínacího panelu Formuláře a klikneme do tlačítka Upravit. V rámci úprav stránky Formuláře doplníme položky přepínacího panelu klikáním do tlačítka Nový: Pro první položku upravíme parametry: » Text: Formulář P52 Osoby – Identifikace » Příkaz: otevřít formulář v režimu úpravy » Formulář: P52 Osoby – Identifikace Pro druhou položku upravíme parametry: » Text: Formulář P53 Podniky – Identifikace » Příkaz: otevřít formulář v režimu úpravy
Databázové nástroje
219
» 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 Kliknutím do tlačítka Zavřít zavřeme úpravy stránky přepínacího panelu Formuláře. Kliknutím označíme stránku přepínacího panelu Sestavy a klikneme do tlačítka Upravit. V rámci úprav stránky Sestavy doplníme položky přepínacího panelu klikáním do tlačítka Nový: Pro první položku upravíme parametry: » Text: Sestava P62 Osoby – Identifikace » Příkaz: otevřít sestavu » Sestava: P62 Osoby – 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 Kliknutím do tlačítka Zavřít zavřeme úpravy stránky přepínacího panelu Sestavy. Kliknutí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. Dvojitě klikneme na jeho název v navigačním podokně. Soustavu přepínacích panelů můžeme kdykoliv modifikovat, když v kartě UŽITEČNÉ ve skupině NÁSTROJE klikneme do tlačítka Správce přepínacích panelů nebo přímo úpravou či přidáním položek v tabulce Switchboard Items.
10.7.5 Šifrování a formáty ukládání databáze Šifrování databáze
Formát ACCDE
Abychom zamezili neoprávněnému přístupu do databáze, můžeme databázi zašifrovat pomocí hesla: Databázi musíme otevřít ve výhradním režimu, tj. režimu, kdy nemůže být otevřena současně jiným uživatelem: V kartě SOUBOR klikneme do tlačítka Otevřít a do tlačítka Procházet. Dohledáme databázi. Z nabídky tlačítka Otevřít vybereme Otevřít s výhradním přístupem. V kartě SOUBOR v dílčí kartě Informace klikneme do tlačítka Zašifrovat pomocí hesla. V dialogovém okně Nastavit heslo databáze zadáme dvakrát heslo. 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ř. aplikací pro práci se soubory. Dešifrovat databázi můžeme kliknutí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ě UŽITEČNÉ ve skupině NÁSTROJE klikneme do tlačítka Vytvořit databázi ACCDE.220 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.
220
Tvorbu databáze ACCDE musíme provádět po souhlasu s prováděním maker, modulů a akčních dotazů. Databáze s vysokým počtem tabulek není možné do formátu ACCDE uložit.
Databázové nástroje
Formát ACCDR
Formulář s nabídkou objektů
Automatické spuštění formuláře
220
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íkem221 z přípony ACCDB na ACCDR. Databázi potom můžeme spustit: na počítači s nainstalovaným Accessem: dvojitým kliknutím na název souboru, ze zástupce na ploše, na počítači bez instalace Accessu: Z webu Microsoftu222 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 navigací (viz kap. 5.8.2), formulář s hypertextovými odkazy na jednotlivé objekty databáze (viz kap. 5.8.3 a 9.8), formulář s tlačítky, k nimž jsou definovány událostní vlastnosti Při kliknutí (viz kap. 7.6), přepínací panel (viz kap. 10.7.4). 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.223 V kartě SOUBOR klikneme do tlačítka Možnosti. V kartě Aktuální databáze v sekci MOŽNOSTI APLIKACE zadáme do pole Zobrazit formulář hodnotu P76 Menu.
10.8 Práce s navigačním panelem V navigačním panelu jsou zobrazeny objekty databáze. Práci usnadňují klávesy: F11: skrytí/zobrazení panelu nástrojů, F2: editace názvu objektu (dostupné také z místní nabídky objektu), Ctrl Enter: otevření objektu v návrhovém režimu (dostupné také z místní nabídky), Alt Enter: zobrazení seznamu vlastností objektu (dostupné také z místní nabídky). Úplné vlastnosti se zobrazují jen pro objekty, nikoliv pro jejich zástupce vzniklé zařazením do skupiny v rámci kategorie. 224 V dialogovém okně Vlastnosti objektu můžeme: doplnit popis objektu225, skrýt objekt v navigačním podokně226. Seznam vlastností
221
V průzkumníkovi souborů musí být zobrazeny přípony souborů. V kartě ZOBRAZENÍ ve skupině ROZLOŽENÍ klikneme do tlačítka Seznam. V kartě ZOBRAZENÍ ve skupině ZOBRAZIT ČI SKRÝT zaškrtneme pole Přípony názvů souborů. 222 https://www.microsoft.com/cs-cz/download/details.aspx?id=50040 223 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. 224 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. 225 Popis objektu se zobrazí v navigačním podokně, když v místní nabídce nadpisu navigačního podokna vybereme Zobrazit podle a zadáme Podrobnosti. 226 Skryté objekty lze zobrazit, když klikneme 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.
Databázové nástroje
221
10.9 Možnosti aplikace Access Obecné 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í
Když v kartě SOUBOR klikneme do tlačítka Možnosti, zobrazíme dialogové okno Možnosti aplikace Access s několika kartami: Obecné: Zde můžeme mj.: vybrat výchozí formát ukládání souborů databází, upřesnit uživatelské jméno a iniciály, vybrat pozadí (Bez pozadí, Geometrie a další) a motiv Office (barevný či bílý). Aktuální databáze: Nastavené parametry jsou platné jen pro aktuální databázi, mj.: V sekci MOŽNOSTI aplikace můžeme upřesnit název aplikace, který se potom zobrazuje v záhlaví okna Accessu a v záložce spuštění Accessu ve Windows. Můžeme také vybrat ikonu (soubor ve formátu ico), která se zobrazí na liště Windows a v záložce227. » V poli Zobrazit formulář můžeme vybrat formulář, který se má automaticky zobrazit po otevření databáze (viz kap. 5.8.3 a 10.7.5). » 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é starý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 NAVIGACE lze potlačit pro databázi zobrazování podokna navigace. V sekci MOŽNOSTI PÁSU A PANELU NÁSTROJŮ můžeme vybrat řádek globální místní nabídky (viz kap. 10.7.2). 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. Datový list: Pro datový list tabulek a výsledků dotazů lze nastavit formát mřížky tabulky a výchozí písmo (velikost, tloušťku, řez). Návrháři objektů: Pro jednotlivé objekty lze nastavit výchozí parametry: Pro návrh tabulky vybrat výchozí typ pole (např. Krátký text), výchozí velikost textového pole (např. 255), výchozí velikost číselného pole (např. Dlouhé celé číslo). Pro 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 aplikací kancelářského balíku 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ů. Kliknutí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. Jazyky: Lze nastavit jazykové předvolby kancelářského balíku (jazyk pro úpravy obsahu, jazyk pro zobrazení a nápovědu). Nastavení klienta: V sekci ÚPRAVY můžeme mj. ovlivnit chování Accessu po stisknutí klávesy Enter, chování Accessu při používání kurzorových kláves, výchozí způsob hledání či nahrazování, nastavit nutnost potvrzování akčních dotazů.
227
Pro vyzkoušení je v demonstračních souborech k dispozici soubor Encian.ico.
Databázové nástroje
222
V sekci ZOBRAZIT můžeme mj. zadat počet zobrazovaných naposledy použitých databází, zobrazování stavového řádku. V sekci TISK můžeme nastavit velikosti okrajů tisku, které se uplatní např. při přímém tisku tabulky. V sekci OBECNÉ můžeme mj. nastavit počet cifer při zobrazování roku. V sekci UPŘESNIT 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í. Přizpůsobit pás karet: Můžeme doplnit uživatelské karty, v nich vytvořit skupiny a přidat tlačítka (viz kap. 10.7.1). Panel nástrojů Rychlý přístup: Můžeme upravit seznam tlačítek zobrazených na panelu Rychlý přístup (viz kap. 4.2). Doplňky: Umožňuje zobrazení a správu doplňků pro Microsoft Office. Centrum zabezpečení: Po kliknutí do tlačítka Nastavení Centra zabezpečení můžeme nastavit v několika dílčích kartách zabezpečení Accessu (mj. zakázat všechna makra).
10.10 Karta Soubor Karta Office
Položky karty SOUBOR: Informace: Obsahuje tlačítka a odkaz: Zkomprimovat a opravit (viz kap. 10.2). Zašifrování pomocí hesla (viz 10.7.5). 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). Nový: Otevřeme okno, 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). Otevřít: Otevřeme dříve vytvoř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í. Často otevírané databáze můžeme připnout, budou potom zobrazeny na začátku seznamu. Uložit: Ukládá do databáze aktuálně otevřený objekt. Často se takto (nebo kombinací Ctrl S ) ukládají objekty 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: Databázi můžeme uložit pod jiným názvem nebo v jiném formátu, mj. » do formátu ACCDE – viz kap. 10.7.5, » 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í. 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. 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. Zavřít: Zavře otevřenou databázi bez ukončení práce Accessu. Účet: Nastavení kancelářského balíku Microsoft Office: pozadí, motiv, připojené služby. Umožňuje nastavit aktualizace Office: hned, zakázat či zobrazit informace o aktualizaci s možností spustit aktualizaci. Možnosti: Zobrazí dialogové okno Možnosti aplikace Access (viz kap. 10.9). Váš názor: Pro přihlášení k osobnímu účtu Microsoftu můžeme pomocí aplikace Windows Feedback zaslat náměty k vylepšení Acessu, popř. se přidat k námětům jiných uživatelů.
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka
223
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka 11.1 Databáze Banka Následující příklady demonstrují typy dotazů z kap. 4 na příkladu analýzy osobních příjmů a výdajů vedoucího oddělení marketingu Milana Smetany v databázi Banka. Databáze obsahuje data o pohybech na osobním účtu Milana Smetany za první pololetí roku 2025. Podrobněji k tabulkám databáze viz kap. 2.7. Příklady kopírují strukturu výkladu v kap. 4. Většinou obsahují jen zadání, snímek řešení. V marginálii je seznam tabulek využitých v dotazu a výsledný počet vět.
11.2 Výběrové dotazy z jedné tabulky se základními funkcemi R42a Účely výdajů
R42A ÚČELY VÝDAJŮ: VÝBĚR NESEŘAZENÉHO POLE S DUPLICITAMI Vypište účely výdajů.
Detaily (153 vět)
R42b Seřazené účely
R42B SEŘAZENÉ ÚČELY: VÝBĚR SEŘAZENÉHO POLE S DUPLICITAMI Vypište vzestupně seřazené účely výdajů.
Detaily (153 vět)
R42c Účely bez duplicit
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).
Detaily (43 vět)
R42d Položky a účty
R42D POLOŽKY A ÚČTY: VÝBĚR NESEŘAZENÝCH POLÍ S DUPLICITAMI Vypište položky a účty pohybů.
Pohyby (123 vět)
R42e Seřazené položky a účty
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.
Pohyby (62 vět)
R42f Jinak seřazené položky a účty
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.
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka
224
Pohyby (62 vět)
R42g Pražská energetika
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í.
Pohyby (4 věty)
R42h Pražská energetika a Česká pošta
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í.
Pohyby (10 vět)
R42i Energetika, Pošta a Enciá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.
Pohyby (16 vět)
R42j Praha 1 v ČS
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.
Automaty (3 věty)
R42k Praha 1 v ČS a Praha 9
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.
Automaty (24 vět)
R42l P1 v ČS a P9 v metru Automaty (9 vět)
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.
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka
225
R42M VYŠŠÍ VÝBĚRY: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU ČÍSELNÉHO POLE R42m Vyšší výběry
Vypište výběry z automatů s výběrem vyšším než 4 000 Kč.
R42n Automaty na ulici H – S
R42N AUTOMATY NA ULICI H – S: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU
Pohyby (4 věty)
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.
Automaty (92 vět)
R42o Automaty Ko
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.
Automaty (4 věty)
R42p Automaty na lince B
R42P AUTOMATY NA LINCE B: VÝBĚR VĚT S POŽADOVANÝM KONCEM TEXTOVÉHO POLE
R42q Automaty Kxs
R42Q AUTOMATY KXS: ZÁSTUPNÝ ZNAK PRO JEDEN TEXTOVÝ ZNAK
Vypište automaty umístěné v stanicích metra linky B.
Automaty (25 vět)
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.
Automaty (3 věty)
R42r Automaty R42R AUTOMATY BEZ NEPŘETRŽITÉHO PROVOZU: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU POLE bez nepřetržitého Vypište automaty, které nemají nepřetržitý provoz. provozu Automaty (62 vět)
R42s Omezené automaty Automaty (44 vět)
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.
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka
226
R42T POHYBY BEZ ÚČTU: VÝBĚR VĚT S PRÁZDNÝM OBSAHEM POLE R42t Pohyby bez účtu
Vypište pohyby, v nichž není vyplněn účet.
R42u Pohyby s intervalem výdaje
R42U POHYBY S INTERVALEM VÝDAJE: VÝBĚR S INTERVALOVOU PODMÍNKOU OBSAHU POLE
Pohyby (23 vět)
Vypište pohyby s výdajovou částkou z intervalu <4 000;20 000>.
Pohyby (20 vět)
R42v Pohyby s intervalem bez SIPO
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 <4 000;20 000> avšak s výjimkou inkasa SIPO (sdružené inkaso plateb obyvatel).
Pohyby (17 vět)
11.3 Výběrové dotazy z jedné tabulky s pokročilými funkcemi R43a Lednové pohyby
R43A 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í.
Pohyby (17 vět)
R43b Automaty, karty, příkazy
R43B 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í.
Pohyby (80 vět)
11.4 Výběrové dotazy z více tabulek R44a Detaily pohybů
R44A DETAILY POHYBŮ: VÝBĚR SOUVISEJÍCÍCH VĚT ZE DVOU TABULEK Vypište k pohybům upřesnění výdajů.
Pohyby Detaily (153 vět)
R44b Výběry v Praze 1
R44B 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.
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka
227
Pohyby Automaty – R Automaty (10 vět)
R44C VÝBĚRY V PRAZE 1 MIMO NÁRODNÍ: VÝBĚR S PROPOJENÍM DVOU TABULEK A DVOJÍ R44c Výběry v Praze 1 mimo PODMÍNKOU Národní Vypište pohyby, které byly realizovány výběrem z automatu v Praze 1 a to nikoliv na Národní. Pohyby Automaty – R Automaty (5 vět)
R44d
R44D AUTOMATY VYBRANÉHO MĚSTA: VÝBĚR POMOCÍ OBSAHU POMOCNÉ TABULKY Vypište automaty z vybraného města.
Město_F Automaty (11 vět)
R44e Detaily výběrů
R44E 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ů.
Detaily Pohyby Automaty – R Automaty (12 vět)
R44f Detaily z vybraného města
R44F 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.
Detaily Pohyby Automaty – R Automaty Město_F (1 věta)
R44g Středeční i páteční automaty
R44G PONDĚLNÍ I ČTVRTEČNÍ AUTOMATY: VÝBĚR S PROPOJENÍM TABULKY DO SEBE Vypište automaty, z nichž bylo vybráno v (libovolnou) středu a zároveň v (libovolný) pátek.
Pohyby Pohyby_1 (2 věty)
R44h Pohyby bez detailů
R44H 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.
Pohyby Detaily (0 vět)
R44i Datum výdaje na dovolenou
R44I 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.
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka Pohyby Detaily (1 věta)
R44j Pohyby po dovolené
R44J 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.
Pohyby R44i Datum výdaje na dovolenou (19 vět)
11.5 Výpočty 11.5.1 Výpočty v rámci věty R45a Rozdíl dob
R45A 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í.
Pohyby (123 vět)
11.5.2 Výpočty za skupinu vět R45b Nej pro automaty
R45B 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.
Pohyby (3 věty)
R45c Celkový rozdíl dob
R45C 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.
Pohyby (5 vět)
R45d Průměrný rozdíl dob
R45D 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.
Pohyby (5 vět)
R45e Výdaje za R45E VÝDAJE ZA INKASO A SIPO: KRITÉRIUM V SOUHRNU inkaso a SIPO Vypište součty výdajů za čtvrtletí dohromady za inkaso a inkaso SIPO. Pohyby (2 věty)
228
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka R45F AUTOMATY V TÝDNECH: SOUHRN DLE ČÁSTI POLE R45f Automaty Vypište celkové částky vybrané v jednotlivých týdnech z automatů. v týdnech Pohyby (10 vět)
R45g Automaty s vysokým výběrem Pohyby
R45G 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č.
Automaty – R Automaty (2 věty)
R45h Brzké výběry
R45H 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.
Pohyby Automaty – R Automaty (2 věty)
R45i Čtvrtina automatů
R45I Č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.
Pohyby Automaty – R Automaty (1 věta)
R45j Pohyby čtvrtiny automatů
R45J 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.
R45i Automaty – R Pohyby (5 vět) Automaty – R Pohyby (3 věty)
11.6 Parametrické dotazy R46a Pohyby v měsíci
R46A POHYBY V MĚSÍCI: PARAMETRICKÝ DOTAZ S PŘESNÝMI KRITÉRII Vypište pohyby v zadaném měsíci.
Pohyby (pro leden 17 vět)
R46b Vybrané pohyby
R46B VYBRANÉ POHYBY: PARAMETRICKÝ DOTAZ S PŘIBLIŽNÝM KRITÉRIEM Vypište pohyby v zadaném měsíci nebo všechny pohyby.
229
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka
230
Pohyby (pro leden 17 vět pro rok 123 vět)
R46c Pohyby dle data
R46C POHYBY DLE DATA: OMEZENÍ DATOVÉHO TYPU PARAMETRU PARAMETRICKÉHO DOTAZU
Vypište pohyby od zadaného data. Pohyby (od 1. 4. 2025: 62 vět)
11.7 Křížové dotazy R47a Pohyby dle položky a měsíce
R47A 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.
Pohyby (101 vět)
R47b Křížová tabulka pohybů Pohyby
R47B 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.
(56 vět)
R47c Pohyby dle položky a dne
R47C 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.
Pohyby (44 vět)
11.8 Akční dotazy 11.8.1 Vytvářecí dotazy R48a Tvorba Výběrů z automatu Pohyby Automaty – R Automaty (11 vět)
R48A 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.
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka
231
11.8.2 Aktualizační dotazy R48b Metro Národní
R48B 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).
Výběry z automatu (5 vět)
R48c Umístění dle Automatů
R48C 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.
Výběry z automatu Automaty – R Automaty (11 vět)
11.8.3 Odstraňovací dotazy R48d Výběry od června 2025
R48D VÝBĚRY OD ČERVNA 2025: 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. 2025.
Výběry z automatu (3 věty)
R48e Nepřetržitá doba
R48E 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.
Nejprve musíme připravit tabulku Automaty2. Automaty – R (198 vět)
Položka Položka v tabulce Automaty2 musí být klíčová. Výběry z automatu Automaty2 (5 vět)
11.8.4 Přidávací dotazy R48f Přidání pozdních výběrů
R48F PŘIDÁNÍ POZDNÍCH VÝBĚRŮ: PŘIDÁVACÍ DOTAZ DLE POLE Z ROZŠIŘOVANÉ TABULKY
R48g Přidání nepřetržitých automatů
R48G PŘIDÁNÍ NEPŘETRŽITÝCH AUTOMATŮ: PŘIDÁVACÍ DOTAZ DLE POLE Z JINÉ NEŽ
Do tabulky Výběry z automatu přidejte výběry realizované po 1. 6. 2025. Pohyby, Automaty – R, Automaty (2 věty)
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)
11 Příloha A: Dodatek ke kap. 4 Dotazy z databáze Banka
232
11.9 Jazyk SQL R49a Sjednocení Účtů a Názvů účtů Pohyby (57 vět)
R49b Sjednocení bez duplicit
R49A 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; R49B 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; Pohyby (57 vět)
UNION SELECT DISTINCT Pohyby.Název_účtu FROM Pohyby;
12 Příloha B: Příklady k procvičení
233
12 Příloha B: Příklady k procvičení Příloha B obsahuje zadání samostatné práce v cvičné databázi. Po pročtení jednotlivých kapitol je možné prohloubit si získané poznatky vypracováním příkladů. 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í zkomprimujte 228.
12.1 Ke kapitole 1 Databáze 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 práce použijeme databázi s tabulkami: Osoby Obsahuje 20 vět. Každá věta se vztahuje k jednomu zaměstnanci. Pole: Osoba (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, » Osoba: účet zaměstnance, s nímž je dohoda uzavírána, » Popis_práce: stručný popis práce, která je dle dohody 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: DPP = dohoda o provedení práce, DPČ = dohoda o pracovní činnosti, » 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. 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. V každé větě jsou data o katedře. Zakázky Obsahuje 37 vět. Seznam zakázek včetně čísel činností fakulty, v rámci nichž jsou zakázky realizovány. Činnosti Obsahuje 8 vět. Každá věta upřesňuje data o činnosti (slovní vysvětlení). Založte novou prázdnou databázi Dohody_01. V databázi připravte tabulku Dohody s jednoduchou strukturou: Číslo_dohody (klíčové pole). Osoba: Účet 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 Osoby s jednoduchou strukturou: Osoba (klíčové pole): uživatelské jméno zaměstnance ve firmě Encián. Jméno Příjmení
228
Klepněte do tlačítka Office a zadejte příkaz SPRAVOVAT, ZKOMPRIMOVAT A OPRAVIT DATABÁZI.
12 Příloha B: Příklady k procvičení
234
V databázi připravte tabulku Katedry s jednoduchou strukturou: Katedra: zkratka názvu katedry, 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 Osoby vložte věty: Osoba Jméno Příjmení Benes.Pavel Pavel Beneš Janda.Frantisek František Janda Do tabulky Dohody vložte věty: Číslo dohody Osoba 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, Osoba, 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.
12.2 Ke kapitole 2 Relace 2 Relace
Importujte do nové databáze Dohody_02 tabulky Osoby, Dohody, Likvidace, Katedry, Zakázky, Činnosti, 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.
12.3 Ke kapitole 3 Tabulky 3 Tabulky
Zkopírujte soubor databáze Dohody_02.accdb do souboru Dohody_03.accdb. Upravte definici polí v návrhu tabulek: v tabulce Osoby: » pole Osoba zkraťte na 20 znaků, » pole Titul1 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 Osoba zkraťte na 20 znaků, » pole Popis_práce zkraťte na 30 znaků, » pole Hodin a Sazba upravte na celé číslo, » pole Druh_dohody zkraťte na 3 znaky, » pole Katedra zkraťte na 5 znaků, » pole Zakázka zkraťte na 8 znaků,
12 Příloha B: Příklady k procvičení
235
v tabulce Likvidace: » pole Číslo_dohody a Hodin_likvidace upravte na celé číslo, » pole Částka upravte na dlouhé 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, » pole Nákladové_středisko zkraťte na 4 znaky, v tabulce Zakázky: » pole Zakázka zkraťte na 8 znaků, » pole Činnost upravte na celé číslo, v tabulce Činnosti: » pole Činnost upravte na celé číslo, » pole Činnost_v zkraťte na 50 znaků. Optimalizujte šířku polí v zobrazení jednotlivých tabulek. Ve struktuře tabulky Osoby 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: Sazba musí dodržovat pravidlo, že je nejméně 200, nejvýše 4 000 Kč. Při nedodržení pravidla se bude vypisovat vhodný text. Hodnota pole Do musí být větší nebo rovna hodnotě pole Od, jinak zobrazte vhodný text. Nápověda: Je nutné zajistit pomocí vlastnosti tabulky, nikoliv vlastnosti pole. Ve struktuře dalších tabulek zajistěte: Ve struktuře tabulky Katedry zajistěte, aby nebyla vyplněna duplicitně hodnota pole Nákladové_středisko. V tabulce Zakázky je pole Činnost v nové větě vyplněno hodnotou 1000. 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 DPP v poli Druh_dohody včetně zavedení filtru pro zobrazení tabulky. V navigačním podokně změňte název skupiny 2 Relace na 3 Tabulky.
12.4 Ke kapitole 4 Dotazy 4 Dotazy 4.2 Výběrové dotazy z jedné tabulky
Pro editaci polí Titul1, Jméno v tabulce Osoby 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 dohody pro dohody na výuku, přednášku 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 na KMO a posudek na diplomovou práci na KCR. 5. Vypište čísla dohod, účet zaměstnance, popis práce a sazbu pro dohody se sazbou větší nebo rovnou 1 000 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 G 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ů.
12 Příloha B: Příklady k procvičení
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
236
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. 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 dohoda o provedení práce pro druh dohody DPP a dohoda o pracovní činnosti pro druh DPČ. 11. K likvidacím vypište číslo dohody, datum likvidace, počet zlikvidovaných hodin (ve sloupci s titulkem Likvidace) a počet hodin v dohodě (ve sloupci s titulkem 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 účty zaměstnanců, kteří uzavírali dohodu na práce pro KCR i KMO. 14. Vypište (v řazení dle data zahájení a čísla dohody) čísla a data zahájení plnění dohod, jejichž plnění (Od) 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 účet 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, celkovou likvidovanou částku a rozdíl dohodnuté a zlikvidované částky. 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 a druh dohody pro uživatelem zadaný druh dohody. 19. Vypište čísla dohod, popis práce a 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 a částku pro likvidace s částkou, která je vyšší nebo rovna zadanému číslu 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 druh dohody, v tabulce celkový počet dohodnutých hodin. 22. Sestavte křížovou tabulku, v níž v řádcích budou katedry KCR, KMO, KOPKK, ve sloupcích zakázky, v tabulce bude celková dohodnutá částka a to pouze za zakázky začínající na písmena AB. 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é doby plnění dohody na dvě desetinná místa dle kateder a druhu dohody. Sloupce uveďte v pořadí DPP, DPČ. 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, účet zaměstnance, popis práce, katedru, datum likvidace a likvidovanou částku. 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 KNJ. 28. Z tabulky Jazykové likvidace odstraňte věty týkající se dohod činnosti 1000. 29. Do tabulky Jazykové likvidace přidejte likvidace týkající se dohod činnosti 1000 a KNJ. Pomůcka: Dbejte, abyste nepřidali likvidace KNJ za činnost 1000 duplicitně. V dotazovací mřížce budou dvě kritéria. 30. Vypište kódy a vysvětlivky kateder i kódy zakázek. Sloupce správně nadepište Kód a Kód_v. Seznam vypište v řazení dle kódů.
12 Příloha B: Příklady k procvičení
237
V navigačním podokně zařaďte vytvořené dotazy a tabulku Jazykové likvidace do skupiny 4 Dotazy. Objekty v navigačním podokně seřaďte dle názvu.
12.5 Ke kapitole 5 Formuláře 5 Formuláře 5.2 Samostatný formulář
Připravte formulář Dohody 1 dle obr. 12-1. OBR. 12-1: FORMULÁŘ DOHODY 1
Upřesnění formuláře: Jedná se o rozdělený formulář. Formulář je bez filtru. Šířka polí pro editaci je 5 cm. Popisky polí obsahujících pomlčku (Číslo_dohody, Popis_práce, Druh_dohody) jsou upraveny. Pole Osoba je vloženo jako pole se seznamem z tabulky Osoby, zobrazeny jsou 4 sloupce se šířkami 0,002 cm, 0 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. 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 tabulá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 DPP a DPČ s vysvětlivkami dohoda o provedení práce a dohoda o pracovní činnosti. Šířka rozbalovacího seznamu je 6 cm, z toho pro první sloupec je vyhrazen 1 cm. Pole Katedra je vloženo jako pole se seznamem z tabulky Katedry, jsou zobrazeny 2 sloupce. Šířka rozbalovacího seznamu je 10 cm, z toho pro první sloupec je vyhrazeno 1,5 cm. Pole Zakázka je vloženo jako pole se seznamem z tabulky Zakázky, jsou zobrazeny 2 sloupce.
12 Příloha B: Příklady k procvičení 5.4 Nekonečný formulář 5.5 Formulář se souhrny
5.6 Podformulář
238
Připravte formulář Likvidace 1 dle obr. 12-2. OBR. 12-2: FORMULÁŘ LIKVIDACE 1
Upřesnění formuláře: Popisky polí obsahujících pomlčku (Číslo_dohody, Hodin_likvidace) jsou upraveny. Ve formuláři je zobrazováno pole Sazba z tabulky Dohody. Ve sloupci Návrh je uveden součin polí Hodin_likvidace a Sazba. Hodnoty ve sloupci Návrh jsou zarovnány doprava. Sloupce Sazba a Návrh nejsou přístupné klávesou tabulátor a jsou uzamčeny. Šířky sloupců jsou přizpůsobeny obsahu. Výplň ovládacího prvku všech sloupců je žádná. Částky k likvidaci větší nebo rovné 20 000 Kč jsou vypisovány červeně. V zápatí formuláře jsou sečteny hodnoty ve sloupcích Hodin a Částka. Nejsou ohraničeny. Formulář Dohody 1 zkopírujte pod názvem Dohody 2 a upravte jej. Formulář Likvidace 1 zkopírujte pod názvem Likvidace 2 a vložte je jako podformuláře do formuláře Osoby dle obr. 12-3. OBR. 12-3: FORMULÁŘ OSOBY
12 Příloha B: Příklady k procvičení
5.7 Graf
239
Upřesnění formulářů: V záhlaví formulářů je odebráno uspořádání a odstraněn obrázek před textem. Písmo je zmenšeno na velikost 11 tučně. Pozadí záhlaví formuláře je bílé. Formulář Likvidace 2 je podformulářem formuláře Dohody 2. Je uveden v pravé části formuláře Dohody 2. Ve formuláři Osoby jsou optimalizovány šířky sloupců a nastavena žádná výplň ovládacího prvku pro všechny sloupce. Pro podformuláře jsou odstraněny popisky. V podformuláři Dohody 2 je odstraněno pole Osoba. V podformuláři Likvidace 2 je odstraněno pole Číslo dohody. 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. 12-4). OBR. 12-4: FORMULÁŘ KATEDRY
Upřesnění formuláře: Popisek pole Katedra_v je upraven na Katedra – název. V sloupcovém skládaném grafu není uveden nadpis grafu. Legenda je v grafu napravo. Velikost písma popisků osy x, y, legendy a popisků dat je 18. Ve sloupcích jsou zobrazeny hodnoty dohodnutých hodin. Graf má šířku 30 cm, výšku 12 cm. V navigačním podokně zařaďte vytvořené formuláře do skupiny 5 Formuláře.
12.6 Ke kapitole 6 Sestavy 6 Sestavy 6.1 – 6.7
Připravte sestavu Měsíční likvidace dle obr. 12-5. Sestava vypisuje data o likvidacích dle nákladových středisek za měsíc zadaný před spuštěním sestavy. Východiskem sestavy je parametrický dotaz Měsíční likvidace: Čerpá z tabulek Osoby, Dohody, Likvidace, Katedry. Obsahuje mj. » pole Měsíc číselně s výrazem Month([Datum]) a s kritériem [Měsíc výplaty číselně:] » pole Měsíc slovně s výrazem Format([Datum];"m/yyyy"). Upřesnění sestavy: Pole nemají okraj. Pole v záhlaví mají nastaven styl mřížky průhledná čára. Popisky polí obsahujících pomlčku (Popis_práce) jsou upraveny. Likvidace jsou seskupeny dle nákladových středisek. Za jednotlivými středisky jsou součty částek.
12 Příloha B: Příklady k procvičení
240
V záhlaví sestavy je odebráno rozložení a ponechán pouze nadpis Měsíční likvidace. Záhlaví sestavy má bílé pozadí. Do záhlaví je doplněno pole Měsíc slovně a před něj doplněn formou výrazu text Měsíc výplaty. V podrobnostech, záhlaví i zápatí Nákladového střediska je potlačena alternativní barva pozadí, je bílá. OBR. 12-5: SESTAVA MĚSÍČNÍ LIKVIDACE
6.8 Sestavy s podíly
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. 12-6. Východiskem sestavy je souhrnný dotaz Podíly: Čerpá z tabulek Dohody, Likvidace, Katedry. Obsahuje mj. pole Měsíc výplaty s výrazem Format([Datum];"m/yyyy"). Upřesnění sestavy: Pole nemají okraj. Pole v záhlaví mají nastavený styl mřížky průhledná čára. Popisky polí obsahujících pomlčku (Nákladové_středisko, Katedra_v) jsou upraveny. Souhrny výplat jsou seskupeny dle nákladových středisek. V záhlaví sestavy je odebráno rozložení a ponechán pouze nadpis Podíly. Záhlaví sestavy má bílé pozadí. Za jednotlivými středisky jsou součty částek. Do záhlaví je doplněno pole Měsíc výplaty. V podrobnostech, záhlaví i zápatí Nákladového střediska je potlačena alternativní barva pozadí, je bílá. Součtová pole jsou nazvána Částka_měsíc, Částka_rok. Podíly jsou uváděny v procentech.
12 Příloha B: Příklady k procvičení
241 OBR. 12-6: SESTAVA PODÍLY
...
6.9 Štítky
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é zdrojové dotazy a sestavy do skupiny 6 Sestavy.
12.7 Ke kapitole 7 Makra 7 Makra
Vytvořte tabulku Katedry_F, v níž budou zkratky kateder KCR a KMO. Připravte nekonečný formulář Katedry_F, v němž bude tlačítko, které zobrazí dohody kateder z tabulky Katedry_F. K zobrazení dohod použijte nekonečný formulář Dohody_F. V případě, že jsou vybrány katedry, které neuzavřely dohody, zobrazte chybové hlášení (FMV, DEK2, IUP) Vybrané katedry neuzavřely žádnou dohodu. Připravte modifikaci formuláře Osoby pod názvem Osoby s podmínkou. Ve formuláři se zobrazuje pole Titul2 jen, když je vyplněno pole Titul1.229 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 DPP vypisujte příjmení zaměstnance modře, v případě druhu DPČ červeně. Nastavte výchozí zobrazení sestavy v náhledu tisku. Připravte modifikaci formuláře Osoby s podmínkou pod názvem Osoby se sestavou. Formulář obsahuje tlačítko Sestava. Kliknutím do tlačítka se spustí makro Osoby se sestavou, které zobrazí sestavu Měsíční likvidace barevně pro zaměstnance, který je zobrazen ve formuláři. (Nezapomeňte doplnit do zdrojového dotazu sestavy pole Osoba.) Připravte makro Autoexec, které otevře formulář Menu. Ve formuláři jsou tlačítka, při kliknutí do tlačítek se otevřou formuláře Osoby, Osoby se sestavou, Osoby s podmínkou a sestavy v náhledu před tiskem 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. 229
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.
12 Příloha B: Příklady k procvičení
242
12.8 Ke kapitole 8 Moduly 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ů: dvojitým kliknutím na pole Popis_práce vložil text posudek na diplomovou práci, dvojitým kliknutím na pole Od vložilo aktuální datum. Zajistěte, aby se v modifikaci formuláře Likvidace 1 nazvané Likvidace s vkládáním částky: dvojitým kliknutí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 účet 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 kliknutí do tlačítka Odstupy zobrazte ve sloupci Odstup odstupy dohod. Nápověda: Formulář Odstupy bude zobrazovat tabulku Odstupy, kterou vytvoříte z tabulky Dohody dotazem Odstupy – tvorba. Záporné hodnoty značí překrývání dohod, které je možné. V navigačním podokně zařaďte vytvořené objekty do skupiny 8 Moduly.
12.9 Ke kapitole 9 Externí data 9 Externí data
Připravte ve Wordu formulář pro vkládání dohod dle obr. 12-7. OBR. 12-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 DPP a DPČ. V poli Osoba zajistěte vložení velkých první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. Formou exportu dotazu Mzdy připravte do textového souboru export pro mzdové oddělení za měsíc březen 2026. V textovém souboru s položkami oddělenými středníky uveďte účet zaměstnance a částku k likvidaci v řazení dle účtu. 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.
12.10 Ke kapitole 10 Databázové nástroje 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: Osoby, Osoby se sestavou, Osoby 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.
13 Příloha C: Seznam
243
13 Příloha C: Seznam operátorů, symbolů a funkcí 13.1 Operátory
Or: nebo (dotaz 42h) And: a zároveň (dotaz 42n) Not: ne (dotaz 42r) &: spojení textů (dotaz 43b) Like: jako (odpovídající uvedenému vzorku, dotaz 42n, 42o) Null: obsahující prázdnou hodnotu (dotaz 42s) Between: filtrování rozsahu hodnot mezi počátkem a koncem včetně hraničních hodnot (dotaz 42t)
13.2 zástupné symboly *: libovolný počet znaků, také žádný znak (dotaz 42o) ?: právě jeden znak (dotaz 42q)
13.3 Funkce 13.3.1 Textové funkce Len(řetězec) Vrátí hodnotu typu číslo obsahující počet znaků v řetězci (dotaz 43b, kap. 8.3). řetězec: Libovolný platný Řetězcový výraz. Pokud řetězec obsahuje hodnotu Null, bude vrácena hodnota Null. Left( řetězec, délka) Vrátí hodnotu typu řetězec obsahující určený počet znaků z levé strany řetězce (dotaz 43b). řetězec: Povinný argument. Řetězcový výraz, ze kterého se vrátí první znaky zleva. Pokud řetězec obsahuje hodnotu Null, vrátí se hodnota Null. délka: Povinný argument. Hodnota typu dlouhé číslo. Číselný výraz určující, kolik znaků se má vrátit. Pokud má hodnotu 0, vrátí se řetězec nulové délky (""). Pokud je hodnota stejná nebo větší než počet znaků v argumentu řetězec, funkce vrátí celý řetězec. Right(řetězec, délka) Vrací řetězec obsahující určitý počet znaků z pravé strany řetězce (dotaz 43b). řetězec: Povinný argument. Řetězcový výraz, ze kterého jsou vráceny znaky z pravé strany. Pokud řetězec obsahuje hodnotu Null, bude vrácena hodnota Null. délka: Povinný argument. Hodnota typu dlouhé číslo. Číselný výraz určující, kolik znaků se má vrátit. Pokud má tento argument hodnotu 0, bude vrácen řetězec nulové délky. Je-li tato hodnota větší nebo rovna počtu znaků v řetězci, vrátí funkce celý řetězec. Mid(řetězec, začátek [, délka]) Vrátí hodnotu řetězec, která obsahuje určený počet znaků z řetězce (kap. 8.3). řetězec: Povinný argument. Řetězcový výraz, z něhož budou vráceny znaky. Pokud argument řetězec obsahuje hodnotu Null, bude vrácena hodnota Null. začátek: Povinný argument. Hodnota typu dlouhé číslo. Pozice znaku v řetězci, kterým začíná požadovaná část. Pokud je hodnota argumentu začátek větší než počet znaků v řetězci, vrátí funkce Mid řetězec s nulovou délkou (""). délka: Nepovinný argument. Hodnota typu dlouhé číslo. Počet znaků, které mají být vráceny. Pokud je tento argument vynechán nebo pokud text obsahuje méně znaků, než určuje hodnota délka (včetně znaku na pozici začátek), budou vráceny všechny znaky od pozice začátek do konce řetězce. Replace (výraz, najít, nahradit [, začátek ] [, počet ]) Vrátí řetězec, ve kterém byl určitý dílčí řetězec nahrazen jiným dílčím řetězcem tolikrát, kolikrát bylo zadáno (kap. 8.3).
13 Příloha C: Seznam
244
výraz: Povinný argument. Řetězcový výraz obsahující dílčí řetězec, který má být nahrazen. najít: Povinný argument. Dílčí řetězec, který má být nalezen. nahradit: Povinný argument. Nový dílčí řetězec, který má nahradit původní. začátek: Nepovinný argument. Pozice ve výrazu, u které má začít hledání dílčího řetězce. Pokud tento argument neuvedete, předpokládá se automaticky hodnota 1. počet: Nepovinný argument. Požadovaný počet nahrazení dílčího řetězce. Výchozí hodnota je -1, což znamená nahrazení všech výskytů. UCase(řetězec) Vrátí hodnotu typu řetězec, která obsahuje zadaný řetězec po převodu na velká písmena (kap. 8.3). řetězec: Povinný argument. Řetězec je libovolný platný Řetězcový výraz. Pokud argument řetězec obsahuje hodnotu Null, bude vrácena hodnota Null. Trim(řetězec) Vrátí řetězec obsahující kopii zadaného řetězce bez úvodních i koncových mezer (kap. 6.2). řetězec: Povinný argument. Řetězec je libovolný platný řetězcový výraz. Pokud argument řetězec obsahuje hodnotu Null, bude vrácena hodnota Null.
13.3.2 Funkce data a času Month(datum) Vrátí hodnotu celé číslo obsahující celé číslo od 1 do 12 včetně, které představuje kalendářní měsíc (dotaz 43c). datum: Povinný argument. Datum je hodnota typu datum, číslo, text nebo libovolná kombinace těchto hodnot, jež může vyjadřovat datum. Pokud argument datum obsahuje hodnotu Null, bude vrácena hodnota Null. DateDiff(interval, datum1, datum2 [, první_den_v_týdnu] [, první_týden_v_roce] ) Vrátí hodnotu typu číslo určující počet časových intervalů mezi dvěma zadanými daty (dotaz 43d). interval: Povinný argument. Řetězcový výraz představující časový interval sloužící k výpočtu rozdílu mezi daty určenými argumenty datum1 a datum2: » yyyy: Rok » q: Čtvrtletí » m: Měsíc » (y: Den v roce) » d: Den » (w: Den v týdnu) » ww: Týden » h: Hodina » n: Minuta » s: Sekunda datum1 , datum2: Povinné argumenty. Hodnoty typu datum. Dvě data, která chceme použít při výpočtu. první_den_v_týdnu: Nepovinný argument. Konstanta, která určuje první den týdne. Pokud není zadána, předpokládá se, že je to neděle. první_týden_v_roce: Nepovinný argument. Konstanta určující první týden v roce. Pokud není zadána, předpokládá se, že je to týden, do kterého spadá datum 1. ledna. DateAdd(interval, počet, datum) Vrátí hodnotu typu datum a čas obsahující datum, ke kterému je přidán zadaný časový interval (dotaz 43d). interval: Povinný argument. Řetězcový výraz představující časový interval, který chceme přidat (podrobněji viz funkce DateDiff). počet: Povinný argument. Číselný výraz představující počet intervalů, které chceme přidat. Může to být kladné číslo (chceme-li získat datum v budoucnosti) nebo záporné číslo (chceme-li získat datum v minulosti). datum: Povinný argument. Datum, ke kterému je interval přidáván.
13 Příloha C: Seznam
245
DatePart(interval, datum [, první_den_v_týdnu] [, první_týden_v_roce] ) Vrátí hodnotu typu celé číslo obsahující zadanou část daného data (dotaz 43e). interval: Povinný argument. Řetězcový výraz představující časový interval, který chceme vrátit. datum: Povinný argument. Hodnota typu datum a čas, kterou chceme vyhodnotit. první_den_v_týdnu: Nepovinný argument. Konstanta, která určuje první den týdne. Pokud není zadána, předpokládá se, že je to neděle. první_týden_v_roce: Nepovinný argument. Konstanta určující první týden v roce. Pokud není zadána, předpokládá se, že je to týden, do kterého spadá datum 1. ledna.
13.3.3 Další funkce Switch(výraz-1, hodnota-1 [, výraz-2, hodnota-2 ] … [, výraz-n, hodnota-n ] ) Vyhodnotí seznam Výraz a vrátí hodnotu nebo výraz přidružený k prvnímu výrazu v seznamu, který má hodnotu True (dotaz 43a). výraz: Povinný argument. Podmínka, kterou chceme vyhodnotit. hodnota: Povinný argument. Hodnota nebo výraz, které mají být vráceny v případě, že odpovídající výraz má hodnotu True. HyperlinkPart(hypertextový-odkaz, část) Vrátí jako text stanovenou část hypertextového odkazu (dotaz 43b). hypertextový-odkaz: Pole typu hypertextový odkaz. část: Číslo z intervalu 1 – 4. Určuje, která část hypertextového odkazu bude vrácena. Round(výraz [, počet_desetinných_míst ] ) Vrátí číslo zaokrouhlené na určený počet desetinných míst (dotaz 47f). výraz: Povinný argument. Číselný výraz pro zaokrouhlení. počet_desetinných_míst: Nepovinný argument. Číslo označující, na kolik desetinných míst napravo od desetinné čárky se má číslo zaokrouhlit. Pokud tento argument neuvedeme, zaokrouhlí se číslo na nejbližší celé číslo. CStr (výraz) Vrátí argument jako text (kap. 5.2). výraz: Výraz libovolného typu (např. číslo). Now Vrátí hodnotu typu datum a čas určující aktuální datum a čas podle systémového data a času v počítači (kap. 6.6). bez argumentů Val(řetězec) Vrátí čísla obsažená v řetězci jako číselnou hodnotu příslušného typu (dotaz 45f). řetězec: Povinný. Libovolný platný řetězec. InStr ([start ] řetězec_1, řetězec_2) Vrátí hodnotu typu dlouhé číslo určující pozici prvního výskytu jednoho řetězce v jiném řetězci (kap. 8.5). zahájení: Nepovinný argument. Číselný výraz určující pozici, od které má hledání začít. Jestliže tento argument vynecháme, začne hledání na pozici prvního znaku. Pokud má argument start hodnotu Null, dojde k chybě. řetězec1: Povinný argument. Řetězcový výraz, v němž hledáme. řetězec2: Povinný argument. Hledaný řetězcový výraz. MsgBox(výzva [, tlačítka ] [, název ]) Zobrazí zprávu v dialogovém okně, počká, až uživatel klepne na některé z tlačítek, a vrátí celé číslo určující, na které tlačítko uživatel kliknul (kap. 8.7). Výzva: Povinný argument. Řetězcový výraz zobrazený jako zpráva v dialogovém okně. Maximální délka výzvy je přibližně 1 024 znaků podle šířky použitých znaků. Pokud se výzva skládá z více než jednoho řádku, můžeme jednotlivé řádky oddělit znakem návratu na začátek řádku (znak(13)), znakem konce řádku (znak(10)) nebo kombinací znaku návratu na začátek řádku a znaku konce řádku (znak(13) & znak(10)) vloženými mezi jednotlivé řádky.
13 Příloha C: Seznam
246
tlačítka: Nepovinný argument. Číselný výraz, který je souhrnem hodnot určujících čísla a typy tlačítek, která se mají zobrazit, požadovaný styl ikon, identitu výchozího tlačítka a modalitu okna zprávy. Pokud je tento argument vynechán, bude mít argument tlačítka výchozí hodnotu 0: » vbOKOnly (0): Zobrazí pouze tlačítko OK. » vbOKCancel (1): Zobrazí tlačítka OK a Storno. » vbAbortRetryIgnore (2): Zobrazí tlačítka Ukončit, Opakovat a Přeskočit. » vbYesNoCancel (3): Zobrazí tlačítka Ano, Ne a Storno. » vbYesNo (4): Zobrazí tlačítka Ano a Ne. » vbRetryCancel (5): Zobrazí tlačítka Opakovat a Storno. » vbCritical (16): Zobrazí ikonu Kritická zpráva. » vbQuestion (32): Zobrazí ikonu Upozorňovací dotaz. » vbExclamation (48): Zobrazí ikonu Upozornění. » vbInformation (64): Zobrazí ikonu Informační zpráva. » vbDefaultButton1 (0): Výchozí je první tlačítko. » vbDefaultButton2 (256): Výchozí je druhé tlačítko. » vbDefaultButton3 (512): Výchozí je třetí tlačítko. » vbDefaultButton4 (768): Výchozí je čtvrté tlačítko. » vbApplicationModal (0): Modalita aplikace. Uživatel musí nejprve odpovědět na okno zprávy, až poté může pokračovat v práci s aktuálně otevřenou aplikací. » vbSystemModal (4 096): Modalita systému. Všechny aplikace jsou pozastaveny, dokud uživatel neodpoví na okno zprávy. » vbMsgBoxHelpButton (16 384): Přidá do okna zprávy tlačítko nápovědy. » vbMsgBoxSetForeground (65 536): Určuje okno zprávy jako okno, které je v popředí. » vbMsgBoxRight (524 288): Text je zarovnán doprava. » vbMsgBoxRtlReading (1 048 576): Určuje, že by se text měl v hebrejských a arabských systémech zobrazovat zprava doleva. První skupina hodnot (0–5) popisuje čísla a typy tlačítek zobrazených v dialogovém okně. Druhá skupina (16, 32, 48, 64) popisuje styl ikon. Třetí skupina (0, 256, 512) určuje, které tlačítko je výchozí, a čtvrtá skupina (0, 4096) určuje modalitu okna zprávy. Při přidávání čísel pro vytvoření konečné hodnoty argumentu tlačítka používáme pouze jedno číslo z každé skupiny. název: Nepovinný argument. Řetězcový výraz zobrazený v záhlaví dialogového okna. Pokud název vynecháme, zobrazí se v záhlaví název aplikace. výsledná hodnota: » vbOK (1): OK » vbCancel (2): Storno » vbAbort (3): Ukončit » vbRetry (4): Opakovat » vbIgnore (5): Přeskočit » vbYes (6): Ano » vbNo (7): Ne
Rejstřík
247
Rejstřík >=, 73 Access Access, 196 Access Excel, 193 Access OneNote, 202 Access Outlook, 202 Access PowerPoint, 194 Access Publisher, 202 Access textový soubor, 192 Access Visio, 197 Access Word, 191 Access 2016, 7 Access v Office Pro Plus, 7 akce Krok, 156 NajítDalšíZáznam, 153 NajítZáznam, 153 NastavitVlastnost, 158 OknoSeZprávou, 154 OtevřítFormulář, 152 OtevřítSestavu, 156 PřejítNaOvládacíPrvek, 153 Skupina, 153 ZavřítOkno, 155 ZrušitUdálost, 156 ZvukovýSignál, 153 akční dotazy, 90 aktualizační dotaz, 91 aktuální datum a čas, 133 analýza tabulky, 212 výkonu, 214 argumenty, 151 automatická komprimace, 211 automatická velikost, 102 automatické opravy názvů polí, 66 automatické otevření formuláře, 124 automatické spuštění formuláře, 220 barvy ve formuláři, 106 between, 74 blokové rozložení sestavy, 140 cíl odkazů, 204 data z Accessu jako zdroj dat hromadné korespondence Wordu, 191 databáze, 7 databázové modely, 7 databázové nástroje, 211 databázový systém, 7 definice pole, 43 deklarace, 163 desktopové databáze, 14 dialogové okno se zprávou, 181 Do – Loop, 177
dokumentace, 214 druhy dotazů, 67 formulářů, 95 sestav, 125 duplikace hodnoty z předchozí věty, 27 dynamická sada a snímek, 68 editace funkce, 165 Excel Access, 193 export části datové sady, 191 datové sady, 191 sestavy, 191 tabulky z Accessu do SharePointu, 43 filtr, 56 For – Next, 167 formát, 47 ACCDE, 219 ACCDR, 220 písma, 129 zobrazení datového listu, 59 formulace dotazu, 67 formulář s nabídkou objektů, 220 s navigací, 124 s odkazy na objekty, 124 formulářové zobrazení, 100 globální místní nabídka, 216 graf, 119 hlavičky sloupců, 53 hledání, 63 hyperlinkpart, 75, 128 hypertextový odkaz, 58 If – Then – Else, 168 ikona tabulky, 208 import dat z Excelu, 28 tabulky, 207 indexování, 50 interní webový prohlížeč, 104 jazyk SQL, 93 karta, 122 Doplňky ve formuláři, 217 Office, 222 kde, 84 komentář a seskupení, 151 komprese kódu, 51 komprimace databáze, 211 kontakty do a z Outlooku, 61 kontingenční diagram, 201 kontrola pravopisu, 60 kopírování formátu, 103 krokování, 156
Rejstřík křížový dotaz, 88 len, 103 makro, 151 v sestavě, 160 ve formuláři, 158 mapa ve formuláři, 110 místní nabídka formuláře, 216 modifikace fungování kláves, 65 seznamů, 104 moduly, 163 month, 76 možnosti aktuální databáze, 221 datového listu, 221 kontroly pravopisu a mluvnice, 221 návrhářů objektů, 221 obecné, 221 upřesnění, 221 zmenšení, 130 náhled, 130 nahrazování, 64 nápověda ve formuláři, 185 navigační podokno, 20 návrh databáze, 23 návrhové zobrazení, 21, 98 název písma, 143 nekonečný formulář, 111 nekonzistentnost dat, 30 nesvázané odkazy, 204 normalizace, 23, 35 not, 74 nová relace, 34 nové hodnoty, 47 null, 74 nulová délka, 50 nutnost zadat, 50 objekt OLE, 58 objektová funkce CurrentDb, 176 objekty Accessu, 7 objekty, metody, vlastnosti, 176 obrysové rozložení sestavy, 146 odebrání rozložení, 101 odsazované rozložení sestavy, 142 odstranění stránky, 123 okno webové aplikace, 207 omezení počtu vět, 85 omezit na seznam, 54 opakované spojení tabulky, 33 operace se záznamy, 60 oprava databáze, 211 or, 71 organizační diagram, 199 orientace, 56 Outlook Access, 202
248 ověřovací pravidlo, 50 tabulky, 56 ověřovací text, 50, 56 ovládací prvky, 52, 95, 126 označování více objektů, 102 panel nástrojů Rychlý přístup, 19 parametrický dotaz, 86 pás karet, 19 počet desetinných míst, 47 řádků seznamu, 53 sloupců, 53 stránek a počet vět, 133 podformulář, 115 podíly v sestavě, 148 podmíněné formátování, 112 podmínka akce, 151, 154 referenční integrity, 27 Where, 157 podokno objektu, 21 podsestava, 138 pole se seznamem, 101 ve formuláři, 98 popis tabulky, 55 pořadí prvků ve formuláři, 105 sloupců, 89 stránek, 123 pouze přidat, 52 procedury, 163 Project Access, 201 propojení, 197 tabulek, 36 průběžný součet, 148 průvodce dotazem, 142 importem textu, 188 sestavou, 140 vyhledáváním, 55 přechody z webové aplikace, 210 překreslení formuláře, 178 přesnost a měřítko, 47 přesun do databáze Accessu, 215 do SharePointu, 215 přidání obsahu tabulky do jiné tabulky, 190 pole do návrhové mřížky, 68 tabulky do konstrukce dotazu, 67 přidávací dotaz, 93 příklady použití VBA, 163 připojení k existujícímu seznamu SharePointu, 43
Rejstřík přiřazovací příkaz, 165 referenční integrita, 25 relace dotazu a tabulky, 33 tabulky ke stejné tabulce, 32 rozdělení formuláře, 110 rozevírací pole, 186 rozložení ovládacích prvků, 99 v relacích, 34 řazení, 56, 136 řazení a filtrování, 62 řazení výsledků dotazu, 69 Select – Case, 182 seskupení dle prvního znaku, 142 seskupování a řazení, 147 seskupování ovládacích prvků, 102 sestava relací, 211 sestavy, 210 seznam vlastností, 220 schránka, 59 sjednocovací dotaz, 94 skrytí duplikátů, 141 skupiny maker, 151, 162 příkazů, 19 směry komunikace, 183 součty za sekce a sestavu, 147 souhrn ve formuláři, 114 souhrnné dotazy, 83 souhrny, 60 specifikace importu, 189 spojení tabulky do sebe, 81 spouštění dialogového okna, 20 maker, 151 správce propojených tabulek, 217 přepínacích panelů, 217 spuštění Accessu, 13 stavový řádek, 21 struktura formuláře, 95 sestavy, 125 sum, 83 svázané odkazy, 206 switch, 75 šablona sestavy, 133 šifrování databáze, 219 šíření aplikací připravených v Accessu, 8 šířka seznamu, 53 sloupce, 53, 62 štítky, 148 textový soubor Access, 193
249 tisk formuláře, 188 na tiskárně, 131 relací, 34 vět ve sloupcích, 136 titulek, 49 výrazu, 75 titulkový pruh, 19 tlačítko s obrázkem, 172 tvorby formuláře, 96 tvorby sestavy, 126 tvorba tabulky, 39 návrhem tabulky, 40 v rámci součástí aplikace, 39 vyplněním prázdné tabulky, 40 tvorba webové aplikace, 207 tvůrce výrazů, 76 typy akcí, 151 relací, 24 spojení, 24, 28 výsledku, 45 zdroje řádků, 52 událostní vlastnosti, 159 ukládání dat z formuláře, 188 do SharePointu, 207 maker, 151 relací, 25 ukotvení sloupce, 61 uložení dotazu, 69 modulu, 165 sestavy, 132 úprava a uložení zdrojového dotazu, 109 úpravy formuláře, 208 ovládacích prvků, 99 relace, 34 seznamu hodnot, 54 tabulky pro seznam, 54 uzamčení pole, 100 val, 84 vázaný sloupec, 53 vazba odkazů, 204 velikost číselného pole, 46 formuláře, 107 podrobností sestavy, 129 textového pole, 45 vícenásobná relace, 32 Visio Access, 201 Visual Basic for Applications, 163 vlastnost
Rejstřík Při události Current, 159 Při ztrátě fokusu, 159 vlastnosti, 98 dotazu, 69 tabulky, 55 textového pole, 185 vložení obrázku, 141 vnořený datový list, 26, 56, 61 vstupní maska, 48 výběr data, 51 výchozí hodnota, 50 v nové větě, 59 výchozí nastavení prvku, 103, 132 výchozí zobrazení, 56, 139 výplň ovládacího prvku, 136 výpočet ve větě, 83, 172 výraz, 45 v sestavě, 128 ve formuláři, 103 výsledky dotazu, 68 výška řádku, 61 vytvářecí dotaz, 90 vytvoření databáze, 15 dotazu, 17 seznamu v SharePointu, 41 tabulky, 16 vytvoření a přejmenování stránky, 123
250 význam formulářů, 95 sestav, 125 vztahy, 211 webové aplikace, 15 webový formulář Datový list a export, 210 Seznam, 210 With, 178 Word Access, 183 zámek dokumentu, 187 zarovnání textu, 51 zástupný symbol *, 73 zástupný symbol ?, 74 zaškrtávací políčko, 186 závislosti objektů, 212 zdroj řádků, 52 změny návrhu tabulky v datovém listu, 64 zobrazené hodnoty, 55 zobrazení formuláře, 95 rozložení, 100 sestavy, 125 tabulky, 39 tabulky v relacích, 34 výsledků, 67
Rejstřík
252