Microsoft Access 2007

Rozměr: px
Začít zobrazení ze stránky:

Download "Microsoft Access 2007"

Transkript

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

2 Vysoká škola ekonomická v Praze, Nakladatelství Oeconomica Praha 2009 ISBN

3 Obsah 3 Obsah Úvod (Východiska skript. Okruh čtenářů. Rozsah skript. Uspořádání skript. Jak číst skripta. Terminologie. Úprava skript. Ilustrativní příklady. E-learning. Záznamy výuky. Poděkování. Připomínky ke skriptům. Předměty FMV zaměřené na aplikaci PC.) 7 1 Databáze Databázový systém (Databáze. Databázový systém. Databázové modely. Access Access v MS Office. Objekty Accessu. Šíření aplikací připravených v Accessu.) Firma Encián (Personal. Oddělení. Podniky. Stadia. NACE. Oddíly_sekce. Sekce. Faktury. Licence. Programy. Cesty. Výjezdy. Místnosti. Majetek_typy. Majetek_umístění.) Seznámení s aplikací Access (Spuštění Accessu. Místní šablony. Šablony Online. Vytvoření databáze. První tabulka. Vytvoření tabulky. Vytvoření dotazu. Tlačítko Office. Panel nástrojů Rychlý přístup. Titulkový pruh. Pás karet. Skupiny příkazů. Spouštění dialogového okna. Navigační podokno. Podokno objektu. Stavový řádek.) Návrhové zobrazení tabulky (Návrhové zobrazení.) 21 2 Relace Typy a význam vztahů (Návrh databáze. Normalizace. Typy relací. Typy spojení. Referenční integrita.) Základní relace v databázi Encián (Ukládání relací. Vnořený datový list. Duplikace hodnoty z předchozí věty. Podmínky referenční integrity. Typy spojení.) Import dat z Excelu do databáze Encián (Import dat z Excelu. Skupiny tabulek.) Další relace v databázi Encián (Nekonzistentnost dat. Vícenásobná relace. Relace tabulky ke stejné tabulce. Relace dotazu a tabulky.) Další možnosti zobrazení vztahů (Opakované spojení tabulky. Skrytí tabulky v relacích. Zobrazení tabulky v relacích. Rozložení v relacích. Úprava relace. Nová relace. Tisk relací.) Databáze školení MIN (Normalizace. Propojení tabulek.) Databáze Bankovní účet BAN 36 3 Tabulky Způsoby tvorby a zobrazení tabulky (Tvorba tabulky. Zobrazení tabulky.) Tvorba tabulky (Tvorba tabulky ze šablony. Tvorba tabulky vyplněním prázdné tabulky. Tvorba tabulky návrhem tabulky. Seznam serveru SharePoint.) Návrhové zobrazení (Definice pole. Velikost textového pole. Velikost číselného pole. Nové hodnoty. Formát. Přesnost a měřítko. Počet desetinných míst. Vstupní maska. Titulek. Výchozí hodnota. Ověřovací pravidlo. Ověřovací text. Nutnost zadat. Nulová délka. Indexování. Komprese kódu. Inteligentní značky. Zarovnání textu. Výběr data. Pouze přidat. Formát textu. Ovládací prvek. Typ zdroje řádků. Zdroj řádků. Vázaný sloupec. Počet sloupců. Hlavičky sloupců. Šířka seznamu. Šířky sloupců. Počet řádků seznamu. Omezit na seznam. Úpravy seznamu hodnot. Úpravy tabulky pro seznam. Pole s více hodnotami. Zobrazené hodnoty. Průvodce vyhledáváním. Vlastnosti tabulky. Popis tabulky. Výchozí zobrazení. Ověřovací pravidlo tabulky. Ověřovací text. Filtr. Řazení. Orientace. Vnořený datový list. Zobrazení SharePointu.) 42

4 Obsah Zobrazení datového listu (Hypertextový odkaz. Objekt OLE. Výchozí hodnoty v nové větě. Schránka. Formát zobrazení datového listu. RTF formátování. Operace se záznamy. Souhrny. Kontrola pravopisu. Kontakty do a z Outlooku. Výška řádku. Vnořený datový list. Skrytí sloupce. Zmrazení sloupce. Šířka sloupce. Řazení a filtrování. Hledání. Nahrazování. Změny návrhu tabulky v datovém listu. Modifikace fungování kláves. Modifikace hledání. Automatické opravy názvů polí.) Kontingenční tabulka (Kontingenční tabulka. Automatický přepočet. Skrýt podrobnosti. Titulky.) Kontingenční graf (Kontingenční graf.) Další úpravy databáze Encian 67 4 Dotazy Druhy dotazů (Druhy dotazů. Formulace dotazu. Zobrazení výsledků.) Výběrové dotazy z jedné tabulky (Přidání tabulky do konstrukce dotazu. Přidání pole do návrhové mřížky. Výsledky dotazu. Dynamická sada a snímek. Uložení dotazu. Řazení výsledků dotazu. Vlastnosti dotazu. Or. >=. And. Zástupný symbol *. Zástupný symbol?. Not. Null. Between. Month. Tvůrce výrazu. Titulek výrazu. Left. &. Len. HyperLinkPart. Switch.) Výběrové dotazy z více tabulek (Spojení tabulky do sebe. Navazující dotazy.) Výpočty (Výpočty ve větě. Souhrnné dotazy. Sum. Kde. Val. Min. Max. Omezení počtu vět.) Parametrické dotazy (Parametrický dotaz.) Křížové dotazy (Křížový dotaz. Pořadí sloupců. Formát výsledného pole.) Akční dotazy (Akční dotazy. Typy dotazů. Vytvářecí dotaz. Kontrola dotazu a spuštění. Aktualizační dotaz. Odstraňovací dotaz. Přidávací dotaz.) Jazyk SQL (Jazyk SQL. Sjednocovací dotaz. ) Kontingenční tabulka a graf z výsledku dotazu (Kontingenční tabulka a graf z dotazu. Kontingenční tabulka v procentech. Seskupení řádků a sloupců kontingenční tabulky. Řazení a filtrování v kontingenční tabulce. Automatický přepočet. Vypočtené celkové hodnoty a pole.) 94 5 Formuláře Druhy formulářů (Význam formulářů. Druhy formulářů. Zobrazení formuláře. Struktura formuláře. Ovládací prvky. Tlačítka tvorby formuláře.) Samostatný formulář (Návrhové zobrazení. Vlastnosti. Pole ve formuláři. Úpravy ovládacích prvků. Rozložení ovládacích prvků. Formulářové zobrazení. Zobrazení rozložení. Uzamčení pole. Pole se seznamem. Odebrání rozložení. Automatická velikost. Seskupování ovládacích prvků. Označování více objektů. Výraz ve formuláři. Kopírování formátu. Výchozí nastavení prvku. Funkce Len. Modifikace seznamu. Pořadí prvků ve formuláři. Barvy ve formuláři. Automatický formát. Velikost formuláře.) Další samostatný formulář (Úprava uložení podkladového dotazu. Rozdělení formuláře.) Nekonečný formulář (Nekonečný formulář. Funkce IIf.) Formulář se souhrny (Souhrn ve formuláři.) Podformulář (Podformulář.) Graf (Graf.) 123

5 Obsah Formulář s kartami (Karta. Vytvoření a přejmenování stránky. Odstranění stránky. Pořadí stránek.) Sestavy Druhy sestav (Význam sestav. Druhy sestav. Zobrazení sestavy. Struktura sestavy. Ovládací prvky. Tlačítka tvorby sestavy.) Sestava s výrazy (Výraz v sestavě. Funkce HyperLinkPart. Formát písma. Velikost těla sestavy. Možnost zmenšení. Náhled. Snapshot Viewer. Tisk na tiskárně. Uložení sestavy.) Sestava dle upravené šablony (Výchozí nastavení prvku. Šablona sestavy. Aktuální datum a čas. Počet stránek a počet vět. Automatická velikost.) Sestava o více sloupcích (Výplň ovládacího prvku. Možnost zvětšení a zmenšení. Řazení. Tisk vět ve sloupcích.) Hlavní sestava a podsestavy (Podsestava.) Sestava bez duplikátů (Průvodce sestavou. Blokové rozložení sestavy. Skrytí duplikátů. Vložení obrázku.) Sestava nad více dotazy (Průvodce dotazem. Seskupení dle prvního znaku. Odsazované rozložení sestavy. Název písma.) Sestava s podíly (Obrysové rozložení sestavy. Seskupování a řazení. Součty za sekce a sestavu. Mřížka v rozložení. Podíly v sestavě. Průběžný součet.) Štítky (Štítky. Hromadná korespondence.) Makra Druhy a struktura maker (Makro. Akce dle zabezpečení. Skupiny maker. Podmínka akce. Argumenty. Spouštění maker. Ukládání maker.) Makro spustitelné samostatně (Akce Otevřít formulář. Akce Najít záznam. Akce Přejít na ovládací prvek. Akce Najít další. Akce Zvukový signál. Podmínka akce. Opakování podmínky. Akce Okno se zprávou. Akce Zavřít. Akce Zrušit událost. Akce Otevřít sestavu. Krokování. Akce Krok.) Makro filtrující sestavu (Podmínka Where.) Makro ve formuláři (Makro ve formuláři. Akce Nastavit vlastnost. Událostní vlastnosti. Vlastnost Při události Current. Vlastnost Při ztrátě fokusu.) Makro v sestavě (Makro v sestavě.) Skupina maker (Skupina maker.) Moduly Druhy modulů (Visual Basic for Applications. Moduly. Procedury. Deklarace. Příklady použití VBA.) Funkce výpisu celého jména (Editace funkce. Přiřazovací příkaz. Uložení modulu.) Funkce konverze textu do textu bez háčků a čárek (For Next. If Then Else.) Funkce kontroly rodného čísla Funkce kontroly čísla účtu Lokální podprogram výpočtu ve větě (Tlačítko s obrázkem. Výpočet ve větě.) Lokální podprogram výpočtu mezi větami (Objekty, metody, vlastnosti. Objektová funkce CurrentDb. Do Loop. With. Překreslení formuláře. Dialogové okno se zprávou.) Globální podprogram formátování čísla účtu (Select Case.) 179

6 Obsah 6 9 Externí data Možnosti exportu a importu (Směry komunikace.) Word (Word Access. Vlastnosti textového pole. Nápověda ve formuláři. Rozevírací pole. Zaškrtávací políčko. Zámek dokumentu. Tisk formuláře. Ukládání dat z formuláře. Průvodce importem textu. Specifikace importu. Přidání obsahu tabulky do jiné tabulky. Access Word. Export datové sady. Export sestavy. Export části datové sady. Data z Accessu jako zdroj dat hromadné korespondence Wordu. Access textový soubor. Textový soubor Access.) Excel (Excel Access. Access Excel.) PowerPoint (Access PowerPoint.) Access (Access Access. Propojení.) Visio (Access Visio. Organizační diagram. Visio Access. Kontingenční diagram.) Další aplikace (Project Access. Outlook Access. Access Outlook. Shromáždění dat. Access OneNote. Access Publisher.) Hypertextové odkazy (Cíl odkazů. Vazba odkazů. Nesvázané odkazy. Svázané odkazy. Ovládací prvek ActiveX. Navigate.) Web a SharePoint (Statické stránky. Access web. Web Access. Import tabulky z webu. Připojení tabulky z webu. Dynamické stránky. SharePoint. Přesun na server SharePoint. Aktualizace dat na webu. Aktualizace dat v Accessu. Aktualizace databáze na webu.) Databázové nástroje Přehled (Databázové nástroje.) Skupina Makro (Převod makra do Visual Basicu. Místní nabídka formuláře. Globální místní nabídka. Karty Doplňky ve formuláři.) Skupina Zobrazit či skrýt (Vztahy. Sestava relací. Seznam vlastností. Závislosti objektů. Panel zpráv.) Skupina Analyzovat (Analýza tabulky. Analýza výkonu. Dokumentace.) Skupina Přesunout data (Přesun na SQL server. Přesun do databáze Accessu.) Skupina Databázové nástroje (Správce propojených tabulek. Správce přepínacích panelů. Šifrování databáze. Formát ACCDE. Formát ACCDR. Formulář s nabídkou objektů. Automatické spuštění formuláře.) Možnost aplikace Access (Oblíbené možnosti. Možnosti aktuální databáze. Možnosti datového listu. Možnosti návrhářů objektů. Možnosti kontroly pravopisu a mluvnice. Možnosti upřesnění.) Tlačítko Office (Tlačítko Office.) 221 A Použité objekty 223 B Náměty samostatných cvičení 225 C Dodatek ke kap. 4: Dotazy z databáze Banka 234 Rejstřík 244

7 Úvod 7 Východiska skript Rozsah skript Uspořádání skript Jak číst skripta Terminologie Úprava skript Úvod Znalost práce s osobním počítačem bývá uváděna jako jeden z předpokladů úspěšnosti manažerů a ekonomů vůbec. Každý absolvent VŠE by měl ovládat přinejmenším práci s textovým procesorem, tabulkovým programem, prezentačním programem a databázovým systémem. Tato skripta nabízejí výklad databázového systému Microsoft Office Access verze 2007 CZ. Skripta byla napsána na základě několikaleté zkušenosti z výuky předmětů Manažerská informatika 1 3 na Fakultě podnikohospodářské a Fakultě mezinárodních vztahů, na základě školení uživatelů z podnikové praxe a také s přihlédnutím k intenzivnímu využívání databázového systému v denní práci autorů. Omezený rozsah skript neumožňuje popsat Access do všech detailů. Zaměřuje se na základy, s nimiž se bude absolvent setkávat v praxi. Skripta neobsahují zejména výklad témat: některé vlastnosti ovládacích prvků, práce více uživatelů a její zabezpečení, příkazy Visual Basicu. Skripta jsou rozdělena do 10 kapitol převážně dle objektů Accessu. Pořadí kapitol umožňuje čtenáři postupné studium Accessu. Kapitoly dříve uvedené nepředpokládají znalost později uvedených kapitol. Kapitoly nemají stejný rozsah. Uspořádání textu dle objektů Accessu usnadňuje návrat pokročilému uživateli k detailním informacím o Accessu. Skripta jsou napsána tak, aby čtenář mohl pochopit podstatu i bez výkladu učitele, tj. samostudiem. Je vhodné, aby si čtenář příklady zkoušel u počítače s instalovaným Accessem v popisované verzi 2007 CZ. Po výkladu látky učitelem je možné prohloubit si znalosti domácím samostudiem i bez počítače, neboť skripta obsahují obrázky většiny dialogových oken Accessu. V závěru obsahují skripta příklady k procvičení. Předpokládá se, že čtenář se po prvním prostudování skript bude vracet k dílčím kapitolám v kontextu konkrétní aplikace Accessu. Terminologie použitá ve skriptech se drží co nejvíce terminologie nápovědy Accessu. Při popisu ovládání Windows používá mj. pojmů: Klepnutí (do ikony, tlačítka, objektu): Stiskneme a potom uvolníme levé tlačítko myši. Někdy je klepnutí nazýváno kliknutí. Poklepání (na ikonu, tlačítko, objekt): Stiskneme dvakrát za sebou levé tlačítko myši. Někdy je poklepání nazýváno dvojité kliknutí. Tažení: Ukazovátko myši přemístíme pohybem myši na přesouvaný objekt. Držíme levé tlačítko myši a objekt táhneme jinam. Schránka (clipboard): Pomocí schránky můžeme kopírovat data, grafy nebo objekty. Zdroj můžeme do schránky vložit (Ctrl C, zdroj zůstane na původním místě, tj. zdroj kopírujeme do schránky) nebo zdroj můžeme do schránky vyjmout (Ctrl X, zdroj nezůstane na původním místě, tj. zdroj přesunujeme do schránky). Potom můžeme obsah schránky vložit (Ctrl V) většinou na pozici kurzoru. (Obsah schránky po vložení zůstane stejný až do dalšího vložení či vyjmutí do schránky.) Úprava skript dodržuje následující pravidla: Klávesy jsou odlišeny ohraničením (např. Enter). Základní pojmy jsou vypisovány na levém okraji textu formou marginálií a jsou shrnuty v obsahu a v rejstříku. Názvy karet z pásu karet jsou vypisovány KAPITÁLKAMI, pojmy jsou v textu odlišeny kurzívou. Obdobně jsou odlišeny další objekty výkladu: tlačítka, dialogová okna, dílčí karty, sekce. Obrázky jsou číslovány dle jednotlivých kapitol.

8 Úvod 8 Detailní poznámky, jejichž pochopení není povinné, jsou uvedeny pod čarou přímo na stránce, k jejímuž textu se vztahují, a jsou číslovány průběžně v celých skriptech. Odkazy na ilustrativní objekty databáze Encian jsou vypisovány na levém okraji se symbolem a názvem objektu. V příloze A je uveden seznam objektů využitých ve výkladu. Úkoly k procvičení příloze B jsou uspořádány dle jednotlivých kapitol. Ilustrativní příklady Poděkování Připomínky ke skriptům Výklad je uveden na cvičné databázi firmy Encián, která tvoří a prodává programy zaměřené na podnikové finance. Firma má 20 zaměstnanců v 6 odděleních. Zaměstnanci prodávají podnikům na faktury licence vyvinutého softwaru. Zaměstnanci v rámci své činnosti vyjíždějí na služební cesty. Databáze obsahuje data o 69 odběratelích firmy Encián. V databázi jsou také podrobná data o inventáři firmy. Příklady uvedené ve skriptech jsou k dispozici na webu předmětů Manažerské informatiky v sekci Ke stažení. Autoři děkují prvním čtenářům skript za jejich připomínky: Recenze skript připravili: Ing. Michaela Seghmanová (externí spolupracovník), Ing. Ivana Topolová z katedry managementu VŠE. Kontrolní čtení textu provedla: Ing. Kateřina Keslerová (absolventka předmětu Manažerská informatika 3). Na základě zájmu o databázový systém Microsoft Access lze předpokládat dotisk, popř. další vydání skript. Autoři budou vděčni za jakékoliv připomínky a náměty jak k formální stránce (překlepy), tak k obsahové stránce (nepřesné či nesrozumitelné formulace), aby v dalších dotiscích či vydáních mohly být chyby opraveny. Připomínky a náměty můžete zasílat na elektronickou adresu Na tutéž adresu můžete posílat připomínky, náměty, přání k výuce předmětu 2OP483 Manažerská informatika 3. Text byl zpracován v červnu 2008 únoru 2009 v textovém editoru Microsoft Word verze vydání vyšlo v v dubnu 2009 v nákladu 100 výtisků.

9 Kapitola 1: Databáze 9 1. Databáze Databáze Databázový systém Databázové modely Access 2007 Access v MS Office Objekty Accessu 1.1 Databázový systém Databáze je souhrn dat vztahujících se k určitému tématu nebo účelu. Databázi lze chápat jako množinu dat popisujících určitou část objektivní reality, udržovanou a využívanou prostřednictvím databázového systému. Databázový systém systém řízení báze dat (SŘBD) Database Management System (DBMS) je programové vybavení pro vytvoření a využití databází (bází dat). Často se slovem databáze rozumí jak uložená data, tak i software (SŘBD). Postupně vznikly různé databázové modely odlišné dle způsobu ukládání dat a vazeb mezi nimi: hierarchické databáze: Logické uspořádání dat je omezeno na stromovou strukturu. Vztahy mezi daty v záznamech jsou vyjádřeny prostřednictvím ukazatelů (pointerů). Ukazatele obsahují odkaz na související záznam. síťové databáze: Každý záznam může být spojený s libovolným počtem dalších záznamů. relační databáze: Je založena na tabulkách. Tabulka shromažďuje údaje o jednom druhu objektů (např. o zaměstnancích, odběratelích). Řádky tabulky zastupují záznamy (věty, např. jednotlivé zaměstnance či jednotlivé podniky). Sloupce tabulky se nazývají atributy (položky), vyjadřují vlastnosti záznamu (např. jméno, příjmení zaměstnance). Sloupce mají různé datové typy (např. textový, číselný). Atributy jsou pojmenovány (např. Jméno, Příjmení). Mezi tabulkami existují vztahy (relace), slouží ke svázání dat, která spolu souvisejí. objektové databáze: Základem není tabulka, ale objekt. Každý objekt má atributy (vlastnosti, obdobně jako mají záznamy v relační databázi) a metody, které pracují s hodnotami vlastností. Mezi objekty se využívá dědičnost, zapouzdřenost, polymorfismus. objektově-relační databáze: Data jsou uchovávána v tabulkách, některé položky mohou mít složitější datovou strukturu (uživatelem definované typy), rysy objektového přístupu se promítají do tabulek. Řadu databází je možné vytvořit i využívat na úrovni kancelářského balíku. Jedním z programů pro systém řízení relační databáze (RDBMS) je Microsoft Office Access, který je nyní dostupný ve verzi 2007 lokalizované do češtiny. Microsoft Office Access lze zakoupit jako jednotlivý program nebo v rámci kancelářského balíku Microsoft Office a to v sadách Professional, Professional Plus, Enterprise a Ultimate. Access ukládá data formou tabulek do jediného souboru databáze s příponou accdb. Do stejného souboru se ukládají také další objekty databáze. Access pracuje s několika typy objektů: Tabulka je souhrn dat týkající se určitého objektu. Datové věty (záznamy) jsou uvedeny v řádcích, jednotlivá pole (atributy, položky, vlastnosti) ve sloupcích. Tabulky lze v databázi vytvořit, můžeme je také importovat nebo připojit z Excelu, z SharePointu, Outlooku, jiné databáze Accessu a dalších zdrojů. Relace specifikují vztahy mezi tabulkami, např. můžeme omezit vkládání identifikačního čísla odběratele do faktury (tj. věty v tabulce faktur) na seznam daný tabulkou odběratelů. Dotaz je otázka, kterou se tážeme na výskyt určitých dat v databázi. Lze se ptát na obsah jedné či více tabulek spojených relacemi, výsledkem často bývá tzv. datová sada. Formulář slouží k pohodlnému vkládání, opravě či prohlížení dat. V návrhu formuláře určujeme, v jaké formě chceme zobrazit data. Formulář může zobrazovat data z jedné či více tabulek. Sestava se využívá při prezentaci dat na obrazovce či na tiskárně. Do sestavy můžeme snadno zařadit souhrny skupin dat, např. dílčí a celkové součty. Makro je seznam akcí, které často provádíme v sekvenci za sebou. Makro umožňuje sekvenci uchovat a snadno opakovaně provádět. Modul obsahuje příkazy jazyka Visual Basic. Pomocí jazyka Visual Basic lze automatizovat složitější operace než v makrech.

10 Kapitola 1: Databáze 10 Šíření aplikací připravených v Accessu Spouštění objektů může být v Accessu automatizované např. pomocí formuláře s výchozí nabídkou operací. Řešení v databázovém systému Access můžeme šířit dalším uživatelům, kteří nemusí mít možnost měnit naše návrhy objektů. 1.2 Firma Encián Výklad bude v publikaci proveden na příkladu databáze firmy Encián. Fiktivní firma Encián vyvíjí a distribuuje programy zaměřené na podnikové finance zejména pro malé a střední podniky. Jedná se o 6 programů (Bonita, Finanční analýza, Investice, Kauzální analýza, Podnikatel, SAFI). V roce 2008 vytvořila nové verze programů. V databázi bude firma Encián sledovat informace v tabulkách (vztah tabulek je uveden v diagramu relací v obr. 1-1): OBR. 1-1: VZTAHY (RELACE) TABULEK V DATABÁZI FIRMY ENCIÁN Personal (E_mail) Oddělení (Oddělení) personální data Personal» Osobní data 20 zaměstnanců včetně fotografií a odkazů na jejich osobní webovou stránku.» Každý zaměstnanec má přiděleno uživatelské jméno, kterým je dán také jeho ový účet. V tabulce budeme jako jednoznačný identifikátor používat zkrácený , např. Novak.Petr pro ředitele Petra Nováka s em Zkrácený uvedeme do pole E_mail.» Většina zaměstnanců má určenu místnost, s výjimkou Ondřeje Světlého, který je externím programátorem.» Každý zaměstnanec, který má určenu místnost, má k dispozici telefon, který je uveden ve větě zaměstnance v poli Telefon. Dříve byl do každé kanceláře zaveden jediný telefon. Ten je dosud uváděn v tabulce Místnosti v poli Původní_telefon.» Každý zaměstnanec je zařazen do jednoho z 6 oddělení a má určeného nadřízeného.» Jen někteří zaměstnanci mají právo fakturovat. Oddělení» Zaměstnanci jsou rozděleni do 6 oddělení (ředitelství, analýza, programování, reklama, distribuce, konzultace).» Jednoznačným identifikátorem oddělení je třípísmenná zkratka názvu oddělení v poli Oddělení.» Pro každé oddělení je jmenován vedoucí.» Organizační diagram firmy Encián (připravený programem Microsoft Office Visio) je uveden v obr. 1-2

11 Kapitola 1: Databáze 11 OBR. 1-2: ORGANIZAČNÍ DIAGRAM FIRMY ENCIÁN Podniky (IČ) Stadia (Stadium) V organizačním diagramu: Jsou barevně odlišena oddělení. Pro každého zaměstnance je uvedeno příjmení, kód oddělení, charakteristika. V levém horním rohu je uvedeno číslo kanceláře, v levém dolním rohu je uvedeno telefonní číslo. V pravém horním rohu je pro zaměstnance s oprávněním fakturovat uvedeno zaškrtnutí. V pravém horním rohu je pro zaměstnance na částečný úvazek uvedena ikona grafu. V pravém dolním rohu je zobrazen pro ženy červený praporek. data o odběratelích Podniky» Základní data o odběratelích, kterými je 69 malých a středních podniků.» Podniky jsou nazvány krátkými fiktivními názvy vytvořenými ze smyšlených křestních jmen, mají jednoznačné identifikační číslo (IČ).» Podniky jsou rozděleny dle stádia vývoje. Na základě dotazníku zařadila firma Encián svých 69 odběratelů do stadií životního cyklu. Jedná se o 5 základních vývojových stadií podniku (koncepce, existence, růst, rozvoj, vyspělost) a 3 vedlejší statická stadia (životní styl, zastavený růst, zastavený rozvoj).» Každému podniku je přiřazeno až 6 kódů klasifikace ekonomických činností (NACE) pro převažující činnosti.» Pro odběratele sledujeme jeho adresu, telefon, bankovní účet a kód banky. Stadia» V samostatné tabulce je pro každé stadium upřesněn jeho stupeň, charakteristika a dynamika.» Jednoznačným identifikátorem stadia je název stadia v poli Stadium.» Využíváme celkem 8 stadií (viz obr. 1-3, v němž jsou u stadií znázorněny teploměrem počty odběratelů v jednotlivých stadiích). OBR. 1-3: STADIA

12 Kapitola 1: Databáze 12 NACE (NACE) NACE» V samostatné tabulce je doplněno pro každý kód NACE 1 jeho slovní vysvětlení. Čtyřciferný kód NACE je systematický (viz obr. 1-4): OBR. 1-4: STRUKTURA KLASIFIKCE NACE Oddíly_Sekce (Oddíl) Sekce (Sekce) Faktury (Faktura) Licence (Program a Sériové_číslo) První dvě číslice vyjadřuje oddíl, např. 47 Maloobchod, kromě motorových vozidel. První tři číslice vyjadřují skupinu, např. 472 Maloobchod s potravinami, nápoji a tabákovými výrobky ve specializovaných prodejnách. První čtyři číslice vyjadřují třídu, např Maloobchod s ovocem a zeleninou. Ve výjimečných případech se pro národní účely používá pět číslic. Pátá úroveň vyjadřuje podtřídy. V databázi firmy Encián pátou úroveň nevyužijeme. V případech, kdy daná úroveň klasifikace níž už dále není členěna, používá se na nižších úrovních číslice 0, např Výroba tabákových výrobků. Všude, kde je to možné, se v označení skupin a tříd typu ostatní používá v kódu číslice 9, např Ostatní maloobchod s potravinami ve specializovaných prodejnách.» Tabulka je převzata z oficiálního číselníku České statistického úřadu. Obsahuje 88 oddílů, 272 skupin, 615 tříd a 160 podtříd, tj vět. 2 Oddíly_Sekce» V tabulce jsou převáděny oddíly činností (např. 47) na méně členité sekce označené písmeny (např. oddíl 47 Maloobchod, kromě motorových vozidel je zařazen do sekce G Velkoobchod a maloobchod; opravy a údržba motorových vozidel). 88 oddílů NACE je tak redukováno na 21 sekcí NACE dle převodní tabulky: A B C D E F G H I J K L M N O P Q R S T U » Jednoznačným identifikátorem je pole Oddíl. Sekce» V tabulce je pro každý kód sekcí v poli Sekce doplněno jeho slovní vysvětlení.» Jednoznačným identifikátorem je pole Sekce. data o prodejích firmy Encián v prvním pololetí roku 2009 Faktury» Každé faktuře je přiděleno jednoznačné číslo v poli Faktura a upřesněno pro ni, kdo (zaměstnanec z tabulky Personal), kdy a komu (podnik z tabulky Podniky) ji vystavil.» Za sledované období bylo vydáno 102 faktur. Licence» Jednou fakturou můžeme prodávat více licencí programů. Každá licence má v rámci jednotlivých programů jednoznačné sériové číslo. V jednotlivé větě je upřesněn kód programu, sériové číslo a číslo faktury, kterou byla licence prodána. 1 2 Zkratka NACE je odvozena z francouzského názvu Nomenclature générale des Activités économiques dans lescommunautés Européennes. Tuto statistickou klasifikaci ekonomických činností používá Evropská unie od roku Klasifikace NACE roku 2008 nahradila odvětvovou klasifikaci ekonomických činností (OKEČ) dříve používanou v ČR. Aktuální číselník NACE je dostupný na webu České statistického úřadu po klepnutí volby Klasifikace, Číselníky/Klasifikace a výběru volby Klasifikace ekonomických činností (CZ-NACE). Klasifikace je dostupná také formou tabulky Excelu.

13 Kapitola 1: Databáze 13 Programy (Program) Cesty (Rok a Cesta) Výjezdy (E_mail, Rok a Cesta)» Na fakturách byl fakturován různých počet licencí: licencí celkem faktur » Vyskytly se případy, kdy na jedné faktuře bylo prodáno více licencí stejného programu: program BON FIN INV KAU POD SAF faktura faktura faktura faktura faktura faktura faktura faktura faktura » Jednoznačným identifikátorem je dvojice polí Program a Sériové_číslo.» Za sledované období se prodalo 178 licencí programů. Programy» Pro každý z 6 programů je ke kódu programu v poli Program doplněn název a cena. Pro jednoduchost předpokládáme, že cena je jednotná pro všechny odběratele v celém období, není tedy diferencována dle jednotlivých faktur. data o služebních cestách zaměstnanců firmy Encián Cesty» Každá cesta je jednoznačně určena rokem a číslem cesty v rámci roku. Pro cestu je uvedeno datum zahájení, datum dokončení a místo cesty.» Jednoznačným identifikátorem je dvojice polí Rok a Cesta. Výjezdy» V každé větě je uvedena identifikace zaměstnance zkráceným em, rok a číslo cesty.» Jednoznačným identifikátorem je trojice polí E_mail, Rok a Cesta.» Za první pololetí sledovaného roku 2009 se ve firmě uskutečnilo 30 výjezdů jednotlivých zaměstnanců v rámci 15 služebních cest, tj. jedné cesty se v průměru zúčastnili 2 zaměstnanci (viz obr. 1-5). OBR. 1-5: SLUŽEBNÍ CESTY FIRMY ENCIÁN

14 Kapitola 1: Databáze 14 Místnosti (Místnost) data o inventáři firmy Místnosti» Firma Encián sídlí v třípodlažním domě (viz obr. 1-6). V prvním a druhém podlaží jsou dvoučlenné kanceláře zaměstnanců, zasedací a školící počítačová místnost, zázemí (kuchyňka, WC, umývárna). Ve třetím podlaží v podkroví sídlí ředitel a sekretářka firmy. OBR. 1-6: MÍSTNOSTI FIRMY ENCIÁN Majetek_typy (Typ_majetku) Majetek_ umístění (Inventární_ číslo)» Pro každou místnost ve firmě je uvedeno její číslo, popis, oddělení, které zodpovídá za místnost.» Jednoznačným identifikátorem je pole Místnost.» Místnosti jsou číslovány systematicky, desítková číslice vyjadřuje podlaží, případné písmeno za číslem místnosti vnitřní místnost (např. 26a je sklad na 2. podlaží dostupný z místnosti 26), popř. obslužnou místnost číslovanou dle nejbližší kanceláře (např. 16b je umývárna pro muže na 1. podlaží blízko kanceláře 16). Celkem je ve firmě 40 číslovaných prostor (včetně chodeb 10a, 20a, 30a). Majetek_typy.» Firma je vybavena mobiliářem (nábytkem), výpočetní, audiovizuální a komunikační technikou. Vybavení je nakupováno hromadně, často se vyskytují společné typy vybavení.» V každé větě je pro typ majetku uveden jeho druh (Skříň, Stůl, Židle, Křeslo, Výpočetní technika, LCD, Audiovizuální technika, Komunikační technika, Reprografická technika, Vyvolávací systém, Kuchyň 3 ), popis majetku, pořizovací cena a datum pořízení.» Jednoznačným identifikátorem typu je pole Typ_majetku.» Firma má 57 typů inventáře. Majetek_umístění» Každý kus inventáře má přiděleno inventární číslo, k němuž je upřesněn typ majetku, zodpovědná osoba a místnost, v níž je majetek umístěn.» Jednoznačným identifikátorem je pole Inventární_číslo.» Tabulka obsahuje 625 kusů inventáře.» Inventarizovaný majetek firmy má hodnotu dle pořizovací ceny Kč. Odpadkové koše, telefony a květiny nejsou vzhledem k jejich nízké pořizovací ceně (koš za 213 Kč, telefon za 302 Kč, květina za 325 Kč) inventarizovány. Nejvyšší podíl na inventáři tvoří výpočetní technika Kč (bez LCD, jejichž pořizovací hodnota činila Kč) a židle ( Kč). 3 Druh inventáře určuje vrstvu v diagramu v programu Microsoft Office Visio, v němž je připraven prostorový plán budovy firmy Encián.

15 Kapitola 1: Databáze 15 Spuštění Accessu 1.3 Seznámení s aplikací Access Program Access spustíme z prostředí Windows např.: poklepáním na ikonu Accessu na pracovní ploše nebo z menu Windows START, dále volbou VŠECHNY PROGRAMY a nalezením Accessu v seznamu programů. Otevře se obrazovka Začínáme (obr. 1-7). OBR. 1-7: OBRAZOVKA ZAČÍNÁME Místní šablony V levém podokně můžeme vybrat z kategorií šablon místní šablony nebo některou kategorii šablon z webu Microsoft Office Online. Pokud vybereme kategorii Místní šablony, nabídne se 11 výchozích databází, které můžeme rozdělit na tři druhy dle jejich účelu: podnikání Aktiva: Databáze pro sledování aktiv a kontaktů. Obsahuje tabulky Aktiva a Kontakty. Kontakty: Databáze kontaktů pro uchovávání informací o osobách (zákaznících a partnerech). Obsahuje jedinou tabulku Kontakty. Marketingové projekty: Databáze ke sledování průběhu marketingových projektů. Obsahuje tabulky Běžné úkoly, Prodejci, Projekty, Úkoly, Zaměstnanci. Problémy: Databáze evidence problémů, které můžeme přiřazovat řešitelům a sledovat průběh jejich plnění. Obsahuje tabulky Kontakty a Problémy. Prodejní kanál: Databáze prodejních kanálů, umožňuje sledovat vývoj obchodních příležitostí. Obsahuje tabulky Příležitosti, Zákazníci, Zaměstnanci.

16 Kapitola 1: Databáze 16 Šablony Online Vytvoření databáze ENC První tabulka Události: Databáze událostí pro sledování schůzek, termínů a dalších událostí. Obsahuje tabulku Události. Úkoly: Databáze úkolů a sledování jejich plnění. Obsahuje tabulku Kontakty a Úkoly. studium Studenti: Databáze studentů pro sledování informací o studentech včetně kontaktních informací pro naléhavé případy, informací o používaných lécích a opatrovnících. Struktura tabulek vhodná pro evidenci na základních a středních školách. Obsahuje tabulky Opatrovníci a Studenti. Vyučující: Databáze vyučujících pro udržování informací o členech pedagogického soboru včetně informací pro naléhavé případy a informací o vzdělání vyučujících. Struktura tabulek vhodná pro evidenci na základních a středních školách. Obsahuje tabulku Vyučující. demonstrace možností Accessu Northwind 2007: Databáze demonstrující využití Accessu na agendě fiktivní firmy. Obsahuje tabulky Faktury, Informace o dodavatelích, Inventář transakcí, Objednávky, Objednávky nákupu, Oprávnění, Oprávnění zaměstnance, Přepravci, Rozpis objednávek, Rozpis objednávek nákupu, Řetězce, Stav daně objednávek, Stav objednávek, Stav objednávky nákupu, Stav rozpisu objednávek, Typy transakcí inventáře, Výkazy o prodeji, Výroby, Zákazníci, Zaměstnanci. Databáze obsahuje řadu ukázkových dotazů, formulářů, sestav, maker a modulů. Pokud vybereme šablonu z Microsoft Office Online, je nejdříve otestováno, zda používáme pravou licenci Microsoft Office. Nabídka šablon databází ke stažení je totožná s místními šablonami. Na rozdíl od ostatních programů Microsoft Office nemůžeme pracovat s prázdnou neuloženou databází. Již při výběru šablony musíme proto v pravém podokně upřesnit umístění a název souboru. Pro účely databáze firmy Encián nevyhovuje žádná připravená šablona. Proto v levém podokně zadáme volbu Nabídka možností a v prostředním podokně volbu Prázdná databáze. Do pole Název souboru zapíšeme název Encian 4. Klepneme do tlačítka Vyhledat umístění pro databázi napravo od pole Název souboru a vyhledáme vhodnou složku pro umístění databázového souboru 5. Prázdnou databázi vytvoříme klepnutím do tlačítka Vytvořit. Ve vybrané složce se vytvořil soubor Encian.accdb. V databázi se zahájila automaticky tvorba první tabulky. Do tabulky zapíšeme základní osobní data vybraných zaměstnanců firmy Encián: Každý zaměstnanec je identifikován jednoznačně uživatelským jménem, které se stane součástí jeho firemního u. Do sloupce Přidat nové pole do prvního řádku (na jehož začátku je hvězdička) zapíšeme zkrácený (bez ředitele firmy Novak.Petr. Po odeslání se přichystá další sloupec nadepsaný Přidat nové pole. Poklepeme na název Pole1 a zapíšeme název E_mail. Názvy polí budeme volit krátké, místo mezer či uvozovek budeme používat podtržítko. Do dalšího sloupce zapíšeme hodnotu Novák a sloupec přejmenujeme na Příjmení. Další sloupec nejprve přejmenujeme na Místnost a zapíšeme do něj hodnotu 31. Další sloupec přejmenujeme na Oddělení a zapíšeme do něj hodnotu RED (kód oddělení ředitelství). Po odeslání hodnoty RED zahájíme zápis nové věty ve sloupci E_mail. Zapíšeme sem hodnotu Sladka.Marie. Obdobně doplníme další hodnoty do věty sekretářky ředitele Marie Sládké: příjmení Sladká, místnost 32, oddělení RED. Obdobně doplníme dalšího zaměstnance, Kolinska.Eva, příjmení Kolínská, místnost 23, oddělení PRG (viz obr. 1-8). 4 5 Odkazy na soubory příkladů jsou vypisovány na levém okraji se symbolem a názvem databáze. Výchozí složku pro ukládání a otevírání databází můžeme upřesnit klepnutím do tlačítka Office a tlačítka Možnosti aplikace Access. V kartě Oblíbené v sekci Vytváření databází nastavíme pole Výchozí složka pro databáze.

17 Kapitola 1: Databáze 17 OBR. 1-8: TABULKA PERSONAL Personal Vytvoření tabulky Oddělení Vytvoření dotazu Zavřeme objekt tabulky klepnutím do ukončovacího tlačítka s křížkem v řádku s názvem tabulky Tabulka1. Access ukládá hodnoty vět průběžně do souboru Encian.accdb. Přesto se nás ptá, zda má uložit změny v návrhu objektu. Jedná se o název tabulky. Klepneme do tlačítka Ano. V dialogovém okně Uložit jako vyplníme název tabulky. Navrhovaný název Tabulka1 změníme na Personal. Vytvoříme druhou tabulku. V pásu karet klepneme do záložky VYTVOŘIT. Ve skupině Tabulky klepneme do tlačítka Tabulka. Opět se vytvořila tabulka s názvem Tabulka1, kterou vyplníme: V tabulce přejmenujeme nové sloupce na Oddělení (kam budeme vkládat kód oddělení) a Oddělení_v (kam budeme vkládat textovou vysvětlivku kódu oddělení). Vložíme dvě věty: RED, ředitelství a PRG, programování. Tabulku uložíme klepnutím do tlačítka Uložit v panelu nástrojů Rychlý přístup nebo kombinací kláves Ctrl S. Při ukládání modifikujeme název tabulky na Oddělení. Tabulku zavřeme zavíracím tlačítkem. Vzhledem k tomu, že jsme již tabulku ukládali (přesněji její návrh, obsah se ukládá průběžně), nejsme již vyzváni k zápisu názvu tabulky. Mezi tabulkami mohou být v Accessu relace vazby, které pomáhají při konstrukci dotazů. Nejčastěji se využívají výběrové dotazy, které vybírají data z jedné či více tabulek, výsledkem je tzv. datová sada ve formě tabulky, která může být kombinací data z více tabulek. Zkombinujeme data z tabulky Personal a Oddělení formou jednoduchého dotazu. Ke každému zaměstnanci chceme vypsat jeho příjemní, kód a vysvětlivku oddělení, do něhož je zařazen: V kartě VYTVOŘIT ve skupině Jiné klepneme do tlačítka Návrh dotazu. V dialogovém okně Zobrazit tabulku vybereme tabulky, kterou budou zdrojem dotazu. Poklepeme na tabulku Oddělení. Klepneme na tabulku Personal a klepneme do tlačítka Přidat. Klepneme do tlačítka Zavřít. OBR. 1-9: DIALOGOVÉ OKNO ZOBRAZIT TABULKU Návrhové zobrazení dotazu se skládá ze dvou podoken (viz obr. 1-10, kde je již návrh dotazu dokončen): V horním podokně Diagram je diagram tabulek, z nichž dotaz čerpá data.

18 Kapitola 1: Databáze 18 V dolním podokně Mřížka je návrhová mřížka dotazu, do níž budeme vybírat z podokna Diagram pole tabulek, popř. upřesňovat kritéria výběr, řazení a další. Do podokna Diagram jsme umístili tabulky Oddělení a Personal. Poklepeme na pole Příjmení z tabulky Personal. Příjmení se zapíše do prvního sloupce dotazovací mřížky. Poklepeme na pole Oddělení v tabulce Personal a pole Oddělení_v v tabulce Oddělení. V kartě NÁVRH ve skupině Výsledky klepneme do tlačítka Zobrazení. Zobrazil se výsledek dotazu. Pro každého zaměstnance se ve výsledné datové sadě vypsaly dvě věty. Access vytvořil všechny kombinace 3 vět tabulky Personal se 2 větami tabulky Oddělení, tj. 3 x 2 = 6 kombinací. My však chceme zobrazit jen vhodné kombinace, tj. kombinace, kde je shodné pole Oddělení v tabulce Personal a pole Oddělení v tabulce Oddělení. V kartě DOMŮ ve skupině Zobrazení klepneme do tlačítka Zobrazení. V podokně Diagram návrhu dotazu tažením přesuneme pole Oddělení z tabulky Personal na pole Oddělení tabulky Oddělení. Vytvoříme tak relaci mezi tabulkami. Znovu zobrazíme výsledek dotazu klepnutím do tlačítka Zobrazení. Ve výsledku se zobrazí již jen 3 kombinace, pro něž platí rovnost pole Oddělení v tabulkách Personal a Oddělení. OBR. 1-10: DOTAZ VYPISUJÍCÍ K ZAMĚSTNANCŮM ODDĚLENÍ P13 Zaměstnanci s odděleními Tlačítko Office Panel nástrojů Rychlý přístup Kombinací kláves Ctrl S uložíme návrh dotazu pod názvem P13 Zaměstnanci s odděleními. 6 Podívejme se nyní na součásti okna Accessu (viz obr. 1-11, v němž je otevřen dotaz P13 Zaměstnanci s odděleními). Access 2007 využívá uživatelské rozhraní Microsoft Office Fluent 7. Dřívější nabídka a panely nástrojů byly modifikovány na pás karet uspořádaný dle frekvence příkazů zastoupených tlačítky v kartách. Popišme nejdříve úvodní obrazovku: Vlevo nahoře je tlačítko Office, které zprostředkovává příkazy pro práci se soubory (založení nové databáze, otevření dříve vytvořené databáze, komprimace databáze, nastavení Accessu). Aby databáze nezabírala příliš místa a aby byl její provoz rychlý, budeme vždy po úpravě databáze (např. jednou denně) provádět komprimaci databáze klepnutím do tlačítka Office a příkazem SPRAVOVAT, ZKOMPRIMOVAT A OPRAVIT DATABÁZI. Napravo od tlačítka Office je panel nástrojů Rychlý přístup, který obsahuje základní příkazy na trvale zobrazených tlačítkách. Po instalaci Accessu je to tlačítko Uložit, tlačítko pro návrat zpět o jeden vykonaný příkaz a tlačítko pro opakování kroku postupu Název objektů s výjimkou tabulek budeme zahajovat písmenem P (publikace), číslem kapitoly, tj. v kap. 1.3 vytváříme objekty P13 Zaměstnanci s odděleními. Bude-li v kapitole objektů více, odlišíme je malým písmenem za číslem kapitoly, např. P31a Dotaz. Čtenář zakládá stejně nazvané objekty avšak bez úvodního písmena P. Čtenářovy objekty tak budou v seznamech objektů řazených dle abecedy uvedeny dříve. Obdobné rozhraní mají aplikace Word 2007, Excel 2007, PowerPoint 2007 a z části Outlook V obr je navíc uživatelské tlačítko, které zobrazíme v souvislosti s navrhováním formulářů.

19 Kapitola 1: Databáze 19 OBR. 1-11: SOUČÁSTI OKNA ACCESSU Titulkový pruh Pás karet Skupiny příkazů Na konci panelu nástrojů Rychlý přístup je úzké tlačítko Přizpůsobit panel nástrojů Rychlý přístup. Klepnutím do tlačítka se zobrazí nabídka: Nejprve jsou nabídnuty časté příkazy, které lze zařadit do panelu nástrojů Rychlý přístup (Nová, Otevřít,..., Aktualizovat vše). Dále můžeme zobrazit další příkazy, které lze zařadit do panelu nástrojů Rychlý přístup. Otevře se okno Možnosti aplikace Access, v němž je možné zobrazit vybranou kategorii příkazů a přidávat je do panelu nástrojů Rychlý přístup. V ostatních kartách jsou další možnosti modifikace Accessu. Volbou ZOBRAZIT POD PÁSMEM KARET můžeme panel nástrojů Rychlý přístup zobrazit pod pásem karet. Volbou MINIMALIZOVAT PÁS KARET můžeme potlačit zobrazení pásu karet a zvětšit tak prostor pro podokna Accessu. V titulkovém pruhu okna je název otevřené databáze. Za názvem databáze je v závorce formát uložení databáze (v našem případě Access 2007) a název aplikace Microsoft Access. Na konci titulkového pruhu jsou běžná tlačítka aplikací Windows (Minimalizovat, Maximalizovat, Zavřít). Pod tlačítky Windows je tlačítko pro otevření nápovědy. Pod titulkovým pruhem je zobrazen pás karet s příkazy pro program Access. Příkazy jsou rozděleny do karet. Standardní karty (DOMŮ, VYTVOŘIT, EXTERNÍ DATA, DATABÁZOVÉ NÁSTROJE) se zobrazují stále, kontextové karty (např. NÁVRH) se zobrazují jen v kontextu některých činností (např. návrh dotazu). V některých situacích se potlačí zobrazení standardních karet a zobrazí se aplikační karty (např. NÁHLED při zobrazení náhledu tisku výsledku dotazu). Návrat z aplikačních karet bývá klepnutím do tlačítka Zavřít v závěru aplikační karty. Příkazy v kartách jsou pro přehlednost rozděleny do skupin. Názvy skupin jsou uvedeny v spodní části karty (např. v kartě NÁVRH skupiny Výsledky, Typ dotazu, Nastavení dotazu, Zobrazit či skrýt). Pokud je v pásu karet dost místa (záleží na rozlišení zobrazování a na šíři okna), jsou u příkazových tlačítek jejich názvy. Vzhled karty se může se změnou velikost okna měnit.

20 Kapitola 1: Databáze 20 Spouštění dialogového okna Navigační podokno Řada tlačítek zastupuje nabídku, která se vyklopí klepnutím do tlačítka. Zastupování nabídky je vyznačeno na konci tlačítka ikonou nabídky (trojúhelníkem, viz např. tlačítko vše ve skupině Nastavení dotazu). Klepnutím do některých tlačítek (např. Barva písma ve skupině Písmo v kartě DOMŮ) zadáme naposledy použité nastavení tlačítka (např. barvu písma) na rozdíl od klepnutí do ikony nabídky, kterým zobrazíme další varianty (např. výběr jiné barvy), z nichž jednu můžeme vybrat a zároveň tak nastavit tlačítko pro další použití. Některé skupiny příkazů zastupují řadu příkazů, které lze přehledně zobrazit v dialogovém okně. Toto dialogové okno lze zobrazit klepnutím do spouštěče dialogového okna v pravém dolním rohu skupiny (např. pro skupinu Písmo v kartě DOMŮ). Některá tlačítka se skládají ze dvou částí (např. tlačítko Zobrazení ve skupině Výsledky). Klepnutím do horní části přímo zadáme nejčastější variantu příkazu, klepnutím do dolní části vyklopíme detailní nabídku možností. Na levém kraji pod pásem karet je zobrazeno navigační podokno. Zobrazuje seznam objektů databáze. Navigační podokno lze minimalizovat či obnovit klepnutí do tlačítka se symbolem << v jeho pravém horním rohu. Tažením můžeme upravit polohu svislé příčky, která odděluje navigační podokno od zbývajících podoken. V navigačním podokně jsou zobrazeny tabulky a s nimi související objekty ve skupinách. Dotaz P13 souvisí s oběma tabulkami, je proto zařazen do obou skupin. Klepnutím do tlačítka na konci nadpisu skupiny můžeme sbalit či rozbalit skupinu. Objekty můžeme kategorizovat do skupin i jinak, můžeme také zobrazit jen některé objekty, tj. použít filtr. Klepneme do záhlaví navigačního podokna nadepsaného Všechny tabulky. Zobrazí se nabídka, v níž můžeme vybírat:» kategorie VLASTNÍ: Objekty jsou rozděleny do námi vytvořených skupin 9. TYP OBJEKTU: Objekty jsou rozděleny do skupin dle typu objektu (tabulky, dotazy, formuláře, sestavy, makra, moduly). TABULKY A SOUVISEJÍCÍ ZOBRAZENÍ: Objekty jsou rozděleny do skupin dle tabulek, do skupiny jsou zařazeny související objekty. Tato kategorie je nastavena jako výchozí při zakládání databáze. DATUM VYTVOŘENÍ: Objekty jsou rozděleny do skupin dle data vytvoření. DATUM ZMĚNY: Objekty jsou rozděleny do skupin dle data poslední změny objektu.» filtry: Můžeme vybrat jedinou skupinu a zobrazit pouze její objekty. Potom je v záhlaví navigačního podokna název skupiny. V našem případě vybereme kategorizaci dle typu objektů. Objektů může být v databázi velké množství, Access proto nabízí četné modifikace Navigačního podokna: Z místní nabídky navigačního podokna můžeme:» vybrat kategorizaci objektů do skupin,» vybrat kritérium řazení objektů ve skupinách a vzestupné či sestupné řazení,» vybrat způsob zobrazení objektů. PODROBNOSTI: Pro každý objekt je zobrazeno kromě názvu objektu jeho typ, datum vytvoření a datum poslední změny objektu, popř. popis objektu 10. Každá vlastnost je zobrazena na jednom řádku, úplný řádek lze zobrazit tažením za příčku navigačního podokna. IKONA: Před názvem objektu je zobrazena větší ikona. SEZNAM: Před názvem objektu je zobrazena menší ikona.» zobrazit či potlačit Panel hledání: Panel hledání je zobrazen v druhém řádku navigačního podokna. Může do něj zadávat úplný název či část názvu objektu. V navigačním podokně se potom zobrazí pouze odpovídající objekty.» zobrazit podrobné okno Možnosti navigace (viz obr. 1-12). 9 Vlastní skupiny můžeme vytvářet, když klepneme pravým tlačítkem myši kamkoliv v Navigačním podokně a z místní nabídky vybereme Možnosti navigace. V dialogovém okně můžeme potom do kategorie Vlastní přidávat další skupiny, přejmenovávat a odebírat skupiny. Můžeme také vytvořit další kategorizaci. 10 Vlastnost objektu lze zadat, když na název objektu klepneme pravým tlačítkem a z místní nabídky vybereme VLASTNOSTI OBJEKTU. V dialogovém okně Vlastnosti objektu vyplníme pole Popis. Můžeme také zaškrtnout pole Skrytý, pokud se jedná o pomocný objekt, který běžně nechceme zobrazit v seznamu objektů. Popis je jednou z vlastností objektu, můžeme jej proto také zadat v rámci návrhu objektu.

21 Kapitola 1: Databáze 21 OBR. 1-12: DIALOGOVÉ OKNO MOŽNOSTI NAVIGACE Podokno objektu Stavový řádek Návrhové zobrazení V dialogovém okně Možnosti navigace můžeme: přidat, odstranit, přejmenovat či změnit pořadí položek kategorizací, v rámci vybrané kategorizace můžeme přidat, odstranit, přejmenovat či změnit pořadí skupiny, zaškrtnutím můžeme potlačit zobrazení některých skupin, zadat zobrazování skrytých objektů 11, zadat zobrazování systémových objektů 12, zobrazit panel hledání, ovlivnit způsob otevírání objektu (klepnutí či poklepání). V našem případě přidáme kategorizaci Struktura publikace, v níž budeme třídit objekty dle jednotlivých kapitol. Okno Možnosti navigace zavřeme klepnutím do tlačítka OK. Napravo od navigačního podokna jsou zobrazena podokna otevřených objektů. Každý otevřený objekt je zastoupen záložkou 13. V případě návrhového režimu zobrazení dotazu jsou k objektu dotazu zobrazena dvě podokna Diagram a Mřížka. Dělící mřížky navigačního podokna a podoken Diagram a Mřížka můžeme tažením posouvat a měnit tak velikost podoken. Ve stavovém řádku jsou: vlevo informace různé dle kontextu, např. při vyplňování tabulek zde budou zobrazeny popisy polí, pokud budou definovány, jinak je zde zobrazen režim zobrazení, vpravo stav zapnutí kláves (např. NumLock) a tlačítka režimů zobrazení, jejichž počet je pro různé objekty různý (např. pro dotazy je uvedeno 5 tlačítek zobrazení). 1.4 Návrhové zobrazení tabulky Dosud jsme navrhovali strukturu tabulky a naplňovali její obsah v zobrazení datového listu. Nyní zobrazíme tabulku Personal v návrhovém zobrazení jedním ze čtyř postupů: Klepneme pravým tlačítkem myši na název tabulky Personal v navigačním podokně a z místní nabídky vybereme NÁVRHOVÉ ZOBRAZENÍ. Poklepáním v navigačním podokně zobrazíme tabulku Personal. Z místní nabídky záložky tabulky Personal zadáme NÁVRHOVÉ ZOBRAZENÍ. 11 Skrytí objektu lze zadat z místní nabídky názvu objektu výběrem volby VLASTNOSTI OBJEKTU. 12 Access ukládá některé informace do pomocných tabulek, které standardně nezobrazuje. 13 Objekty můžeme zobrazit také v překrývajících se oknech (tak, jak to bylo ve starších verzích Accessu), když klepneme do tlačítka Office a tlačítka Možnosti aplikace Access a v kartě Aktuální databáze v sekci Možnosti aplikace zaškrtneme pole Překrývající se okna.

22 Kapitola 1: Databáze 22 ENC Poklepáním v navigačním podokně zobrazíme tabulku Personal. V kartě DOMŮ klepneme ve skupině Zobrazení na horní část tlačítka Zobrazení. Poklepáním v navigačním podokně zobrazíme tabulku Personal. V pravém dolním rohu klepneme do tlačítka Návrhové zobrazení. Úpravy struktury tabulky Personal 14 : Jako první pole doplnil Access do tabulky pole ID, do něhož se automaticky doplňuje pořadové číslo věty. Pokud větu smažeme, číslo věty zůstane nevyužito. V našem případě využijeme k jednoznačné identifikaci věty pole E_mail. Odstraníme pole ID. Klepnutím do voliče řádku (prázdného čtverce se symbolem klíče) označíme řádek pole ID a stiskneme klávesu Delete. Na oba varující dotazy Accessu odpovíme klepnutím do tlačítka Ano. Pole E_mail naopak povýšíme na primární klíč. Hodnota v poli (popř. ve více polích) primárního klíče musí být jednoznačná. Podle primárního klíče jsou také věty seřazeny při zobrazování tabulky. Kurzor umístíme do řádku pole E_mail a klepnutím do tlačítka Primární klíč ve skupině Nástroje zadáme primární klíč. Pro pole E_mail omezíme ještě maximální délku textu na 20 znaků. Do spodního podokna se přepneme klávesou F6 15 nebo klepnutím myší do spodního podokna. Hodnotu vlastnosti pole E_mail nazvanou Velikost pole změníme z hodnoty 255 na 20. Obdobně maximální délku pole Příjmení změníme na 15. Datový typ pole Místnost odhadnul Access na Číslo, protože jsme do tabulky zatím zadali označení místností pouze ve formě čísel. V označení místností se však budou vyskytovat také písmena, proto změníme datový typ na Text, délku omezíme na 3 znaky. Také délku pole Oddělení změníme na 3 znaky. Okno tabulky zavřeme klepnutím do uzavíracího tlačítka na konci řádku se záložkami názvů tabulek. Potvrdíme uložení změn v návrhu tlačítkem Ano. Access nás upozorní na možnou ztrátu dat zkrácením polí. Potvrdíme svůj úmysl tlačítkem Ano. Obdobně upravíme tabulku Oddělení: Odstraníme pole ID. Pole Oddělení bude primárním klíčem s délkou 3 znaky. Pole Oddělení_v zkrátíme na 15 znaků. Shrnutí 1. Dle způsobu ukládání dat se rozdělují databázové modely na hierarchické, síťové, relační, objektové a objektově-relační databáze. 2. Access je relační databází, pracuje se několika druhy objektů, kterými jsou: tabulky, relace, dotazy, formuláře, sestavy, makra, moduly. 3. Databázi v Accessu lze vytvořit využitím místní nebo on-line šablony (Aktiva, Kontakty, Marketingové projekty, Problémy, Prodejní kanál, Události, Úkoly, Studenti, Vyučující, Nortwind 2007) nebo vycházet z prázdné databáze. 4. Data jsou v databázích Accessu uložena formou tabulek. 5. Tabulku můžeme vytvořit v zobrazení tabulky nebo v návrhovém zobrazení. 6. Dotaz vybírá data z tabulky nebo kombinuje data z více tabulek s možností akceptování relací (vztahů) mezi tabulkami. 7. Okno dotazu se skládá z podokna Diagramu tabulek a podokna Mřížky, do níž se ze seznamu polí tabulek vybírají některá pole. 8. Příkazy Accessu se vybírají z pásu karet. Pás karet obsahuje standardní, kontextové a aplikační karty. 9. Tlačítka jsou v kartách rozdělena do skupin. 10. Seznam objektů Accessu je zobrazen v navigačním podokně. Objekty v něm mohou být různě kategorizovány, např. podle typu objektů či podle vlastní kategorizace. 11. Ve stavovém řádku jsou zobrazeny pomocné informace a tlačítka různých zobrazení objektů Accessu (např. zobrazení datového listu, návrhové zobrazení). 12. V návrhovém zobrazení můžeme odstraňovat, doplňovat, modifikovat pole. Jedno či více polí můžeme povýšit na primární klíč. 14 O způsobech tvorby a zobrazení tabulky podrobněji viz kap Klávesa F6 přepíná mezi čtyřmi částmi obrazovky Access: podokno s poli tabulky, podokno s vlastnostmi polí, navigační podokno, tlačítka zobrazení, pás karet.

23 Kapitola 2: Relace Relace Návrh databáze Normalizace 2.1 Typy a význam vztahů V průběhu návrhu databáze postupujeme v následujících krocích: Určíme účel databáze. V našem případě je účelem databáze evidence zaměstnanců, jejich služebních cest, inventárního majetku firmy a prodejů včetně evidence odběratelů. Vyhledáme a uspořádáme požadované informace. V našem případě jsme zvážili, které informace chceme uchovávat v databázi, vytipovali jsme pole vět. Rozdělíme informace do tabulek. Dodržujeme dvě základní zásady rozdělení do tabulek: Udržujeme data vždy jen na jednom místě, bráníme vzniku duplicitních (redundantních) dat, která zabírají místo a mohou být příčinou chyb. V našem případě by bylo nevhodné do věty zaměstnance uvádět název oddělení. Při změně názvu oddělení bychom museli změnu provádět ve více větách. Data vkládáme správná a úplná. V našem případě připustíme při zadávání nového zaměstnance či úpravy věty stávajícího zaměstnance výběr kódu oddělení (třípísmenné zkratky) jen z nabídky v tabulce Oddělení, v níž je seznam všech oddělení včetně názvů oddělení. Zadáme primární klíče. Pokud je to možné, pro každou tabulku zvolíme primární klíč, který jednoznačně identifikuje větu tabulky. Primárním klíčem může být jedno pole (např. E_mail v tabulce Personal) či více polí (např. pole Rok, Cesta v tabulce Cesty nebo E_mail, Rok, Cesta v tabulce Výjezdy). Ověříme splnění normalizačních pravidel. Normalizace je proces zjednodušování a optimalizace struktury tabulek v databázi především za účelem minimalizace redundantních (nadbytečných) dat. Správnost návrhu se vyhodnocuje tzv. normálními formami: První normální forma (1NF) Všechny sloupce nelze dále dělit na části nesoucí nějakou informaci. V poli nesmí být data, která lze rozdělit do více polí. V našem případě by první normální forma byla porušena v tabulce Podniky, kdyby v jednom poli bylo PSČ i název města. Byla by také porušena, kdyby v tabulce Personal byl sloupec Výjezd a v něm by se mohlo vyskytovat více hodnot (např. oddělených čárkami). Druhá normální forma (2NF) Tabulka obsahuje pouze sloupce, které jsou závislé na celém klíči. Pokud by tabulka Licence obsahovala pole Cena, pole Cena by záviselo pouze na části klíče, tj. na poli Program, nikoliv na poli Sériové_číslo, čímž by nebyla splněna druhá normální forma. Ceny programů proto uvádíme v tabulce Programy. Třetí normální forma (3NF) Nesmí existovat závislost mezi neklíčovými poli tabulky. Pokud by tabulka Personal obsahovala pole Oddělení_v, bylo by pole Oddělení_v závislé na poli Oddělení a nikoliv na klíčovém poli E_mail, čímž by nebyla splněna třetí normální forma. V našem případě např. každý zaměstnanec patří do nanejvýš jednoho oddělení. Pokud bychom připustili zařazení do více oddělení, museli bychom vytvořit můstkovou tabulku mezi tabulkami Personal a Oddělení nazvanou např. Zařazení, v níž by k zaměstnancům (pole E_mail) byla přiřazována jejich oddělení (pole Oddělení). Takovouto můstkovou tabulku máme v databázi použitou jako zprostředkovatele vazeb tabulek:» Personal a Cesty (můstek Výjezdy),» Faktury a Programy (můstek Licence),» Místnosti a Majetek_typy (můstek Majetek_umístění).

24 Kapitola 2: Relace 24 Typy relací Typy spojení Čtvrtá normální forma (4NF) Nesmi existovat tzv. multizávislost. Multizávislost je případ, kdy v tabulce jsou dvě skupiny polí a kdy k jedné hodnotě první skupiny polí se přiřadí více hodnot druhé skupiny polí. Pokud by v tabulce Faktury byla uvedena pole Program, Sériové_číslo (v tom případě by klíčovými poli byla pole Faktura a Program), bylo by ke skupině polí Faktura, E_mail, Datum, IČ přiřazeno více hodnot skupiny Program, Sériové číslo, čímž by nebyla splněna čtvrtá normální forma. 16 Vytvoříme relace mezi tabulkami. Vytipujeme relace, které vzniknou mezi tabulkami, a definujeme je do relací databáze tak, abychom je mohli opakovaně využít v dotazech. Do relací doplníme referenční integritu, která zajistí, že nevyplníme do databáze nekonzistentní data (např. zamezí vložení oddělení neexistujícího v tabulce Oddělení pro zaměstnance v tabulce Personal). Relace slouží ke svazování dat, existují čtyři typy relací: Mezi tabulkami neexistuje spojitost, nedefinujeme žádný vztah. 1:1 Jedné větě z první tabulky odpovídá právě jedna věta z druhé tabulky. Obě tabulky jsou obvykle sloučeny do jedné tabulky. Důvodem k rozdělení na dvě tabulky může být:» Struktura sloučené tabulky by byla příliš složitá.» Stupeň utajení je u tabulek různý. Např. v tabulce Personal máme uvedena data zveřejňovaná na webu, v tabulce Kontakty budou také data pro jednotlivé zaměstnance, avšak dostupná pouze řídícím pracovníkům firmy. Věty tabulky Personal a Kontakty bude možné spojit prostřednictvím pole E_mail (viz kap. 3.2). V našem případě se v databázi firmy Encián vazba 1:1 nevyskytuje. 1:N Jedné větě z první tabulky odpovídá žádná, jedna či více vět z druhé tabulky. Naopak větě z druhé tabulky odpovídá právě jedna věta z první tabulky. V našem případě je takový vztah např. mezi tabulkami Oddělení a Personal. V každém oddělení může být zaměstnáno více zaměstnanců, každý zaměstnance je však zaměstnán právě v jednom oddělení. M:N Jedné větě z první tabulky může odpovídat více vět z druhé tabulky. Také k jedné větě z druhé tabulky může odpovídat více vět z první tabulky. V našem případě bude takový vztah mezi tabulkami Personal a Cesty. Zaměstnanec mohl vyjet na více služebních cest. Na jednu služební cestu mohlo jet více zaměstnanců. V databázi je vhodné vytvořit můstkovou tabulku, která převede jednu vazbu M:N na dvě vazby 1:M a 1:N. V našem případě vytvoříme tabulku Výjezdy, která bude ve vazbě 1:M k tabulce Personal a ve vazbě 1:N k tabulce Cesty. Ve výsledku dotazů využívajících relace jsou vypisovány pouze kombinace spojení vět, které mají shodné propojující jedno či více polí. Pomocí typu spojení můžeme vypisovat i věty, které nemají protějšek ve vybrané spojované tabulce. V případě relace tabulky Personal a Oddělení můžeme tak využít tři typy spojení: Vybereme pouze kombinace, v nichž jsou spojená pole Oddělení z tabulek Personal i Oddělení shodná. Vybereme i kombinace obsahující věty z tabulky Personal, která nemají spojení v tabulce Oddělení, tj. zaměstnance, kteří nejsou zařazeni do žádného oddělení nebo do oddělení, které není uvedeno v tabulce Oddělení. Vybereme i kombinace obsahující věty z tabulky Oddělení, které nemají spojení v tabulce Personal, tj. oddělení, do nichž nejsou zařazeni žádní zaměstnanci Někdy se zkoumají ještě další stupně normální formy: Boyce-Coddova normální forma (BCNF) a pátá normální forma. 17 Varianta oddělení s nevyplněnou zkratkou oddělení nemůže nastat, neboť v tabulce Oddělení je pole Oddělení klíčovým polem. Pro úplnost dodejme, že není možné zadat typ spojení, které by do výsledků zahrnovalo nespojené věty z obou tabulek Personal a Oddělení současně.

25 Kapitola 2: Relace 25 Referenční integrita ENC Pro jednotlivou relaci můžeme zajistit v databázi referenční integritu. Můžeme tak např. zabezpečit, abychom nemohli vložit v tabulce Personal pro zaměstnance oddělení, které není uvedeno v tabulce Oddělení. Referenční integrita hlídá všechny souvislosti: V tabulce Personal:» Nemůžeme vložit nového zaměstnance s neexistujícím oddělením.» Nemůžeme změnit oddělení u stávajícího zaměstnance, pokud upravené oddělení neexistuje. V tabulce Oddělení:» Nemůžeme změnit zkratku oddělení, pokud je do oddělení zařazen alespoň jeden zaměstnanec.» Nemůžeme odstranit oddělení, pokud je do oddělení zařazen alespoň jeden zaměstnanec. Úpravy dat v tabulce Oddělení můžeme modifikovat:» Při povolení Aktualizace souvisejících polí v kaskádě můžeme změnit zkratku oddělení, změna se promítne do vět všech zaměstnanců změnou zkratky názvu jejich oddělení.» Při povolení Odstranění souvisejících polí v kaskádě můžeme odstranit oddělení, z tabulky Personal budou odstraněni zaměstnanci oddělení odstraňovaného v tabulce Oddělení. 2.2 Základní relace v databázi Encián (ENC) Abychom nemuseli relace doplňovat do dalších dotazů a abychom udrželi integritu dat, doplníme do databáze Encián relace včetně referenční integrity. Nejprve doplníme relaci tabulek Personal a Oddělení: V kartě DATABÁZOVÉ NÁSTROJE ve skupině Zobrazit či skrýt klepneme do tlačítka Vztahy. V dialogovém okně Zobrazit tabulku poklepeme na tabulku Personal a potom na tabulku Oddělení. Dialogové okno Zobrazit tabulku zavřeme klepnutím do tlačítka Zavřít. Pole Oddělení z tabulky Oddělení táhneme na pole Oddělení v tabulce Personal. Zobrazí se dialogové okno Upravit relace, v němž zaškrtneme pole Zajistit referenční integritu (viz obr. 2-1). Klepneme do tlačítka Vytvořit. OBR. 2-1: DIALOGOVÉ OKNO UPRAVIT RELACE Ukládání relací Pro relace se otevřela aplikační karta Návrh, kterou zavřeme klepnutím do tlačítka Zavřít ve skupině Vztahy. Relace se ukládají v okamžiku jejich definování či úprav automaticky, neukládá se však rozložení tabulek v diagramu relací, proto musíme ještě potvrdit změny v rozložení relací tlačítkem Ano. Do tabulky Personal doplníme nového zaměstnance, Svetly.Ondrej, příjmení: Světlý, místnost: nevyplníme, oddělení: PRG. Do tabulky Personal doplníme dalšího zaměstnance, Smetana.Milan, příjmení: Smetana, místnost: 16, oddělení: PRO (propagace). Po odeslání oddělení se zobrazí chybové hlášení Nelze přidat nebo změnit záznam, protože je vyžadován související záznam v tabulce Oddělení. Klepneme do tlačítka OK. Klávesou Delete umažeme oddělení PRO a odesláním ukončíme vložení věty Milana Smetany 18. Do tabulky Oddělení doplníme nové oddělení PRO s vysvětlivkou reklama. 18 Stisknutím klávesy Esc bychom ztratili obsah celé rozepsané věty.

26 Kapitola 2: Relace 26 Vnořený datový list Místnosti Duplikace hodnoty z předchozí věty Všimněme si, že za voličem řádku je rozbalovací tlačítko, kterým můžeme ve vnořeném datovém listu k větě z tabulky Oddělení zobrazit odpovídající věty tabulky Personal (pracovníky, kteří patří do daného oddělení). Využití vnořeného datového listu umožnilo definování primárního klíče v tabulce Oddělení a relace tabulky Personal a Oddělení včetně referenční integrity. Díky primárnímu klíči jsou věty v tabulce Oddělení zobrazeny v pořadí dle hodnoty primárního klíče. Vrátíme se do tabulky Personal, kde do věty Milana Smetany doplníme oddělení PRO. 19 Oddělení reklamy má však označení REK. Pokusíme se změnit hodnotu pole Oddělení v tabulce Oddělení z PRO na REK. Při přechodu na další větu se zobrazí chybové hlášení Záznam nelze odstranit nebo změnit, protože tabulka Personal obsahuje související záznamy. Klepneme do tlačítka OK a vzdáme se změny hodnot v rozepsané větě klávesou Esc. Zavřeme tabulku Oddělení. 20 Otevřeme znovu relace, když v kartě DATABÁZOVÉ NÁSTROJE ve skupině Zobrazit či skrýt klepneme do tlačítka Vztahy. Poklepeme na relaci mezi tabulkami Personal a Oddělení. V dialogovém okně Upravit relace zaškrtneme pole Aktualizace souvisejících polí v kaskádě. Práci s oknem ukončíme klepnutím do tlačítka OK a zavřeme okno relací. V tabulce Oddělení změníme hodnotu PRO na REK. Změna se promítne do všech (v našem případě jedné) vět v tabulce Personal. V tabulce Oddělení se pokusíme odstranit větu REK. Označíme ji klepnutím do voliče záznamů na začátku řádku věty a stiskneme klávesu Delete. Access nás upozorní, že větu nelze smazat hlášením Záznam nelze odstranit nebo změnit, protože tabulka Personal obsahuje související záznamy. Zavřeme tabulku Oddělení. Ve vztazích upravíme relaci mezi tabulkami Personal a Oddělení. Tentokrát zaškrtneme pole Odstranění souvisejících polí v kaskádě. V tabulce Oddělení odstraníme větu REK. Varovné hlášení o odstranění jednoho záznamu odsouhlasíme. V tabulce Personal se odstraní věta Milana Smetany. Ve vztazích potlačíme zaškrtnutí pole Odstranění souvisejících polí v kaskádě. Do tabulky Oddělení doplníme větu oddělení reklamy a do tabulky Personal větu Milana Smetany. Do databáze doplníme třetí tabulku Místnosti, v níž pro každou místnost budeme zaznamenávat: popis jejího účelu, oddělení, kterému je místnost přiřazena, původní telefonní linku, která byla do kanceláře vedena před reorganizací telefonních linek, když (téměř) do každé kanceláře vedla jediná telefonní linka (do některých kanceláří nevedla žádná). Postup tvorby tabulky Místnosti: V kartě VYTVOŘIT ve skupině Tabulky klepneme do tlačítka Tabulka. Vyplněním názvů sloupců přidáme sloupce Místnost, Popis, Oddělení, Původní_telefon. Vyplníme první dvě věty: Místnost Popis Oddělení Původní_telefon 16 kancelář REK kancelář PRG 809 Při vyplňování hodnoty pole Popis shodné s hodnotou v předchozí větě zkopírujeme hodnotu z předchozí věty kombinací kláves Ctrl. Klepnutím do tlačítka Zobrazení ve skupině Zobrazení v kartě DATOVÝ LIST přejdeme po upřesnění názvu tabulky Místnosti do zobrazení návrhu. V tabulce Místnosti odstraníme pole ID a tabulku zavřeme (s uložením změn v návrhu). Otevřeme relace. 19 Věta se ukládá až přechodem na další větu či zavřením tabulky. Kdybychom ponechali kurzor na právě zapsané větě PRO tabulky Oddělení, nebylo by možné doplnit oddělení pro Smetanu, neboť by ještě nebyla uložena věta oddělení PRO. 20 Pokud bychom tabulku nezavřeli, nemohli bychom upravovat relaci tabulky. Access by při úpravě relace oznámil chybové hlášení Tabulku Oddělení nelze uzamknout, protože ji právě používá jiný uživatel nebo proces.

27 Kapitola 2: Relace 27 Podmínky referenční integrity P22a Zaměstnanci s původními telefony Typy spojení Chceme doplnit do relací další tabulku. Klepneme v kartě NÁVRH ve skupině Vztahy do tlačítka Zobrazit tabulku. V seznamu tabulek poklepeme na tabulku Místnosti a zavřeme okno Zobrazit tabulku. Ve vztazích se pokusíme doplnit relaci mezi tabulkami Personal a Místnosti. Táhneme pole Místnost z tabulky Místnosti na pole Místnost v tabulce Personal. V dialogovém okně Upravit relace zaškrtneme pole Zajistit referenční integritu a klepneme do tlačítka Vytvořit. Zobrazí se chybové hlášení Nenalezen žádný jedinečný index pro odkazované pole primární tabulky. Předpokladem zajištění referenční integrity je totiž existence primárního klíče v tabulce na straně 1 vztahu 1:N. Klepneme do tlačítka OK a v dialogovém okně Upravit relaci do tlačítka Storno. Návrh tabulky můžeme otevřít přímo ze vztahů. Klepneme pravým tlačítkem do tabulky Místnosti a z místní nabídky vybereme NÁVRH TABULKY. K poli Místnost přidáme klíč klepnutím do tlačítka Primární klíč ve skupině Nástroje v kartě NÁVRH. Zavřeme návrh tabulky s uložením změn. Znovu se pokusíme připravit relaci včetně referenční integrity. Tentokrát Access zobrazí chybové hlášení Relace musí být ve stejném počtu polí, se stejnými typy dat. Tabulku Místnosti jsme vytvořili v tabulkovém zobrazení. Access určil typy polí na základě vložených hodnot. Do označení místnosti v poli Místnost jsme zapsali zatím jen čísla, proto Access do typu pole Místnost uvedl Číslo, což je v rozporu s typem stejnojmenného pole v tabulce Personal. Chybové hlášení zavřeme klepnutím do tlačítka OK. Zavřeme dialogové okno Upravit relace tlačítkem Storno. Ze vztahů opět z místní nabídky tabulky Místnosti zobrazíme návrh tabulky, v němž změníme datový typ pole Místnost z Číslo na Text s velikostí pole 3. Zavřeme okno tabulky Místnosti s uložením změn. Znovu se pokusíme připravit relaci včetně referenční integrity. Tentokrát Access zobrazí chybové hlášení Aplikace Microsoft Office Access nemůže vytvořit tuto relaci a vynutit referenční integritu. V tabulce Personal jsou totiž uvedeni zaměstnanci s místnostmi dosud nezapsanými do tabulky Místnosti. Chybové hlášení zavřeme klepnutím do tlačítka OK. Zavřeme dialogové okno Upravit relace tlačítkem Storno. Ze vztahů opět z místní nabídky tabulky Místnosti zobrazíme návrh tabulky. Z návrhu tabulky přejdeme tlačítkem Zobrazení ve skupině Zobrazení do zobrazení datového listu. Doplníme čtyři další kanceláře: Místnost Popis Oddělení Původní_telefon 25 kancelář PRG 26 kancelář PRG 31 kancelář RED kancelář RED 813 Zavřeme tabulku Místnosti. Nyní se nám již podaří zajistit relaci včetně referenční integrity. Zaškrtneme také pole Aktualizace souvisejících polí v kaskádě. Zavřeme diagram relací s uložením rozložení. Vytvoříme nyní dotaz, který bude k zaměstnancům vypisovat původní telefony: V kartě VYTVOŘIT ve skupině Jiné klepneme do tlačítka Návrh dotazu. Klepnutím do tlačítka Zavřít zavřeme dialogové okno Zobrazit tabulku. Tabulky přidáme do podokna Diagram tažením názvů tabulek z navigačního podokna. Takto přetáhneme tabulky Personal a Místnosti. Tažením za jejich titulkové pruhy můžeme měnit později umístění tabulek v diagramu. Do diagramu se dle dříve definovaných vztahů doplnilo příslušné spojení tabulek. Poklepáním na názvy polí v diagramu umístíme do podokna Mřížka pole Příjmení, Místnost z tabulky Personal a Původní_telefon z tabulky Místnosti. Klepnutím do tlačítka Zobrazení datového listu v pravém dolním rohu okna Accessu zobrazíme výsledek dotazu. Pro 4 zaměstnance (Kolínská, Novák, Sladká, Smetana) se zobrazí jejích místnosti a původní telefony. Do výsledku bychom chtěli uvést všechny zaměstnance, tj. i ty, kteří nemají přidělenu kancelář. Klepnutím do tlačítka Návrhové zobrazení se vrátíme zpět k návrhu. V diagramu poklepeme na spojení tabulek a v dialogovém okně Vlastnosti spojení vybereme volbu Zahrnout všechny záznamy z tabulky Personal... (viz obr. 2-2).

28 Kapitola 2: Relace 28 OBR. 2-2: DIALOGOVÉ OKNO VLASTNOSTI SPOJENÍ P22b Místnosti se zaměstnanci Import dat z Excelu ENC xlsx ENC Ve výsledku dotazu je nyní uvedeno 5 zaměstnanců včetně Světlého, který neměl přiřazenu kancelář. Dotaz uložíme pod názvem P22a Zaměstnanci s původními telefony. Zkusme změnit ještě typ spojení na Zahrnout všechny záznamy z tabulky Místnosti... Ve výsledku bude uvedeno 6 vět, avšak 2 věty bez vyplněných sloupců. Doplníme proto do návrhu ještě pole Místnost z tabulky Místnosti. Vidíme, že do seznamu místností (jedna místnost může být zastoupena více větami) přibyly i místnosti neobsazené žádným zaměstnancem (25 a 26). Typ spojení lze v návrhu dotazu měnit. V novém návrhu dotazu se přebírá ze vztahů. Je proto vhodné ve vztazích nastavit častější typ spojení. V našem případě ve vztazích nastavíme typ Zahrnout všechny záznamy z tabulky Personal... (Poklepeme na relaci, v okně Upravit relace klepneme na tlačítko Typ spojení.) Typ spojení je znázorněn v diagramu dotazu i ve vztazích šipkou. 2.3 Import dat z Excelu do databáze Encián (ENC) Relace je vhodné definovat v databázi dříve, než vložíme data tak, abychom včas pohlídali referenční integritu. Pozdější doplňování vztahů může narazit na nekonzistentnost dat, její odstranění může být pracné. Často přechází uživatelé na řešení v databázovém systému z řešení evidence v tabulkovém programu Excel. V Excelu je možné ukládat data ve formě dílčích tabulek, které však lze jen stěží a nepružně zpracovávat v jejich vztazích (relacích). Přechod na zpracování v Accessu může proto výrazně zjednodušit zpracování dat. V našem případě byla data firmy Encián původně uchovávána v sešitu Excelu. Každá z 15 tabulek byla zaznamenána v samostatném listu. Na prvním listu Tabulky je seznam tabulek uspořádaný do pěti skupin tabulek: I. Lidské zdroje (modré listy): Personal, Oddělení II. Odběratelé (červené listy): Podniky, Stadia, NACE, Oddíly_sekce, Sekce III. Prodeje (zelené listy): Faktury, Licence, Programy IV. Služební cesty (fialové listy): Cesty, Výjezdy V. Inventář (oranžové listy): Místnosti, Majetek_typy, Majetek_umístění Barvy jsou pro přehlednost použity pro záložky listů (barvy karet) a pozadí buněk v listech. Založíme novou databázi, do níž budeme později data importovat. Klepneme do tlačítka Office a zadáme příkaz NOVÁ. Zvolíme vhodné umístění, do pole název souboru zadáme Encian. Vybereme novou prázdnou databázi. V nové databázi zavřeme prázdný návrh tabulky. Postupně importujeme všech 15 tabulek: V kartě EXTERNÍ DATA ve skupině Import klepneme do tlačítka Excel. V dialogovém okně Načíst externí data Tabulka aplikace Excel klepnutím do tlačítka Procházet vybereme umístění souboru Excelu (ENC xlsx). Ve spodní části okna ponecháme vybránu volbu Importovat zdrojová data do nové tabulky v aktuální databázi. Klepneme do tlačítka OK. Zobrazí se první okno průvodce importem z tabulkového kalkulátoru. Zde můžeme vybrat importovanou část sešitu:

29 Kapitola 2: Relace 29 ze seznamu tabulek (přesněji listů): v seznamu jsou zobrazeny listy sešitu v uspořádání dle pořadí listů v Excelu, ze seznamu oblastí: v seznamu jsou zobrazeny nazvané oblasti a listy v sešitu Excelu dle abecedního uspořádání Ze seznamu tabulek vybereme list Personal a klepneme do tlačítka Další. V druhém okně průvodce zaškrtneme pole První řádek obsahuje hlavičky sloupců, první řádek tabulky bude použit jako názvy sloupců vytvářené tabulky. Klepneme do tlačítka Další. Ve třetím okně průvodce bychom mohli změnit název, datový typ jednotlivých polí nebo přeskočit při importu některá pole. V našem případě neprovedeme žádné změny a klepneme do tlačítka Další. Ve čtvrtém okně můžeme vybrat primární klíč. Do pole Vlastní primární klíč vybereme E_mail. Klepneme do tlačítka Další. V pátém okně ponecháme název tabulky převzatý z názvu listu a nezaškrtneme pole Analyzovat strukturu tabulky po importu dat. Klepneme do tlačítka Dokončit. Access provede import dat a nabídne nám možnost uložit kroky importu tak, abychom mohli později aktualizovanou tabulku importovat. V dialogovém okně Uložit kroky importu nezaškrtneme pole Uložit kroky importu, protože aktualizaci budeme provádět již jen v Accessu. Obdobně budeme importovat další tabulky: V případě tabulky Oddělení však importujeme oblast Redukovaná_oddělení. Do této oblasti není v sešitu Excelu zahrnuto oddělení programování, abychom se později naučili odstranit nekonzistentnost dat. Jako primární klíč zvolíme Oddělení. Název importované tabulky změníme na Oddělení. Pro tabulku Podniky vybereme primární klíč IČ. Pro tabulku Stadia vybereme primární klíč Stadium. Pro tabulku NACE vybereme primární klíč NACE. Pro tabulku Oddíly_sekce vybereme primární klíč Oddíl. Pro tabulku Sekce vybereme primární klíč Sekce. Pro tabulku Faktury vybereme primární klíč Faktura. Pro tabulku Licence neurčíme primární klíč, později to budou dvě pole. Pro tabulku Programy vybereme primární klíč Program. Pro tabulku Cesty neurčíme primární klíč, později to budou dvě pole. Pro tabulku Výjezdy neurčíme primární klíč, později to budou tři pole. Pro tabulku Místnosti vybereme primární klíč Místnost. Pro tabulku Majetek_typy vybereme primární klíč Typ_majetku. Pro tabulku Majetek_umístění vybereme primární klíč Inventární_číslo. Ve struktuře jednotlivých tabulek upřesníme datový typ klíčových polí a na ně navazující pole 21 : Personal: E_mail je text o velikosti pole 20. Místnost je text o velikosti 3. Oddělení je text o velikosti 3. Nadřízený je text o velikosti 20. Oddělení: Oddělení je text o velikosti pole 3. Podniky: IČ je text o velikosti 8. Stadium je text o velikosti 16. NACE1, NACE2, NACE3, NACE4, NACE5, NACE6 jsou texty o velikosti 5. Stadia: Stadium je text o velikost 16. NACE: NACE je text o velikosti 5. Oddíly_sekce: Oddíl je text o velikosti 2. Sekce je text o velikosti 1. Sekce: Sekce je text o velikosti 1. Faktury: Faktura je číslo s velikostí pole celé číslo. E_mail je text o velikosti 20. IČ je text o velikosti 8. Licence: Ve struktuře tabulky tažením za navigační pole označíme pole Program a Sériové_číslo a klepneme ve skupině Nástroje do tlačítka Primární klíč. Program je text o velikosti 3. Sériové_číslo je celé číslo. Faktura je také celé číslo. Programy: Program je text o velikosti 3. Cesty: V tabulce definujeme dva primární klíče Rok a Cesta. Rok i Cesta jsou celá čísla. 21 Nelze měnit typ či velikost pole, když bude součástí vztahu. Po importu z Excelu je délka textových polí 255.

30 Kapitola 2: Relace 30 ENC Skupiny tabulek Výjezdy: V tabulce definujeme tři primární klíče E_mail, Rok, Cesta. E_mail je text o velikosti 20 znaků. Rok a Cesta jsou celá čísla. Místnosti: Místnost je text o velikosti 3. Oddělení je text o velikosti 3 znaky. Majetek_typy: Typ_majetku je text o velikosti 30. Majetek_umístění: Inventární_číslo je dlouhé celé číslo. Typ_majetku je text o velikosti 30. Místnost je text o velikosti 3. Založíme novou kategorii objektů a roztřídíme do ní tabulky: Klepnutím pravým tlačítkem myši do titulku Navigačního podokna otevřeme místní nabídku, v níž zadáme příkaz MOŽNOSTI NAVIGACE. V levé části klepneme do tlačítka Přidat položku. Vytvoříme kategorii Skupiny tabulek. V pravé části postupně přidáme skupiny: I. Lidské zdroje II. Odběratelé III. Prodeje IV. Služební cesty V. Inventář Klepneme do titulku navigačního podokna levým tlačítkem a přejdeme ke kategorii Skupiny tabulek. Tabulky roztřídíme tažením do jednotlivých skupin tabulek. 2.4 Další relace v databázi Encián (ENC) Nyní vytvoříme relace mezi tabulkami: V kartě DATABÁZOVÉ NÁSTROJE ve skupině Zobrazit či skrýt klepneme do tlačítka Vztahy. Tažením rozmístíme tabulky do vztahů dle obr OBR. 2-3: RELACE V DATABÁZI ENCIÁN Tažením za spodní kraj můžeme přizpůsobit výšku tabulek ve vztazích. Tažením za pravý kraj můžeme tabulku zúžit nebo rozšířit. Ve všech relacích zajišťujeme referenční integritu a aktualizaci souvisejících polí v kaskádě.

31 Kapitola 2: Relace 31 Nekonzistentnost dat P23 Hledání nekonzistencí Nejprve se pokusíme připravit relaci mezi tabulkami Personal a Oddělení. Táhneme pole Oddělení z tabulky Oddělení (tj. z budoucí strany 1 vztahu 1:N) do tabulky Personal na pole Oddělení. 22 Po zaškrtnutí polí Zajistit referenční integritu a Aktualizace souvisejících polí v kaskádě a klepnutí do tlačítka OK se zobrazí chybové hlášení obsahující upozornění Data v tabulce Personal nesplňují pravidla referenční integrity. Řešíme nekonzistentnost dat: Zřejmě se vyskytují věty v tabulce Personal s vyplněným polem Oddělení, které nemá související větu v tabulce Oddělení. Potlačíme chybové hlášení klepnutím do tlačítka OK. Zrušíme zaškrtnutí pole Zajistit referenční integritu. Tlačítkem Vytvořit vytvoříme relaci bez referenční integrity. Vytvoříme dotaz, který dohledá nekonzistentní věty:» V kartě VYTVOŘIT ve skupině Jiné klepneme do tlačítka Návrh dotazu.» V dialogovém okně Zobrazit tabulku přidáme tabulky Personal a Oddělení.» Poklepáním v diagramu vybereme pole E_mail, Oddělení z tabulky Personal a Oddělení_v z tabulky Oddělení. V zobrazení datového listu se zobrazí pouze 13 z 20 zaměstnanců.» Poklepeme na spojení mezi tabulkami Personal a Oddělení a zvolíme typ spojení Zahrnout všechny záznamy z tabulky Personal... V zobrazení datového listu se zobrazí již všech 20 zaměstnanců.» Chceme zobrazit pouze problematické zaměstnance. V návrhové mřížce doplníme do sloupce Oddělení_v do řádku kritéria Null, tj. nevyplněný (viz obr. 2-4). Zobrazí se jen 7 zaměstnanců, kteří nemají spojení do tabulky Oddělení. OBR. 2-4: DOTAZ P23 HLEDÁNÍ NEKONZISTENCÍ ENC-02-05» Vidíme, že se jedná o 5 zaměstnanců oddělení PRG, Milana Smetanu z oddělení PRO a Evu Kolínskou bez oddělení.» Otevřeme tabulku Oddělení a doplníme větu PRG s názvem programování a vedoucí Kolinska.Eva. Zavřeme tabulku Oddělení.» Při opětovném zobrazení výsledku dotazu se zobrazí již jen dvě věty Evy Kolínské a Milana Smetany.» Milan Smetana má uvedeno špatné označení oddělení. Změníme přímo v dotazu hodnotu PRO na REK. Zobrazí se příslušné Oddělení_v.» Eva Kolínská nemá vyplněno pole Oddělení. Doplníme hodnotu PRG přímo do výsledku dotazu. Zobrazí se příslušné Oddělení_v.» Při opětovném zobrazení výsledku dotazu (přechodem na návrh a zpět do zobrazení datového listu) se nezobrazí již žádná věta. Dotaz zavřeme. Nyní již můžeme doplnit referenční integritu do relace Oddělení a Personal. Obdobně se pokusíme doplnit relaci včetně referenční integrity mezi tabulkami Personal a Místnosti. Referenční integritu nelze zajistit, neboť Ondřej Světlý nemá vyplněnu místnost. 22 Směr tažení není povinný, ovlivní však později číslování typu spojení.

32 Kapitola 2: Relace 32 Vícenásobná relace Relace tabulky ke stejné tabulce Relace dotazu a tabulky Dočasně mu v tabulce doplníme místnost 18. Po definování relace a doplnění referenční integrity místnost pro Ondřeje Světlého odstraníme v jeho větě v tabulce Personal. Obdobně doplníme jednoduché relace, které spojují tabulky jedním polem. (Dodržíme tažení ze strany 1 relace 1:N.) Zde se již nesetkáme s problémy. Komentář ke složitějším relacím: Dvojitá relace Výjezdy Cesty: Táhneme pole Rok z tabulky Cesty na pole Rok v tabulce Výjezdy. Zobrazí se dialogové okno Upravit relace, v němž ručně doplníme výběrem z polí druhý řádek na straně tabulky Cesty i na straně související tabulky Výjezdy. Dále postupujeme 23 stejně jako u jednoduchých relací. Relace tabulky Personal k tabulce Personal: Nadřízený pro každého zaměstnance s výjimkou ředitele Petra Nováka bude čerpán ze stejné tabulky Personal. Tabulku Personal tažením z navigačního podokna znovu umístíme do relací, bude nadepsána Personal_1. Vytvoříme relaci včetně referenční integrity z pole E_mail tabulky Personal_1 na pole Nadřízený z tabulky Personal. Relace tabulek Podniky a Oddíly_Sekce a dotazu NACE_Oddíly: Pole NACE1 chceme připojit na pole Oddíl. K tomu připravíme formou dotazu převodník mezi kódem NACE a jeho oddílem, tj. prvními dvěma znaky. Dotaz vychází pouze z tabulky NACE. Ke každému NACE vypíše jeho první dva znaky pod názvem Oddíl 24 (viz obr. 2-5). OBR. 2-5: DOTAZ NACE_ODDÍLY NACE_Oddíly Opakované spojení tabulky Dotaz NACE_Oddíly zařadíme v navigačním podokně do skupiny tabulek II. Odběratelé a tažením jej umístíme do relací. Tažením vytvoříme relaci mezi polem NACE v dotazu NACE_Oddíly a polem NACE1 z tabulky Podniky. Pro relaci s dotazem nelze zajistit referenční integritu. V relacích nejsou upraveny typy spojení, které budeme případně upřesňovat až v návrhu dotazů. 2.5 Další možnosti zobrazení vztahů Ve vztazích tabulky Podniky je vazba prvního NACE na tabulku NACE. Pokud podnik uvádí více činností, které realizuje v rámci svého podnikání, mohou být vyplněné také další kódy NACE. Také další kódy musí být v souladu s tabulkou NACE. Nemůžeme táhnout kód NACE2 z tabulky Podniky opět na kód NACE z tabulky NACE. Znamenalo by to, že požadujeme spojení kódů NACE1 a NACE2 se stejnou větou tabulky NACE, což nikdy nenastane, neboť NACE1 a NACE2 nemohou být shodné. Postup definování opakovaných spojení stejné tabulky: Tažením z navigačního podokna umístíme tabulku NACE do vztahů ještě pětkrát. Ve vztazích se zobrazí stejná tabulka s doplněnou číslicí, tj. NACE_1, NACE_2,..., NACE_5. Postupně vytvoříme relace mezi polem NACE2 a tabulkou NACE_1, mezi polem NACE3 a tabulkou NACE_2,..., mezi polem NACE6 a tabulkou NACE_5 včetně zajištění referenční integrity. Pro NACE2 a další zadáme typ spojení Zahrnout všechny záznamy z tabulky 23 Můžeme také označit v tabulce Cesty klepnutím pole Rok a s klávesou Shift pole Cesta a táhnout je na pole E_mail v tabulce Výjezdy. Potom musíme v dialogovém okně Upravit relace doplnit pole v související tabulce Výjezdy. 24 Funkci Left a nazývání výsledných sloupců podrobněji probereme v kap. 4 Dotazy.

33 Kapitola 2: Relace 33 Podniky... Výsledný stav spojení tabulky Podniky a NACE je naznačen v obr Na takové grafické uspořádání relací však v okně relací není místo. OBR. 2-6: RELACE TABULEK PODNIKY A NACE Skrytí tabulky v relacích Zobrazení tabulky v relacích Rozložení v relacích Úprava relace Nová relace Tisk relací Zobrazení doplněných relací by bylo nepřehledné. Proto po definici relací a referenční integrity skryjeme tabulku NACE. Do tabulky v okně relací klepneme a klepneme v kartě NÁVRH ve skupině Vztahy do tlačítka Skrýt tabulku nebo stiskneme klávesu Delete. Takto skryjeme tabulku NACE a duplikáty jejího zobrazení NACE_1, NACE_2,..., NACE_5. Potlačili jsme tak zobrazení tabulky NACE v relacích, relace s referenčními integritou zůstaly zachovány. 25 Spojení nezobrazená v relacích můžeme kdykoliv později zobrazit: spojení k označené tabulce tlačítkem Přímé relace ze skupiny Vztahy, spojení ke všem tabulkám tlačítkem Všechny relace ze skupiny Vztahy. Pokud do relací chceme přidávat další tabulku, můžeme využít dva způsoby: tažením tabulky z navigačního podokna do okna relací, klepnutím do tlačítka Zobrazit tabulku ve skupině Vztahy a výběrem tabulky v dialogovém okně Zobrazit tabulku, v níž můžeme vybrat tabulku a klepnout do tlačítka Přidat nebo přímo na tabulku poklepat. Relace tedy nemusí být v okně relací zobrazena. Zobrazené tabulky můžeme vhodně rozložit změnit velikosti tabulek, jejich umístění, zobrazení či skrytí tabulek. Při zavírání relací se rozložení ukládá. Rozložení můžeme vymazat klepnutím do tlačítka Vymazat rozložení ve skupině Nástroje. Relaci můžeme upravit: poklepáním na relaci nebo klepnutím do relace a klepnutím do tlačítka Upravit relace ve skupině Nástroje. Zobrazí se okno Upravit relace. Výběr relace znázorněné v okně relací vodorovnou čarou je těžší než výběr relace znázorněné šikmou čarou. Můžeme si pomoci posunutím některé tabulky tak, aby relace nebyla znázorněna vodorovnou čarou. Pokud nevybereme žádnou relaci (či nepřesně relaci s vodorovnou čarou), zobrazí se okno Upravit relace bez relace. Můžeme potom vytvořit novou relaci výběrem tabulek i spojujících polí. Novou relaci je možné také vytvořit klepnutím do tlačítka Vytvořit novou v dialogovém okně Upravit relace. Přehled relací můžeme vytisknout prostřednictvím sestavy: V kartě NÁVRH ve skupině Nástroje klepneme do tlačítka Sestava relací. Vytvoří se sestava relací. 26 V našem případě upravíme orientaci sestavy, v kartě NÁHLED ve skupině Rozložení stránky klepneme do tlačítka Na šířku. Tlačítkem Zavřít náhled ve skupině Zavřít náhled přejdeme do návrhu sestavy. Okno sestavy zavřeme bez uložení. 25 Musíme kromě zobrazení NACE_2, NACE_3,..., NACE_5 potlačit zobrazení tabulky NACE, jinak by se po opětovném otevření okna relací zobrazila nejen tabulka NACE, ale také duplikáty jejího zobrazení. 26 Podrobný výklad sestav je proveden v kap. 6 Sestavy. Podrobnosti o sestavě relací jsou uvedeny v kap

34 Kapitola 2: Relace Databáze školení (MIN) Převeďme si návrh databáze na další databázi firmy Encián: Určíme účel databáze. Firma Encián pořádá školení. Vypisuje 3 předměty, které opakuje každý semestr v několika paralelkách kurzech. Kurz se koná celý semestr. V rámci týdne se může konat ve více časových polohách daných v rozvrhu hodin školení. Jednu paralelku může učit více vyučujících zaměstnanců firmy Encián. Pro účely sledování pracovního výkonu vyučujících sledujeme počet hodin odučených v kurzu. Vyhledáme a uspořádáme požadované informace. Pro ukázku jsme shromáždili data za jeden semestr letní semestr roku Předmět jednoznačně identifikujeme čtyřznakovým identem. Paralelku označujeme jako kurz tříznakovým kódem. Každý kurz učíme 13 týdnů, tj. 52 hodin ve dvou časových polohách, tj. každou časovou polohu 26 hodin převážně odučených jediným učitelem. Data jsme uspořádali do polí tabulky Rozvrh: Ident Kurz Kapacita Doba Místnost Popis E_mail Hodin MIN st 07:30-09:00 28 školící místnost Klimova.Jana 26 MIN st 09:15-10:45 28 školící místnost Klimova.Jana 26 MIN st 11:00-12:30 28 školící místnost Kolinska.Eva 26 MIN st 12:45-14:15 28 školící místnost Kolinska.Eva 26 MIN čt 11:00-12:30 28 školící místnost Kolinska.Eva 26 MIN čt 12:45-14:15 28 školící místnost Kolinska.Eva 26 MIN pá 11:00-12:30 28 školící místnost Kolinska.Eva 26 MIN pá 09:15-10:45 28 školící místnost Kolinska.Eva 26 MIN út 11:00-12:30 28 školící místnost Kolinska.Eva 14 MIN út 11:00-12:30 28 školící místnost Skoda.Petr 12 MIN út 12:45-14:15 28 školící místnost Kolinska.Eva 14 MIN út 12:45-14:15 18 školící místnost Skoda.Petr 12 MIN út 16:15-17:45 18 školící místnost Svetly.Ondrej 26 MIN út 18:00-19:30 18 školící místnost Svetly.Ondrej 26 MIN čt 07:30-09:00 18 školící místnost Skoda.Petr 26 MIN čt 09:15-10:45 18 školící místnost Skoda.Petr 26 MIN út 07:30-09:00 18 školící místnost Skoda.Petr 26 MIN út 09:15-10:45 17 zasedací místnost Skoda.Petr 26 Zadáme primární klíče V tabulce Rozvrh bude primárním klíčem kombinace Ident, Kurz, Doba. Rozdělíme informace do tabulek. Kromě uvedené tabulky Rozvrh využíváme další dvě tabulky: Personal Struktura i obsah jsou stejné jako v databázi Encian. Předměty Ident Název Anotace MIN1 Manažerská informatika 1 Word, Excel, PowerPoint, OneNote MIN2 Manažerská informatika 2 Project, Visio, Outlook MIN3 Manažerská informatika 3 Access Normalizace Ověříme splnění normalizačních pravidel První normální forma V poli Doba jsou data, která lze rozdělit do více polí. Jednotlivé části budeme chtít později využívat zvlášť. Pole Doba proto rozdělíme na pole Den a Čas. Pro další zpracování doplníme dvě tabulky Dny a Časy:

35 Kapitola 2: Relace 35 Dny Časy Den Den_v Den_p Čas po pondělí 1 07:30-09:00 st středa 2 09:15-10:45 út úterý 3 11:00-12:30 čt čtvrtek 4 12:45-14:15 pá pátek 5 14:30-16:00 16:15-17:45 18:00-19:30 V poli Den_p je pořadí dne pro účely řazení sestav dle chronologie. Druhá normální forma Tabulka obsahuje sloupce, které nejsou závislé na celém klíči. Pole Kapacita závisí na polích Ident a Kurz, nikoliv na klíčových polích tabulky Ident, Kurz, Den, Čas. Vytvoříme tabulku Kurzy, v níž k Identu a Kurzu bude přiřazena Kapacita. Pole Kapacita naopak nebude již součástí tabulky Rozvrh. Třetí normální forma Existuje závislost mezi neklíčovými poli tabulky. Popis místnosti je závislý na poli Místnost, nikoliv na klíči věty tabulky Rozvrh (Ident, Kurz, Den, Čas). Data o místnostech proto oddělíme do tabulky Místnosti, která bude obsahovat pole Místnost (klíčové pole), Popis, Oddělení a Původní_telefon. Struktura bude tedy shodná s tabulkou Místnosti v databázi Encian. V tabulce Rozvrh zbude pouze pole Místnost. Čtvrtá normální forma Existuje multizávislost, v tabulce Rozvrh jsou dvě skupiny polí:» Ident, Kurz, Den, Čas, Místnost» E_mail, Hodin K první skupině polí je přiřazeno více hodnot druhé skupiny polí. Z tabulky Rozvrh vyčleníme tabulku Vyučující. Tabulky budou obsahovat shodná spojující pole Ident, Kurz, Den, Čas. Tabulka Rozvrh navíc bude obsahovat pole Místnost. Tabulka Vyučující bude navíc obsahovat pole E_mail a Hodin. Doplníme další tabulky. Vytvoříme relace mezi tabulkami. Evidenci chceme sledovat po semestrech. Proto doplníme do databáze tabulku Semestry se dvěma poli: Semestr (kód semestru, např. 2009L) a Semestr_v (vysvětlivka semestru, např. Letní semestr 2008/09). Pole Semestr doplníme jako další klíč do tabulek Kurzy, Rozvrh, Vyučující. OBR. 2-7: RELACE V DATABÁZI MIN (ŠKOLENÍ) Chceme vkládat vyučující z tabulky zaměstnanců firmy Encián. V návrhu použijeme tabulku Personal se stejnou strukturou jako v databázi Encian.

36 Kapitola 2: Relace 36 MIN Propojení tabulek MIN BAN V databázi vytvoříme relace dle obr V dalším výkladu vyjdeme z připravené databáze MIN (školení manažerské informatiky), v níž jsou připraveny uvedené tabulky s výjimkou tabulek Personal a Místnosti. V databázi MIN chceme využívat data z databáze Encian včetně využívání aktuálního stavu dat. Data neimportujeme, ale připravíme propojení tabulek Personal a Místnosti z databáze Encian: V kartě Externí data klepneme ve skupině Import do tlačítka Access. V dialogovém okně Načíst externí data Databáze aplikace Access vybereme pomocí tlačítka Procházet umístění souboru databáze Encian a vybereme volbu Vytvořit odkaz na zdroj dat vytvořením propojené tabulky. Klepneme do tlačítka OK. V dialogovém okně Propojit tabulky vybereme klepnutím tabulky Personal a Místnosti a klepneme do tlačítka OK. Tabulky jsou zobrazeny v navigačním podokně s ikonou tabulky se šipkou, která naznačuje propojení do jiného zdroje dat. Změny provedené v propojených tabulkách v databázi Encian se zobrazí také v databázi MIN. Změny provedené v propojených tabulkách v databázi MIN se provádějí do databáze Encian. V databázi MIN nelze měnit strukturu propojených tabulek, strukturu lze pouze prohlížet. Vložíme propojené tabulky do relací: Otevřeme relace. Tažením umístíme do diagramu relací tabulku Personal. Současně se umístila kopie zobrazení tabulky Personal_1 včetně spojující relace. Tažením umístíme do diagramu relací tabulku Místnosti. Současně se doplnila relace mezi tabulkami Personal a Místnosti. Tabulky v diagramu relací vhodně umístíme. Tažením pole Místnost z tabulky Místnosti na pole Místnost v tabulce Rozvrh vytvoříme relaci. V relaci propojené tabulky nemůžeme zajistit referenční integritu. 27 Obdobně vytvoříme relaci tažením pole E_mail z tabulky Personal na pole E_mail v tabulce Vyučující. Access ukládá umístění propojené databáze. Pokud by se změnilo, je nutné jej upřesnit v kartě DATABÁZOVÉ NÁSTROJE ve skupině Databázové nástroje klepnutím do tlačítka Správce propojených tabulek. V dialogovém okně Správce propojených tabulek můžeme vybrat současně více tabulek, jejichž umístění upřesňujeme a potom klepneme do tlačítka OK. V dalším okně vybereme umístění propojené databáze. 2.7 Databáze Bankovní účet (BAN) Vedoucí oddělení reklamy Milan Smetana analyzuje své osobní příjmy a výdaje. Pohyby na osobním účtu stahuje v rámci internetového bankovnictví do tabulky Pohyby v databázi BAN. V následující tabulce jsou uvedena data za únor 2009: Pohyb Zaúčtováno Zpracováno Částka Položka Účet Název_účtu Konst_ symbol vybráno z ATM 122 XXXXXXXXXXXX ,8 platba kartou supermarket XXXXXXXXXXXX úhrada z ČS, a.s /0800 Smetanová Jana TP k úhradě /0100 na účet v jiné bance ,2 platba kartou 0702 Čerpací stanice XXXXXXXXXXXX spoření/mzda spoření Encián Praha inkaso SIPO SIPO Česká pošta, s.p ,8 platba kartou 1402 supermarket XXXXXXXXXXXX úhrada z jiné banky /0100 MŠ Praha TP k úhradě /7990 na účet v jiné bance TP k úhradě /7990 na účet v jiné bance vybráno z ATM 201 XXXXXXXXXXXX ,4 platba kartou 2102 supermarket XXXXXXXXXXXX vybráno z ATM 122 XXXXXXXXXXXX V tabulce Vyučující tak nemůžeme přímo zajistit vkládání učitelů do pole E_mail pouze z tabulky Personal. Později (v kap. 3 Tabulky) však uvidíme, že je možné vyhledávat vyplňovanou hodnotu ze seznamu a omezit vkládané hodnoty pouze na seznam.

37 Kapitola 2: Relace 37 Pohyb Zaúčtováno Zpracováno Částka Položka Účet Název_účtu Konst_ symbol TP k úhradě /0100 na účet v jiné bance TP k úhradě /0100 na účet v jiné bance vybráno z ATM 122 XXXXXXXXXXXX za účetní položky pol.: 9 / 5.00 Kč platba kartou supermarket XXXXXXXXXXXX za vedení účtu 898 Automaty rozšířené Význam jednotlivých polí: Pohyb: Číslo pohybu, které připraví Access automaticky (tzv. automatické číslo). Pole je nutné pro navázání tabulky, která bude podrobněji analyzovat pohyb na účtu. Pohyby banka v exportu pro zákazníka jednoznačně neidentifikuje. Zaúčtováno: Datum, kdy byl pohyb zaúčtován. Zpravidla je shodné s datem zpracování. V případě platby kartou může být pohyb zpracován později, než byl zaúčtován. V případě příkazu k úhradě může být pohyb naopak zaúčtován později než zpracován. Zpracováno: Datum, kdy byl pohyb zpracován. Částka: Zaúčtovaná částka. V případě výdajů je záporná. Položka: Textové vyjádření pohybu. Některé typy pohybů zde mají další informace: vybráno z ATM 201: výběr z automatu, kde 201 je číslo automatu TP k úhradě 4: trvalý příkaz k úhradě, kde 4 je číslo trvalého příkazu Účet: Číslo účtu, na nějž je zaslána částka. V případě nákupu je zde název prodejny. V případě inkasa ze sdruženého inkasa plateb obyvatelstva (SIPO) je zde uvedeno tzv. spojovací číslo. Název_účtu: Název účtu, pokud již nebyl uveden v poli Účet. V případě poplatků za vedení účtu je zde uveden stručně způsob výpočtu v pohybu, např. pol. 9/ 5.00 Kč znamená 9 položek po 5 Kč, tj. za 45 Kč. Konst_symbol, Spec_symbol, Var_symbol1, Var_symbol2: Upřesnění platby (v tabulce je naznačeno jen pole Konst_symbol). V databázi budou další tabulky: Milan Smetana doplňuje do tabulky Detaily podrobnosti k pohybům (výdajům i příjmům). Tabulka Detaily má pouze 4 pole Pohyb (pro spojení s tabulkou Pohyby), Účel, Kategorie (umožňuje kategorizaci výdajů a příjmů), Částka. K jedné větě z tabulky Pohyby může existovat více vět v tabulce Detaily. V tabulce Kategorie budou kategorie účelů výdajů či příjmů uvedených v tabulce Detaily. V poli Charakter je hodnota výdaj nebo příjem. V tabulce Automaty je seznam automatů banky stažený z jejich webových stránek. Pro každý automat je uvedeno jeho jednoznačné číslo, město, ulice a upřesnění umístění automatu. Dále je evidována provozní doba automatu. V tabulce Příkazy jsou uvedeny trvalé příkazy k platbě Milana Smetany. Pro každý příkaz je uvedena vysvětlivka a výše platby. Vzhledem k tomu, že v tabulce Pohyby je v případě výběru z hotovosti uvedeno číslo automatu ve tvaru vybráno z ATM 123, kde 123 je číslo automatu, nelze přímo spojit tabulky Pohyby a Automaty. Za účelem spojení tabulek relací je připraven pomocný dotaz Automaty rozšířené, v němž ke každé větě z tabulky Automaty je doplněno pole Položka. V poli Položka je sečten konstantní text vybráno z ATM a hodnota pole Automat (viz obr. 2-8).... OBR. 2-8: POMOCNÝ DOTAZ AUTOMATY ROZŠÍŘENÉ

38 Kapitola 2: Relace 38 Příkazy rozšířené Obdobně je připraven dotaz Příkazy rozšířené, v němž ke každé větě z tabulky Příkazy je doplněno pole Položka. V poli Položka je sečten konstantní text TP k úhradě (včetně 4 mezer za textem) a hodnota pole Příkaz. Tabulky potom můžeme spojit relacemi dle obr OBR. 2-9: RELACE V TABULCE BAN (BANKOVNÍ ÚČET) Shrnutí 1. Je vhodné dobře promyslet návrh databáze dříve, než budeme naplňovat její obsah. Postupujeme v několika krocích: Určíme účel databáze. Vyhledáme a uspořádáme požadované informace. Rozdělíme informace do tabulek. Zadáme primární klíče. Ověříme splnění normalizačních pravidel. Vytvoříme relace mezi tabulkami. 2. První normální forma žádá, aby žádný sloupec nebylo možné dále dělit na části nesoucí samostatnou informaci. 3. Druhá normální forma žádá, aby tabulka obsahovala sloupce, které jsou závislé na celém klíči. 4. Třetí normální forma nepřipouští závislost mezi neklíčovými poli tabulky. 5. Čtvrtá normální forma nepřipouští multizávislost, při níž k hodnotě jedné skupiny polí se váže více hodnot druhé skupiny polí. 6. Existují čtyři typy relací: bez vztahu tabulek, 1:1, 1:N, M:N. 7. Relace M:N je vhodné převést na dvě vazby 1:M a 1:N s můstkovou tabulkou. 8. V základním typu spojení tabulek se vybírají kombinace vět se stejným obsahem spojujícího pole či více polí. Benevolentnější typy spojení připouštějí výběr i vět, které nemají spojení v opačné tabulce. 9. Referenční integrita hlídá souvislosti. Předpokladem zajištění referenční integrity je definování klíčových polí a výchozí konzistentnost dat. 10. Po zajištění referenční integrity není možné měnit klíčové pole v tabulce, pokud k němu existují věty v spojených tabulkách. Výjimkou je připuštění aktualizace svázaných polí v kaskádě, kdy po změně klíčového pole dojde ke změně hodnot příslušných polí ve spojených tabulkách. 11. Výjimečně lze uplatnit možnost odstranění souvisejících polí v kaskádě. V tom případě však budou odstraněny všechny související věty při odstranění věty s klíčovým polem. 12. Pokud definujeme referenční integritu v databázi s naplněnými daty, je obvykle nutné opravit nekonzistentnost dat změnou některých hodnot s využitím vhodných výběrových dotazů. 13. Tabulky je možné do databáze Accessu importovat ze sešitu Excelu. Tabulky jsou vymezeny listy nebo nazvanými rozsahy. 14. Tabulky mohou být spojeny jedním či více poli. 15. Tabulka může být spojena sama se sebou, pokud je zdrojem seznamu pro některé své pole. 16. Referenční integritu není možné definovat pro tabulky propojené z jiné databáze a ke vztahům vytvořeným z dotazů.

39 Kapitola 3: Tabulky Tabulky Tvorba tabulky Zobrazení tabulky DUV Tvorba tabulky ze šablony 3.1 Způsoby tvorby a zobrazení tabulky Tabulky jsou jedním z objektů Accessu. Jsou v nich uložena data. Vztahy mezi tabulkami jsou popsány formou relací. Tabulku můžeme vytvořit několika způsoby: ze šablony tabulky: Access nabízí několik připravených vzorových tabulek bez obsahu. vyplněním prázdné tabulky: Vyplníme obsah prázdné tabulky. Změnou názvů sloupců změníme názvy polí tabulky. Typ polí a jejich vlastnosti Access nastaví sám. úpravou návrhu tabulky: Můžeme detailně definovat pole tabulky, vlastnosti polí a tabulky. z Excelu či jiného zdroje: Tabulku můžeme importovat ze sešitu Excelu, jiné databáze Accessu nebo jiných zdrojů. jako seznam serveru SharePoint: Tabulka nemusí být uložena přímo v databázi, můžeme ji uložit na serveru SharePoint ať už vytvoříme nový tzv. seznam či využijeme na webu SharePointu dříve vytvořený seznam. Práci s tabulkou provádíme v několika zobrazeních tabulky: návrhové zobrazení: Můžeme v něm měnit strukturu, upřesňovat vlastnosti polí či celé tabulky. zobrazení datového listu: Slouží k prohlížení dat. Data můžeme v listu řadit, filtrovat, hledat v datech, doplnit základní souhrny dat (např. součty). zobrazení kontingenční tabulky: V kontingenční tabulce analyzujeme vizuálně data, v řádcích jsou varianty hodnot prvního pole (či kombinace více polí), ve sloupcích varianty druhého pole (či kombinace více polí). V tabulce jsou uvedeny shrnující hodnoty třetího pole (či více polí). zobrazení kontingenčního grafu: V kontingenčním grafu jsou graficky zobrazena data z kontingenční tabulky. 3.2 Tvorba tabulky Pro účely demonstrace různých způsobů tvorby tabulky založíme novou databázi Důvěrné (DUV), v níž budou data o zaměstnancích firmy Encián, která nechceme zveřejňovat: Klepneme do tlačítka Office zadáme příkaz NOVÁ. Klepneme do tlačítka Procházet a vybereme vhodné umístění databáze. Vyplníme název souboru DUV. Klepneme do tlačítka Vytvořit. Zavřeme tabulku Tabulka1. Postupně využijeme tlačítka ze skupiny Tabulky v kartě VYTVOŘIT. První tabulku vytvoříme na základě šablony Accessu: Klepneme do tlačítka Šablony tabulky. Nabídne se pět šablon Kontakty, Úkoly, Problémy, Události, Aktiva. Vybereme šablonu KONTAKTY. Otevřela se tabulka zatím nazvaná Tabulka1, v níž vyplníme některé sloupce v prvním řádku: Společnost: Encián Příjmení: Novák Jméno: Petr ová adresa: Funkce: ředitel Telefon do zaměstnání: Telefon domů: Mobilní telefon: Číslo faxu: nevyplněno Adresa: Cihlářská 18 Město: Praha 9 Kraj: Hl. m. Praha

40 Kapitola 3: Tabulky 40 Tvorba tabulky vyplněním prázdné tabulky Tvorba tabulky návrhem tabulky Seznam serveru SharePoint PSČ: Země: Česká republika Webová stránka: Poznámky: Absolvoval VŠE v Praze. Je testerem ECDL. Tabulku zavřeme, uložíme změny, tabulku nazveme Kontakty. Tabulku poklepáním na její název v navigačním podokně otevřeme a přejdeme klepnutím do tlačítka vpravo dole do návrhového zobrazení. Ve struktuře tabulky klepneme do řádku ID a v kartě NÁVRH ve skupině Nástroje klepneme do tlačítka Odstranit řádky. Odsouhlasíme odstranění vybraného pole a primárního klíče. Klepnutím do tlačítka Vložit řádky ve skupině Nástroje vložíme nový řádek, do nějž zapíšeme název pole E_mail a upravíme velikost pole na Do pole E_mail vložíme v první větě hodnotu Novak.Petr. Vrátíme se do návrhového zobrazení a klepnutím do tlačítka Primární klíč ve skupině Nástroje povýšíme pole na klíčové. 29 Pole umožní spojit relací 1:1 tabulku Kontakty s tabulkou Personal v databázi Encian. Návrh tabulky zavřeme s uložením změn. V tabulce Dovolené budeme evidovat dovolenou zaměstnanců. Tabulku vytvoříme z prázdné tabulky: V kartě VYTVOŘIT ve skupině Tabulky klepneme do tlačítka Tabulka. Poklepeme na název druhého sloupce a vyplníme název E_mail. Do druhého sloupce doplníme do první věty Novak.Petr. Připravíme třetí sloupec s názvem Zahájení a doplníme do první věty hodnotu Připravíme čtvrtý sloupec Dokončení a doplníme do první věty hodnotu Tabulku nazveme Dovolené. Ve struktuře tabulky odstraníme pole ID. Upravíme délku textového pole E_mail na 20. Typ polí Zahájení a Dokončení Access správně určil jako Datum a čas. Za klíčové pole prohlásíme kombinaci polí E_mail a Zahájení. V tabulce Děti budeme evidovat děti zaměstnanců. Tabulku vytvoříme v návrhovém zobrazení: V kartě VYTVOŘIT ve skupině Tabulky klepneme do tlačítka Návrh tabulky. Do prvního řádku vyplníme do názvu pole E_mail, v datovém typu ponecháme Text. Délku omezíme na 20 znaků. Do popisu vyplníme Zkrácený (uživatelské jméno). Do druhého řádku vyplníme Jméno_dítěte, v datovém typu ponecháme Text. Délku pole omezíme na 10 znaků. Do popisu vyplníme Křestní jméno dítěte. Tažením ve voliči záznamů označíme obě pole a klepneme do tlačítka Primární klíč. Klepnutím do tlačítka v pravém dolním rohu přejdeme do Zobrazení datového listu. Tabulku uložíme pod názvem Děti. Pro Petra Nováka doplníme dvě děti Lukáše a Eriku. V tabulce Úkoly budeme evidovat úkoly projektu Start, v jehož rámci proběhla rekonstrukce zasedací místnosti 18 firmy Encián na školící počítačovou místnost. Tabulku vytvoříme formou seznamu na serveru SharePoint propojenou s databází Důvěrné: V kartě VYTVOŘIT ve skupině Tabulky klepneme do tlačítka Seznamy serveru SharePoint. Nabídne se šest typů seznamu Kontakty, Úkoly, Problémy, Události, Vlastní, Existují seznam serveru SharePoint. Vybereme typ ÚKOLY. SharePoint je integrovaná platforma pro intranet i internet firmy. Předpokladem využití je instalace SharePointu na serveru 30. V rámci SharePointu je možné snadno vytvářet seznamy (databázové tabulky) a aktualizovat je prostřednictvím webového rozhraní či prostřednictvím Accessu. Z Accessu je možné seznam také vytvořit. V dialogovém okně Vytvořit nový seznam vyplníme tři pole (viz obr. 3-1): 28 Typ nově vkládaného pole lze nastavit po klepnutí do tlačítka Office a tlačítka Možnosti aplikace Access v kartě Návrháři objektů v poli Výchozí typ pole. Obdobně můžeme nastavit ve stejné kartě v poli Výchozí velikost textového pole. 29 Pole jsme mohli přejmenovat přímo při vyplňování první věty. Typ pole můžeme však měnit jen v návrhovém zobrazení. 30 K dispozici je verze Windows SharePoint Services např. ve verzi 3, která je zdarma součástí Windows Serveru Větší rozsah funkcí nabízí SharePoint Server např. ve verzi Data ukládá SharePoint do vlastní databáze nebo do databáze Microsoft SQL serveru např. ve verzi 2005.

41 Kapitola 3: Tabulky 41 OBR. 3-1: DIALOGOVÉ OKNO VYTVOŘIT NOVÝ SEZNAM Adresa webu: Zde zadáme adresu serveru, na němž je nainstalován SharePoint. Access nám nabízí naposledy použité adresy, můžeme vyplnit novou adresu. V našem případě využijeme testovací web na serveru fmv.vse.cz. Dále vyplníme název nového seznamu Ukoly a popis Úkoly projektu Start 31. Ponecháme zaškrtnuté pole Otevřít seznam při dokončení. V dalším dialogovém okně se musíme k serveru přihlásit, tj. zapsat uživatelské jméno a heslo. Na serveru se vytvoří seznam, který je propojen do databáze Accessu. Tabulka Ukoly se otevře. Vyplníme alespoň některá pole první věty: Nadpis: koncepce vybavení místnosti Priorita: (2) Normální Stav: Dokončeno Datum zahájení: Termín splnění: Tabulku Ukoly v Accessu zavřeme a přejmenujeme příkazem PŘEJMENOVAT z místní nabídky názvu na název Úkoly. Do databáze Accessu se propojil dále Seznam informací o uživatelích týmového webu test. Seznam Ukoly můžeme potom zobrazit ve webovém prostředí SharePointu, které čerpá z uložených dat. Můžeme upravovat věty či přidávat nové ve webovém prostředí či v Accessu. Data se ukládají v databázi SharePointu. V prohlížeči otevřeme příslušný web SharePointu (http://fmv.vse.cz/weby/test). V SharePointu přejmenujeme seznam. Ze zobrazení seznamu zadáme příkaz NASTAVENÍ, SEZNAM NASTAVENÍ. V něm zadáme v rámci skupiny Obecné nastavení odkaz Nadpis, popis a navigace. Upravíme hodnotu pole Název z Ukoly na Úkoly a klepneme do tlačítka Uložit. V SharePointu můžeme připravit účelová zobrazení Úkoly. Vytvoříme např. zobrazení Projekt, v němž budou zobrazeny námi vyplněná pole (viz obr. 3-2). OBR. 3-2: ZOBRAZENÍ PROJEKT TABULKY ÚKOLY V SHAREPOINTU 31 Název Úkoly jsme zapsali bez čárky, aby výsledná webová adresa pro práci se seznamem byla přehledná. 32 Pole Hotovo (%), Přiřazeno, Skupina úkolů. Popis. Přílohy nevyplníme.

42 Kapitola 3: Tabulky 42 Obdobně bychom mohli vytvořit vlastní seznam, který by po založení obsahoval pouze pole ID, Nadpis, Přílohy. Strukturu seznamu bychom mohli upravit v SharePointu 33. Z Accessu se můžeme propojit i na existující seznam SharePointu. Ve skupině Tabulky můžeme klepnout do tlačítka Seznamy serveru SharePoint a zadat EXISTUJÍCÍ SEZNAM SERVERU SHAREPOINT. Dále zadáme, ze kterého serveru seznam čerpáme, zda jej importujeme či propojíme. V dalším dialogovém okně se zobrazí seznam tabulek serveru, v němž můžeme zaškrtnout další tabulky k propojení či importu. Můžeme také exportovat seznam z Accessu do SharePointu. Otevřeme tabulku Děti. Na kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Seznam SharePoint. V dialogovém okně Exportovat data do seznamu SharePoint vybereme web, ponecháme název seznamu Děti, doplníme popis Děti zaměstnanců firmy Encián. Z tabulky se vytvoří seznam, který se zobrazí v datovém listu SharePointu. Tabulka je v tomto případě exportována, není propojena s tabulkou Accessu. Pozdější změny seznamu SharePointu se nepromítnou do Accessu ani naopak. ENC Návrhové zobrazení V kap. 1 jsme se nezabývali detailně strukturou tabulek. Strukturu tabulek jsme tvořili převážně importem z Excelu. Upřesněme pro ilustraci definici struktury tabulky Personal z databáze Encian. Otevřeme databázi Encian, v navigačním podokně klepneme pravým tlačítkem do tabulky Personal a z místní nabídky vybereme NÁVRHOVÉ ZOBRAZENÍ (nebo otevřeme tabulku a klepneme vpravo dole do tlačítka Návrhové zobrazení). Struktura tabulky se zobrazí ve třech sloupcích (v obr. 3-3 jsou již provedeny úpravy struktury tabulky): OBR. 3-3: STRUKTURA TABULKY PERSONAL 33 V SharePointu můžeme upravit i strukturu seznamu Úkoly. Seznam měl však již při založení připravena pole typická pro úkoly.

43 Kapitola 3: Tabulky 43 Definice pole Velikost textového pole Název pole: Název pole se může skládat až z 64 znaků (písmen, číslic, mezer, pomlček). Pokud název obsahuje mezery, je vhodné (z důvodu pozdějších složitějších výrazů tvořených z polí) nahradit je podtržítky. Datový typ: Typ značně ovlivňuje způsob uložení dat v databázi a nabídku operací, které lze s polem později provádět. Typ zapíšeme (většinou stačí zapsat první písmeno) nebo vybereme z nabídky, kterou zobrazíme klepnutím do tlačítka na konci sloupce v řádku příslušného pole. Access nabízí několik datových typů: Text: Používá se pro text a čísla, s nimiž nebudou prováděny výpočty. Délka textu může být maximálně 255 znaků. Memo: Dlouhý text, který může být formátován. Délka textu je prakticky neomezená (1 024 milióny znaků). Podle pole typu Memo nelze řadit. Číslo: Číslo (zejména, jsou-li s ním prováděny výpočty). Měna: Modifikace číselné hodnoty. Zobrazuje navíc měnovou jednotku. 34 Automatické číslo: Je automaticky doplňováno Accessem při vložení nové věty. Používá se ke generování hodnoty primárního klíče. Pokud později větu odstraníme, číslo již není použito, řada není souvislá. Datum a čas: Kalendářní datum a čas. Datum se ukládá jako sériové číslo dne (pořadí od počátku 20. století, přesněji počet dnů, které uplynuly od ), čas se ukládá jako desetinná část dne (zlomek 24 hodin). Zabraňuje vložení neexistujícího data. Umožňuje výpočty. (Např. rozdílem dvou dat je počet dní mezi daty.) Ano/ne: Připouští uložení hodnoty pouze ano nebo ne. Objekt OLE: Do pole je možné vložit objekt jiného programu. Hypertextový odkaz: Používá se k uložení hypertextových odkazů. Adresa odkazu se skládá ze čtyř částí oddělených mřížkami:» zobrazený text,» adresa,» podadresa,» nápovědný text. Pokud je uvedena jen jedna část, je považována za zobrazený text i adresu. Příloha: Umožňuje uložit do věty soubory, např. fotografie. Průvodce vyhledáváním: Nejedná se o datový typ. Spouští Průvodce vyhledáváním, který umožňuje vytvořit pole se seznamem k vyhledání hodnot v jiné tabulce či výsledku dotazu. Popis: Popis není povinný, usnadňuje porozumění významu polí. Popis má význam pro tvůrce databáze (pozdější změny struktury tabulky) i pro uživatele (popis je zobrazován ve stavovém řádku Accessu). Každé pole má ve spodním podokně definovány vlastnosti. Přesun kurzoru do spodní části lze provést klepnutím myší nebo stisknutím klávesy F6. 35 Různé typy polí mají dostupné různé vlastnosti (viz obr. 3-4). K jednotlivým vlastnostem: Velikost pole pro textové pole udává počet znaků, který maximálně připouštíme vyplnit v poli. Typ pole a jeho vlastnosti tak zpřesňují data ukládaná do tabulek. V tabulce Personal zadáme hodnoty Velikost pole: E_mail: 20 Příjmení: 15 Místnost: 3 Titul1: 10 Titul2: 7 Oddělení: 3 Jméno: 10 Pohlaví: 1 Nadřízený: 20 V případě nedostatku místa pro texty můžeme velikost textového pole později zvětšit. Naopak zmenšení velikosti může vést k utržení konců textů, tj. ke ztrátě již vložených dat. Minimální únosnou velikost textového pole v poli s naplněnými větami můžeme zjistit dotazem, v němž vytvoříme sloupec Délka:Len(Pole) seřazený sestupně. 34 Měnová jednotka je převzata z nastavení Windows. Lze ji tedy změnit příkazem START, NASTAVENÍ, OVLÁDACÍ PANELY, poklepáním na ikonu Místní a jazykové nastavení. V dialogovém okně Místní a jazykové nastavení v kartě Formáty klepneme do tlačítka Vlastní nastavení tohoto formátu. Měna se nastavuje v kartě Měna v poli Symbol měny. 35 Dalším stisknutím klávesy F6 se přesune kurzor do navigačního podokna, dalším stisknutím se přesune do pásu karet. Teprve následujícím stisknutím se vrátí zpět do podokna vlastností tabulky.

44 Kapitola 3: Tabulky 44 OBR. 3-4: VLASTNOSTI DLE TYPU POLÍ Vlastnost Text Memo Číslo Velikost pole Nové hodnoty Formát Přesnost * Měřítko * Počet desetinných míst Vstupní maska Titulek Výchozí hodnota Ověřovací pravidlo Ověřovací text Je nutno zadat Povolit nulovou délku Indexovat Komprese kódu Unicode Režim IME Režim sentence IME Inteligentní značky Zarovnání textu Zobrazit výběr data Pouze přidat Formát textu * pouze pro desetinná čísla Měna Autom. číslo Datum a čas Ano/ne Objekt OLE Hypertext Příloha Velikost číselného pole Velikost pole pro číslo udává rozsah velikosti a přesnosti čísla dle obr OBR. 3-5: VARIANTY VELIKOSTI POLE TYPU ČÍSLO Velikost pole Rozsah Desetinných míst Velikost Bajt <0;255> 0 1 byte Celé číslo < 32768;32767> 0 2 byty Dlouhé celé číslo < 2,1*10 9 ;2,1*10 9 > 0 4 byty Jednoduchá přesnost < 3,4*10 38 ;3,4*10 38 > 7 platných číslic 4 byty Dvojitá přesnost < 1,8*10 9 ;1,8*10 9 > 15 platných číslic 8 bytů Desetinné číslo < 9,9*10 27 ;9,9*10 27 > 12 bytů Menší velikost pole urychluje práci s databází a snižuje nároky na velikost databáze. 37 V tabulce Personal upravíme Velikost pole číselného pole Úvazek na Desetinné číslo. 36 Do pole o velikosti 1 bit [vysloveno bit] by se vešla informace 0 nebo 1 (ne či ano). Pokud bychom sdružili dva bity, můžeme zaznamenat čtyři kombinace 00, 01, 10, 11, tj. obecně 2 n, kde n je počet sdružených bitů. Můžeme tak zaznamenat celá čísla <0; 2 n 1>. Byte [bajt] sdružuje 8 bitů, můžeme zaznamenat 2 8 = 256 kombinaci, tj. celá čísla v intervalu <0; 255>. Pro Velikost pole o hodnotě Celá čísla vyhrazujeme 1 ze 16 bitů na znaménko, tj. můžeme zaznamenat celá čísla z intervalu < 2 15 ; >. Zvýšením počtu bytů se zvyšuje rozsah čísla nebo jeho přesnost. Pro velká a desetinná čísla se ukládá do části bitů mantisa a do části bitů exponent. 37 Typ Jednoduchá přesnost má velikost uložení stejnou jako Dlouhé celé číslo (4 byty). Typ Jednoduchá přesnost má sice větší rozsah, avšak menší přesnost čísla. Např. číslo bude v poli typu Jednoduchá přesnost uloženo jako Pozor při modifikaci velikosti číselných polí. Je-li nově zvolené nastavení nedostatečné pro existující uložené hodnoty, zobrazí se při ukládání tabulky varování. Po jeho odsouhlasení tlačítkem Ano jsou příliš velká čísla vymazána. Při definici relací mezi tabulkami musí být odpovídající si pole stejného typu a velikosti. Navíc může být pole v jedné tabulce typu Automatické číslo, v druhé tabulce odpovídající pole typu Číslo, musí být však velikosti Dlouhé celé číslo.

45 Kapitola 3: Tabulky 45 Nové hodnoty Formát Přesnost a měřítko Počet desetinných míst Výchozí velikost pro textová a číselná pole můžeme určit klepnutím do tlačítka Office a Možnosti aplikace Access v dialogovém okně Možnosti aplikace Access v kartě Návrháři objektů v sekci Návrh tabulky v polích Výchozí velikost textového pole a Výchozí velikost číselného pole. Vlastnost Nové hodnoty je dostupná jen pro pole typu Automatické číslo. Má pouze dvě varianty vyplnění: Přírůstek: První věta má hodnotu 1, další nové věty mají hodnotu o 1 větší než předchozí věta. Při odstranění věty zůstane původní číslo nevyužito. Náhodný: Větě je přiřazena náhodná hodnota dlouhých celých čísel, tj. celá čísla z intervalu < ; >. Formát: Ovlivňuje pouze způsob zobrazení dat. Nemá vliv na to, jakým způsobem jsou data uložena. Pro některé datové typy nabízí Access předdefinované formáty, pro všechny datové typy s výjimkou typů Objekt OLE a Příloha můžeme tvořit vlastní formáty: Pro textová a memo pole nenabízí Access předdefinované formáty. Po importu z Excelu je pro textová a memo pole uveden který zobrazuje vložený text. Pro pole Titul1 zapíšeme který vypíše pro vyplněné pole text vložený do pole (zástupný pro nevyplněné pole (ať už nevyplněné nebo vyplněné řetězcem "", tj. řetězcem nulové délky) vypíše slovo žádný. Stejnou hodnotou formátu vyplníme pro pole Titul2. Pro číselná pole nabízí Access běžné formáty (obecné číslo, měna, Euro, pevný, standardní, procenta, vědecký). 38 Pro pole Úvazek vybereme formát procenta. V zobrazení datového listu jsou potom zobrazeny hodnoty pole Úvazek vynásobené 100 a doplněné znakem %. Do pole nadále vkládáme hodnoty ve tvaru 1 při plném úvazku, můžeme však také zadat 100 %, které Access uloží jako hodnotu 1. Pro pole typu Ano/ne Access nabízí tři způsoby zobrazení hodnoty (true/false, ano/ne, zapnuto/vypnuto). Abychom mohli ověřit funkčnost formátu, je nutné v kartě Vyhledávání zvolit v poli Zobrazit ovládací prvek hodnotu Textové pole. V tabulce Personal chceme měnit barvu pole Oprávnění podle zadaných hodnot. Zadáme proto formát ;"oprávněn"[zelená];"neoprávněn"[červená] (včetně počátečního středníku). Parametr před středníkem není nikdy funkční, po středníku zadáváme text, který se zobrazí při hodnotě ano, po dalším středníku text zobrazený při hodnotě ne. Navíc jsme doplnili barevné odlišení hodnot. Vlastnosti Přesnost a Měřítko lze zadat pouze pro desetinná čísla. Přesnost udává celkový počet číslic napravo i nalevo od desetinné čárky, které lze ukládat. Měřítko upřesňuje počet číslic, které lze ukládat napravo od desetinné čárky. Pro číselné pole Úvazek zadáme hodnotu Přesnosti 4, Měřítka 3. Nemůžeme potom vložit dvou a víceciferná čísla (Access ohlásí chybu) ani čísla s větším počtem desetinných míst než 3 (Access další číslice neakceptuje). Formát procent ovlivňuje pouze zobrazování, můžeme proto vložit úvazek jen s přesností na desetiny procent a to nejvýše 999,9 %. Bohužel při změně Úvazku z dvojité přesnosti na desetinné číslo bylo prvotně nastaveno Měřítko na 0, proto se částečný úvazek Miloše Adamce snížil z 0,5 na 0. Nyní jej zvýšíme opět na 0,5 (tj. 50 %). Počet desetinných míst: Vlastností můžeme pro vhodná číselná pole nastavit počet zobrazovaných desetinných míst. Zároveň však musíme do vlastnosti Formát vybrat Pevný nebo Procenta. Pro číselné pole Úvazek zadáme hodnotu 0, aby se procentuální vyjádření vypisovalo bez desetinné části procent. 39 Pokud bychom Úvazek nezobrazovali ve formátu procent, ale pevném, museli bychom při stejné podrobnosti zobrazení zadat do vlastnosti Počet desetinných míst hodnotu 2. Další příklady jsou uvedeny v obr Další formáty si může připravit uživatel, např. ve tvaru 0,0 nebo 0,0%. 39 Pokud chceme, aby se akceptoval počet desetinných míst nastavených ve vlastnosti Formát, musíme ponechat ve vlastnosti Počet desetinných míst nastavení automatický. (Pokud bychom zadali Formát o hodnotě 0% a Počet desetinných míst o hodnotě 2, zobrazovala by se dvě desetinná místa. Při formátu 0% a vlastnosti Počtu desetinných míst o hodnotě automatický by se zobrazovala pouze celá část procent.)

46 Kapitola 3: Tabulky 46 OBR. 3-6: VARIANTY UKLÁDANÝCH A ZOBRAZOVANÝCH HODNOT ČÍSLA Velikost pole Formát Přesnost Měřítko Desetinných míst Vložená hodnota Ukládaná hodnota Zobrazená hodnota obecné automat. 1234,1234 číslo ,1234 automat ,12 standardní* desetinné , , ,1234 číslo automat. 1234,12 pevný ,1 automat ,34% procento ,3% *Standardní formát zobrazuje mezi tisíci a jednotkami mezeru. Vstupní maska Vstupní maska: Vlastností můžeme pro textová a číselná pole usnadnit zadávání dat a kontrolovat hodnoty, které povolíme zadávat. Vstupní maska umožňuje některé vkládané znaky omezit na číslice nebo naopak na písmena, umožňuje také některé znaky automaticky vkládat, aniž by je uživatel musel editovat. Vstupní masku tvoří řetězec zástupných znaků. OBR. 3-7: ZNAKY ZASTUPUJÍCÍ JEDNOTLIVÉ POZICE VE VSTUPNÍ MASCE Povinné Nepovinné Význam 0 9 číslice nebo mezera (znaménka nepovolena) # číslice, mezera nebo znaménka L? písmeno (A až Z) A a písmeno nebo číslice & C libovolný znak nebo mezera, desetinná čárka (např. maska 0,099 automaticky po vložení první číslice vloží desetinnou čárku) > následující znaky se zobrazí jako velká písmena < následující znaky se zobrazí jako malá písmena "text" 40 zobrazí text v uvozovkách \p zobrazí písmeno za lomítkem heslo 41 místo vkládaných hodnot se zobrazují hvězdičky Na pozicích zastoupených znaky ze sloupce povinné musí uživatel zapsat stanovený znak. Na pozicích zastoupených znaky ze sloupce nepovinné může uživatel zapsat jen stanovený znak nebo pozici nevyužít. V tabulce Personal zadáme vstupní masky: E_mail: Maska ACCCCCCCCCCCCCCCCCCC umožňuje na začátku u zadat jedině písmeno nebo číslici, na dalších pozicích libovolné znaky. E_mail může být dlouhý 1 až 20 znaků. Jméno: Maska >L<L???????? umožňuje zadat ve jménu pouze písmena. Jméno může být dlouhé 2 až 10 znaků. První písmeno se automaticky zapisuje jako velké písmeno, ostatní jako malá písmena. Příjmení: Maska >L<L????????????? umožňuje zadat v příjmení pouze písmena. Příjmení může být dlouhé 2 až 15 znaků. První písmeno se automaticky zapisuje jako velké písmeno, ostatní jako malá písmena. Bohužel neexistuje zástupný znak, který by ukončil zobrazování textu velkými či malými písmeny. Nemůžeme proto např. požadovat, aby první písmeno bylo velké, další velká či malá. 40 Text bude zobrazen pouze při vkládání hodnoty. V případě, že bychom chtěli zobrazovat text v tabulce, museli bychom text vložit také do formátu. 41 Zobrazování hesla bude potlačeno pouze při vkládání hodnoty. Do formátu bychom měli zapsat vhodné potlačení zobrazení např. "*****" tak, aby heslo nebylo zobrazeno v tabulce.

47 Kapitola 3: Tabulky 47 Titulek Výchozí hodnota Ověřovací pravidlo V tabulce Podniky zadáme vstupní masky: PSČ: Maska zajistí automatické vložení mezery po třetím znaku. 42 Pole PSČ musí být textové. Access upraví vstupní masku na tvar 000\ 00. (Znak za obráceným lomítkem je zobrazen vždy jako znak, není chápán jako zástupný znak.) Telefon: Maska zajistí automatické vložení znaménka plus na začátek mezinárodního tvaru telefonního čísla, dále musíme zapsat tři číslice (např. 420 pro Českou republiku), na další pozici se vloží pomlčka, za níž musíme napsat tři trojice číslic. Access upraví vstupní masku na tvar \+000\-000\ 000\ 000 Vstupní maska může mít další dva doplňující parametry oddělené středníkem, které v našem případě neaplikujeme: Druhý parametr určuje, zda se při zadávání dat ukládají zobrazované znaky do tabulky. Použijeme-li pro tento parametr hodnotu 0, všechny zobrazované znaky (například počáteční plus ve vstupní masce telefonního čísla) se uloží spolu s hodnotou. Zadáme-li hodnotu 1 nebo ponecháme-li tuto volbu prázdnou, ukládají se pouze znaky, které byly do ovládacího prvku napsány. 43 Třetí parametr určuje znak, který se zobrazí místo mezery, do které bychom měli ve vstupní masce napsat znak. Jako třetí parametr je možné použít libovolný znak. Chceme-li zobrazit prázdný řetězec, použijeme mezeru uzavřenou v uvozovkách (" "). V tabulce Personal bychom mohli např. doplnit vstupní masku pole Jméno na tvar: >L<L????????;0;"." Pokud pro pole definujeme jak zobrazovací formát, tak vstupní masku, použije se vstupní maska při zadávání nebo úpravě dat, zatímco nastavení vlastnosti Formát určuje způsob zobrazení dat po uložení záznamu. Vlastnosti Formát a Vstupní maska mohou být i v rozporu. Např. když bychom pro Zahájení v tabulce Cesty zadali hodnoty: Formát: datum (střední) Vstupní maska: ;0;_, tj. v průvodci vstupní maskou datum (krátké). Zadávali bychom potom hodnotu a zobrazila by se hodnota 13-I-09. Titulek (využitelný pro všechny datové typy): Text, který bude použit pro nadpisy sloupců v zobrazení datového listu a bude prvotně nabídnut jako popisek pole ve formulářích a sestavách. 44 V tabulce Personal zadáme vlastnost Titulek pro pole: E_mail: , Titul1: Titul před jménem, Titul2: Titul za jménem, Oprávnění: Oprávnění fakturovat. Výchozí hodnota (využitelná pro všechny datové typy s výjimkou automatického čísla, objektu OLE a přílohy): Výchozí hodnota bude automaticky vyplněna do nových vět. (Nastavení výchozí hodnoty neovlivní již zapsaná data.) V tabulce Personal zadáme výchozí hodnotu: pro pole Pohlaví: M (muž), pro pole Úvazek: 1 (100 %, výchozí hodnota číselných hodnot je prvotně nastavena na 0). V tabulce Faktury zadáme výchozí hodnotu: pro pole Datum: =Date(), což je obecné vyjádření aktuálního data. Při vkládání dat do nové věty je prvotně vloženo aktuální datum, které můžeme přepsat. Ověřovací pravidlo (využitelné pro všechny datové typy s výjimkou automatického čísla, objektu OLE a přílohy): Při vkládání dat Access automaticky ověřuje zadané hodnoty dle typu dat, např. nedovolí zadat text do pole typu Číslo. Ověřovací pravidla mohou kontrolu zpřísnit. Klepnutím do tlačítka na konci řádku zadávání pravidla můžeme vyvolat Tvůrce výrazů 45, který usnadní zápis pravidla. Pro tabulku Personal zadáme následující ověřovací pravidla: pro pole Pohlaví: M or Z (pohlaví musí nabývat hodnotu M nebo Z), pro pole Úvazek: >=0 And <=1 (nepřipouštíme větší úvazek než 100 %). 42 Přípravu masky si lze usnadnit Průvodcem vstupní maskou, kterého lze vyvolat klepnutím do tlačítka Tvůrce na konci řádku vlastnosti Vstupní maska. Do seznamu připravených masek lze doplnit další např. masku pro zadávání telefonního čísla dle konvencí ČR. 43 Rozdíl se projeví, když později masku odstraníme. 44 Popis se na rozdíl od titulku zobrazuje ve stavovém řádku. 45 Tvůrce výrazů poznáme podrobněji při konstrukci dotazů v kap. 4.2.

48 Kapitola 3: Tabulky 48 Ověřovací text Nutnost zadat Nulová délka Indexování Pro tabulku Faktury zadáme ověřovací pravidlo: pro pole Datum: <=Date() (nutno zadat menší nebo stejné datum jako aktuální, není možné zapsat fakturu s datem pozdějším než aktuálním). Po zadání ověřovacího pravidla a uložení struktury tabulky Access může (po souhlasu uživatele) prověřit stávající obsah tabulky. Pokud některá věta nevyhovuje, Access na to upozorní. Nevyhovující věty však ani nesmaže, ani neopraví. Jestliže však nově zadaná hodnota nesplní podmínku, objeví se chybové hlášení a větu není možné uložit. Ověřovací text (využitelný pro všechny datové typy s výjimkou automatického čísla, objektu OLE a přílohy): Text chybového hlášení po nesplnění podmínky ověřovacího pravidla můžeme sami nadefinovat. Pro tabulku Personal definujeme texty: pro pole Pohlaví: Do pole Pohlaví lze zadat pouze M (muž) nebo Z (žena)! pro pole Úvazek: Do pole Úvazek lze zadat pouze hodnoty z intervalu <0;1>! Pro tabulku Faktury definujeme text: pro pole Datum: Datum faktury nesmí být pozdější než dnešní! Je nutno zadat (využitelné pro všechny datové typy s výjimkou automatického čísla a ano/ne): Volbou Ano můžeme vyžadovat vždy zadání hodnoty. Access nedovolí pokračovat v editaci další věty, pokud ponecháme pole prázdné. V tabulce Personal takto zpřísníme vstup polí Jméno a Příjmení. Pole Jméno může být obecně dočasně nevyplněné. Access rozlišuje mezi prázdnými hodnotami (nevyplněná hodnota) a texty nulové délky. Text nulové délky se zapisuje jako dvojice uvozovek "" bez mezery mezi uvozovkami. Textem nulové délky zapisujeme, že jsme neopomněli pole vyplnit, avšak vyplnili jsme je pouze textem nulové délky. Povolit nulovou délku (využitelné pro textová a memo pole a hypertextové odkazy): Možnost zakázat vyplnění pole textem nulové délky. V tabulce Personal pro pole Příjmení zadáme hodnotu Ne, aby nebylo možné vložit do pole text nulové délky. Indexovat: Indexováním (textového, číselného, datumového nebo ano/ne) pole můžeme urychlit řazení či vyhledávání dle hodnot obsahu. Jsou tři možnosti nastavení indexování: ne: Výchozí hodnota. Index se nevytvoří. ano (duplicita povolena): Vytvoří se index pro pole. ano (bez duplicity): Vytvoří se jedinečný index. Do pole nebude možné zadat duplicitní hodnoty. V tabulce Personal jsme vytvořili pro jedinečné pole E_mail primární klíč. Pole, které tvoří primární klíč, je již zbytečné indexovat. Vzhledem k tomu, že každý zaměstnanec má svou telefonní linku, aplikujeme index (bez duplicity) na pole Telefon. Zajistíme tak, abychom nevložili stejný telefon pro různé zaměstnance. Indexy zavedené v tabulce lze snadno vypsat v přehledné tabulce v samostatném dialogovém okně. Zobrazíme návrh tabulky a klepneme do tlačítka Indexy ze skupiny Zobrazit či skrýt. V tabulce indexů můžeme definovat i klíč skládající se z více položek. V tabulce Cesty zapíšeme do tabulky indexů index s názvem Cesta obsahující pole Zahájení, Dokončení a Místo (viz obr. 3-8). Nemůžeme tak zadat služební cestu, která by měla pole Zahájení, Dokončení a Místo shodné s jinou služební cestou, i když by byla v polích Rok a Cesta identifikována odlišně. OBR. 3-8: DIALOGOVÉ OKNO INDEXY

49 Kapitola 3: Tabulky 49 Komprese kódu Inteligentní značky Index doplníme také do tabulky Podniky. Zde je již index nachystán pro pole Bankovní_kód, neboť název pole obsahuje slovo kód 46. Označíme index klepnutím do voliče záznamů a odstraníme klávesou Delete. Naopak doplníme index Účet s poli Bankovní_účet a Bankovní_kód. Index bude jedinečný, čímž zabráníme vložení stejného čísla bankovního účtu v kombinaci s bankovním kódem pro dva různé podniky. Dále doplníme index Název_podniku pro pole Název_podniku. Index bude jedinečný, čímž zabráníme vložení stejného názvu pro dva různé podniky. Komprese kódu Unicode (využitelné pro textová a memo pole a hypertextové odkazy): Access používá k uložení dat v polích typu text, memo a hypertextový odkaz kódové schéma Unicode, v němž je každý znak uložen do dvou bytů ( variant) na rozdíl od kódování Latin, které ukládalo znak do jednoho bytu (256 variant). Unicode podporuje nejen základní evropské jazyky, ale také řečtinu, ruštinu, asijské jazyky. Většinou však pracujeme s běžnými písmeny (anglickými a českými) a vystačíme s uložením písmen do jednoho bytu. Je proto vhodné zapnout kompresi kódu Unicode, aby každý znak byl uložen v jednom bytu. Vlastnosti Režim IME a Režim Sentence IME řídí převod znaků a převod vět ve východoasijských verzích Windows. 47 Inteligentní značky: Inteligentní značku je možné zobrazit v situacích, kdy očekáváme návaznost dat Outlooku na data databáze Accessu. V tabulce Personal doplníme inteligentní značku ke dvěma polím: pro pole E_mail:» Klepneme na tlačítko na konci vlastnosti Inteligentní značky pole E_mail. Zobrazí se dialogové okno Inteligentní značky (viz obr. 3-9). OBR. 3-9: DIALOGOVÉ OKNO INTELIGENTNÍ ZNAČKY» Zaškrtneme inteligentní značku Jméno osoby.» V zobrazení datového listu je v pravém dolním rohu buňky u pole E_mail fialový trojúhelník. Ve větě, na níž je ukazatel myši, je u pole zobrazena inteligentní značka. Klepnutím do značky se otevře nabídka operací využívajících hodnotu aktuální věty: ODESLAT POŠTU: Otevře novou zprávu v Outlooku a vyplní v ní adresáta v poli Komu dle hodnoty pole E_mail v aktuální větě. V našem případě bychom museli rozšířit e- mail doplněním NAPLÁNOVAT SCHŮZKU: Otevře pozvánku na schůzku v programu Outlook a vyplní v ní adresáta v poli Komu dle hodnoty pole E_mail v aktuální větě. OTEVŘÍT KONTAKT: Pokusí se otevřít kontakt v Outlooku se shodou hodnoty pole E_mail a polem Celé jméno kontaktů. 46 Slova, která způsobí automaticky indexování, lze nastavit klepnutím do tlačítka Office a Možnosti aplikace Access v kartě Návrháři objektů v sekci Návrh tabulky v poli Automaticky indexovat při importu či vytváření. 47 IME (Input Method Editor) je program, který převádí stisknuté klávesy na asijské znaky a umožňuje tak zadávat do aplikací asijský text. Editor IME je součástí jazykových verzí sady Microsoft Office pro zjednodušenou čínštinu, tradiční čínštinu, japonštinu a korejštinu.

50 Kapitola 3: Tabulky 50 P33a Inteligentní značky PŘIDAT DO KONTAKTŮ: Otevře nový kontakt v Outlooku a vyplní v něm pole Celé jméno hodnotou z pole E_mail. pro pole Telefon:» Klepneme na tlačítko na konci vlastnosti Inteligentní značky pole Telefon. Zobrazí se dialogové okno Inteligentní značky.» Zaškrtneme inteligentní značku Telefonní číslo.» V zobrazení datového listu je v pravém dolním rohu u pole Telefon fialový trojúhelník. Ve větě, na níž je ukazatel myši, je u pole zobrazena inteligentní značka. Klepnutím do značky se otevře nabídka operací využívajících hodnotu aktuální věty: ZAVOLAT: Prostřednictvím Outlooku se pokusí vytočit telefonní číslo. Vytáčení funguje, pokud je počítač propojen s vhodným telefonem a propojení patřičně parametrizováno. 48 PŘIDAT DO KONTAKTŮ: Otevře nový kontakt v Outlooku a vyplní v něm pole telefon do zaměstnání hodnotou z pole Telefon. V našem případě bychom museli rozšířit telefonní linku doplněním počátečních číslic. V tabulce Cesty doplníme inteligentní značku k jednomu poli: Zahájení:» Klepneme na tlačítko na konci vlastnosti Inteligentní značky pole Zahájení. Zobrazí se dialogové okno Inteligentní značky.» Zaškrtneme inteligentní značku Datum.» V zobrazení datového listu je v pravém dolním rohu u pole Zahájení fialový trojúhelník. Ve větě, na níž je ukazatel myši, je u pole zobrazena inteligentní značka. Klepnutím do značky se otevře nabídka operací využívajících hodnotu aktuální věty: NAPLÁNOVAT SCHŮZKU: Otevře pozvánku na schůzku v programu Outlook a vyplní v ní Počáteční čas a Konec dle hodnoty pole Zahájení v aktuální větě. ZOBRAZIT KALENDÁŘ: Otevře v Outlooku kalendář v příslušném období dle hodnoty pole Zahájení v aktuální větě. Úplnější aplikaci inteligentních značek budeme demonstrovat na jednoduchém dotazu, který vychází z tabulky Personal (viz obr. 3-10): OBR. 3-10: NÁVRH DOTAZU P33A INTELIGENTNÍ ZNAČKY Zarovnání textu V návrhu dotazu můžeme klepnutím do tlačítka Seznam vlastností ve skupině Zobrazit či skrýt zobrazit vlastnosti sloupce, v němž je umístěn kurzor v podokně mřížky. K prvním dvěma sloupcům doplníme inteligentní značky Jméno osoby, k třetímu sloupci doplníme Telefonní číslo. Zarovnání textu (pro všechny datové typy s výjimkou příloh): Hodnoty polí jsou zarovnány ve sloupcích datového listu standardně dle typu pole (zleva s výjimkou čísla, měny, automatického čísla, data a času, ano/ne, které jsou zarovnány zprava). Výchozí obecné zarovnání můžeme změnit na zarovnání Vlevo, Střed, Vpravo, Rozmístit. Zarovnání Rozmístit rozmístí znaky hodnoty pole tak, aby vyplnilo celou šířku sloupce. V tabulce Personal upravíme zarovnání textu: pole Pohlaví: Střed, pole Oprávnění: Vlevo. 48 Parametrizace vytáčení se provádí ve Windows příkazem START, NASTAVENÍ, OVLÁDACÍ PANELY, Možnosti telefonu a modemu v kartě Pravidla vytáčení.

51 Kapitola 3: Tabulky 51 Výběr data Formát textu Pouze přidat Zobrazit výběr data (pouze pro datum a čas): Umožňuje potlačit zobrazení tlačítka kalendáře pro pole typu datum a čas. Klepnutím do tlačítka kalendáře se zobrazí kalendář, v němž můžeme vybrat datum. Lze v něm snadno listovat mezi jednotlivými měsíci. Formát textu (pouze pro memo): Pokud místo hodnoty Prostý text vybereme RTF, budeme moci formátovat text v poli. V tabulce Personal zadáme RTF do vlastnosti Formát textu pole Charakteristika. Poklepáním označíme charakteristiku Petra Nováka přemýšlivý. Formát můžeme měnit v kartě DOMŮ ve skupině Písmo nebo v minipanelu, který se zobrazí u pole Charakteristika. Charakteristiky pozitivní pro práci dochvilná, přemýšlivý, systematická, vynalézavý, pracovitý zvýrazníme tučně, negativní charakteristiky panovačný, nedochvilný, unavená, rozčílená zvýrazníme kurzívou. Pouze přidat (pouze pro memo a hypertextový odkaz): Pokud nastavíme vlastnost na hodnotu Ano, zaznamenává se historie hodnot pole. Historii pole zobrazíme klepnutím pravým tlačítkem myši na hodnotu pole a výběrem příkazu ZOBRAZIT HISTORII SLOUPCE. Změnou vlastnosti na hodnotu Ne historii hodnot vymažeme. V tabulce Personal nastavíme hodnotu pole Pouze přidat pro pole Charakteristika. Změníme formát charakteristiky veselá na tučný a charakteristiky smutný na kurzívu. Zobrazíme jejich historii z místní nabídky. V historii je pro každou změnu uveden čas a nová hodnota. Další vlastnosti pole můžeme upřesnit v kartě Vyhledávání. Zde můžeme určit typ ovládacího prvku, který se použije v datovém listu i nově připravovaném formuláři (viz kap. 5). Tuto vlastnosti budeme ilustrovat v tabulce Personal na poli Pohlaví (viz obr. 3-11). OBR. 3-11: VYHLEDÁVÁNÍ PRO POLE POHLAVÍ Ovládací prvek Typ zdroje řádků Zdroj řádků V řádku Zobrazit ovládací prvek můžeme vybírat ze tří možností: Textové pole: Standardní nastavení, které nenabízí další řádky parametrizace vyhledávání. Seznam: Ve formuláři se vypíše seznam dále uvedených hodnot jako nabídka pro výběr. Pole se seznamem: Ve formuláři se rozbalí seznam až po klepnutí do příslušného tlačítka. V obou dvou posledních možnostech se v zobrazení datového listu po klepnutí do tlačítka s trojúhelníkem na konci pole rozbalí seznam. Výběrem seznamu nebo pole se seznamem se zobrazí další vlastnosti: Typ zdroje řádků: V seznamu mohou být uváděny podle pole Typ zdroje řádků tři zdroje: Tabulka či dotaz: V seznamu se zobrazí pole z tabulky vybrané v řádku Zdroj řádků. Seznam hodnot: V seznamu se zobrazí hodnoty zapsané v řádku Zdroj řádků. Seznam polí: V seznamu se zobrazí seznam polí tabulky vybrané v řádku Zdroj řádků. (Tento případ je výjimečný.) Pro pole Pohlaví zobrazíme ovládací prvek seznam a vybereme zdroj řádků Seznam hodnot. Zdroj řádků: V řádku Zdroj řádků vybereme v případě volby Tabulka či dotaz nebo Seznam polí některou z tabulek či dotazů. Avšak pro pole Pohlaví vypíšeme varianty hodnoty, které nabízíme. Hodnoty oddělujeme středníky: M;Z. Hodnoty se budou nabízet při vyplňování pole. Pokud by se jednalo o víceznakové hodnoty, doplňoval by se text automaticky při vyplňování pole ve chvíli, kdy by jednoznačně zastupoval některou hodnotu ze seznamu Navíc musí být splněno Ověřovací pravidlo a dodržena vlastnost Velikost pole.

52 Kapitola 3: Tabulky 52 Vázaný sloupec Počet sloupců Hlavičky sloupců Šířka seznamu Šířky sloupců Počet řádků seznamu Omezit na seznam Vázaný sloupec: Čerpáme-li údaje z tabulky, můžeme určit, ze kterého sloupce se hodnota vyplní do pole, tzv. Vázaný sloupec. Většinou je to první sloupec, protože nejčastěji takto čerpáme primární klíč z jiné tabulky. Počet sloupců: V řádku Počet sloupců můžeme zadat, kolik sloupců ze zdrojové tabulky bude při vybírání zobrazeno v seznamu. Pokud bychom zadali více než jeden sloupec v případě zdroje daného seznamem hodnot, byly by chápány hodnoty ze zdroje řádků jako dvojice, trojice apod. (V našem případě bychom mohli zadat počet sloupců 2 a do zdroje řádků uvést M;muž;Z;žena. Ponecháme však stávající jeden sloupec zdroje.) Hlavičky sloupců: Pokud v řádku Hlavičky sloupců zadáme ano, budou se zobrazovat při vybírání hodnot nadpisy sloupců ze struktury zdrojové tabulky. (V našem případě bychom mohli zadat hodnotu ano a do zdroje řádků doplnit pohlaví;m;z. První hodnota by byla chápána jako nadpis sloupce. Ponecháme však původní stav.) Šířka seznamu: Pokud jsme vybrali ve vlastnosti Zobrazit ovládací prvek hodnotu Pole se seznamem, je dostupná vlastnost Šířka seznamu. Pokud v ní ponecháme hodnotu automatická, je seznam široký dle šířky sloupce pole. Upřesnění šířky seznamu provedeme v tabulce Personal v poli Nadřízený. Zadáme pro něj: Zobrazit ovládací prvek: Pole se seznamem, Typ zdroje řádků: tabulka či dotaz, Zdroj řádků: Personal, Počet sloupců: 4. Zobrazíme tabulku v zobrazení datového listu. Rozbalíme seznam zaměstnanců pro pole Nadřízený. Šířka seznamu je shodná se šířkou sloupce. Šířky sloupců seznamu jsou totožné. Pokud rozšíříme sloupec pole, rozšíří se i šířka seznamu a jeho sloupců. Nechceme rozšiřovat sloupce, ale pouze seznam, upřesníme další vlastnost: Šířka seznamu: 10 Proporce šířky sloupců seznamu můžeme zadat ve vlastnosti Šířky sloupců. Šířky sloupců: Ve vlastnosti Šířky sloupců můžeme zadat, jak široké budou jednotlivé sloupce seznamu hodnot. Šířky zapisujeme v centimetrech, oddělujeme od sebe středníky. Pro pole Nadřízený zadáme: Šířky sloupců: 3,5; 1,5; 2 50 Šířku posledního sloupce již nemusíme zadávat, dopočte se dle šířky seznamu. Pokud některý sloupec nechceme zobrazovat, zadáme pro něj nulovou šířku, např. v seznamu nezobrazíme Titul1, když zadáme hodnoty vlastnosti: Šířky sloupců: 3,5; 0; 2 První sloupec s nenulovou délkou je zobrazen v tabulce. Zadáme hodnoty vlastnosti: Šířky sloupců: 0; 0; 2 V tabulce je nyní zobrazena hodnota křestního jména, do tabulky se nadále ukládá E_mail. V tabulce chceme nadále zobrazit E_mail, v seznamu jej však nechceme uvést. Zadáme proto hodnoty vlastností: Šířky sloupců: 0,01; 0; 2 Šířku seznamu upravíme na 5. Počet řádků seznamu: Pro pole se seznamem lze zadat počet řádků, které se zobrazí při rozbalení seznamu. Pro pole Nadřízený změníme počet z 16 na 20 řádků, aby se v seznamu nezobrazoval svislý posuvník. Omezit na seznam: Pokud zadáme v řádku Omezit na seznam hodnotu ano, nebude možné do pole zapsat jinou hodnotu, než je uvedená ve zdroji řádků. 51 Omezení hodnot zajišťuje také referenční integrita. Můžeme tak nepřímo řešit případy, kdy referenční integritu nelze zadat (relace dotazů či propojených tabulek). V tabulce Personal doplníme vyhledávání pro pole Úvazek: 50 Access mírně modifikuje šířky sloupců na hodnoty 3,507cm;1,507cm;2cm;2cm. 51 V případě omezení vkládání hodnot na seznam pole Pohlaví je již zbytečné definovat ověřovací pravidlo typu M or Z.

53 Kapitola 3: Tabulky 53 Úpravy seznamu hodnot Zobrazit ovládací prvek: Pole se seznamem Typ zdroje řádků: Seznam hodnot Zdroj řádků: 100%; 50%; 0% Omezit na seznam: ano Nyní nemůžeme zadat jiný úvazek než úvazek uvedený v seznamu hodnot. Povolit úpravy seznamu hodnot: V průběhu editace tabulky uživatel může pocítit potřebu rozšířit seznam hodnot. V případě, že zdrojem řádků je seznam hodnot (nikoliv tabulka či dotaz) a v seznamu je jediný sloupec (vlastnost Počet sloupců má hodnotu 1), můžeme uživateli umožnit editaci seznamu hodnot. Do vlastnosti Povolit úpravy seznamu hodnot zadáme ano. Pod rozbaleným seznamem je potom tlačítko pro úpravu seznamu hodnot, které otevře dialogové okno Upravovat položky seznamů (viz obr. 3-12). OBR. 3-12: DIALOGOVÉ OKNO UPRAVOVAT POLOŽKY SEZNAMŮ Úpravy tabulky pro seznam P33b Místnosti P33c Oddělení Pole s více hodnotami V tabulce Personal doplníme možnost úpravy seznamu pro pole Úvazek. Do seznamu doplníme hodnotu 33%. V dialogovém okně můžeme také upravit výchozí hodnotu, kterou však zadáváme jako číslo, nikoliv procenta. Formulář pro úpravu položek seznamu: V případě, že je seznam generován z tabulky či dotazu, může se stát, že chceme v průběhu vkládání hodnoty doplnit či upravit zdrojovou tabulku či dotaz. V tom případě je nutné mít připraven pro editaci tabulky či dotazu formulář. V tabulce Personal doplníme vyhledávání pro pole Místnost: Zobrazit ovládací prvek: Pole se seznamem Typ zdroje řádků: tabulka či dotaz Typ zdroje řádků: Místnosti Připravíme jednoduchý formulář pro tabulku Místnosti: Zobrazíme tabulku Místnosti. V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka Formulář. Vytvoří se jednoduchý formulář s názvem Místnosti. Zavřeme formulář. Odpovíme kladně na dotaz Accessu, zda má uložit formulář, uložíme jej pod názvem P33b Místnosti. V návrhu tabulky Personal doplníme vlastnosti vyhledávání: Formulář pro úpravy položky: P33b Místnosti 52 Obdobně připravíme vkládání hodnot do pole Oddělení na základě hodnot v tabulce Oddělení s využitím formuláře P33c Oddělení. Povolit více hodnot: Pokud změníme vlastnost na hodnotu ano, nenávratně se změní pole na pole s více hodnotami. Můžeme tak do pole zadat více hodnot a realizovat tak vazbu M:N bez můstkové tabulky. 53 V tabulce Podniky doplníme před pole NACE1 pole NACE, do nějž můžeme uložit více hodnot NACE, do nějž budeme vkládat hodnoty všech činností podniku 54. Hodnoty jsou ukládány v řazení dle hodnoty, ztratí se tak význam první, druhé a dalších činností, činnosti jsou rovnocenné. Pro pole NACE jsou doplněny vlastnosti vyhledávání: 52 Pokud se tlačítko pro zobrazení formuláře nezobrazí, je nutné tabulku zavřít a znovu otevřít. 53 Access neukládá hodnoty do jednoho pole, hodnoty jsou ukládány samostatně a spravovány v systémových tabulkách. Pole s více hodnotami jsou v Accessu možná také kvůli integraci s Windows SharePoint Services, protože seznamy SharePoint podporují pole s více hodnotami. 54 Pole NACE je možné před povolením více hodnot naplnit vhodným aktualizačním dotazem z hodnoty NACE1, další činnosti musíme doplnit ručně. V databázi ENC je pole již vyplněné všemi hodnotami.

54 Kapitola 3: Tabulky 54 Zobrazené hodnoty P33d NACE4000 Průvodce vyhledáváním Vlastnosti tabulky Popis tabulky Výchozí zobrazení Ověřovací pravidlo tabulky Ověřovací text Zobrazit ovládací prvek: Pole se seznamem Zdroj řádků: NACE Počet sloupců: 2 Šířky sloupců: 1,2 cm Počet řádků seznamu: 30 Šířka seznamu: 13 cm Povolit více hodnot: ano Když nyní rozbalíme pro pole NACE seznam, můžeme zaškrtnout libovolné množství hodnot. Zobrazit pouze hodnoty zdroje řádku: Vlastnost se uplatní jen pro pole, pro něž je povoleno vkládat více hodnot. Vhodným zdrojem řádků můžeme potom omezit zobrazované hodnoty pole. V tabulce Podniky omezíme zobrazované hodnoty zadáním hodnoty vlastnosti: Zdroj řádků: P33d NACE4000 Zobrazit pouze hodnoty zdroje řádku: ano P33d NACE4000 je dotaz, kterým vybíráme pouze věty, v nichž pole NACE začíná číslicí 4 (v řádku Kritéria je ve sloupci NACE hodnota 4*). Po prohlédnutí změníme vlastnost: Zdroj řádků: NACE. Nyní v zobrazení datového listu můžeme vyhledávání a další vlastnosti polí vyzkoušet. Seznam a pole se seznamem se zatím neliší. Odlišnost bude jasná, až budeme pole vkládat do návrhu formuláře (viz kap. 5.2). Pro úplnost dodejme, že přípravu vyhledávání nám může usnadnit průvodce. Když definujeme nové pole s uvedením datového typu Průvodce vyhledáváním, průvodce nám pomůže vyhledávání parametrizovat. Výsledným datovým typem bude podle užitého zdroje seznamu některý z předchozích datových typů. Pole, jehož typ bude určen v Průvodci vyhledáváním, můžeme vložit také klepnutím do tlačítka Vyhledávací sloupec ve skupině Nástroje. Dosud jsme se zabývali vlastnostmi jednotlivých polí. Tabulka jako celek má také své vlastnosti. Zobrazíme je v samostatném podokně návrhového zobrazení, když v kartě NÁVRH ve skupině Zobrazit či skrýt klepneme do tlačítka Seznam vlastností. Vlastností tabulky je patnáct: Popis: Dokumentační popis obsahu či účelu tabulky. Zobrazuje se v navigačním podokně, když z místní nabídky názvu skupiny tabulek (např. I. Lidské zdroje) zadáme ZPŮSOB ZOBRAZENÍ, PODROBNOSTI. Pro tabulku Personal zadáme popis Zaměstnanci firmy. Výchozí zobrazení: Můžeme vybrat zobrazení, které bude využito po poklepání na název tabulky v navigačním podokně. Nabízí se datový list, kontingenční tabulka a kontingenční diagram. V nabídce není návrhové zobrazení. Kontingenční tabulku připravíme v kap. 3.5, kontingenční graf v kap Pro tabulku Personal ponecháme výchozí zobrazení Datový list. Ověřovací pravidlo: Pravidlo, které se ověřuje před uložením věty tabulky, může např. sledovat logickou souvislost obsahu polí. V databázi Encian připravíme dvě ověřovací pravidla: Pro tabulku Personal zadáme pravidlo: [Příjmení] Not Like "*á" Or [Pohlaví]="Z". (Názvy polí zapisujeme do hranatých závorek. Uvozovky není nutné psát, Access je sám doplní.) Do tabulky není nyní možné uložit větu se zaměstnancem, jehož příjmení končí na písmeno á a není žena, tj. musí platit: buď příjmení nekončí na písmeno á, nebo se jedná o ženu. 55 Pro tabulku Cesty zadáme podmínku [Zahájení] <= [Dokončení]. Do tabulky není nyní možné zapsat cestu, která byla dokončena dříve, než byla zahájena. Ověřovací text: Text, který se zobrazí při nedodržení ověřovacího pravidla tabulky. Pro tabulku Personal zadáme text: Zaměstnanec, jehož příjmení končí písmenem "á", musí být ženského pohlaví! Text se zobrazí při nedodržení pravidla až při pokusu přejít na další větu. 55 Nevylučujeme tím případ, kdy žena má příjmení, které končí na jiné písmeno než á. Funkčnost můžeme ověřit pokusem přepsat příjmení Světlý na Světlá.

55 Kapitola 3: Tabulky 55 Filtr Řazení Orientace Vnořený datový list Pro tabulku Cesty zadáme text: Zahájení musí předcházet Dokončení nebo si musí být rovny! Ověřovací pravidla jsou funkční až po jejich definování. Stávající věty v tabulce můžeme zkontrolovat klepnutím do tlačítka Testovat ověřovací pravidla ve skupině Nástroje. Filtr: Formou podmínky můžeme zadat filtr, kterým budou omezeny zobrazované věty. Obvykle filtr zadáváme v zobrazení datového listu. Po tabulku Personal zadáme filtr Pohlaví ="M". Zobrazíme tabulku v zobrazení datového listu. Filtr aplikujeme (popř. potlačíme) klepnutím do tlačítka Přepnout filtr ve skupině Seřadit a filtrovat v kartě DOMŮ nebo klepnutím do tlačítka Nefiltrováno ve spodním řádku okna tabulky. Filtrovat při zavedení: Zadáme-li hodnotu ano, aplikuje se filtr při otevření tabulky. (Výchozí hodnota je ne.) Řadit podle: Můžeme zadat formou názvu pole či seznamu polí oddělených čárkami kritérium, podle nějž budou věty řazeny. Obvykle řazení zadáváme v zobrazení datového listu. Pro tabulku Personal zadáme řazení dle polí Místnost, Příjmení. V zobrazení tabulky v zobrazení datového listu je tabulka již seřazena. Nemůžeme však potlačit řazení na rozdíl od filtrování. Můžeme tabulku seřadit podle jiného kritéria tlačítkem Vzestupně či Sestupně ze skupiny Seřadit a filtrovat nebo můžeme tlačítkem Vymazat veškerá řazení vlastnost Řadit podle anulovat. Seřadit podle hodnoty při zavedení: Zadáme-li hodnotu ne, neaplikuje se řazení při otevření tabulky. (Výchozí hodnota je ano.) Pro tabulku Personal zadáme hodnotu ne. Věty jsou řazeny podle klíčového pole. Orientace: Umožňuje změnit orientaci tabulky v zobrazení datového listu. Sloupce polí mohou být zobrazovány zprava doleva. Vlastnost je vhodné upravit pro národy zvyklé psát zprava. Název vnořeného datového listu: Vnořený (druhý) datový list je vnořen uvnitř jiného (prvního) datového listu a obsahuje data související s prvním datovým listem. Access automaticky nabízí vnořený datový list pro tabulky v relaci 1:N. Vnořený datový list otevřeme v zobrazení datového listu klepnutím do rozbalovacího tlačítka + na začátku věty. Pokud k tabulce existuje jediná relace 1:N, lze ve vlastnosti Název vnořeného datového listu zadat hodnotu auto. Pokud je k tabulce více relací 1:N, je vhodné do vlastnosti vybrat (z rozbalovacího seznamu) nejčastěji používanou tabulku. Výběr lze provést také v zobrazení datového listu. V databázi Encian lze automatické vnořené datové listy použít pro tabulky: Oddělení: K jednomu oddělení zobrazuje věty zaměstnanců tohoto oddělení. Oddíly_Sekce: K oddílu zobrazí příslušné NACE. Podniky: K podniku zobrazí příslušné faktury. V druhé úrovni ke každé faktuře zobrazí příslušné licence. Sekce: K sekci zobrazí příslušné oddíly. V druhé úrovni k oddílu zobrazí příslušné NACE. Stadia: K stadiu zobrazí příslušné podniky. V druhé úrovni k podniku zobrazí příslušné faktury. Ve třetí úrovni ke každé faktuře zobrazí příslušné licence. Faktury: Ke každé faktuře zobrazí příslušné licence. Programy: Ke každému programu zobrazí příslušné licence. Cesty: Ke každé cestě zobrazí příslušné zaměstnance. Majetek_typy: Ke každému typu zobrazí příslušná umístění dle inventárních čísel. Název vnořeného datového listu musíme upřesnit pro dvě tabulky: Personal: Z vhodných tabulek Výjezdy a Faktury vybereme Faktury. V druhé úrovni se k faktuře vypíší licence. Místnosti: Z vhodných tabulek Personal a Majetek_umístění vybereme Personal. V druhé úrovni se k zaměstnanci vypíší faktury. Ve třetí úrovni se k faktuře vypíší licence. Výběr vnořeného datového listu se provádí v dialogovém okně Vložit vnořený datový list, kde se nabízí všechny tabulky a dotazy. V spodních polích se automaticky díky relacím doplní Podřízená pole propojení a Řídící propojovací pole (viz obr. 3-13). Název vnořeného datového listu můžeme později upravit. Můžeme také znovu vybrat hodnotu auto, aby se uživatel rozhodl pro výběr tabulky do vnořeného datového listu, nebo hodnotu žádné, aby se rozbalení nenabízelo.

56 Kapitola 3: Tabulky 56 OBR. 3-13: DIALOGOVÉ OKNO VLOŽIT VNOŘENÝ DATOVÝ LIST Dceřinné propojovací pole: Pole z vnořené tabulky (např. E_mail z tabulky Faktury pro řídící tabulku Personal). Ve vnořeném datovém listu se zobrazují věty se shodou v dceřinném propojovacím polí a v řídícím propojovacím poli. Řídící propojovací pole: Pole z řídící tabulky (např. E_mail z tabulky Personal). Vnořený datový list rozevřen: Po zadání hodnoty ano se rozbalí při otevření řídící tabulky všechny věty propojené tabulky v rámci jednotlivých vět řídící tabulky. Výška vnořeného datového listu: Nastavíme maximální výšku vnořeného datového listu rozbaleného pro jednotlivé věty či pro všechny věty. Při výchozí hodnotě 0 cm výška není omezena. Příklad rozbalení více úrovní je pro tabulku Místnosti v obr OBR. 3-14: VNOŘENÉ DATOVÉ LISTY K TABULCE MÍSTNOSTI Zobrazení SharePointu Zobrazit zobrazení na webu služby SharePoint: Tabulku můžeme zobrazovat v SharePointu. K tabulce (seznamu SharePointu) se zobrazují také odpovídající další objekty dotazy, formuláře, sestavy. Pokud zadáme hodnotu vlastnosti Nezobrazovat, bude nabídka dalších objektů v SharePointu potlačena Postup publikace tabulky na web SharePointu: Tabulku exportujeme do webu SharePointu (z místní nabídky tabulky zadáme EXPORT, SEZNAM SHAREPOINT, zadáme adresu dostupného webu Odstraníme tabulku z databáze Accessu. Vytvořený seznam SharePointu propojíme do databáze Accessu (v kartě EXTERNÍ DATA ve skupině Import klepneme do tlačítka Seznam SharePoint, vybereme web a pole Vytvořit odkaz na zdroj dat vytvořením propojené tabulky) a tabulku zaškrtneme v přehledu seznamů. K tabulce vytvoříme související objekty (např. formulář v kartě VYTVOŘIT ve skupině Formuláře klepnutím do tlačítka Formulář). Databázi publikujeme na web SharePointu (tlačítkem Office, PUBLIKOVAT, SERVER SPRÁVY DOKUMENTŮ, později můžeme aktualizovat publikaci přímo tlačítkem Publikovat na web služby SharePoint nad navigačním podoknem.) U příslušného seznamu v SharePointu jsou související objekty dostupné jako samostatné zobrazení (v rozbalovací nabídce vpravo nahoře). Předpokladem využití souvisejících objektů je instalace Accessu na počítači, na němž je seznam SharePointu zobrazován.

57 Kapitola 3: Tabulky 57 Hypertextový odkaz Objekt OLE ENC Zobrazení datového listu V zobrazení datového listu doplníme cvičně do tabulky Personal 21. zaměstnance: Do pole E_mail, které je již dle titulku nadepsáno , zapíšeme Zimova.Pavla. Do pole Titul1, které je nadepsáno Titul před jménem, zapíšeme Ing. Do pole Jméno zapíšeme hodnotu pavla. Díky vstupní masce Access sám opraví první písmeno na velké P. Podtržítky Access vyznačuje, jak může být jméno dlouhé. Pole Příjmení a Titul2 (Titul za jménem) ponecháme nevyplněné. Do pole Pohlaví zapíšeme P. Access vypíše námi definované chybové hlášení (ověřovací text). Stisknutím klávesy Esc vrátíme do pole původní hodnotu M. Do pole Místnost chceme vložit hodnotu z předchozí věty Martina Zemana. Stiskneme kombinaci kláves Ctrl ", čímž zkopírujeme hodnotu 22 z předchozí věty. Do pole Telefon zapíšeme hodnotu 223. Do pole Oddělení opět kombinací kláves Ctrl " zkopírujeme hodnotu ANA z předchozí věty. Obdobně zkopírujeme hodnotu z předchozí věty do pole Nadřízený. Do pole Charakteristika zapíšeme složitější charakteristiku: Pavla je adaptabilní. V případě potřeby může pracovat také v oddělení programování nebo konzultací. Abychom text rozdělili do více řádků, zapíšeme jej v samostatném dialogovém okně Zoom, které zobrazíme stisknutím kombinace kláves Shift F2.Nejprve napíšeme neformátovaný text, nový řádek vložíme kombinací kláves Shift Enter. Potom poklepeme na slovo adaptabilní a stiskneme kombinaci kláves Ctrl B. Poklepeme na slovo programování a minipanelu formátování klepneme do tlačítka Kurzíva. Obdobně zformátujeme slovo konzultací. Práci s oknem Zoom ukončíme klepnutím do tlačítka OK. Do pole Úvazek zapíšeme 120 %. Zobrazí se ověřovací text. Klepneme do tlačítka OK a stisknutím klávesy Esc nastavíme výchozí hodnotu 100 %. Do pole Web zapíšeme odkaz na webovou stránku 57 : Internet Pavla Zímová#http://min.vse.cz/encian/zimova/index.htm##Osobní stránka První část odkazu se zobrazí v tabulce Personal, druhá část je použita jako adresa stránky, třetí část (upřesnění adresy záložkou na stránce) nevyužijeme, čtvrtá část se zobrazí v obdélníku, když se přiblížíme v tabulce k odkazu. Do pole Foto datového typu Objekt OLE nemůžeme přímo psát. Když na pole poklepáme, zobrazí se hlášení s návodem na vložení obsahu pole. Klepneme do pole pravým tlačítkem myši a z místní nabídky zadáme příkaz VLOŽIT OBJEKT. Dále vybereme typ objektu: Vytvořit nový: Můžeme vytvořit objekt pomocí některé aplikace dostupné na počítači, např. Bimap Image (Malování) 58. Vytvořit ze souboru: Můžeme převzít objekt z dříve vytvořeného souboru. Objekt může být propojen tak, aby se automaticky aktualizoval a nezabíral místo v databázi. Poklepáním na text s názvem programu můžeme kdykoliv vyvolat editaci obrázku původním programem, pokud je na počítači nainstalován. Obrázek lze odstranit klepnutím na text s názvem programu a stisknutím klávesy Delete. Do pole Oprávnění (Oprávnění fakturovat) musíme zapsat hodnotu Ano či Ne (popř. 1 či 0, True či False, Zapnuto či Vypnuto). Dle vlastnosti Formát, kterou jsme dříve definovali, se zobrazí hodnota oprávněn či neoprávněn. Zapíšeme hodnotu Ano, není možné zapsat oprávněn. Do pole Příloha nic nevkládáme. 57 Změnou typu pole Web nedošlo k vhodné transformaci webových adres, všechny je po vložení věty Pavly Zímové ručně opravíme na formát dle Pavly Zímové. Adresu editujeme přímo ve sloupci, nikoliv v dialogovém okně Zoom. Využíváme k tomu klávesy F2. Zaměstnanci s příjmením Škoda mají adresy osobních webových stránek doplněny prvním písmenem křestního jména. 58 Obrázek můžeme namalovat nebo jej můžeme do malování vložit příkazem ÚPRAVY, VLOŽIT Z. Před vložením je vhodné příkazem OBRÁZEK, ATRIBUTY zmenšit kreslený obrázek, aby jej vložený obrázek překryl. Obrázek vložíme do Accessu příkazem SOUBOR, AKTUALIZOVAT PERSONAL. Do vzorové databáze byly vloženy obrázky programem Microsoft Clip Gallery. (V galerii klipů byla vybrána kategorie Lidé a v ní vhodné obrázky. Klepnutím do obrázku a v dílčí nabídce do prvního tlačítka Vložit klip byl klip vložen.) Tím bylo dosaženo úsporného uložení obrázků, které by nebylo možné při vkládání programem Malování.

58 Kapitola 3: Tabulky 58 Výchozí hodnoty v nové větě Schránka Formát zobrazení datového listu RTF formátování Po odeslání posledního pole věty se zobrazí chybové hlášení V poli Personal.Příjmení musí být zadána hodnota. Vrátíme se proto do pole Příjmení a zapíšeme hodnotu Zímová. Po pokusu přejít na další větu např. posunem kurzoru na další řádek se zobrazí ověřovací text Zaměstnanec, jehož příjmení končí písmenem "á", musí být ženského pohlaví! Vrátíme se proto do pole Pohlaví a zapíšeme hodnotu Z. Nyní již můžeme přejít na novou větu či ukončit práci s tabulkou. Vkládání hodnoty do pole Oprávnění typu Ano/ne je poněkud nepřehledné, vkládáme totiž jinou hodnotu, než se zobrazuje. Vrátíme se proto do návrhu struktury tabulky Personal a ve vlastnosti pole Oprávnění v kartě Vyhledávání vybereme v poli Zobrazit ovládací prvek hodnotu Zaškrtávací políčko. Vrátíme se do zobrazení datového listu. Pole Oprávnění fakturovat ve větě Pavly Zímové odškrtneme klepnutím myší nebo stisknutím mezerníku. V zobrazení datového listu je přichystán výchozí stav nové (22.) věty tabulky Personal. Vyplněna jsou již pole Pohlaví a Úvazek, pro něž jsme definovali vlastnost Výchozí hodnota. Nová věta (s hvězdičkou ve voliči záznamů) není ještě součástí tabulky. Teprve po napsání prvního znaku do libovolného pole nové věty se ve voliči záznamů objeví symbol tužky. Věta není ještě zaznamenána. Teprve odesláním na posledním poli či jiným úspěšným přechodem na jinou větu či ukončením zobrazení tabulky (za splnění ověřovacího pravidla tabulky) se symbol tužky ztratí, věta je uložena. Obdobně se symbol tužky zobrazuje při pozdější úpravě věty. Pokud stiskneme klávesu Esc při editaci, ztratí se obsah upravovaného pole, při dalším stisknutí klávesy Esc se ztratí všechny změny v editované větě. Větu můžeme v průběhu její editace uložit bez přechodu na jinou větu tlačítkem Uložit ze skupiny Záznamy v kartě DATOVÝ LIST nebo kombinací kláves Shift Enter. Podívejme se nyní na nabídku karty DOMŮ, která se po přechodu do zobrazení datového listu zobrazila. Ve skupině Schránka je kromě tradičních operací se schránkou možnost zkopírovat jakoukoliv větu do nové tabulky: V tabulce Personal klepnutím do voliče záznamů označíme větu Evy Kolínské a zkopírujeme ji do schránky kombinací kláves Ctrl C nebo klepnutím do tlačítka Kopírovat. Klepneme do spodní části tlačítka Vložit a vybereme příkaz PŘIDAT. Věta ze schránky se přidá jako nová. Nebude ji však možné uložit, neboť by vznikla duplicitní hodnota primárního klíče (stejný E_mail). Klepneme do tlačítka OK a klávesou Esc se zřekneme uložení věty. Klepnutím do spouštěče dialogového okna v pravém dolním rohu skupiny Schránka zobrazíme nalevo od navigačního podokna podokno s obsahem schránek. Podokono zavřeme klepnutím do uzavíracího tlačítka. Ve skupině Písmo můžeme modifikovat formát zobrazení datového listu: Písmo, Velikost písma: Změna písma či velikosti písma pro zobrazenou tabulku. Zarovnat text (vlevo, na střed, vpravo): Změna zarovnání jednotlivého pole (sloupce). Promítá se do vlastnosti pole Zarovnání textu. Tučné, Kurzíva, Podtržení: Změna řezu písma pro zobrazenou tabulku. Barva písma: Barva písma v tabulce. 59 Barva výplně či pozadí: Barva pozadí řádků tabulky a tabulky (tj. volných řádků). Každý druhý řádek má pro lepší čitelnost jinou alternativní barvu, kterou lze nastavit tlačítkem Alternativní barva výplně či pozadí. Mřížka: Parametrizace rozsahu zobrazení mřížky v tabulce (oba směry, vodorovná, svislá, žádná). Další detailní parametry formátování datového listu (např. efekty buněk tabulky) lze zobrazit ve speciálním dialogovém okně po klepnutí do spouštěče dialogových oken v pravém dolním rohu skupiny Písmo. Modifikované parametry se ukládají v rámci ukládání rozložení tabulky. Při zavírání tabulky jsme dotázáni, zda změnu rozložení pro tabulku uložit. Ve skupině Text ve formátu RTF můžeme upravit formát textu v polích typu Memo, pokud je ve vlastnosti Formát textu hodnota RTF. Jedná se o vybraná tlačítka, která jsou 59 Podrobněji o výběru barev v kap. 5.2.

59 Kapitola 3: Tabulky 59 Operace se záznamy Souhrny Kontrola pravopisu dostupná také v minipanelu formátování (číslování, odrážky, úroveň textu, směr textu, barva zvýraznění textu). Ve skupině Záznamy jsou k dispozici různorodá tlačítka: Volba SYNCHRONIZOVAT je dostupná ve spodní části tlačítka Aktualizovat vše pro seznamy SharePointu propojené do databáze Accessu. Můžeme tak synchronizovat data aktualizovaná v Accessu a SharePointu, tj. promítnout změny provedené v seznamu SharePointu do Accessu i změny provedené v Accessu promítnout do seznamu SharePointu. Tlačítkem Nový můžeme přejít na vyplňování nové věty v tabulce. Stejného efektu dosáhneme, když klepneme v spodním řádku tabulky do tlačítka Nový (prázdný) záznam. Tlačítkem Uložit můžeme kdykoliv uložit editovanou větu, aniž přecházíme na jinou větu. Tlačítko či kombinaci kláves Shift Enter je vhodné využít při editaci vět s rozsáhlou strukturou. Tlačítkem Odstranit můžeme odstranit označenou část pole či celou větu označenou ve voliči záznamů. Celou větu můžeme bez označení ve voliči záznamů odstranit rozbalením nabídky tlačítka Odstranit a výběrem volby ODSTRANIT ZÁZNAM. Obdobně můžeme dílčí volbou ODSTRANIT SLOUPEC odstranit ze struktury tabulky pole. V tabulce Personal takto odstraníme větu Pavly Zímové. Tlačítkem Souhrny přidáme do tabulky Personal součtový řádek. Pro některé sloupce (pole) doplníme typ souhrnu: Pro pole Pohlaví, Místnost, Oprávnění vybereme POČET. Do počtu se počítají jen vyplněné věty s vyplněnou hodnotou pole, popř. s hodnotou ano. Pro pole Úvazek vybereme SOUČET. Můžeme tak snadno vyčíst, že ve firmě máme 20 zaměstnanců na celkový úvazek 17,5 (přepočtený počet pracovníků), 19 z nich má přidělenu místnost, 13 má oprávnění fakturovat. Access umožňuje kontrolu pravopisu. V tabulce Personal připravíme záměrně překlep do pole Charakteristika Evy Kolínské. Upravíme text na rozčlená a uložíme kombinací kláves Shift Enter. Tlačítkem Pravopis nebo stisknutím klávesy F7 spustíme kontrolu pravopisu: Zobrazí se hodnota Adamec.Milos. Klepneme do tlačítka Přeskakovat pole E_mail. Zobrazí se hodnota vse.cz. Klepneme do tlačítka Přeskakovat pole Web. Zobrazí se hodnota rozčlená (viz obr. 3-15) OBR. 3-15: DIALOGOVÉ OKNO KONTROLA PRAVOPISU Access nás upozorňuje, že v hlavním slovníku nenašel slovo rozčlená. Předkládá nám nabídku návrhů změny, vybereme změnu na rozčílená. Obdobně jako ve Wordu či Excelu můžeme využívat (pro celý Office) společný uživatelský slovník a definovat automatické opravy (časté překlepy, které se automaticky opraví již při psaní textu). Význam tlačítek v dialogovém okně Kontrola pravopisu:» Přeskočit: Slovo nenalezené ve slovníku je ponecháno, při příštím výskytu bude opět považováno za chybné.» Přeskakovat: Slovo nenalezené ve slovníku bude v rámci kontroly této databáze považováno za správné a při příštím výskytu nebude považováno za chybné.» Zaměnit: Slovo je zaměněno slovem uvedeným v poli Není ve slovníku. Při příštím výskytu bude opět považováno za chybné.» Zaměňovat: Slovo bude v rámci celé kontroly (tj. i ve všech dalších výskytech) zaměněno slovem uvedeným v poli Není ve slovníku.

60 Kapitola 3: Tabulky 60 Kontakty do a z Outlooku Výška řádku Vnořený datový list Skrytí sloupce Zmrazení sloupce Šířka sloupce» Přidat: Slovo bude přidáno do uživatelského slovníku. Bude tak považováno za správné při dalším použití uživatelského slovníku nejen v Accessu, ale i ve Wordu a dalších programech.» Automatické opravy: Navržená oprava bude zařazena do automatických oprav tak, aby se automaticky prováděla již při vyplňování tabulky.» Jazyk slovníku: Výběr jazyka hlavního slovníku.» Možnosti: Zobrazí dialogové okno Možnosti aplikace Access, v němž můžeme změnit parametry kontroly pravopisu a automatických oprav.» Zpět: poslední: Můžeme se zpětně vrátit k poslední již provedené změně např. při zbrklém klepnutí do tlačítka Zaměnit při rychlé kontrole pravopisu. V našem případě vybereme třetí návrh opravy a klepneme do tlačítka Zaměnit. Pro úplnost dodejme, že pokud označíme část tabulky (vybrané sloupce či řádky), bude kontrola provedena jen v označené části. Zobrazí se hodnota Ph.D. Klepneme do tlačítka Přeskakovat. Zobrazí se hlášení o dokončení kontroly pravopisu. Tlačítko Další obsahuje další operace se záznamy: Pokud máme na počítači nainstalovaný Outlook, můžeme v databázi Duv vyzkoušet přidání kontaktu z Outlooku do tabulky Kontakty:» Tabulka Kontakty musí mít vhodnou strukturu, což je v našem případě splněno, neboť jsme ji vytvářeli s použitím šablony Kontakty.» Potlačíme primární klíč v poli E_mail.» Klepnutím do tlačítka Přidat z aplikace Outlook se zobrazí dialogové okno Vybrat jména pro přidání, v němž můžeme přidat jeden či více kontaktů. Po klepnutí do tlačítka OK se kontakty načtou do tabulky Kontakty. Obdobně můžeme poslat kontakt z tabulky Kontakty, např. na ředitele Petr Nováka, do kontaktů Outlooku:» Kurzor umístíme do věty Petra Nováka v tabulce Kontakty.» Klepneme do tlačítka Uložit jako kontakt aplikace Outlook.» Zobrazí se okno s kontakty Petr Nováka připravené na uložení do Outlooku. Můžeme upravit některá pole.» Tlačítkem Uložit a zavřít kontakt uložíme do Outlooku. Tlačítkem Výška řádku můžeme zadat v bodech výšku řádku v otevřené tabulce. Zaškrtnutím pole Standardní výška můžeme nastavit původní výšku dle Accessu. Modifikovaná výška řádků se ukládá v rámci ukládání rozložení tabulky. Tlačítko Vnořený datový list nabízí 4 volby:» VNOŘENÝ DATOVÝ LIST: Zobrazí dialogové okno, v němž můžeme upřesnit tabulku, která je zobrazována ve vnořeném datovém listu. V případě tabulky Personal bychom tak mohli místo tabulky Faktury vybrat tabulku Cesty.» ODEBRAT: Nebudou zobrazována rozbalovací tlačítka pro práci s vnořeným datovým listem.» ROZBALIT VŠE: Rozbalí vnořený datový list pro všechny věty.» SBALIT VŠE: Sbalí vnořený datový list pro všechny věty. V tabulce Personal označíme klepnutím do názvu sloupec Titul1 (Titul před jménem) a klepneme do tlačítka Skrýt sloupce. Obdobně skryjeme sloupec Titul2 (Titul za jménem). Sloupce nebyly odstraněny, pouze nejsou pro přehlednost zobrazovány. Tlačítkem Zobrazit skryté sloupce zobrazíme dialogové okno se seznamem polí tabulky, v němž můžeme zaškrtnutím či nezaškrtnutím zobrazit či potlačit zobrazení jednotlivých polí. Pro tabulku Personal opět zobrazíme sloupce Titul před jménem a Titul za jménem zaškrtnutím. V tabulce Personal označíme klepnutím do názvu sloupec E_mail ( ). Klepneme do tlačítka Zmrazit. Sloupec se přesunul na začátek zobrazení a zůstává zobrazen i při pohybu vodorovným posuvníkem doprava. Takto můžeme zmrazit i další sloupce, zmrazíme sloupec Pohlaví. Přidávají se k původně zmrazeným sloupcům. Tlačítkem Uvolnit zrušíme zmrazení sloupců. Sloupec Pohlaví zůstal v původním pořadí zobrazení. Přesuneme jej za Titul za jménem tažením za jeho název. Tlačítkem Šířka sloupce můžeme nastavit v bodech šířku aktuálního sloupce. Optimální šířku dle maximální šířky obsahu lze nastavit také poklepáním na hranice sloupce.

61 Kapitola 3: Tabulky 61 Řazení a filtrování Řazení a filtrování vět se provádí rozbalením nabídky názvu sloupce a tlačítky ve skupině Seřadit a filtrovat. Chceme zobrazit pouze zaměstnance z oddělení KON, ANA a PRG a to v pořadí dle místností a dle pohlaví (ženy a potom muže): Rozbalíme nabídku názvu sloupce Pohlaví (druhé kritérium řazení), vybereme ŘADIT OD Z PO A. Rozbalíme nabídku názvu sloupce Místnost (první kritérium řazení), vybereme ŘADIT OD A PO Z. Rozbalíme nabídku názvu sloupce Oddělení. Klepnutím do volby VYBRAT VŠE zrušíme výběr všech polí. Zaškrtneme pole ANA, KON a PRG (viz obr. 3-16). OBR. 3-16: ZADÁNÍ FILTRU Klepnutím do volby TEXTOVÉ FILTRY bychom mohli využít další typy filtrů. V návrhovém zobrazení ověříme, že se nastavily vlastnosti tabulky: Filtr: ([Personal].[Oddělení] In ("ANA","KON","PRG")) Řadit podle: [Personal].[Místnost], [Personal].[Pohlaví] DESC Upravíme vlastnost: Seřadit podle hodnoty při zavedení: Ano Zavřeme tabulku s potvrzením uložení změn v návrhu. Po znovuotevření je tabulka seřazena dle místnosti a dle pohlaví, což je patrné ze šipek u rozbalovacího tlačítka u názvu polí Pohlaví a Místnost. Klepnutím do tlačítka Přepnout filtr aktivujeme filtr, zobrazí se pouze zaměstnanci z vybraných oddělení. Přehled tlačítek ve skupině Seřadit a filtrovat: Vzestupně, Sestupně: Přidá řazení dle aktuálního sloupce. (Postupujeme od druhotného řazení k prvotnímu řazení.) Vymazat veškerá řazení: Anuluje řazení. (Odstraní obsah vlastnosti tabulky Řadit podle.) Filtr: Zobrazí zadání filtru pro aktuální sloupec. Dosáhneme tak stejného efektu jako, když rozbalíme nabídku názvu sloupce. Výběr: Zadá filtr pro aktuální sloupec dle hodnoty v aktuální větě. Nabízí se čtyři možnosti: ROVNÁ SE, NEROVNÁ SE, OBSAHUJE, NEOBSAHUJE. Tlačítko Upřesnit nabízí speciální formy filtrů a řazení: VYMAZAT VŠECHNY FILTRY: Anuluje filtry pro všechny sloupce. (Odstraní obsah vlastnosti tabulky Filtrovat). FILTROVAT PODLE FORMULÁŘE: Zobrazí formulář se stejnou strukturou jako v tabulce. Kritérium se zapisuje do jediného řádku, kritéria ve stejném řádku musí být splněna současně. Jednotlivé karty Nebo umožňují alternativní filtr. Můžeme např. připravit filtr pro zobrazení zaměstnanců mužů z oddělení KON a žen z oddělení PRG:» Vybereme volbu FILTROVAT PODLE FORMULÁŘE.» Vyplníme do sloupce Pohlaví hodnotu M a do Oddělení hodnotu KON.» Klepneme do spodní záložky Nebo.» Vyplníme do sloupce do Pohlaví hodnotu Z a Oddělení hodnotu PRG (viz obr. 3-17).

62 Kapitola 3: Tabulky 62 OBR. 3-17: DRUHÁ KARTA FILTRU PODLE FORMULÁŘE P34 Filtr podle formuláře» Klepneme do tlačítka Přepnout filtr. Kdykoliv později se můžeme do formuláře vrátit volbou FILTROVAT PODLE FORMULÁŘE. Volbou ODSTRANIT KARTU můžeme ve filtru dle formuláře odstranit aktuální kartu Nebo. Volbou ULOŽIT JAKO DOTAZ můžeme připravený filtr z formuláře uložit do dotazu, abychom jej později mohli načíst volbou NAČÍST Z DOTAZU. V našem případě jej uložíme do dotazu P34 Filtr podle formuláře. Volba NAČÍST Z DOTAZU je dostupná pouze z formuláře pro filtr nebo z rozšířeného filtru a řazení. Volba ROZŠÍŘENÝ FILTR ČI ŘAZENÍ zobrazí filtr a řazení formou dotazu, např. kombinace námi nastaveného řazení a filtru dle formuláře je zobrazena formou dotazu v obr OBR. 3-18: PŘÍKLAD ROZŠÍŘENÉHO FILTRU ČI ŘAZENÍ Hledání Volba VYMAZAT MŘÍŽKU vymaže filtr při práci s formuláře filtru nebo rozšířeným filtrem. Volba ZAVŘÍT zavře otevřený formulář filtru či dotaz rozšířeného filtru. Tlačítkem Přepnout filtr zapneme či potlačíme nastavené filtrování, což můžeme provést také klepnutím do tlačítka Filtrováno/Nefiltrováno ve spodním řádku okna tabulky. 60 Poslední skupina Najít karty DOMŮ nabízí možnosti hledání vět: Klepneme kamkoliv do sloupce Místnost. Klepnutím do tlačítka Najít zobrazíme dialogové okno Najít a nahradit, kartu Najít (viz obr. 3-19): OBR. 3-19: DIALOGOVÉ OKNO NAJÍT A NAHRADIT V poli Najít vyplníme hledanou hodnotu. V poli Oblast hledání můžeme ponechat hledání pouze v aktuálním sloupci Místnost nebo zadat hledání v celé tabulce Personal. V poli Porovnat vybíráme z hodnot: 60 Zapnutí filtru a řazení hned po otevření tabulky zadáváme ve vlastnostech tabulky Filtrovat při zavedení a Seřadit podle hodnoty při zavedení.

63 Kapitola 3: Tabulky 63 Nahrazování Změny návrhu tabulky v datovém listu» Jakákoliv část pole: Řetězec Petr by v poli E_mail byl nalezen ve větě Kalouskova.Petra, Novak.Petr a Skoda.Petr.» Celé pole 61 : Řetězec Petr by v poli E_mail nebyl nalezen pro zaměstnance Kalouskova.Petra, Novak.Petr a Skoda.Petr, ani pro zaměstnance Petr.Pavel, ale pouze pro zaměstnance Petr. (Takový zaměstnanec v tabulce však není uveden.)» Začátek pole: Řetězec Petr by v poli E_mail nebyl nalezen pro zaměstnance Kalousková.Petra, Novak.Petr a Skoda.Petr, byl by nalezen pro zaměstnance Petr.Pavel. (Takový zaměstnanec v tabulce však není uveden.) 62 V poli Hledat můžeme zadat prohledávání směrem nahoru či dolů od polohy kurzoru. Po dohledání začátku tabulky (popř. konce tabulky) Access pokračuje hledáním od konce (popř. od začátku) tabulky. Zaškrtnutím pole Rozlišovat velká a malá písmena můžeme diferencovat mezi hodnotami polí psanými velkými a malými písmeny (např. Petr a PETR). Zaškrtnutím pole Prohledávat podle formátu se hledá s ohledem na formát, nikoliv pouze na obsah, což může být významné zejména při hledání v polí typu Datum/čas (např. při hledání v tabulce Faktury bychom nenašli při hledání data datum ). Obdobně funguje tlačítko Nahradit, kterým můžeme provést nahrazení hodnot v poli. (I při tomto nahrazování je sledována referenční integrita. Nemůžeme tak např. nahradit v poli Oddělení hodnotu REK hodnotou PRO). Po klepnutí do tlačítka Přejít na přejdeme na vybranou větu: první, předchozí, další, poslední nebo novou. Po klepnutí do tlačítka Vybrat vybereme aktuální větu (obdoba klepnutí do voliče záznamů) nebo všechny věty (obdoba klepnutí do průsečíku voličů záznamů a řádku s názvy sloupců). Některé možnosti návrhu tabulky jsou dostupné také v zobrazení datového listu v kartě DATOVÝ LIST: Ve skupině Pole a sloupce: Nové pole: Vloží nový sloupec ze šablony polí, vlastnosti pole jsou převzaty ze šablony 63. Do tabulky Podniky cvičně přidáme za Název_podniku pole Webová stránka a Kategorie šablony Kontakty. Pole jsou rovnou nazvána a mají vhodný typ pole, popř. další vlastnosti (např. Kategorie má nastavenu Výchozí hodnotu a vlastnosti na kartě Vyhledávání). Přidaná pole po prohlédnutí odstraníme. Přidat existující pole: V pravé části se zobrazí dvě podokna se seznamem polí v (dle relací) souvisejících a jiných tabulkách. Pole můžeme tažením zkopírovat do zobrazené tabulky. Do tabulky Personal přidáme za pole Pohlaví pole IČ z tabulky Podniky. Bude identifikací podniku, jehož odběratelské vztahy zaměstnanec bude garantovat:» Táhneme pole IČ za název sloupce Pohlaví v tabulce Personal.» V průvodci vyhledáváním vybereme do zobrazovaných polí k poli IČ dále pole Název_podniku.» V druhém okně doplníme řazení dle pole Název_podniku.» Ve třetím okně zrušíme zaškrtnutí pole Skrýt klíčový sloupec.» Ve čtvrtém okně vybereme vyhledávací sloupec IČ.» V posledním okně ponecháme titulek vyhledávacího sloupce IČ a nepřipustíme více hodnot. Doplnil se nový sloupec s nastaveným vyhledáváním a relací k tabulce Podniky. Relaci a přidané pole po prohlédnutí odstraníme. Vyhledávací sloupec: K aktuálnímu poli můžeme doplnit vyhledávání. V tabulce Personal doplníme sloupec vyhledávání barvy očí před sloupec Pohlaví:» Klepneme kamkoliv do sloupce Pohlaví.» Klepneme do tlačítka Vyhledávací sloupec.» V prvním okně průvodce vyhledáváním zadáme Hodnoty zadá uživatel.» V druhém okně doplníme do tabulky hodnoty: modré, hnědé, černé, zelené. 61 Výchozí nastavení Accessu budeme značit čárkovaným podtržením. 62 Výchozí způsob hledání lze nastavit příkazem NÁSTROJE, MOŽNOSTI v kartě Úpravy či hledání. Nastavený způsob hledání platí až po znovuspuštění Accessu. 63 Šablony polí jsou založeny na souborech XSD (XML Schema Definition), takže můžeme nastavit vlastní standardní definice polí pro sdílení v oddělení nebo v pracovní skupině.

64 Kapitola 3: Tabulky 64 Modifikace fungování kláves Modifikace hledání Automatické opravy názvů polí» V posledním okně doplníme název pro vyhledávací pole Oči a nezaškrtneme pole Povolit více hodnot.» Do tabulky se doplnil nový sloupec Oči s vyhledáváním mezi hodnotami barev.» Přidané pole po prohlédnutí odstraníme. Vložit: Vloží před aktuální pole nové nenazvané pole. Odstranit: Odstraní aktuální pole včetně hodnot, které jsme do pole vložili. Přejmenovat: Přejmenuje aktuální pole. (Přejmenování můžeme zahájit také poklepáním na název sloupce pole.) Některé vlastnosti polí lze měnit i v zobrazení datového listu v kartě DATOVÝ LIST ve skupině Typ a formátování dat: Datový typ, Formát, nastavit datový typ Měna, formát Procenta, velikost Desetinné číslo, zvýšit či snížit počet desetinných míst, nastavit jedinečnost pole či požadavek na vyplnění. V poslední skupině Vztahy karty DATOVÝ LIST můžeme ze zobrazení zobrazit okno relací nebo zobrazit závislosti objektů (seznam objektů, které závisí na aktuální tabulce nebo seznam objektů, na nichž závisí aktuální tabulka). Způsob editace dat v zobrazení datového listu značně ovlivňuje nastavení Accessu. Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Access. V kartě Upřesnit ve skupině Úpravy lze provést modifikaci fungování kláves při editaci v zobrazení datového listu: Sekce Po stisknutí klávesy Enter nabízí možnosti: Nepřecházet: Po odeslání klávesou Enter kurzor zůstane v původním poli. Další pole: Po odeslání se kurzor posune na další pole věty, popř. na konci věty se přesune na první pole další věty. Další záznam: Po odeslání se kurzor posune na stejné pole následující věty. Můžeme tak vyplňovat tabulku po sloupcích. Klávesa Tab i nadále funguje pro přesun na další pole a kombinace kláves Shift Tab funguje pro přesun na předchozí pole. Sekce Při zadávání ovlivňuje polohu kurzoru po předchozím odeslání klávesou Enter a klávesou Tab: Vybrat celé pole: Po přechodu na další pole klávesou Tab nebo odesláním předchozího pole je označeno celé pole, které můžeme editací přepsat. Pokud chceme upravovat jednotlivé znaky nového pole, klepneme myší na opravované místo nebo stisknutím klávesy F2 umístíme kurzor do nového pole. Přejít na začátek pole: Po odeslání se kurzor umístí před první znak následujícího pole. Přejít na konec pole: Po odeslání se kurzor umístí za poslední znak následujícího pole. Sekce Chování kurzorových kláves umožňuje modifikovat funkci kurzorových kláves: Další pole: Přesuneme-li kurzor mezi poli, označí se celé vedlejší pole. Přejít na další znak: Přesuneme-li kurzor mezi poli, zůstane kurzor před prvním (při posunu doprava) nebo za posledním (při posunu doleva) znakem vedlejšího pole. Zaškrtneme-li pole Kurzor se zastavuje na prvním či posledním poli, nepřejdeme kurzorem na další či předchozí větu, jinak než klepnutím myší. Tato modifikace je vhodná, když je struktura tabulky složitá a často hledáme různá pole tabulky v rámci jedné věty. Při hledání nechceme na konci věty přejít na začátek následující věty. Fungování kláves Enter, Tab, Shift Tab není modifikováno. V sekci Výchozí způsob hledání či nahrazování ovlivňujeme pro Access (nejen jednotlivou databázi): Rychlé hledání: Hledá v aktuálním poli shodu s hledaným řetězcem (Oblast hledání: aktuální pole, Porovnat: Celé pole). Obecné hledání: Hledá ve všech polích libovolnou část pole (Oblast hledání: celá tabulka, Porovnat: Jakákoliv část pole). Hledání od začátku pole: Hledá v aktuálním poli a porovnává počáteční znaky v poli (Oblast hledání: aktuální pole, Porovnat: Začátek pole). Nastavení je funkční až po znovuspuštění Accessu. V nastavení Accessu s názvy polí v tabulkách souvisí možnosti automatické opravy názvů. Pokud později změníme název pole tabulky, řešíme problém odkazů na název v souvisejících objektech (dotazech, formulářích, sestavách). Klepneme do tlačítka Office a do

65 Kapitola 3: Tabulky 65 tlačítka Možnosti aplikace Access. V kartě Aktuální databáze ve skupině Možnosti automatické opravy názvů lze možnosti nastavit: Sledovat informace o automatických opravách názvů: Access si sleduje opravy názvů, pamatuje si je. Provádět automatické opravy názvů: Access využije zapamatované změny a opraví názvy v souvisejících objektech. Pokud bylo zapnuté sledování a nikoliv provedení oprav, je možné provedení oprav později zapnout. Změna se provede až opětovném otevření databáze. Protokolovat automatické opravy názvů: Při opravách chyb názvů aplikace Access zaprotokoluje provedené změny databáze, uloží je do tabulky s názvem Protokol automatických oprav názvů. Kontingenční tabulka ENC Kontingenční tabulka Access nabízí rychlou analýzu tabulky formou zobrazení kontingenční tabulky či kontingenčního grafu. 64 Kontingenční tabulka zobrazuje přehledně vztah dvou polí statistických znaků. V řádcích tabulky jsou uvedeny hodnoty prvního pole (např. Oddělení), ve sloupcích hodnoty druhého pole (např. Pohlaví). V buňce tabulky je vypočten počet vět splňujících kombinaci příslušných hodnot vybraných dvou polí, např. počet mužů z pracoviště PRG. V buňkách tabulky mohou být uvedeny i jiné souhrny (např. součet, maximum). V řádcích i sloupcích může být uvedeno více polí. Kontingenční tabulka může být doplněna polem filtru (např. Oprávnění). Demonstrujme si analýzu na tabulce Personal: Otevřeme tabulku v návrhovém zobrazení či v zobrazení datového listu. Tabulku zobrazíme v zobrazení kontingenční tabulky klepnutím do spodní části tlačítka Zobrazení ve skupině Zobrazení a výběrem volby ZOBRAZENÍ KONTINGENČNÍ TABULKY nebo klepnutím do tlačítka Zobrazení kontingenční tabulky ve stavovém řádku. Zobrazení kontingenční tabulky (viz obr. 3-20) naznačuje další postup. Ze seznamu polí 65 postupně přesouváme vybraná pole: OBR. 3-20: ZOBRAZENÍ KONTINGENČNÍ TABULKY ÚVODNÍ STAV do řádkového pole přesuneme pole Oddělení, do sloupcového pole přesuneme pole Pohlaví, do pole filtrů přesuneme pole Oprávnění, do pole součtu nebo podrobných dat přesuneme pole E_mail. V kontingenční tabulce jsou uvedeny y zaměstnanců dle pracovišť a pohlaví (tj. podrobná data). 64 Kontingenční tabulka i graf obsahují velké množství parametrů, které uplatníme až při zobrazení výsledků výběrových dotazů spojujících více tabulek v kap Seznam polí můžeme kdykoliv zobrazit nebo potlačit jeho zobrazení tlačítkem Seznam polí ze skupiny Zobrazit či skrýt.

66 Kapitola 3: Tabulky 66 Automatický přepočet Skrýt podrobnosti Titulky Chceme do tabulky uvést počty zaměstnanců. Klepneme do buňky libovolného zaměstnance v kontingenční tabulce a ve skupině Nástroje klepneme do tlačítka Automatický přepočet. Vzhledem k textovému charakteru pole E_mail se nabízí pouze volba POČET, kterou zvolíme. K jednotlivým oddělením se pro jednotlivá pohlaví doplnily pod seznam zaměstnanců jejich počty. Označíme všechny buňky tabulky tažením myší nebo celou tabulku kombinací kláves Ctrl A. Klepneme do tlačítka Skrýt podrobnosti ve skupině Zobrazit či skrýt 66. V kontingenční tabulce jsou nyní již jen součty (viz obr. 3-21, kde jsou oddělení seskupena do sekcí). Změníme nadpis sloupců. Klepneme do nadpisu Počet z E_mail a do tlačítka Seznam vlastností ze skupiny Nástroje. V okně Vlastnosti upravíme v kartě Titulky hodnotu pole Titulek, zapíšeme sem hodnotu Pracovníků. Poklepáním na nadpisy M a Z zúžíme sloupce dle šířky nadpisu Pracovníků. Ve firmě máme tři sekce: Ředitelství: oddělení Ředitelství, Projektování: oddělení Analýza a Programování, Služby zákazníkům: oddělení Distribuce, Konzultace, Reklama. V tabulce chceme zobrazit součty zaměstnanců za sekce: Klepneme do nadpisu ANA a současně s klávesou Ctrl do nadpisu PRG. Ve skupině Výběry klepneme do tlačítka Skupina. Ve vlastnostech skupiny změníme Titulek ze Skupiny1 na Projektování. Obdobně definujeme skupinu Ředitelství. Zbývající skupinu stačí přejmenovat z Jiné na Služby zákazníkům. Tažením myší změníme pořadí skupin dle obr Ve vlastnostech upravíme nadpis z Oddělení1 na Sekce. OBR. 3-21: ZOBRAZENÍ KONTINGENČNÍ TABULKY PO NAPLNĚNÍ DATY Zobrazení kontingenční tabulky můžeme snadno upravovat: Klepnutím do tlačítka před názvem sekce můžeme potlačit zobrazení oddělení v rámci sekce. Klepnutím do tlačítka + vedle názvů oddělení či pohlaví můžeme zobrazit y zaměstnanců příslušného řádku či sloupce. Klepnutím do rozbalovacího tlačítka vedle nadpisu Oprávnění, Sekce či Pohlaví můžeme zobrazit varianty hodnot pole a zrušením zaškrtnutí potlačit zobrazení dat za vybranou hodnotu či hodnoty. V případě Sekce jsou hodnoty hierarchicky rozčleněny také na oddělení. Poklepáním na libovolnou hodnotu v kontingenční tabulce můžeme zobrazit jí odpovídající hodnoty tabulky ( y zaměstnanců). Podrobnosti skryjeme tlačítkem Skrýt podrobnosti ze skupiny Zobrazit či skrýt. 66 Pokud bychom neoznačili celou tabulku, skryly by se podrobnosti pouze v aktuální buňce.

67 Kapitola 3: Tabulky 67 Kontingenční graf 3.6 Kontingenční graf Kontingenční graf vyjde z kontingenční tabulky pro tabulku Personal: Kontingenční graf zobrazíme klepnutím do spodní části tlačítka Zobrazení ve skupině Zobrazení a výběrem volby ZOBRAZENÍ KONTINGENČNÍHO GRAFU nebo klepnutím do tlačítka Zobrazení kontingenčního grafu v stavovém řádku. Zobrazíme vlastnosti klepnutím do tlačítka Seznam vlastností ve skupině Nástroje. Označíme název osy x a v kartě Formát změníme titulek osy x na Sekce/Oddělení. Obdobně změníme titulek osy y na Počet pracovníků (viz obr. 3-22). OBR. 3-22: ZOBRAZENÍ KONTINGENČNÍHO GRAFU Také v grafu můžeme zobrazovat vybrané věty dle hodnot Oprávnění, Sekce, Oddělení a Pohlaví (klepnutím do rozbalovacího tlačítka vedle příslušných nadpisů). Ve vlastnosti tabulky Výchozí zobrazení lze zadat, aby se při otevření tabulky zobrazovala prvotně kontingenční tabulka nebo kontingenční graf. Encian 3.7 Další úpravy databáze Encian Obdobně jako v tabulce Personal upravíme vhodně datové typy a vlastnosti v dalších tabulkách. V dalších kapitolách publikace budeme již pracovat s databázi Encian.accdb, v níž jsou upraveny všechny tabulky a doplněny všechny objekty (dotazy, formuláře, sestavy, makra, moduly). Název vzorových objektů publikace začíná písmenem P. Čtenář může své pokusy ukládat pod stejným názvem bez písmene P na začátku. Objekty byly dosud uspořádány dle skupin tabulek. Tabulky tak byly zastoupeny zástupci 67. Nyní je přehledně zobrazíme dle typu objektu. Klepneme do titulku navigačního podokna a vybereme: v sekci Přejít ke kategorii hodnotu Typ objektu, v sekci Filtrovat podle skupiny hodnotu Všechny objekty aplikace Access. V databázi jsou definovány některé vlastnosti databáze klepnutím do tlačítka Office a volbou SPRAVOVAT, VLASTNOSTI DATABÁZE. Databáze obsahuje 16 základních tabulek provázaných relacemi a 5 dalších pomocných tabulek: 67 Přejmenováním změníme název zástupce, nikoliv zastupované tabulky.

68 Kapitola 3: Tabulky 68 Kontrola_cest: Vznikne v kap. 8.7 Bude sloužit pro výpočet odstupu jednotlivých služebních cest aplikací v modulu. Oddělení_F: Vznikne v rámci kap. 4.3 Určena ke hledání pracovišť. Prodeje DIS: Vznikne v rámci kap. 4.7, není pro databázi nutná. Neobsahuje prvotní data, je možné ji vytvářecím dotazem kdykoliv vytvořit. Switchboard Items: Vznikne v kap Access do ní bude ukládat položky přepínacího panelu. Shrnutí 1. Tabulku můžeme vytvořit z některé ze šablon Accessu: Kontakty, Úkoly, Problémy, Události, Aktiva. V šablonách jsou připravena typická pole tabulky. 2. Novou tabulku můžeme založit vyplněním prázdné tabulky, v níž upravíme názvy sloupců. Datové typy odhaduje Access sám. 3. Při tvorbě tabulky v návrhovém zobrazení můžeme vyplnit název pole, datový typ i poznámku. Můžeme snadno definovat primární klíče. 4. Tabulku můžeme uložit na webu SharePointu formou seznamu. Takovou tabulku lze snadno sdílet a synchronizovat její obsah. 5. Access nabízí několik datový typů polí: text, memo, číslo, měna, automatické číslo, datum a čas, ano/ne, objekt OLE, hypertextový odkaz, příloha. Datový typ lze automaticky nastavit průvodcem vyhledávání. 6. Pro různé datové typy jsou dostupné různé vlastnosti polí. Všechny datové typy mají vlastnost Titulek. Z hlediska rychlosti práce, velikosti databáze je významná vlastnost Velikost pole, která má různé použitelné hodnoty pro texty a čísla. 7. Vlastnost Formát ovlivňuje pouze způsob zobrazení dat. Typickým příkladem je zobrazení čísla v procentech. 8. Vlastnost Vstupní maska usnadňuje zadávání dat, kontroluje zadávané hodnoty. Využívá zástupných znaků. 9. Nejčastěji zadávanou hodnotu pole je vhodné uvést ve vlastnosti Výchozí hodnota. 10. Správné zadávání hodnot lze omezit vlastností Ověřovací pravidlo, při jeho nesplnění se vypíše Ověřovací text. 11. Primární klíč je vhodné doplnit dalšími neduplicitními indexy. 12. Spolupráci Accessu s Outlookem usnadňují inteligentní značky, které zprostředkovávají přenos klíčových dat. 13. Pole datového typu Memo mohou být formátována jako RTF pole. 14. Vkládání dat usnadňují a zpřesňují seznamy a pole se seznamem. Zdrojem řádků mohou být konkrétní hodnoty nebo tabulka či dotaz. 15. Pole mohou obsahovat více hodnot. 16. Také tabulka jako celek má své vlastnosti. V ověřovacím pravidlu tabulky můžeme kontrolovat vztah hodnot jednotlivých polí. 17. Editaci související tabulek usnadňuji vnořené datové listy. 18. Specifickou editaci mají datové typy Hypertextový odkaz a Objekt OLE. 19. V zobrazení datové listu můžeme pro jednotlivé tabulky změnit formát datového listu. 20. Do datového listu můžeme doplnit k tabulce souhrny (součty, počty apod.). 21. Data můžeme účelově seřadit nebo zobrazit jen některá prostřednictvím filtrů. 22. V tabulkách lze vyhledávat v jednotlivých nebo ve všech sloupcích, popř. nahrazovat zadanou hodnotu. 23. Některé vlastnosti lze měnit v návrhovém zobrazení i v zobrazení datového listu. 24. V nastavení Accessu lze modifikovat fungování editačních kláves. 25. Kontingenční tabulka analyzuje přehledně vztah dvou či více polí. V buňkách kontingenční tabulky mohou být uvedeny podrobně hodnoty či souhrny, např. počty. 26. Kontingenční tabulku graficky znázorňuje kontingenční graf.

69 Kapitola 4: Dotazy Dotazy Druhy dotazů Formulace dotazu Zobrazení výsledků 4.1 Druhy dotazů Dotazy lze dle jejich dopadu rozdělit na dva druhy: výběrové: Zobrazujeme vybraná data z jedné či více tabulek: Můžeme omezit počet sloupců (polí), které zobrazujeme. Můžeme omezit počet vět zadáním kritéria či více kritérií výběru. Můžeme naopak zvětšit rozsah výstupu kombinací různých tabulek spojených relacemi. Můžeme vytvořit nové sloupce, jejichž hodnota je dána výpočtem se vstupem jiných polí věty. Můžeme vypočítat souhrny za tabulku, např. součet za vhodné pole. Můžeme připravit křížovou tabulku, v níž bude analyzován vztah dvou či více polí tabulky či tabulek. Výsledky dotazů můžeme řadit dle zadaných polí. akční: Provádíme s tabulkami akce: vytvářecí: Vytvoříme novou tabulku z obsahu stávající tabulky či více tabulek. aktualizační: Aktualizujeme hodnoty v tabulce. odstraňovací: Odstraňujeme vybrané věty z tabulky. přidávací: Do tabulky přidáváme nové věty. Dotazy můžeme připravit: v návrhovém zobrazení využitím podoken diagramu využitých relací a mřížky, dotazovacím jazykem SQL (Structured Query Language strukturovaný dotazovací jazyk), kterým je nutné připravovat složitější dotazy, které by nebylo možné formulovat v návrhovém zobrazení. Výsledky výběrových dotazů lze zobrazovat: formou tabulky v zobrazení datového listu, v kontingenční tabulce, v kontingenčním grafu. 4.2 Výběrové dotazy z jedné tabulky Budeme vytvářet nejprve nejjednodušší dotazy vybírající data z jedné tabulky. Budeme vybírat pole (omezíme sloupce) vět, které vyhovují zadaným kritériím (omezíme řádky) v zadaném pořadí. Jednotlivé typy dotazů budeme demonstrovat na příkladech dotazů v databázi Encian. 68 Pro kontrolu budeme uvádět vždy tabulky, z nichž dotaz vychází a počet výsledných vět. P42a Křestní jména Přidání tabulky do konstrukce dotazu DOTAZ P42A KŘESTNÍ JMÉNA: VÝBĚR NESEŘAZENÉHO POLE S DUPLICITAMI Vypište křestní jména zaměstnanců. V kartě VYTVOŘIT ve skupině Jiné klepneme do tlačítka Návrh dotazu. V návrhovém zobrazení vybíráme data, s nimiž chceme pracovat, a upřesňujeme, co z dat chceme zjistit. Konstrukce dotazu je v Accessu řešena metodou dotazování podle příkladu (QBE Query by Example). V úvodu musíme vybrat, s kterými tabulkami (nebo výsledky dotazů, tj. obecně datovými sadami) budeme pracovat. V dialogovém okně Zobrazit tabulku poklepeme na tabulku Personal (viz obr. 4-1) V ukázkové databázi Encian jsou dotazy již přichystány. Jejich název začíná písmenem P (publikace) s číslem kapitoly (první číslice), podkapitoly (druhá číslice) a dotazu v rámci podkapitoly (písmeno), např. P42a Křesní jména. Své individuální pokusy ukládejte přímo pod číslem dotazu, např. 41a. Individuální pokusy tak budou zařazeny dle abecedy na začátku. 69 Můžeme také klepnout do názvu tabulky a potom klepnout do tlačítka Přidat. Můžeme také zavřít dialogové okno Zobrazit tabulku a tabulku přetáhnout do podokna Diagram z Navigačního podokna. Dialogové okno Zobrazit tabulku můžeme kdykoliv zobrazit klepnutím do tlačítka Zobrazit tabulku ve skupině Nastavení dotazu.

70 Kapitola 4: Dotazy 70 OBR. 4-1: DIALOGOVÉ OKNO ZOBRAZIT TABULKU Přidání pole do návrhové mřížky Personal (20 vět) 70 Obecně můžeme pracovat s více tabulkami, proto se okno Zobrazit tabulku automaticky neuzavřelo po výběru první tabulky. Nám (v celé kap. 4.2) postačí jedna tabulka. Dialogové okno Zobrazit tabulku zavřeme klepnutím do tlačítka Zavřít nebo do uzavíracího tlačítka v pravém horním rohu okna. V horním podokně Diagram je seznam polí vybrané tabulky. V dolním podokně Mřížka je návrhová mřížka dotazu, do níž budeme vybírat z horního podokna pole tabulky, popř. upřesňovat kritéria výběru, řazení a další. V našem případě přidáme pole Jméno. Pole můžeme přidat: poklepáním na název pole v seznamu polí, přetažením pole ze seznamu polí (klepneme na název pole, držíme levé tlačítko myši a název pole táhneme do návrhové mřížky), výběrem názvu pole ze seznamu, který vyklopíme šipkou na konci sloupce v řádku Pole návrhové mřížky, zapsáním názvu pole do mřížky. (Stačí vypsat jednoznačný začátek názvu pole.) Výsledky dotazu Dynamická sada a snímek Uložení dotazu Výsledky dotazu zobrazíme v datovém listu klepnutím do tlačítka Zobrazení ve skupině Výsledky nebo do tlačítka Zobrazení datového listu ve stavovém řádku. V datovém listu se zobrazí tolik vět, kolik vět je v tabulce Personal, pořadí vět je stejné, tj. výsledek je včetně duplicitních křestních jmen a neseřazený, přesněji řazeny dle pořadí v tabulce, tj. podle klíčového pole E_mail. Výsledek našeho dotazu a řady dalších dotazů má charakter tzv. dynamické sady. Lze v něm jednoznačně určit příslušnost jednotlivých řádků k větám ze zdrojové tabulky. Dynamické sady můžeme editovat jako běžný datový list. Úpravy se promítají do zdrojové tabulky! Protikladem dynamických sad jsou výsledky ve formě tzv. snímků. Snímky nelze aktualizovat, neboť neexistuje jednoznačný vztah řádku výsledku ke zdrojové tabulce. Klepnutím do tlačítka Zobrazení se můžeme opakovaně vracet k návrhu, opravovat jej a prohlížet výsledky. Konstrukci dotazu můžeme uložit z návrhového zobrazení i ze zobrazení datového listu klepnutím do tlačítka Uložit v panelu nástrojů Rychlý přístup nebo klepnutím do tlačítka Office a příkazem ULOŽIT nebo kombinací kláves Ctrl S, popř. klepnutí do tlačítka Office a 70 Nalevo od návrhové mřížky budeme vypisovat názvy tabulek zařazených do návrhové mřížky a počet vět výsledku.

71 Kapitola 4: Dotazy 71 příkazem ULOŽIT JAKO 71. Při prvním ukládání jsme dotázáni na název. Uložíme dotaz pod názvem 42a. (Ideální řešení dotazu je v databázi Encian připraveno pod názvem P42a Křestní jména.) Klepnutím do uzavíracího tlačítka zavřeme okno dotazu. Pokud by dotaz či jeho úprava nebyly uloženy, budeme vyzváni k uložení. P42b Seřazená jména Řazení výsledků dotazu Personal (20 vět) DOTAZ P42B SEŘAZENÁ JMÉNA: VÝBĚR SEŘAZENÉHO POLE S DUPLICITAMI Vypište vzestupně seřazená křestní jména zaměstnanců. Konstrukce dotazu bude velmi podobná předcházejícímu dotazu. Proto zobrazíme návrh předchozího dotazu. V navigačním podokně klepneme pravým tlačítkem do dotazu P42a Křesní jména a vybereme volbu NÁVRHOVÉ ZOBRAZENÍ. Do návrhové mřížky doplníme ve sloupci Jméno vlastnost Řadit: vzestupně (zapsáním či výběrem z nabídky, kterou lze vyvolat klepnutím do rozbalovacího tlačítka na konci řádku Řadit sloupce Jméno). Výsledná dynamická sada obsahuje stejný počet vět jako v předchozím dotazu. Věty jsou však seřazeny vzestupně dle abecedy. Na počátku výsledku by případně byly uvedeny prázdné hodnoty z vět, v nichž nebylo křestní jméno vyplněno. Dotaz uložíme klepnutím do tlačítka Office a volbou ULOŽIT JAKO. V dialogovém okně Uložit jako ponecháme v poli Typ hodnotu dotaz. Název opravíme na P42b Seřazená jména a odešleme klávesou Enter nebo klepneme do tlačítka OK. P42c Jména bez duplicit Vlastnosti dotazu Personal (17 vět) DOTAZ P42C JMÉNA BEZ DUPLICIT: VÝBĚR SEŘAZENÉHO POLE BEZ DUPLICIT Vypište vzestupně seřazená jedinečná křestní jména zaměstnanců (bez duplicit). Opět vyjdeme z návrhu předchozího dotazu. Odstranění duplicitního vypisování stejných křestních jmen nezadáváme v podokně Mřížka, ale ve vlastnostech dotazu. Ve skupině Zobrazit či skrýt klepneme do tlačítka Seznam vlastností. Dialogové okno je proměnlivé dle části dotazu, která je aktuální. Klepneme do světle modrého pozadí podokna Diagram. Potom jsou v okně Seznam vlastností uvedeny vlastnosti dotazu (viz obr. 4-2). OBR. 4-2: DIALOGOVÉ OKNO VLASTNOSTI DOTAZU 71 Nevzniká žádný soubor. Všechny objekty (tedy i dotazy) se ukládají do souboru databáze, tj. souboru Encian.accdb (popř. do jiné dříve založené databáze).

72 Kapitola 4: Dotazy 72 Popis, do něhož vložíme text dle obr. 4-2, se zobrazí v Navigačním podokně v zobrazení podrobností. Je převzat z tabulky, nad níž dotaz připravujeme. Ve vlastnosti Jedinečné hodnoty zadáme ano. Podokno Mřížka zůstává vyplněno stejně jako u předchozího dotazu. Výsledkem je menší počet vět. Každé křestní jméno se vypisuje jen jednou. 72 Výsledkem dotazů vypisujících jedinečné hodnoty je snímek, který nelze aktualizovat. 73 Dotaz P42c vypisuje křestní jména již zapsaná do tabulky Personal. Datovou sadu výsledku dotazu proto použijeme jako zdroj pole se seznamem pro pole Jméno v tabulce Personal. Při vyplňování tabulky Personal se potom nabízí dříve vložená křestní jména jako nabídka usnadňující vkládání křestních jmen. Dotaz se však spouští pouze při otevření tabulky Personal, nemůžeme proto v nabídce očekávat jména vložená v rámci stejného otevření tabulky Personal. P42d Pohlaví a oddělení Personal (20 vět) DOTAZ P42D POHLAVÍ A ODDĚLNÍ: VÝBĚR NESEŘAZENÝCH POLÍ S DUPLICITAMI Vypište pohlaví a oddělení zaměstnanců. Dotaz vytvoříme jako nový, protože se příliš nepodobá předchozímu. Do podokna Diagram opět vybereme tabulku Personal, z níž tentokrát přetáhneme do podokna Mřížka pole Pohlaví a Oddělení. Každý zaměstnanec je zastoupen ve výsledku jednou větou. Věty jsou seřazeny dle pořadí v tabulce, tj. dle primárního klíče E_mail. P42e Pohlaví a oddělení bez duplicit Personal (11 vět) DOTAZ P42E POHLAVÍ A ODDĚLENÍ BEZ DUPLICIT: VÝBĚR SEŘAZENÝCH POLÍ BEZ DUPLICIT Vypište pohlaví a oddělení zaměstnanců bez duplicit ve vzestupném seřazení dle pohlaví a oddělení. Vyjdeme z předchozího dotazu. Doplníme řazení dle pohlaví (prvotní řazení, neboť Pohlaví je v podokně Mřížka uvedeno jako první) a dle oddělení (druhotné řazení). Navíc ve vlastnostech dotazu upravíme vlastnost Jedinečné hodnoty na ano. Pro 2 pohlaví a 6 oddělení je zobrazeno pouze 11 vět, neboť v oddělení ANA jsou jen muži. P42f Pohlaví a oddělení jinak řazené Personal (11 vět) DOTAZ P42F POHLAVÍ A ODDĚLENÍ JINAK ŘAZENÉ: VÝBĚR POLÍ SEŘAZENÝCH DLE NESTANDARDNÍ HIERARCHIE ŘAZENÍ Vypište pohlaví a oddělení zaměstnanců bez duplicit v seřazení dle oddělení a pohlaví. Vyjdeme z předchozího dotazu. Hierarchie řazení je dána pořadím polí v návrhové mřížce. Pole Pohlaví proto umístíme do mřížky ještě jednou za pole Oddělení. Druhé pole Pohlaví chceme použít jen pro řazení a nevypisovat je. Klepnutím do řádku Zobrazit příslušného pole zrušíme zaškrtnutí a potlačíme tak vypisování pole ve výsledku. Naopak u prvního pole Pohlaví potlačíme řazení volbou neřadit, která se v mřížce nezobrazuje. 72 Pokud bychom vypisovali více polí, duplicita by se na ně vztahovala jako na celek, tj. např. při výběru polí Jméno i E_mail by se vypsaly opět všechny věty, protože E_mail nemůže být duplicitní. 73 Ve vlastnosti dotazu Typ sady záznamů můžeme zadat hodnotu snímek i pro dotazy s hodnotou ne ve vlastnosti Jedinečné hodnoty. Můžeme tak zamezit úpravě dat v zobrazení datového listu dotazu. Naopak při zadání hodnoty ano do vlastnosti Jedinečné hodnoty výsledkem dotazu je snímek, i když ve vlastnosti Typ sady záznamů je ponechána hodnota dynamická sada.

73 Kapitola 4: Dotazy 73 P42g Lidé z PRG Personal (6 vět) DOTAZ P42G LIDÉ Z PRG: VÝBĚR VĚT S DANÝM OBSAHEM JEDNOHO POLE Vypište příjmení a jména zaměstnanců z oddělení PRG v seřazení dle příjmení a jména. Vytvoříme nový dotaz, opět bude vycházet z tabulky Personal. Do návrhové mřížky umístíme pole Příjmení, Jméno a Oddělení. Oddělení nezobrazujeme (potlačíme zaškrtnutí v řádku Zobrazit), avšak do řádku kritérií dopíšeme PRG, zobrazíme tak pouze věty s polem Oddělení o obsahu PRG. Text PRG nemusíme psát do uvozovek, Access je sám doplní. V kritériích dotazu Access nerozlišuje malá a velká písmena. Nezobrazovaná pole obsahující kritéria Access při uložení dotazu automaticky umisťuje na závěr návrhové mřížky. P42h Lidé z PRG a ANA Or Personal (9 vět) DOTAZ P42H LIDÉ Z PRG A ANA: VÝBĚR VĚT S ALTERNATIVNÍM OBSAHEM JEDNOHO POLE Vypište příjmení a jména zaměstnanců z oddělení PRG a ANA v seřazení dle příjmení a jména. K vyjádření alternativy v kritériích máme dvě možnosti: Alternativní hodnoty můžeme oddělit operátorem Or. Alternativní hodnoty můžeme napsat na samostatné řádky. (Access uloží i tak návrhovou mřížku s kritériem v jednom řádku a oddělením alternativ operátorem Or.) Spojka a má v češtině význam alternativy. P42i Lidé z PRG, ANA a REK Personal (12 vět) DOTAZ P42I LIDÉ Z PRG, ANA A REK: VÝBĚR VĚT S NĚKOLIKA VARIANTAMI OBSAHU JEDNOHO POLE Vypište oddělení, příjmení a jména zaměstnanců z oddělení PRG, ANA a REK v seřazení dle oddělení, příjmení a jména. Řádků kritérií je v návrhové mřížce přichystáno devět. Můžeme zde obecně napsat i více variant obsahu pole oddělením variant operátorem Or 74. Pokud vycházíme z předchozího dotazu, musíme přesunout sloupec Oddělení na začátek návrhové mřížky. Klepnutím do úzkého šedivého proužku nad sloupcem sloupec Oddělení označíme. Opět klepneme do šedivého proužku, nepouštíme tlačítko myši a tažením doleva přesouváme sloupec. U kurzoru se objeví obdélníček. V návrhové mřížce tlustá čára označuje, před který sloupec se přesouvaný sloupec přesune. Tlustou čáru umístíme před první sloupec a pustíme tlačítko myši. Doplníme do kritéria Or REK. V případě potřeby můžeme vkládat nové sloupce tlačítkem Vložit sloupce ze skupiny Nastavení dotazu či odstraňovat označený sloupec nebo více označených sloupců tlačítkem Odstranit sloupce ze skupiny Nastavení dotazu nebo stisknutím klávesy Delete. Pokud je kritérium delší, nevidíme jej v úzkém sloupci celé. Poklepáním na hranici sloupců (v našem případě sloupců Oddělení a Příjmení) můžeme přizpůsobit šířku sloupce obsahu. Šířka se však na rozdíl od úpravy šířky v tabulkách neukládá s návrhovou mřížkou. Při pozdější práci s návrhem dotazu musíme šířku sloupce opět upravit. Pokud však upravíme šířku sloupců ve výsledku dotazu, šířka ve výsledku se ukládá. K vypsání vět, které obsahují některou z hodnot v seznamu hodnot, lze použít také funkci In. Do kritéria můžeme v našem případě zapsat místo výrazu "PRG" Or "ANA" Or "REK" výraz In ("PRG";"ANA";"REK"). 74 Můžeme dokonce kombinovat rozepisování variant do řádků a používání operátoru Or. Můžeme také tlačítkem Vložit řádky ze skupiny Nastavení dotazu doplnit do návrhové mřížky další řádky.

74 Kapitola 4: Dotazy 74 P42j Ženy z PRG Personal (4 věty) DOTAZ P42J ŽENY Z PRG: VÝBĚR VĚT S DANÝM OBSAHEM VÍCE POLÍ Vypište příjmení a jména všech žen z oddělení PRG. Pokud vyplníme kritéria v jednom řádku u více polí, musí kritéria platit současně. P42k Ženy z PRG a všichni z REK Personal (7 vět) DOTAZ P42K ŽENY Z PRG A VŠICHNI Z REK: ALTERNATIVNÍ VÝBĚR VĚT S DANÝM OBSAHEM VÍCE POLÍ Vypište příjmení a jména všech žen z PRG a všech zaměstnanců z REK. Doplněním dalšího řádku kritérií k předchozímu dotazu se automaticky neopakují podmínky z prvního řádku. Vypsání oddělení REK v novém řádku proto k výsledku dotazu přidává všechny zaměstnance oddělení REK (nejen ženy). Zadáváme vlastně podmínku: Zaměstnanec je z PRG a současně je žena (první řádek) nebo Zaměstnanec je z REK bez omezení dalších polí (druhý řádek). P42l Ženy z PRG a muži z REK Personal (6 vět) DOTAZ P42L ŽENY Z PRG A MUŽI Z REK: VÝBĚR S VARIANTNÍMI OMEZENÍMI V RŮZNÝCH POLÍCH Vypište příjmení a jména všech žen z PRG a mužů z REK. P42m Více než poloviční úvazky >= Personal (5 vět) DOTAZ P42M VÍCE NEŽ POLOVIČNÍ ÚVAZKY: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU ČÍSELNÉHO POLE Vypište příjmení, jméno a úvazek zaměstnanců PRG, kteří pracují ve firmě na úvazek 50 % nebo vyšší. (V poli Úvazek musí být číslo větší nebo rovno 0,5.) V případě, že hodnota pole má být větší (popř. dále v abecedě u textových polí nebo pozdější u časových polí), menší, větší nebo rovna, menší nebo rovna, můžeme požadovaný vztah zadat v mřížce porovnávacími operátory >, <, >=, <=. P42n Příjmení intervalu písmen And DOTAZ P42N PŘÍJMENÍ INTERVALU PÍSMEN: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU TEXTOVÉHO POLE Vypište abecedně seřazená příjmení zaměstnanců, kteří jsou v abecedě mezi písmeny H a S, v seřazení dle příjmení. Porovnávací operátory můžeme použít i ve spojení s textovými poli. Operátorem And můžeme spojit dvě či více podmínek, které mají platit současně. (Hanák>=H, Sladká>S, a proto se ve výsledku nevypisují zaměstnanci s počátečním písmenem příjmení S.) K vypsání vět, které spadají do určitého rozsahu lze také použít konstrukci "[Z-K]*", kde Z je zahajovací a K je koncové vybrané počáteční písmeno. Uvozovky je v tomto případě nutné zapsat. Access doplní před výraz slovo Like.

75 Kapitola 4: Dotazy 75 Personal (8 vět) V našem případě bychom do kritéria zapsali "[H-Ř]*" P42o Příjmení daného začátku Zástupný symbol * Personal (2 věty) DOTAZ P42O PŘÍJMENÍ DANÉHO ZAČÁTKU: VÝBĚR VĚT S POŽADOVANÝM ZAČÁTKEM OBSAHU TEXTOVÉHO POLE Vypište abecedně seřazená příjmení zaměstnanců, která začínají písmeny Ko. Kritériem Ko* zadáváme počáteční znaky příjmení. Zástupný znak hvězdička povoluje libovolný obsah zbytku pole. Operátor Like a uvozovky doplní Access sám. Vyberou se zaměstnanci s příjmením Kolínská, Kos. P42p Příjmení daného začátku a konce Personal (3 věty) DOTAZ P42P PŘÍJMENÍ DANÉHO ZAČÁTKU A KONCE: VÝBĚR VĚT S POŽADOVANÝM ZAČÁTKEM I KONCEM TEXTOVÉHO POLE Vypište příjmení zaměstnanců, která začínají písmenem K a končí písmenem á. Za hvězdičkou může následovat znak či více znaků, které vyžadujeme na konci obsahu hledaného textového pole. Vyberou se zaměstnanci s příjmením Kalousková, Klímová, Kolínská, nevybere se Kos. P42q Příjmení s proměnlivým znakem Zástupný symbol? DOTAZ P42Q PŘÍJMENÍ S PROMĚNLIVÝM ZNAKEM: ZÁSTUPNÝ ZNAK PRO JEDEN TEXTOVÝ ZNAK Vypište příjmení zaměstnanců, kterým začíná příjmení písmenem K, třetím písmenem je písmeno l a příjmení končí písmenem á. Hvězdička zastupuje libovolný počet znaků. Otazník zastupuje jediný znak. Personal (2 věty) Vyberou se zaměstnanci s příjmením Kalousková a Kolínská, nebude vybrána Klímová. P42r Lidé mimo oddělení Not <> Personal (9 vět) DOTAZ P42R LIDÉ MIMO ODDĚLENÍ: VÝBĚR VĚT S PODMÍNKOU DVOJÍ NEROVNOSTI OBSAHU POLE Vypište abecedně seřazená příjmení zaměstnanců mužského pohlaví s výjimkou zaměstnanců z oddělení RED a DIS. Podmínku nerovnosti můžeme zapsat operátorem <> nebo operátorem Not (který Access po zavření dotazu při dalším otevření návrhu upraví na operátor <>). 75 P42s Lidé bez titulu DOTAZ P42S LIDÉ BEZ TITULU: VÝBĚR VĚT S PRÁZDNÝM OBSAHEM POLE Vypište abecedně seřazená příjmení a jména zaměstnanců bez titulu před příjmením. 75 Access také automaticky uloží nezobrazovaná pole na konec návrhové mřížky (pokud tato pole nemají vyplněn řádek Řadit). Např. v našem případě můžeme uvést pole Pohlaví jako druhé, přesto je uložené až jako poslední v návrhové mřížce.

76 Kapitola 4: Dotazy 76 Null Personal (9 vět) Prázdný obsah pole zastupuje operátor Null. Access sám rozšíří kritérium na tvar Is Null. Většinou chceme vypisovat ve výsledku také pole s nulovou délkou, do nichž jsme vložili hodnotu "". Rozšíříme proto podmínku na tvar Null Or "". P42t Lidé v intervalu Between Personal (10 vět) DOTAZ P42T LIDÉ V INTERVALU: VÝBĚR VĚT S INTERVALOVOU PODMÍNKOU OBSAHU POLE Vypište příjmení a jména zaměstnanců z místností v řazení dle místností. Konjunkci >= And <= můžeme nahradit operátorem Between. P42u Lidé s oprávněním Personal (13 vět) DOTAZ P42U LIDÉ S OPRÁVNĚNÍM: VÝBĚR VĚT DLE POLE TYPU ANO/NE Vypište abecedně seřazená příjmení a jména zaměstnanců, kteří jsou oprávněni fakturovat. Do kritéria pole typu Ano/ne můžeme zapsat hodnotu Ano (popř. 1 či True či Zapnuto) nebo Ne (popř. 0 či False či Vypnuto). Tyto hodnoty Access nepřevádí do uvozovek. P42v Březnové služební cety Month Tvůrce výrazů DOTAZ P42V BŘEZNOVÉ SLUŽEBNÍ CESTY: VÝBĚR VĚT S DANÝM MĚSÍCEM V ČASOVÉM POLI Vypište datum zahájení, název dne, název měsíce, týden a čtvrtletí březnových služebních cest v řazení dle data zahájení cest. Poprvé vybíráme věty z tabulky Cesty, nikoliv Personal. V návrhové mřížce jsme zatím uváděli pouze pole ze struktury tabulky. Můžeme zde také zařadit výraz, který může hrát roli vypisovaného výsledku, klíče řazení či kritéria výběru. V našem případě použijeme funkci Month, která má jediný argument název pole typu Datum/čas, z něhož měsíc počítáme. Názvy polí se uvádějí v hranatých závorkách. (Hranaté závorky zde nemusíme psát, Access je sám doplní.) Access nám nabízí pomůcku pro tvorbu složitějších výrazů Tvůrce výrazů. Kurzor přichystáme na místo, v němž budeme tvořit složitější výraz, např. do sloupce následujícího za sloupcem Zahájení v řádku Pole. Klepnutím do tlačítka Tvůrce ve skupině Nastavení dotazu zobrazíme dialogové okno Tvůrce výrazů (viz obr. 4-3). OBR. 4-3: DIALOGOVÉ OKNO TVŮRCE VÝRAZŮ

77 Kapitola 4: Dotazy 77 Cesty (4 věty) Poklepáním na Funkce ve spodním levém seznamu a klepnutím na dílčí volbu Vestavěné funkce se zobrazí v prostředním seznamu kategorie funkcí, které nabízí Access. Vybereme kategorii Datum a čas a v rámci ní v pravém sloupci funkci Month a klepneme do tlačítka Vložit (nebo na název funkce poklepáme). 76 V horní části dialogového okna se vypíše obecný tvar vybrané funkce. Access připravil a obecně popsal argument funkce Month. Klepnutím označíme jediný argument «number» a přepíšeme jej argumentem Zahájení. Pokud si nepamatujeme název polí tabulky Cesty, poklepáme v levém dolním seznamu na Tabulky a v dílčím seznamu klepneme na název tabulky Cesty. V prostřední části se vypíše struktura tabulky Cesty. Do horní části dopíšeme název pole dle spodního vzoru. Název pole nemusíme zapisovat do hranatých závorek, ty doplní Access sám. 77 Titulek výrazu Obdobně můžeme vkládat do výrazu pomocí Tvůrce výrazu konstanty (např. nebo Null), operátory (např. Between) nebo běžné výrazy (např. aktuální datum Date()). Ke vkládání nejčastějších operátorů (+, -, / atd.) můžeme využít přímo tlačítek pod horní částí okna. Vkládání pomocí spodních seznamů a tlačítek můžeme kombinovat s editací výrazu. Tlačítkem OK se výraz zapíše do návrhové mřížky nebo na jiné místo, odkud jsme v Accessu vyvolali Tvůrce výrazů. Tvůrce výrazů můžeme později využít i k úpravě stávajících dotazů. Access označuje výsledek výrazu titulkem Výraz1. Titulek se automaticky zapíše před výraz oddělený dvojtečkou. Titulek přepíšeme na Měsíc. Ve výsledku je potom sloupec s hodnotami výrazu nadepsán Měsíc. Do pole Měsíc zapíšeme kritérium 3, pole nevypisujeme. Zobrazení dalších požadovaných výstupů dosáhneme novým způsobem. Vždy se jedná o datum zahájení, pouze budeme měnit formát zobrazení. Opakovaně přidáme do návrhové mřížky pole Zahájení a přidáme jim vhodné titulky. Klepnutím do tlačítka Seznam vlastností ze skupiny Zobrazit či skrýt zobrazíme okno Seznam vlastností. Klepneme do třetího sloupce návrhové mřížky. 78 Do pole formát zapíšeme: pro název dne hodnotu dddd, pro název měsíce hodnotu mmmm, 79 pro týden hodnotu ww, pro čtvrtletí hodnotu q. V zobrazení datového listu se k cestám dopíše slovní název dne, měsíce a vypočítaný týden v roce. (Jedná se pouze o způsob zobrazení pole Zahájení. Když v zobrazení datového listu klepneme do názvu dne či jiného formátovaného sloupce, zobrazí se původní datum. Případné dotazy navazující na náš dotaz by opět počítaly s datem, nikoliv např. s týdnem.) Obdobně existují funkce: Day(Datum): den v měsíci WeekDay(Datum;2): pořadí dne v týdnu, argument 2 parametrizuje, že prvním dnem je pondělí WeekDayName(WeekDay(Datum;2)): název dne v týdnu MonthName(Month(Datum)): název měsíce Year(Datum): rok data Hour(Datum): hodina času, pokud v datu je obsažen také čas, např , 8:25 Minute(Datum): minuta času, pokud v datu je obsažen také čas Second(Datum): sekunda času, pokud v datu je obsažen také čas 77 Poklepáním na pole Zahájení v prostřední části se název pole dopíše do horní části okna ve tvaru: [Cesty]![Zahájení]. Dotaz vychází z tabulky Cesty, kde je název pole Zahájení jednoznačný, proto část [Cesty]! můžeme odstranit. (Někdy je odstranění této části nutné, aby výraz bezchybně fungoval.) Vypisování názvu tabulky odděleného vykřičníkem od názvu pole bude nutné v dotazech pracujících s více tabulkami, v nichž se vyskytne stejný název pole ve více tabulkách. 78 Jiným způsobem zobrazení okna vlastností pole je klepnout do příslušného sloupce návrhové mřížky pravým tlačítkem myši a z místní nabídky zvolit VLASTNOSTI. 79 Pokud do sloupce nedoplníme titulek, promítá se změna formátu dalších sloupců Zahájení do všech sloupců Zahájení bez titulku. 80 Pokud bychom chtěli, aby výsledkem byla transformovaná hodnota, nikoliv formát, použili bychom funkce Format(Datum; parametr ), parametr by byl shodný jako při formátování. Význam dalších znaků: d: den v číselném vyjádření (např. 5, 13) m: měsíc v číselném vyjádření (např. 3 nebo 12) dd: den jako dvojciferný text (např. 05, 13) mm: měsíc jako dvojciferný text (např. 03 nebo 12) ddd: krátká zkratka názvu dne (např. čt, út) mmm: měsíc formou římského čísla (např. III nebo XII) dddd: název dne (např. čtvrtek, úterý) mmmm: měsíc slovním vyjádřením (např. březen nebo prosinec)

78 Kapitola 4: Dotazy 78 P42w Délky služebních cest Cesty (15 vět) DOTAZ P42W DÉLKY SLUŽEBNÍCH CEST: ŘAZENÍ VĚT DLE DNE V MĚSÍCI Vypište data zahájení, dokončení, délku a termín pro vyúčtování služebních cest v řazení dle dnů a měsíců zahájení. Vyúčtování je nutné provést do 7 dnů od dokončení služební cesty. Funkce DateDiff vrací rozdíl třetího a druhého argumentu v časové jednotce prvního argumentu. 81 Funkce DateAdd přičte ke třetímu argumentu čas uvedený v druhém argumentu v jednotkách prvního argumentu. 82 Místo funkcí Day a Month použijeme pro řazení obecnou funkci DatePart, která vybírá část pole typu Datum a čas. 83 Kdybychom místo řazení dle funkce DatePart( d ;[Zahájení]) uvedli jen název pole Zahájení, řazení by bylo chronologické i s přihlédnutím k měsícům. Řazení dle měsíců a dnů bychom použili např. při vypisování kalendáře narozenin zaměstnanců v řazení bez ohledu na stáří. Stáří bychom mohli spočítat výrazem DateDiff( yyyy ;[Datum_narození];Date()). Funkce Date() vrací aktuální datum. Parametr yyyy vrací výsledek v rocích. Změna titulků polí Den a Měsíc nebyla nutná, neboť pole jsou použita pouze jako kritéria řazení, ve výsledku dotazu se nevypisují. P42x Webové adresy Personal (20 vět) DOTAZ P42X WEBOVÉ ADRESY: ČÁST WEBOVÉ ADRESY Vypište jména, příjmení, délku jejich příjmení, iniciály a webovou adresu jednotlivých zaměstnanců v řazení dle jejich příjmení a jmen. Left & Len HyperLinkPart P42y NACE Podniky (3 věty) Výsledkem funkce Left je prvních několik znaků z řetězce v prvním argumentu. Druhý argument udává počet znaků ve výsledku. Operátor & spojuje textové řetězce. Výsledkem funkce Len je délka textu v argumentu. Zařazením pole Web do návrhové mřížky by se vypsala první část webové adresy, tj. zobrazovaný text. Využitím funkce HyperLinkPart můžeme vypsat jakoukoliv část hypertextového odkazu, např. adresu odkazu, která bude zobrazena v prohlížeči po klepnutí do hodnoty pole Web. Tento odkaz však již není citlivý na klepnutí. Druhý argument funkce udává, kterou část odkazu vypíšeme. DOTAZ P42Y NACE 4724: VÝBĚR Z POLE S VÍCE HODNOTAMI Vypište názvy podniků, které se zabývají činnosti s klasifikací NACE 4724 (Maloobchod s chlebem, pečivem, cukrářskými výrobky a cukrovinkami). Vypište též všechny jejich NACE jako jedno pole a pole prvních čtyř činností. Vybírat lze i dle jednotlivých hodnot polí s více hodnotami. V podokně Diagram vybíráme pole s hodnotou (např. NACE.Value), pro nějž uplatníme kritérium. Hodnota by byla vybrána, i kdyby ve větě nebyla v poli NACE hodnota jako první (viz např. NACE o hodnotě 5812). V případě polí s více hodnotami by mělo smysl zadat podmínku s využitím operátoru AND (např And 1813). 81 Místo funkce DateDiff s prvním argumentem d můžeme použít výraz [Dokončení]-[Zahájení]. 82 Místo funkce DateAdd s prvním argumentem d můžeme použít výraz [Dokončení] Funkce DatePart má podobné výsledky jako funkce Format, má však opačné pořadí argumentů a výsledek poskytuje v číselném formátu.

79 Kapitola 4: Dotazy 79 P42z Tituly lidí Personal (20 vět) DOTAZ P42Z TITULY LIDÍ: VĚTVENÝ VÝRAZ A VÝBĚR VŠECH POLÍ VĚTY Vypište pro zaměstnance slovně, zda mají titul před jménem nevyplněn či vyplněn řetězcem nulové délky. Ke každé větě zrekapitulujte hodnoty všech polí. Switch Funkce Switch (z kategorie funkcí běhu programu) umožňuje diferencovat výslednou hodnotu výrazu dle podmínek. V argumentu funkce Switch je libovolné množství dvojic podmínka uplatněný výraz. Access postupně prochází jednotlivé podmínky. Až narazí na splněnou podmínku, uplatní výraz. Pokud žádná podmínka není splněna, ponechá výsledek prázdný. V našem případě je aplikace funkce Switch zjednodušená, při splnění libovolné z obou podmínek se uplatňuje konstantní text, nikoliv proměnlivý výraz. Přetáhneme-li ze seznamu polí tabulky hvězdičku, přidáme tím do výsledku dotazu všechna pole tabulky. Mezi přetažením všech jednotlivých polí a přetažením hvězdičky je rozdíl. Přetáhneme-li jednotlivá pole 84, stanou se součástí dotazu pouze tato pole. Přidáme-li později do struktury výchozí tabulky další pole (nebo nějaké pole naopak odstraníme), musíme stejné změny provést v návrhové mřížce dotazu. Přetáhneme-li hvězdičku, všechny změny ve struktuře tabulky se automaticky zahrnou do výsledku dotazu. Nevýhodou označení všech polí hvězdičkou je složitější definování kritérií výběru a řazení výsledku. (Musíme některá pole znovu přetáhnout do návrhové mřížky, ve výsledku dotazu je však již nezobrazujeme.) 4.3 Výběrové dotazy z více tabulek Dosud jsme připravovali dotazy na pole z jediné tabulky. Nyní budeme vytvářet dotazy spojující data z více tabulek. P43a Původní telefony Personal Místnosti (20 vět) DOTAZ P43A PŮVODNÍ TELEFONY: VÝBĚR SOUVISEJÍCÍCH VĚT Z TABULEK PERSONAL A MÍSTNOSTI Vypište k příjmením zaměstnanců místnost a původní telefonní linku do místnosti v řazení dle místnosti. Při zadávání nového dotazu přidáme v dialogovém okně Zobrazit tabulku (viz obr. 4-1) tabulky Personal a Místnosti. Relace se převezmou z diagramu relací. Ve výsledku proto nebudou uvedeny všechny kombinace vět tabulek Personal a Místnosti, ale pouze věty se stejným číslem místnosti v tabulce Personal a Místnosti. Poklepeme na relaci mezi tabulkami a zadáme typ spojení Zahrnout všechny záznamy z tabulky Personal. Nyní se ve výsledku zobrazí i věty, v nichž není vyplněno číslo místnosti. Výsledkem je dynamická sada, kterou můžeme v zobrazení datového listu aktualizovat: 84 Před přetažením můžeme označit více polí, klepneme-li na první a potom současně s klávesou Shift na poslední pole (souvislý rozsah) nebo postupně na jednotlivá pole s klávesou Ctrl (nesouvislý rozsah). Všechna pole můžeme označit poklepáním na název tabulky nad seznamem polí.

80 Kapitola 4: Dotazy 80 Pokud změníme Původní_telefon, upraví se automaticky (po uložení věty např. přechodem na jinou větu) původní telefony pro další zaměstnance ze stejné místnosti, neboť upravíme hodnotu v tabulce Místnosti. (Např. můžeme dočasně změnit původní telefon Hanáka z 803 na 893. Změna se automaticky promítne do věty Kalouskové, která sedí ve stejné místnosti. Po prohlédnutí vrátíme hodnotu do původního stavu.) Pokud změníme Místnost, mohou nastat dva případy: V případě, že jsme Místnost převzali z tabulky Personal (viz výše uvedený obrázek dotazu), změnou Místnosti zasáhneme pouze do tabulky Personal. Musíme však zvolit existující místnost, jinak nás Access upozorní na porušení referenční integrity. (Např. můžeme dočasně změnit místnost Hanáka z 13 na 11, automaticky se zobrazí správné původní telefonní číslo 801.) V případě, že jsme Místnost převzali z tabulky Místnosti, změnou Místnosti Hanáka z 13 např. na 93 (neexistující číslo místnosti) přečíslujeme místnost v tabulce Místnosti. Automaticky se (díky aktualizaci svázaných polí v kaskádě, kterou jsme definovali v relacích) po uložení věty (např. při přechodu na jinou větu) opraví čísla místnosti ve větách zaměstnanců ze stejné místnosti. Na tuto závažnou změnu jsme upozornění dialogovým oknem Konflikt při zápisu, v němž klepneme do tlačítka Uložit záznam. První případ je ve většině situací logičtější, proto se v dotazech snažíme přebírat propojující pole z pravé strany (ze strany N) relace 1:N. P43b Faktury DIS Faktury Personal (60 vět) DOTAZ P43B FAKTURY DIS: VÝBĚR S PROPOJENÍM DVOU TABULEK A PODMÍNKOU Vypište čísla a data faktur připravených oddělením DIS (distribuce). P43c Faktury DIS bez bakalářů Faktury Personal (35 vět) DOTAZ P43C FAKTURY DIS BEZ BAKALÁŘŮ: VÝBĚR S PROPOJENÍM DVOU TABULEK A DVOJÍ PODMÍNKOU Vypište čísla a data faktur připravených zaměstnanci z oddělení DIS, kteří nemají titul Bc. Pokud bychom zapsali pro pole Titul1 pouze podmínku Not Bc., nevypsaly by se věty s prázdným obsahem pole Titul1. 85 Musíme proto doplnit vypisování i vět s prázdným obsahem pole Titul1 doplněním kritéria o část Or Is Null. P43d Faktury vybraného oddělení Faktury Personal Oddělení_F (pro DIS 60 vět) DOTAZ P43D FAKTURY VYBRANÉHO ODDĚLENÍ: VÝBĚR VĚT POMOCÍ POMOCNÉ TABULKY Vypište čísla i data faktur vystavených vybraným oddělením (vypište jakým) v řazení dle data. 85 Prázdné pole pro Titul1 vyplníme pro Lukáše Škodu. Zapíšeme mu Titul1 Bc. a smažeme jej. (Po importu z Excelu bylo vyplněno pole Titul1 hodnotami prázdného řetězce "".)

81 Kapitola 4: Dotazy 81 Oddělení_F P43e Licence FIN pozitivní vývoj Licence Faktury Podniky Stadia (26 vět) Připravíme pomocnou tabulku Oddělení_F (koncovku _F budeme používat pro pomocné vyhledávací tabulky, F je zkratka slova find hledat) s jediným textovým polem Oddělení o velikosti 3 znaky. Pole Oddělení je povýšeno na primární klíč, abychom zabránili opakovanému uvedení stejného oddělení v tabulce Oddělení_F. Do tabulky zapíšeme jedno či více oddělení, za něž si přejeme vyhodnocovat dotaz, např. DIS. Výběrem tabulky v dialogovém okně Zobrazit tabulky se v podokně Diagram návrhu dotazu přichystá také relace mezi tabulkami Oddělení_F a Oddělení vzhledem ke stejnojmenným polím v obou tabulkách. Mohli bychom obejít užití pomocné tabulky uvedením výčtu vybíraných oddělení ve sloupci Oddělení v návrhové mřížce. Výběr oddělení by se však špatně aktualizoval, zvláště kdybychom výběr zařadili do více dotazů. DOTAZ P43E LICENCE FIN POZITIVNÍ VÝVOJ: VÝBĚR S PROPOJENÍM ČTYŘ TABULEK Vypište vzestupně seřazená sériová čísla licencí programu Finanční analýza prodaných podnikům ve stadiu s pozitivní charakteristikou vývoje, vypište též název podniku a stadium. P43f Licence stavebnictví Licence Faktury Podniky NACE_Oddíly Oddíly_Sekce Sekce (21 vět) P43g Lidé na cestě 4 i 10 Spojení tabulky do sebe Výjezdy Výjezdy_1 (2 věty) DOTAZ P43F LICENCE STAVEBNICTVÍ: VÝBĚR S PROPOJENÍM ŠESTI TABULEK Vypište vzestupně seřazená označení programů a sériová čísla licencí programů prodaných podnikům, jejichž hlavní činnost patří do skupiny v sekci Stavebnictví, vypište též název podniku. Podkladem dotazu nejsou jen tabulky, ale také dotazy. V dialogovém okně Zobrazit tabulku klepneme na záložku Oboje, aby v seznamu dostupných objektů byly tabulky i dotazy. Do konstrukce dotazu přidáme příslušné tabulky a dotazy. Počet tabulek a dotazů, z nichž dotaz čerpá data, není omezený. DOTAZ P43G LIDÉ NA CESTĚ 4 I 10: VÝBĚR S PROPOJENÍM TABULKY DO SEBE Vypište y zaměstnanců, kteří byli na služební cestě číslo 4 i 10. Účast zaměstnanců na služebních cestách je uvedena v tabulce Výjezdy. Tabulku Výjezdy bychom mohli zkopírovat do tabulky Výjezdy2 86. Potom bychom v dotazu zkoumali kombinace tabulek Výjezdy a Výjezdy2 se stejným E_mailem. Počet kombinací by byl větší než počet výjezdů v tabulce Výjezdy. Za každého zaměstnance by vzniklo n 2 kombinací, kde n je počet výjezdů, které zaměstnanec absolvoval (pro některé zaměstnance n = 0) 87. Nás by však zajímaly pouze kombinace, v nichž v první tabulce Výjezdy je Cesta (číslo služební cesty) rovno 4 a ve druhé (stejné) tabulce Výjezdy2 je rovno V seznamu objektů bychom vybrali objekt tabulky Výjezdy a stisknuli bychom kombinaci kláves Ctrl C. Po stisknutí kombinace Ctrl V bychom zapsali v dialogovém okně Vložit tabulku jako název tabulky Výjezdy2. 87 V případě tabulky Výjezdy vyjelo 15 z 20 zaměstnanců: 3 2 (Benešová) (Drobná) = = 86

82 Kapitola 4: Dotazy 82 Kopírování tabulky Výjezdy by přinášelo riziko, že změníme tabulku Výjezdy a opomeneme vytvořit její aktualizovanou kopii Výjezdy2. Dvě tabulky by také zbytečně zvětšovaly databázi. Access umožňuje přidat jednu tabulku do konstrukce dotazu vícekrát. V dialogovém okně Zobrazit tabulku proto přidáme tabulku Výjezdy dvakrát. Podruhé se zobrazí jako tabulka Výjezdy_1. Relaci mezi tabulkami musíme doplnit sami, aby se kombinovaly výjezdy stejného zaměstnance. Pole Cesta je čerpáno jednou z tabulky Výjezdy, podruhé z tabulky Výjezdy_1 (se stejným obsahem). Pole Cesta použijeme jen pro kritérium, nemusíme je zobrazovat. P43h Lidé bez telefonu Personal Místnosti (2 věty) DOTAZ P43H LIDÉ BEZ TELEFONU: VÝBĚR VĚT S NEEXISTUJÍCÍM PROPOJENÍM DO JINÉ TABULKY Vypište příjmení, místnost a původní telefon zaměstnanců, kteří sedí v místnosti, kde původně nebyl telefon. Kritérium Is Not Null v poli Místnost zabraňuje vypsání vět zaměstnanců bez místnosti pro případ typu spojení mezi tabulkami Zahrnout všechny záznamy z tabulky Personal... Vypisování vět, které nemají související větu v jiné tabulce je častým úkolem zejména, když chceme doplňovat do existující databáze referenční integritu. 88 P43i Cesta do Sokolova Navazující dotazy Cesty (1 věta) DOTAZ P43I CESTA DO SOKOLOVA: VÝBĚR HODNOTY POLE PRO PŘESNĚ DEFINOVANOU VĚTU ČI VĚTY Vypište datum zahájení (poslední) 89 služební cesty do Sokolova. Výsledek dotazu bude použit v konstrukci následujícího dotazu. P43j Faktury do cesty do Sokolova DOTAZ P43J FAKTURY DO CESTY DO SOKOLOVA: DOTAZ NA ZÁKLADĚ VÝSLEDKU JINÉHO DOTAZU Vypište všechna data o faktuře dostupná z tabulky Faktury pro faktury vydané v den zahájení (poslední) služební cesty do Sokolova a dříve. Dotaz chceme formulovat obecně. Nechceme najít sami datum dokončení služební cesty do Sokolova, ale necháme datum vyhledat Access. (Další služební cestou by se např. datum zahájení poslední služební cesty mohlo změnit.) Podkladem dotazu nebude jen tabulka Faktury, ale také výsledek předchozího dotazu. V dialogovém okně Zobrazit tabulku klepneme na záložku Oboje, aby v seznamu dostupných objektů byly tabulky i dotazy. Do podokna Diagram přidáme tabulku Faktury a výsledek dotazu P43i Cesta do Sokolova. Datovou sadu P43i Cesta do Sokolova jsme nepřidali za účelem omezení kombinací vět z datových sad Faktury a P43i Cesta do Sokolova, ale pouze abychom mohli použít (často jedinou) hodnotu pole Zahájení ze sady P43i Cesta do Sokolova při definování kritéria pro výběr vět z tabulky Faktury. V kritériu musíme název pole zapsat do hranatých závorek. Access by při nezapsání hranatých závorek považoval vloženou hodnotu za text, se kterým porovnáváme hodnotu pole Datum. 88 Např. v našem případě by k zavedení referenční integrity mezi tabulkami Personal a Místnosti bylo nutné, aby neexistovaly věty v tabulce Personal s místností neuvedenou v tabulce Místnosti. Výsledkem uvedeného dotazu jsou věty dvou druhů: věty s místností neuvedenou v tabulce Místnosti (Vzhledem k tomu, že v naší databázi již referenční integrita byla zavedena, nemůže takový případ nastat.), věty s místností s nevyplněným telefonem v tabulce Místnosti. (Místnosti bez telefonu, které nejsou narušením referenční integrity.). 89 V případě více cest do Sokolova by bylo vhodné aplikovat v dotazu souhrn Max (viz kap. 4.4).

83 Kapitola 4: Dotazy 83 Faktury P43i Cesta do Sokolova (52 vět) V případě, že by služebních cest do zvoleného místa bylo více, vypisovaly by se některé faktury vícekrát, neboť splnily vícekrát podmínku dřívějšího vydání faktury než zahájení více cest do vybraného místa. Proto ve vlastnostech dotazu zadáme do pole Jedinečné hodnoty hodnotu Ano. 4.4 Výpočty P44a Délky cest Výpočty ve větě Cesty (15 vět) DOTAZ P44A DÉLKY CEST: VÝPOČET Z HODNOT POLÍ V RÁMCI VĚTY Vypište všechny údaje o služebních cestách a jejich délky. V poli můžeme uvést také výraz (viz již dotaz P42v). Ve výrazu můžeme použít pole z tabulek zařazených do konstrukce dotazu. Názvy polí se v Accessu zapisují do hranatých závorek. Pokud by jejich názvy v kontextu dalších tabulek v konstrukci dotazu nebyly jednoznačné, musel by před názvem pole být uveden v hranatých závorkách název tabulky oddělený od názvu pole vykřičníkem. Access nazve výsledné dopočtené pole Výraz1 (při více dopočtených polích Výraz2, Výraz3 atd.). Pokud chceme pole ve výsledku nazvat jinak, můžeme před výraz zapsat svůj titulek oddělený od výrazu dvojtečkou. Obdobně můžeme přejmenovat i další pole, která nejsou definována výrazem. Výraz může používat nejen funkci, ale také může spojit názvy polí operátory. Délku cesty můžeme spočítat jako výsledek funkce DateDiff nebo rozdílem dvou polí. P44b Poslední cesty Souhrnné dotazy Sum DOTAZ P44B POSLEDNÍ CESTY: SOUHRN POLÍ ZA SKUPINU VĚT Vypište datum dokončení poslední služební cesty do každého navštíveného místa. Výpočty za skupiny vět lze provést prostřednictvím souhrnných (agregovaných) dotazů. Z prostého výběrového dotazu vytvoříme souhrnný dotaz klepnutím do tlačítka Souhrny ve skupině Zobrazit či skrýt. V návrhové mřížce se zobrazí navíc řádek Souhrn, v němž do polí, podle nichž se seskupuje, zadáme Seskupit. U polí definujících výběrovou podmínku zadáme Kde (viz dotaz P44e). U polí definujících shrnující funkci můžeme zapsat funkce: Sum: Součet hodnot pole. Avg: Průměrná hodnota v poli. (Hodnoty Null jsou ignorovány.) Var: Rozptyl hodnot v poli. Rozptyl se počítá dle vzorce: 2 ( x x) ( n 1) StDev: Směrodatná odchylka hodnot v poli. Vypočítá se podle vzorce: 2 ( x x) ( n 1) Count: Počet nenulových hodnot v poli.

84 Kapitola 4: Dotazy 84 Cesty (11 vět) Min: Nejnižší hodnota v poli. (Malá a velká písmena v textových polích nejsou rozlišována.) Max: Nejvyšší hodnota v poli. First: Hodnota v poli v první větě vyhovující kritériím. Last: Hodnota v poli v poslední větě vyhovující kritériím. Výsledkem souhrnného dotazu je snímek, který na rozdíl od dynamické sady nelze přímo editovat. P44c Délky cest do jednotlivých míst DOTAZ P44C DÉLKY CEST DO JEDNOTLIVÝCH MÍST: SOUČET VÝRAZU Z NĚKOLIKA POLÍ ZA SKUPINU VĚT Vypočtěte, kolik dní dohromady trvaly služební cesty do jednotlivých míst. Cesty (11 vět) Po uložení dotazu si upraví Access dotaz na tvar: P44d Cena dle místností Místnosti Majetek_umístění Majetek_typy (28 vět) DOTAZ P44D CENA DLE MÍSTNOSTÍ: SOUČTY S CELKOVÝM SOUČTEM Vypište pořizovací cenu vybavení místností v řazení dle oddělení a místností. Závěrem vypište celkovou pořizovací cenu vybavení ve firmě Encián. Souhrny lze počítat i za data z více tabulek. Tabulka Majetek_umístění není využita v návrhové mřížce, je však nutná pro spojení tabulek Místnosti a Majetek_typy. Celkový součet doplníme do výsledku dotazu jako do zobrazení tabulky. V zobrazení datového listu klepneme do tlačítka Souhrny ve skupině Záznamy. Rozbalíme nabídku v součtovém řádku ve sloupci Celková pořizovací cena a vybereme SOUČET. P44e Tržby za BON a FIN Faktury Licence Programy (6 vět) Kde DOTAZ P44E TRŽBY ZA BON A FIN: KRITÉRIUM V SOUHRNU Vypočtěte celkovou tržbu dosaženou dohromady za programy BON a FIN v jednotlivých měsících. Pokud bychom v řádku Souhrn pro pole Program uvedli Seskupit, součty tržeb by byly spočteny v jednotlivých měsících za jednotlivé programy. V našem případě uvádíme v řádku Souhrn pro pole Program hodnotu Kde. (Pole, v jehož sloupci je v řádku Souhrn uvedeno Kde, nelze přímo zobrazit. Museli bychom jej uvést ještě jednou do dalšího sloupce.) Součty tržeb se počítají za jednotlivé měsíce za oba programy dohromady.

85 Kapitola 4: Dotazy 85 P44f Tržby v týdnech Format Podniky Faktury Licence Programy (17 vět) Val P44g Podniky s vysokými tržbami Podniky Faktury Licence Programy (9 vět) P44h Prvních pět lidí Min, max Faktury (5 vět) DOTAZ P44F TRŽBY V TÝDNECH: SOUHRN DLE ČÁSTI POLE Vypište celkové tržby od podniků ve stadiu růst dosažené v jednotlivých týdnech. Funkce Format umožňuje vybrat část časového pole a (na rozdíl od zobrazovacího formátu) s částí počítat, např. Format(Datum; ww ) zjistí z data pořadí týdne v roce. Funkce Format bohužel vrací pořadí týdne jako textový řetězec, dochází potom k špatnému řazení týdnů (1,10, 11,, 2, 20, 21, ), pro pole Týden můžeme využít funkci převádějící text na číslo: Týden: Val(Format([Datum];"ww")), popř. využijeme dříve vyloženou funkci DatePart: Týden: DatePart("ww";[Datum]). DOTAZ P44G PODNIKY S VYSOKÝMI TRŽBAMI: KRITÉRIUM VE VÝSLEDKU SOUHRNU Vypište podniky, od nichž jsme utržili více než Kč, v seřazení tržeb od nejvyšší po nejnižší. Pole Název_podniku slouží jen jako vysvětlení pole IČ, k jednomu identifikačnímu číslu organizace existuje jediný název podniku. DOTAZ P44H PRVNÍCH PĚT LIDÍ: OMEZENÍ POČTU VĚT VE VÝSLEDCÍCH Vypište pět zaměstnanců, kteří první fakturu vystavili nejdříve, v řazení dle data vystavení. Nejprve připravíme dotaz pro výpis nejstarších (minimálních) dat faktur připravených jednotlivými zaměstnanci. Využíváme data pouze z tabulky Faktury. Funkce Min, Max lze aplikovat i na pole typu Datum a čas. Omezení počtu vět P44i První čtvrtina lidí Faktury Licence Programy (3 věty) Dotaz upřesníme vlastností Nejvyšší hodnoty (vlastnost celého dotazu obdobně jako např. vlastnost Jedinečné hodnoty), do níž zapíšeme 5. Počet vypisovaných hodnot můžeme zadat absolutně či procentuálně. Název vlastnosti Nejvyšší hodnoty není přesný, Access vypisuje z výsledku jen počtem či procentuálně stanovený počet vět ze začátku výsledku. DOTAZ P44I PRVNÍ ČTVRTINA LIDÍ: VÝBĚR NĚKOLIKA VĚT S NEJVYŠŠÍ HODNOTOU POLE Vypište služební cesty, na nichž bylo 25 % zaměstnanců (z počtu fakturujících zaměstnanců), kteří dosáhli nejvyšší tržby. Zadání nelze vyřešit jediným dotazem. Přidáním tabulky Výjezdy do konstrukce dotazu by se totiž tržby každého zaměstnance započetly tolikrát, kolikrát byl na služební cestě. V prvním kroku proto pouze zjistíme y zaměstnanců a celkové tržby. Ve vlastnosti dotazu Nejvyšší hodnoty zadáme 25 %. Celkem fakturovalo 9 zaměstnanců, z toho 25 % je 2,25, což Access zaokrouhlí nahoru. Přidáním tabulky Výjezdy (spojené s tabulkou faktury prostřednictvím pole E_mail) by se vypsaly 2 věty (25 % z 8 fakturujících zaměstnanců, kteří vyjeli alespoň na jednu služební cestu, Miloš Adamec fakturoval, ale nebyl na žádné služební cestě).

86 Kapitola 4: Dotazy 86 Přidáním tabulky Cesty a polí Zahájení, Dokončení, Místo by se vypsalo 7 vět (25 % z 21 výjezdů fakturujících zaměstnanců by mělo být 6, avšak hodnota tržeb zaměstnanců na 6. a 7. místě byla stejná). P44j Cesty první čtvrtiny lidí P44i První čtvrtina lidí Výjezdy Cesty (5 vět) DOTAZ P44J CESTY PRVNÍ ČTVRTINY LIDÍ: UPŘESNĚNÍ ÚDAJŮ O VYBRANÝCH VĚTÁCH Obdobně jako v dotazu P43j navazujeme na výsledky předchozího dotazu. V podokně Diagram připravíme datové sady P44i První čtvrtina lidí, Výjezdy a Cesty. Doplníme relaci mezi datovou sadou P44i První čtvrtina lidí a tabulkou Výjezdy a upravíme její typ. V souvislosti s tím musíme také upravit typ dvojité relace tabulek Výjezdy a Cesty, jinak by Access hlásil před zobrazováním výsledků dotazu chybu. Tři nejvíce fakturující zaměstnanci jsou zastoupeni 5 větami. Miloš Adamec nebyl na žádné cestě (díky typu spojení je zastoupen 1 větou), Eva Benešová byla na 3 cestách, Marie Sladká na 1 cestě. Parametrický dotaz P45a Měsíční tržby sekce Podniky Faktury Licence Programy NACE_Oddíly Oddíly_Sekce Sekce (0 6 vět, např. pro BON, A: 2 věty) 4.5 Parametrické dotazy V případě, že často používáme stejný výběrový dotaz, v němž měníme kritéria, můžeme vyžádat zadání kritérií při spuštění dotazu. Místo vypsání kritéria do návrhové mřížky zapíšeme v hranatých závorkách výzvu či více výzev pro uživatele dotazu. Po spuštění dotazu jsme dotázáni formou dialogových oken na parametrizovaná kritéria. DOTAZ P45A MĚSÍČNÍ TRŽBY SEKCE: PARAMETRICKÝ DOTAZ S PŘESNÝMI KRITÉRII Vypište měsíční tržby za vybraný program v rámci vybrané sekce podniků. Po spuštění dotazu jsme dotázáni formou dialogových oken na program (viz obr. 4-4) a sekci podniku. Teprve po jejich zadání se zobrazí výsledky. OBR. 4-4: ZADÁNÍ HODNOT PARAMETRU DOTAZU Sloupec Sekce_v je zařazen jako vysvětlivka názvu vybrané sekce, neovlivní počet výsledných vět. P45b Měsíční tržby NACE DOTAZ P45B MĚSÍČNÍ TRŽBY NACE: PARAMETRICKÝ DOTAZ S PŘIBLIŽNÝM KRITÉRIEM Vypište měsíční tržby za vybraný program prodaný podnikům se zadaným NACE o libovolném počtu znaků.

87 Kapitola 4: Dotazy 87 Podniky Faktury Licence Programy (0 6 vět, např. pro BON, 47 3 věty) P45c Cesty od zadaného data Personal Výjezdy Cesty (např. pro nejstarší datum a oprávnění ano: 24 vět) Mezi Personal a Výjezdy nutno upravit typ spojení (volit typ 1) Slovo Like musíme do kritéria pole NACE.Value napsat. Operátor & je nutný. Hvězdičku nemusíme zapisovat do uvozovek. DOTAZ P45C CESTY OD ZADANÉHO DATA: OMEZENÍ DATOVÉHO TYPU PARAMETRU PARAMETRICKÉHO DOTAZU Vypište služební cesty se zahájením v zadaném datu či později. Vypisujte dle zadání dotazu cesty zaměstnanců oprávněných či neoprávněných fakturovat. Parametr Zadejte oprávnění musíme zadávat ve tvaru 1 (ano) nebo 0 (ne), což je nevhodné. Chceme umožnit zadávání ve tvaru ano nebo ne, dále chceme zamezit, abychom nezadali datum či oprávnění v nevhodném tvaru. Chceme tedy omezit datový typ parametrů. V návrhovém zobrazení dotazu klepneme do tlačítka Parametry ve skupině Zobrazit či skrýt. Zobrazíme dialogové okno Parametry dotazu, v němž do levého sloupce zapisujeme názvy parametrů, v pravém sloupci vybíráme datové typy parametrů (viz obr. 4-5). OBR. 4-5: DIALOGOVÉ OKNO PARAMETRY DOTAZU Když nyní spustíme dotaz, nedovolí nám Access zapsat do data nevhodný text. Na parametry jsme dotazováni v jejich pořadí dle tabulky parametrů. Zadáme-li nevhodnou hodnotu (např. datum ), Access zobrazí hlášení Zadaná hodnota není pro toto pole platná. V dialogovém okně parametru Zadejte oprávnění musíme vyplnit ano (popř. True, Zapnuto, 1) nebo ne (popř. False, Vypnuto, 0). 4.6 Křížové dotazy P46a Počty lidí dle pohlaví a oddělení DOTAZ P46A POČTY LIDÍ DLE POHLAVÍ A ODDĚLENÍ: SOUHRN TABULKY DLE DVOU POLÍ Zjistěte, kolik je mužů a kolik žen je v jednotlivých odděleních. Personal (11 vět)

88 Kapitola 4: Dotazy 88 Vytvořili jsme běžný výběrový souhrnný dotaz známý z kap V sloupci E_mail zadáme do Souhrnu hodnotu Count. (Zjišťujeme počet vyplněných polí E_mail, které jsou jistě u každého zaměstnance vyplněné, neboť se jedná o primární klíč tabulky Personal.) Výsledek je poměrně nepřehledný. Pro každé pohlaví je uvedeno ve výsledku tolik řádků, na kolika odděleních se vyskytuje (viz obr. 4-6). OBR. 4-6: VÝSLEDKY VÝBĚROVÉHO SOUHRNNÉHO DOTAZU P46b Křížová tabulka lidí Křížový dotaz Personal (2 věty) DOTAZ P46B KŘÍŽOVÁ TABULKA LIDÍ: KŘÍŽOVÝ DOTAZ S BĚŽNÝM POŘADÍM SLOUPCŮ Sestavte křížovou tabulku počtu zaměstnanců, v níž v řádcích budou pohlaví a ve sloupcích oddělení zaměstnanců. Sledování tabulky podle změny dvou polí je velmi častým způsobem analýzy. Access nabízí uspořádání výsledku do tzv. křížové tabulky. Křížová tabulka je obdobou kontingenční tabulky (viz kap. 3.5). V řádcích jsou uvedeny varianty hodnot jednoho pole, ve sloupcích varianty hodnot jiného pole. Křížovou tabulku vytvoříme křížovým dotazem: Vytvoříme nový dotaz, v němž použijeme tabulku Personal. Klepneme do tlačítka Křížový ve skupině Typ dotazu. Názvy řádků návrhové mřížky se přizpůsobily novému typu dotazu. Místo řádku Zobrazit se vypisuje řádek Křížová tabulka, který je předsunut před řádek Řadit. Běžným způsobem přidáme do návrhové mřížky pole Pohlaví, Oddělení a E_mail. V řádku Souhrn se automaticky nastavuje Seskupit. V sloupci E_mail zadáme do Souhrnu hodnotu Count. V řádku Křížová tabulka: K jednomu či více polím zadáváme Hlavička řádku. K právě jednomu poli zadáváme Hlavička sloupce. 90 K právě jednomu poli, které bude vyhodnoceno v křížové tabulce, zadáme Hodnota. Ve výsledku (viz obr. 4-7) jsou uvedeny hlavičky řádků (Pohlaví) v pořadí, jak se vyskytovaly v podkladové tabulce. Jejich řazení můžeme ovlivnit zadáním hodnoty v řádku Řadit. Hlavičky sloupců (Oddělení) jsou seřazeny v abecedním nebo číselném pořadí. OBR. 4-7: VÝSLEDKY KŘÍŽOVÉHO DOTAZU 90 Křížový dotaz může obsahovat několik hlaviček řádků, ale jen jednu hlavičku sloupce. Chceme-li, aby dotaz obsahoval více hlaviček sloupců a jednu hlavičku řádků, upravíme konstrukci tak, aby pole původně vybraná do sloupců byla uvedena v řádku a naopak pole původně vybrané do řádku bude uvedeno ve sloupcích.

89 Kapitola 4: Dotazy 89 Pokud v návrhové mřížce bylo uvedeno více hlaviček řádků, ve výsledku by hlavička řádků byla zobrazena v několika sloupcích. Např. v našem příkladu bychom mohli požadovat výpis nejen dle pohlaví a oddělení, ale dle pohlaví, úvazku (řádek) a oddělení (sloupec). Klepneme pravým tlačítkem do titulku navigačního podokna. Z místní nabídky vybereme ZPŮSOB ŘAZENÍ a zadáme NÁZEV tak, aby různé druhy dotazů byly řazeny v pořadí jejich názvů, nikoliv typů. P46c Řazená oddělení Pořadí sloupců P46d Prodeje dle programů a měsíců Faktury Licence (6 vět) DOTAZ P46C ŘAZENÁ ODDDĚLENÍ: KŘÍŽOVÁ TABULKA SE ZADANÝM POŘADÍM SLOUCŮ Sestavte křížovou tabulku počtu zaměstnanců, v níž v řádcích budou pohlaví a ve sloupcích oddělení zaměstnanců, sloupce jsou uvedeny v pořadí RED, ANA, PRG, REK, DIS, KON. Návrhová mřížka je stejná jako v předchozím dotazu. Klepneme do tlačítka Seznam vlastností ze skupiny Zobrazit či skrýt. Do vlastnosti Hlavičky sloupců můžeme dopsat vlastní pořadí hodnot pole ve sloupcích. Jednotlivé hodnoty pole oddělujeme středníky. Pokud na některou hodnotu zapomeneme, nebude uveden její sloupec ve výsledku. Toho můžeme využít k omezení počtu sloupců výsledku. Do vlastnosti Hlavičky sloupců zapíšeme hodnotu RED;ANA;PRG;REK;DIS;KON. DOTAZ P46D PRODEJE DLE PROGRAMŮ A MĚSÍCŮ: KŘÍŽOVÁ TABULKA S VÝRAZEM V HLAVIČCE Sestavte křížovou tabulku počtu prodejů programů, v níž v řádcích budou programy a ve sloupcích měsíce prodeje. Sloupec nadepsaný ve výsledku <> by případně zastupoval věty s nevyplněným polem Datum. P46e Tržby dle programů a měsíců Faktury Licence Programy (6 vět) DOTAZ P46E TRŽBY DLE PROGRAMŮ A MĚSÍCŮ: KŘÍŽOVÁ TABULKA VYCHÁZEJÍCÍ Z VÍCE TABULEK Sestavte křížovou tabulku tržeb z prodejů programů, v níž v řádcích budou programy včetně jejich názvů a ve sloupcích měsíce prodeje. Doplňte součtový řádek. Klepnutím do tlačítka Souhrny v kartě Domů v zobrazení datové listu můžeme doplnit řádek souhrnů a pro všechny měsíce vybrat Součet. Po uložení a dalším otevření dotazu nebude řádek součtů zobrazen. Stačí však již jen klepnout do tlačítka Souhrny a zobrazí se součty tržeb za jednotlivé měsíce. P46f Průměrné délky cest Personal Výjezdy Cesty (2 věty) Mezi Personal a Výjezdy nutno upravit typ spojení (volit typ 1) Formát výsledného pole DOTAZ P46F PRŮMĚRNÉ DÉLKY CEST: FORMÁT VÝSLEDKU DOTAZU Vypočtěte průměrnou délku služební cesty dle pohlaví a dle oprávnění fakturovat. Sloupce jsou ve výsledku nadepsány 1 (oprávnění zaměstnanci) a 0 (neoprávnění zaměstnanci). Do vlastnosti dotazu doplníme do řádku Hlavičky sloupců hodnoty ano ; ne (včetně uvozovek). Průměrná délka se vypisuje ve formě desetinného čísla. Zobrazíme vlastnosti. Klepneme do kteréhokoliv řádku sloupce Délka a vybereme v poli Formát hodnotu pevný. Ve výsledku se nyní vypisuje průměrná délka s přesností na dvě desetinná místa.

90 Kapitola 4: Dotazy 90 Pokud bychom chtěli zobrazit výsledek např. s přesností na tři desetinná místa, zapsali bychom do vlastnosti Formát hodnotu, Akční dotazy Typy dotazů: výběrové křížové vytvářecí aktualizační odstraňovací přidávací P47a Tvorba Prodeje DIS Vytvářecí dotaz Prodeje DIS 4.7 Akční dotazy Dotazy, které jsme zatím navrhovali, vytvářely sady záznamů, a to buď dynamické sady (můžeme aktualizovat jejich obsah) nebo snímky (nelze je aktualizovat, např. výsledky křížových dotazů). Jednalo se o výběrové a křížové dotazy. Typ dotazu se pro přehlednost zobrazuje symbolickým obrázkem před názvem dotazu v navigačním podokně. Např. křížové dotazy mají jiný obrázek než výběrové dotazy. Protikladem těchto dotazů jsou akční dotazy, které ovlivňují přímo tabulky. Dle výsledného působení můžeme akční dotazy dále rozdělit na: Vytvářecí dotazy tvoří místo sady vět novou tabulku, popř. přepíší stávající tabulku novou tabulkou. Aktualizační dotazy provádějí změny přímo v tabulce či skupině tabulek, k nimž chystáme dotaz. Odstraňovací dotazy odstraní z tabulky věty dle zadaných podmínek. Přidávací dotazy přidají do tabulky věty z jiné tabulky či skupiny tabulek. Akční dotazy lze provádět jen při vhodném nastavení Centra zabezpečení 92. Vzhledem k závažnosti změn prováděných akčními dotazy jsme navíc před jejich provedením varováni. 93 Toto varování se však nezobrazuje, pokud akční dotaz spouštíme z návrhu dotazu. DOTAZ P47A TVORBA PRODEJE DIS: VYTVÁŘECÍ DOTAZ Vytvořte tabulku Prodeje DIS, v níž bude přehled prodejů fakturovaných oddělením DIS (distribuce). Pro každý prodej uveďte všechna pole z tabulky Faktury, značku programu, sériové číslo licence, cenu a název programu. Zahájíme návrh nového dotazu. Přidáme postupně tabulky Personal, Faktury, Licence, Programy. Klepneme do tlačítka Vytvořit tabulku ze skupiny Typ dotazu. Zobrazí se dialogové okno Vytvořit tabulku (viz obr. 4-8). Z obsahu dialogového okna je patrné, že novou tabulku můžeme vytvořit v jiné databázi. My však vystačíme s aktuální otevřenou databází. Zadáme název nové (či vybereme název stávající přepisované) tabulky Prodeje DIS. OBR. 4-8: DIALOGOVÉ OKNO VYTVOŘIT TABULKU Personal Faktury Licence Programy (106 vět) Kontrola dotazu a spuštění V návrhové mřížce definujeme strukturu nově vytvořené tabulky. Na rozdíl od výběrových a křížových dotazů se u akčních dotazů liší zobrazení (kontrola) v datovém listu a spuštění dotazu: Klepneme-li do tlačítka Zobrazení, zobrazí se vytvářené (popř. měněné, odstraňované, přidávané) věty v zobrazení datového listu. K žádným úpravám v tabulkách nedochází. Můžeme tak nezávazně zkontrolovat funkci dotazu. 91 Hodnota vlastnosti Formát se po uložení návrhu dotazu pamatuje, není však ve vlastnosti po dalším otevření návrhu zobrazena. 92 Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Access. Dále v kartě Centrum zabezpečení klepneme do tlačítka Nastavení Centra zabezpečení. V kartě Nastavení maker vybereme volbu Povolit všechna makra. 93 Varování lze potlačit klepnutím do tlačítka Office a tlačítka Možnosti aplikace Access v kartě Upřesnit v sekci Úpravy v části Potvrzení zrušením zaškrtnutí pole Akční dotazy.

91 Kapitola 4: Dotazy 91 Klepneme-li do tlačítka Spustit, provede se dotaz, tj. vytvoří se nová tabulka (popř. se upraví obsah tabulek). Klepneme do tlačítka Spustit, vytvoří se nová tabulka Prodeje DIS. Pokud již tabulka existuje, Access nás upozorní, že původní tabulku nejprve odstraní. Název vytvářené tabulky se ukládá s návrhem dotazu jako jedna z vlastností dotazu, kterou můžeme později upravit (vlastnost Cílová tabulka). Vytvořená tabulka není v aktivní vazbě k původním tabulkám. Např. změnou cen v tabulce Programy by se neaktualizovala automaticky tabulka Prodeje DIS. Vytvořená tabulka se aktualizuje až znovuspuštěním vytvářecího dotazu, který původně vytvořenou tabulku přepíše. Vytvářecí dotazy proto využíváme jen výjimečně v následujících případech: Tvoříme záložní kopii tabulky. Tvoříme tabulku historie, která obsahuje staré záznamy. (Staré záznamy potom odstraníme z původní tabulky odstraňovacím dotazem.) Chceme zaznamenat stav tabulky k přesnému okamžiku. Tento stav nechceme aktualizovat pozdějšími změnami. (Např. bychom mohli chtít vytvořit seznam zaměstnanců k určitému datu.) Jak uvidíme v dalších kapitolách, na základě výsledků dotazů můžeme navrhovat formuláře a sestavy. Urychlení práce se sestavami lze také dosáhnout vytvořením podkladové tabulky vytvářecím dotazem. Např. když chceme vytisknout více sestav, které vycházejí ze složitějšího dotazu obsahujícího souhrny za objemné tabulky. Data v tabulce vytvořené vytvářecím dotazem jsou však zmrazena až do doby dalšího spuštění vytvářecího dotazu. P47b Bonita 2009 Aktualizační dotaz Prodeje DIS (32 vět) DOTAZ P47B BONITA 2009: AKTUALIZAČNÍ DOTAZ V tabulce Prodeje DIS změňte název programu Bonita na název Bonita Zahájíme návrh nového dotazu. Přidáme tabulku Prodeje DIS. Klepneme do tlačítka Aktualizovat ve skupině Typ dotazu. Návrhová mřížka se upravila. Místo řádků Řadit a Zobrazit je uveden řádek Aktualizovat do. Definujeme, která pole aktualizujeme (řádek Pole a Tabulka), definujeme nový obsah pole (řádek Aktualizovat do), změnu můžeme omezit na část vět danou kritériem (řádek Kritéria). Dopad dotazu je vhodné zkontrolovat zobrazením datového listu. V datovém listu se nezobrazuje nový obsah měněného pole, ale původní obsah, který bude dotazem změněn. Po spuštění dotazu jsme před provedením aktualizace seznámeni s počtem aktualizovaných vět. Tlačítkem Ne můžeme potlačit dokončení dotazu. Tlačítkem Ano vydáme souhlas k aktualizaci. P47c Změna názvu programů Prodeje DIS Programy (106 vět) DOTAZ P47C ZMĚNA NÁZVU PROGRAMŮ: AKTUALIZAČNÍ DOTAZ DLE DAT Z JINÉ TABULKY V tabulce Prodeje DIS změňte názvy programů dle názvů v tabulce Programy. Do nového dotazu přidáme tabulky Prodeje DIS a Programy. Tabulky jsou propojeny automaticky polem Program. Řádek Aktualizovat do nejsnáze vyplníme pomocí Tvůrce výrazů (výběrem pole Program_v ze struktury tabulky Programy). P47d Odstranění starších prodejů Odstraňovací dotaz DOTAZ P47D ODSTRANĚNÍ STARŠÍCH PRODEJŮ: ODSTRAŇOVACÍ DOTAZ DLE POLE Z REDUKOVANÉ TABULKY Z tabulky Prodeje DIS odstraňte věty o prodejích realizovaných před Zahájíme návrh nového dotazu. Přidáme tabulku Prodeje DIS. Klepneme do tlačítka Odstranit ze skupiny Typ dotazu. Návrhová mřížka se upravila. Místo řádků Řadit a Zobrazit je uveden řádek Odstranit. Pokud je podokně Diagram uvedena

92 Kapitola 4: Dotazy 92 Prodeje DIS (48 vět) jediná tabulka, nemusíme definovat, ze které tabulky chceme odstranit věty. Definujeme-li kritérium odstraňování vět, uvedeme do řádku Odstranit slovo Kde. Mřížky před a za konstantu typu Datum a čas doplnil v kritériu Access sám. Před ukončením dotazu jsme informováni o počtu odstraňovaných vět. Teprve po klepnutí do tlačítka Ano dojde k odstranění vět. P47e Odstranění růstových prodejů Prodeje DIS Podniky (23 vět) DOTAZ P47E ODSTRANĚNÍ RŮSTOVÝCH PRODEJŮ: ODSTRAŇOVACÍ DOTAZ DLE POLE Z JINÉ NEŽ REDUKOVANÉ TABULKY Z tabulky Prodeje DIS odstraňte prodeje fakturované podnikům ve stadiu růst. Pokud je v návrhu odstraňovacího dotazu použito více tabulek, musíme přetažením hvězdičky ze struktury redukované tabulky do návrhové mřížky vyznačit, ze které tabulky chceme odstraňovat věty splňující kritéria. V tomto sloupci návrhové mřížky je v řádku Odstranit uvedeno slovo From. 94 P47f Přidání starších prodejů Přidávací dotaz Personal Faktury Licence Programy (48 vět) DOTAZ P47F PŘIDÁNÍ STARŠÍCH PRODEJŮ: PŘIDÁVACÍ DOTAZ DLE POLE Z ROZŠIROVANÉ TABULKY Do tabulky Prodeje DIS přidejte prodeje fakturované před a realizované oddělením DIS. Přidávací dotaz je obdobou vytvářecího dotazu. Netvoří však tabulku, ale přidává věty do stávající tabulky. Náš přidávací dotaz je podobný vytvářecímu dotazu P47a. V seznamu objektů kurzor přemístíme na P47a Tvorba prodeje DIS, stiskneme kombinaci kláves Ctrl C. Dále stiskneme kombinaci kláves Ctrl V a doplníme název dotazu P47f Přidání starších prodejů. Klepneme pravým tlačítkem na dotaz P47f a vybereme z místní nabídky NÁVRHOVÉ ZOBRAZENÍ. V přidávacím dotazu musíme nahradit sloupec Faktura.* čtyřmi poli tabulky Faktura. Klepneme do tlačítka Připojit ze skupiny Typ dotazu. Objeví se dialogové okno Přidat (je obdobné jako v obr. 4-8). Vybereme tabulku Prodeje DIS, do níž budeme připojovat nové věty. V návrhové mřížce upřesňujeme, jaká pole z výsledku dotazu (řádek Pole a Tabulka) se použijí k naplnění polí v cílové tabulce (řádek Přidat do). Pokud se v cílové tabulce vyskytují názvy polí z výsledku dotazu, Access sám řádek Přidat do vyplní (v našem případě všechna pole). Do návrhové mřížky doplníme kritérium pole Oddělení a Datum, abychom přidali pouze věty dříve odstraněných prodejů. Spuštěním dotazu se do dříve zadané tabulky doplní nové věty. Název rozšiřované tabulky se ukládá s návrhem dotazu jako jedna z vlastností dotazu (vlastnost Cílová tabulka). Bilance počtu vět: po dotazu kritéria úbytek/přírůstek počet vět P47c výchozí stav 106 P47d (DIS,) < P47e (DIS, >= ,) růst P47f DIS, < P47g DIS, >= , růst Pokud odstraňovací dotaz nefunguje, musíme jej vyzkoušet v kopii databáze, v níž odstraníme z tabulky Podniky vícehodnotové pole NACE.

93 Kapitola 4: Dotazy 93 P47g Přidání růstových prodejů Personal Faktury Licence Programy Podniky (23 vět) Jazyk SQL DOTAZ P47G PŘIDÁNÍ RŮSTOVÝCH PRODEJŮ: PŘIDÁVACÍ DOTAZ DLE POLE Z JINÉ NEŽ ROZŠIŘOVANÉ TABULKY Do tabulky Prodeje DIS přidejte prodeje fakturované podnikům ve stadiu růst. Přidávací dotaz je podobný předchozímu P47f. Nejprve zkopírujeme předchozí dotaz s novým názvem P47g Přidání růstových prodejů. V návrhu dotazu klepneme do tlačítka Zobrazit tabulku ze skupiny Nastavení dotazu a ze seznamu tabulek přidáme do podokna Diagram dotazu tabulku Podniky. Do návrhové mřížky doplníme pole Stadium, v němž definujeme kritérium růst. Do pole Datum musíme přidat kritérium opačně než v předchozím dotazu, abychom dvakrát nepřidávali věty o prodejích podnikům stadia růst fakturované před Pro pole Stadium se nevyplnil řádek Přidat do, což je v souladu s tím, že tato pole nepřidáváme do výsledné tabulky Prodeje DIS. 4.8 Jazyk SQL Dotazování prostřednictvím návrhové mřížky je velmi pohodlné. V databázových systémech se pro tvorbu dotazů využívá často jazyk SQL (Structured Query Language strukturovaný dotazovací jazyk). Každý dotaz vytvořený Accessem má přiřazeny příkazy SQL definující jeho akce. Příkazy jazyka SQL můžeme zobrazit v samostatném podokně, klepnemeli do tlačítka Zobrazení SQL ve skupině Výsledky v kartě NÁVRH nebo ve stavovém řádku. Např. v obr. 4-9 je uveden předchozí dotaz v jazyce SQL. Při dobré znalosti jazyka SQL můžeme dotazovací příkazy psát či modifikovat v jazyce SQL. OBR. 4-9: PŘIDÁVACÍ DOTAZ V JAZYCE SQL Pomocí jazyka SQL můžeme vytvořit tři další typy dotazů, které nelze připravit pomocí návrhové mřížky: Sjednocovací dotaz: Slučuje odpovídající pole z více než jedné tabulky do sady záznamů. Předávací dotaz: Odesílá příkazy do databáze ODBC, např. Microsoft SQL server. Definiční dotaz: Vytvoří nebo změní objekty databáze, např. tabulky. Ilustrujme si použití SQL na sjednocovacím dotazu. P48a Kódy Sjednocovací dotaz (12 vět) DOTAZ P48A KÓDY: SJEDNOCOVACÍ DOTAZ Vypište kódy a vysvětlivky oddělení i programů. Zahájíme návrh nového dotazu. Do okna Diagram nevybíráme žádnou tabulku. Klepneme do tlačítka SQL ve skupině Výsledky. Do prázdného okna napíšeme příkazy jazyka SQL a ukončíme je středníkem. Při psaní SQL kódu Access nerozlišuje malá a velká písmena, v případě jednoslovných názvů polí a tabulek není nutné psát hranaté závorky, všechny příkazy lze zapsat do jednoho řádku. Vysvětlivky použitých vyhrazených slov: SELECT Oddělení, Oddělení_v SELECT: Zahájení výběrového příkazu. FROM Oddělení FROM: Upřesnění tabulky, z níž pole vybíráme. UNION SELECT Program, Program_v UNION SELECT: Připojení výběru z další tabulky. FROM Programy;

94 Kapitola 4: Dotazy 94 P48b Seřazené kódy DOTAZ P48B SEŘAZENÉ KÓDY: SJEDNOCOVACÍ DOTAZ SE SEŘAZENÝM VÝSLEDKEM Vypište kódy a vysvětlivky oddělení i programů. Sloupce správně nadepište Kód a Kód_v. Seznam vypište v seřazení dle vysvětlivek. SELECT Oddělení AS Kód, Oddělení_v AS Kód_v FROM Oddělení Vysvětlivky použitých vyhrazených slov: SELECT: Zahájení výběrového příkazu. AS: Vybrané pole je v odpovědi přejmenováno. FROM: Upřesnění tabulky, z níž pole vybíráme. UNION SELECT UNION SELECT: Připojení výběru z další tabulky. Program, Program_v FROM Programy ORDER BY Kód_v; ORDER BY: Definice řazení dle pole výsledku. Vzhledem k tomu, že kódy jsou tvořeny prvními třemi znaky vysvětlivky, pořadí vět se oproti předchozímu dotazu nezměnilo s výjimkou pořadí reklamy a ředitelství. Kontingenční tabulka a graf z dotazu P49a Graf tržeb Podniky Faktury Licence Programy (178 vět) 4.9 Kontingenční tabulka a graf z výsledků dotazu Obdobně jako tabulku můžeme datovou sadu, která je výsledkem výběrového dotazu: řadit a filtrovat, zobrazit ve formě kontingenční tabulky nebo grafu. DOTAZ P49A GRAF TRŽEB: KONTINGENČNÍ GRAF Z VÝSLEDKŮ DOTAZU Zobrazte graficky tržby za jednotlivé programy v jednotlivých měsících. Nejprve připravíme jednoduchý podkladový dotaz. Klepneme do tlačítka Zobrazení kontingenční tabulky (ve skupině Výsledky nebo ve stavovém řádku). Ze seznamu polí postupně přesouváme vybraná pole: do řádkového pole přesuneme pole Program_v, do sloupcového pole přesuneme pole Měsíc, do pole filtrů přesuneme pole Název_podniku, do pole součtu nebo podrobných dat přesuneme pole Cena. OBR. 4-10: KONTINGENČNÍ TABULKA Z VÝSLEDKU DOTAZU Do tabulky doplníme součty a potlačíme zobrazení dílčích cen dle obr. 4-10: Klepneme do libovolné ceny, která se zobrazila v kontingenční tabulce, a klepneme do tlačítka Automatický přepočet ze skupiny Nástroje a vybereme SOUČET.

95 Kapitola 4: Dotazy 95 Kombinací kláves Ctrl A označíme celou kontingenční tabulku a klepneme do tlačítka Skrýt podrobnosti ze skupiny Zobrazit či skrýt. Klepneme pravým tlačítkem myši do některého z názvů Součet z cena a výběrem volby VLASTNOSTI z místní nabídky zobrazíme okno Vlastnosti, v němž v kartě Titulky opravíme pole Titulek na text Tržby. Zavřeme okno vlastností. Poklepáním na buňky s číslem měsíce se šedivým pozadím zúžíme šířku sloupců. Klepneme do tlačítka Zobrazení kontingenčního grafu ve skupině Zobrazení. OBR. 4-11: KONTINGENČNÍ GRAF Z VÝSLEDKU DOTAZU Kontingenční graf upravíme dle obr. 4-11: Klepnutím označíme titulek popisu osy x a odstraníme jej stisknutí klávesy Delete. Obdobně odstraníme titulek popisu osy y. Klepnutím do tlačítka Legenda ve skupině Zobrazit či skrýt zobrazíme napravo od grafu legendu s čísly měsíců. Obdobně jako v kontingenčním grafu vytvořeném z tabulky můžeme omezit data zobrazená v grafu klepnutím do rozbalovacího tlačítka u slov Měsíc, Program_v, Název_podniku. Můžeme tak zobrazit pouze některé programy či některé měsíce. V případě podniku můžeme vybírat jednotlivé podniky či více podniků, pro něž zobrazíme tržby. Kdykoliv můžeme rozbalovací tlačítka potlačit a rychle tak zvětšit graf tlačítkem Oblasti přetažení ve skupině Zobrazit či skrýt, které je přepínačem. Klepnutím do grafu a do tlačítka Změnit typ grafu ve skupině Typ můžeme zobrazit dialogové okno Vlastnosti, v němž můžeme upravit vlastnosti grafu: V kartě Typ můžeme vybrat jiný typ grafu a v rámci něj v pravé části karty vybrat dílčí typ. V kartě Ohraničení a výplň můžeme změnit barvu, styl a tloušťku čáry ohraničující graf, dále typ výplně a barvu pozadí grafu. V kartě Obecný můžeme v poli Vybrat zvolit libovolnou část grafu a detailně ji parametrizovat. Po výběru části grafu se zobrazí upravené dialogové okno Vlastnosti se specifickými kartami. Částmi grafu jsou:» Prostor grafu: celé podokno grafu,» Zobrazovaná oblast: část grafu, v níž se zobrazují hodnoty, je ohraničena osami,» Řádkové, sloupcové, součtové pole a pole filtrů: především barevné řešení tlačítek oblasti přetažení,» Osy kategorií: formát zobrazení popisků osy x (kategorií) a osy hodnoty (y),» Názvy os kategorií: např. možnost znovu zobrazit název osy x a y,» Mřížka os: např. možnost zadat tloušťku a barvu mřížky,» Jednotlivé proměnné (1 6): např. možnost odlišit sloupce v grafu různými barvami. Při zobrazeném okně Vlastnosti můžeme měnit části také klepnutím do příslušné části grafu.

96 Kapitola 4: Dotazy 96 Chceme, aby se dotaz zobrazoval prvotně vždy formou kontingenčního grafu, proto ve vlastnostech dotazu v návrhovém zobrazení upravíme vlastnost dotazu Výchozí zobrazení na hodnotu Kontingenční graf. K jednomu dotazu (či tabulce) může být přiřazeno jen jedno výchozí zobrazení. Můžeme však vytvořit nový dotaz, který data bude čerpat data z předchozího dotazu či tabulky a pouze u něj upravit výchozí zobrazení. P49b Procenta sloupcové hodnoty Kontingenční tabulka v procentech DOTAZ P49B PROCENTA SLOUPCOVÉ HODNOTY: KONTINGENČNÍ TABULKA V PROCENTECH Vypočtěte podíly tržeb za jednotlivé programy v jednotlivých měsících na celkovém prodeji v měsíci. Vyjdeme z předchozího dotazu. Uložíme jej pod novým názvem a upravíme v návrhu vlastnost dotazu Výchozí zobrazení na hodnotu Kontingenční tabulka. 95 V zobrazení kontingenční tabulky klepneme do kteréhokoliv políčka tabulky s tržbami za jednotlivé programy v jednotlivých měsících. Ve skupině Nástroje klepneme do tlačítka Zobrazit jako. Z nabídky vybereme Procento celkové hodnoty za sloupec. V tabulce se součty zobrazí v procentuálním vyjádření (viz obr. 4-12). OBR. 4-12: PROCENTA V KONTINGENČNÍ TABULCE P49c Procenta řádkové hodnoty Seskupení řádků a sloupců kontingenční tabulky DOTAZ P49C PROCENTA ŘÁDKOVÉ HODNOTY: SESKUPENÍ ŘÁDKŮ A SLOUPCŮ KONTINGENČNÍ TABULKY Vypočtěte podíly tržeb za jednotlivé programy v jednotlivých měsících na celkovém prodeji jednotlivého programu ve čtvrtletí. Programy rozdělte do dvou balíků Analýzy a Jiné. Vyjdeme z předchozího dotazu. Seskupíme vybrané řádky a sloupce: Klepneme do nadpisu měsíce 1 a potom s klávesou Shift do nadpisu měsíce 3 a klepneme do tlačítka Skupina ze skupiny Výběry. Zobrazíme vlastnosti nadpisu Měsíc1 a v kartě Titulky změníme titulek na Čtvrtletí. Obdobně změníme nadpis Skupina1 na 1. čtvrtletí a nadpis Jiné na 2. čtvrtletí. Klepneme do nadpisu programu Finanční analýza a potom s klávesou Ctrl do nadpisu Kauzální analýza. Oba programy seskupíme a skupinu nazveme Analýzy. Skupinu zbývajících programů ponecháme nazvanou Jiné. Nadpis Program_v1 změníme na Balík. Data v tabulce můžeme nyní (tlačítkem Zobrazit jako ze skupiny Nástroje) zobrazit jako: normální: tabulka je v absolutních hodnotách (viz obr. 4-10), procento hodnoty za řádek: procentuální podíl prodeje programu za měsíc na prodeji tohoto programu za pololetí, procento hodnoty za sloupec: procentuální podíl prodeje programu v měsíci na prodeji všech programů v tomto měsíci (viz obr. 4-12), procento položky nadřazeného řádku: procentuální podíl prodeje programu v měsíci na prodeji programů stejného balíku v tomto měsíci, procento položky nadřazeného sloupce: procentuální podíl prodeje programu za měsíc na prodeji tohoto programu za čtvrtletí (viz obr. 4-13), tuto možnost vybereme, procento celkového součtu: procentuální podíl prodeje programu za měsíc na prodeji všech programů za pololetí. 95 Díky vhodně nastavené vlastnosti Výchozí zobrazení se také nabízí vhodné tlačítko Zobrazení ve skupině Výsledky.

97 Kapitola 4: Dotazy 97 OBR. 4-13: SKUPINOVÁ PROCENTA V KONTINGENČNÍ TABULCE Skupinu můžeme sbalit či rozbalit tlačítkem či + nalevo od názvu skupiny nebo klepnutím do názvu skupiny a do tlačítka Sbalit pole či Rozbalit pole ze skupiny Aktivní pole. P49d Tržby za 2 programy Řazení a filtrování v kontingenční tabulce DOTAZ P49D TRŽBY ZA 2 PROGRAMY: ŘAZENÍ A FILTROVÁNÍ V KONTINGEČNÍ TABULCE Zobrazte tržby za jednotlivé programy v jednotlivých měsících za dva programy s nejvyššími celkovými tržbami. Vyjdeme z dotazu P49a. Uložíme jej pod novým názvem a upravíme v návrhu vlastnost dotazu Výchozí zobrazení na hodnotu Kontingenční tabulka. Klepneme do libovolného součtu cen v sloupci pololetních součtů za jednotlivé programy. Klepnutím do tlačítka Sestupně ze skupiny Filtrovat a řadit seřadíme řádky dle hodnoty součtů od nejvyšší k nejnižší hodnotě. Klepnutím do stejného tlačítka bychom mohli řazení potlačit. Takto můžeme řadit i dle tržeb za jednotlivé programy v jednotlivém měsíci (opět řazení řádků) či za součty za měsíce (řazení sloupců). My však nechceme řádky jen řadit, chceme zobrazit pouze řádky dvou programů s nejvyššími tržbami. Opět klepneme do libovolného součtu cen v sloupci pololetních tržeb. Klepneme do tlačítka Zobrazit horní nebo dolní ze skupiny Filtrovat a seřadit, z nabídky vybereme ZOBRAZIT POUZE PRVNÍ, 2. Zobrazí se řádky pouze dvou programů s nejvyššími pololetními tržbami. 96 Také součtový řádek tržeb za všechny programy bude uveden pouze za tyto dva programy. Klepnutím do tlačítka Automatický filtr ve skupině Filtrovat a seřadit můžeme filtr potlačit, popř. znovu zapnout. Takto můžeme filtrovat i dle tržeb za jednotlivé programy v jednotlivém měsíci (opět potlačení zobrazení některých řádků) či podle součtů za měsíce (potlačení zobrazení některých sloupců). Řazení i filtrování se projevuje i v zobrazení kontingenčního grafu, v němž můžeme klepnutím do tlačítka Automatický filtr ve skupině Filtrovat a seřadit potlačit filtr, popř. znovu zapnout. Ve filtrované či nefiltrované kontingenční tabulce můžeme potlačit zobrazení součtového řádku a součtového sloupce, když klepneme do řádkového (Program_v) či sloupcového (Měsíc) pole a klepneme do tlačítka Souhrn ve skupině Nástroje. Stejným tlačítkem můžeme součtový řádek či součtový sloupec opět zobrazit. Např. v kontingenční tabulce v obr bylo po filtrování potlačeno zobrazení součtového řádku a součtového sloupce. OBR. 4-14: FILTROVANÁ KONTINGENČNÍ TABULKA BEZ SOUČTŮ 96 Pokud zobrazíme vlastnosti libovolného řádkového součtu a změníme v kartě Filtr a seskupování pole Založeno na na hodnotu Seřadit ve zdroji dat, budou vybrány první dva programy bez ohledu na jejich celkovou tržbu.

98 Kapitola 4: Dotazy 98 DOTAZ P49E TRŽBY V BŘEZNU A DUBNU: AUTOMATICKÝ PŘEPOČET P49e Tržby v březnu a dubnu Automatický přepočet V kontingenční tabulce zobrazte za březen a duben (sloupce) pro jednotlivá stadia podniků (řádky) tržby za programy prodané jednotlivému typu podniků v daném měsíci a maximální cenu programu prodaného jednotlivému typu podniků v jednotlivém měsíci. Vyjdeme z dotazu P49a. Uložíme jej pod novým názvem a upravíme v návrhu vlastnost dotazu Výchozí zobrazení na hodnotu Kontingenční tabulka. Odstraníme řádkové pole Program_v tažením jeho názvu mimo kontingenční tabulku např. na karty. Zobrazíme Seznam polí klepnutím do tlačítka Seznam polí ze skupiny Zobrazit či skrýt. Ze seznamu polí přetáhneme do oblasti řádkových polí pole Stadium. Kombinací kláves Ctrl A označíme celou kontingenční tabulku a klepneme do tlačítka Zobrazit podrobnosti ze skupiny Zobrazit či skrýt. Klepneme do libovolné ceny za jeden program. Dále klepneme do tlačítka Automatický přepočet ze skupiny Nástroje a ze seznamu funkcí (Součet, Počet, Minimum, Maximum, Průměr, Směrodatná odchylka, Rozptyl, Směrodatná odchylka základního souboru, Rozptyl základního souboru) vybereme MAXIMUM. Opět označíme celou kontingenční tabulku a klepneme do tlačítka Skrýt podrobnosti ze skupiny Zobrazit či skrýt. Ve vlastnostech pole Maximum z Cena opravíme v kartě Titulky titulek na Maximum. Rozbalíme seznam měsíců (klepnutím do rozbalovacího tlačítka vedle názvu pole Měsíc) a vybereme pouze březen a duben (viz obr. 4-15). OBR. 4-15: SOUČET A MAXIMUM V KONTINGENČNÍ TABULCE Výsledek většiny kontingenčních tabulek lze exportovat do Excelu. Klepnutím do tlačítka Exportovat do aplikace Excel ze skupiny Data se vytvoří v novém sešitu Excelu list s podkladovými daty kontingenční tabulky (List2) a list s kontingenční tabulkou (List1). P49f Délka cest Vypočtené celkové hodnoty a pole DOTAZ P49F DÉLKA CEST: VYPOČTENÉ CELKOVÉ HODNOTY A POLE V kontingenční tabulce zobrazte zahájení a dokončení cest do jednotlivých míst v jednotlivých čtvrtletích. Vypočtěte délku jednotlivých cest, celkovou délku cest vyjádřenou ve dnech i hodinách. Připravíme nový dotaz vycházející ze všech polí tabulky Cesty a kontingenční tabulku: Do řádkového pole kontingenční tabulky přetáhneme ze seznamu polí pole Místo. Do sloupcového pole přetáhneme pole nazvané Zahájení po měsících. Do pole podrobných dat přetáhneme pole Zahájení a Dokončení. Do kontingenční tabulky chceme doplnit délku cesty. Klepneme do tlačítka Vzorce ze skupiny Nástroje. Z dílčí nabídky vybereme VYTVOŘIT VYPOČTENÉ POLE PODROBNÝCH DAT. V dialogovém okně Vlastnosti v kartě Přepočet vybereme z rozbalovacího seznamu polí pole Dokončení a klepneme do tlačítka Vložit odkaz. Do vzorce v horní části dialogového okna zapíšeme minus a vložíme pole Zahájení. V poli Název opravíme název z Výpočtové na Délka a klepneme do tlačítka Změnit (viz obr. 4-16). Klepneme do názvu nového sloupce Délka, potom klepneme do tlačítka Automatický přepočet ze skupiny Nástroje a vybereme SOUČET. Do kontingenční tabulky se tak doplní součty délky cest do jednotlivých míst.

99 Kapitola 4: Dotazy 99 OBR. 4-16: ZADÁNÍ VÝPOČTU VYPOČTENÉHO POLE PODROBNÝCH DAT Roční součty chceme vyjádřit ve dnech i v hodinách. Předpokládáme, že cesta se začíná a končí ve stejnou hodinu. Můžeme tedy spočítat délku cesty v hodinách jako délku ve dnech vynásobenou číslem 24. Klepneme do tlačítka Vzorce ze skupiny Nástroje a vybereme VYTVOŘIT VYPOČTENOU HODNOTU CELKEM. V dialogovém okně Vlastnosti vložíme odkaz Součet z délka. Vloží se vzorec [Measures].[Součet1], který rozšíříme na vzorec [Measures].[Součet1]*24. Název nového součtu změníme z Nový součet na Hodin. Klepneme do tlačítka Změnit. Klepneme do názvu součtu Součet z Délka a opravíme jej v dialogovém okně Vlastnosti na Dnů. Tažením názvu sloupce Hodin zaměníme pořadí sloupců Dnů a Hodin. Klepnutím do tlačítka + vedle označení roků 2009 zobrazíme součty dnů a hodin za jednotlivá čtvrtletí. V posledním sloupci je uveden součet za všechny roky, který je v našem případě shodný s údaji za náš jediný rok. Klepneme do sloupcového pole Roky a do tlačítka Souhrn ze skupiny Nástroje, potlačíme tak zobrazení součtu za všechny roky. Na závěr zobrazíme podrobnosti kontingenční tabulky. V tabulce vidíme dle zadání začátky a konce cest do jednotlivých míst dle čtvrtletí, jejich délky a celkové délky za čtvrtletí ve dnech i hodinách (viz obr. 4-17). OBR. 4-17: VYPOČTENÉ CELKOVÉ HODNOTY A POLE

100 Kapitola 4: Dotazy 100 Shrnutí 1. Dotazy dle jejich dopadu jsou výběrové (zobrazují data) a akční (provádí operace s tabulkami). 2. Dotazy lze připravit v návrhovém zobrazení nebo přímo v dotazovacím jazyce SQL. 3. Výběrové dotazy vybírají z tabulky zadaná pole (omezujeme sloupce výsledku) vět, které vyhovují zadaným kritériím (omezujeme řádky výsledku). 4. Dotazy připravujeme v Accessu metodou dotazování podle příkladu (QBE). Vybereme tabulku či tabulky, z nichž čerpá dotaz data. Seznamy polí a relace vybraných tabulek jsou zobrazeny v podokně Diagram návrhového zobrazení dotazu. V podokně Mřížka je návrhová mřížka, do níž vybíráme z podokna Diagram pole tabulky či tabulek. 5. Výsledkem dotazu je sada záznamů. V dynamické sadě záznamů můžeme výsledky editovat, úpravy se promítají do zdrojových tabulek. Protikladem dynamických sad jsou výsledky ve formě snímků, které nelze aktualizovat, neboť neexistuje jednoznačný vztah řádku výsledku ke zdrojové tabulce. 6. Ve výsledcích můžeme potlačovat duplicitní věty prostřednictvím vlastnosti dotazu Jedinečné hodnoty. 7. Výsledky můžeme řadit podle v návrhové mřížce specifikovaných polí. Pole užité jako kritérium řazení nemusí být ve výsledku zobrazeno. 8. Kritéria výběru záznamů ve výsledku mohou být zadána konstantou, tj. hodnotou, kterou požadujeme. Mohou být zadána také výrazem. 9. Ve výrazech kritérií lze použít řadu operátorů, především: Or: alternativa výběru (lze ji často zadat rozepsáním kritérií do několika řádků), And: konjunkce výběru (naplnění kritérií různých polí ve stejném řádku je také chápáno jako konjunkce), >, <, >=, <=: relační operátory, za nimiž přímo následuje mezní hodnota, *: zástupný znak pro libovolný počet znaků,?: zástupný znak pro právě jeden libovolný znak, Not (<>): nerovnost zadané konstantě či výrazu, Null: prázdný obsah pole (většinou bývá nutné doplnit na podmínku Null or ), Between: přehlednější náhrada konjunkce >= And <=. 10. Ve výrazech lze použít řadu funkcí, např.: Month: měsíc z pole typu Datum a čas, DatePart: výběr časti pole typu Datum a čas, Format: převádí hodnotu pole na jiný formát (funguje nejen pro pole Datum a čas), Left, Right, Mid: části textového pole, HyperLinkPart: část hypertextového odkazu. 11. Tvorbu složitějších výrazů usnadňuje Tvůrce výrazů. 12. Dotaz může spojovat data z více tabulek propojených vhodnými relacemi. 13. V podokně Diagram se může stejná tabulka vyskytovat vícekrát. 14. Podkladem dotazu mohou být nejen tabulky, ale také výsledky předchozích dotazů. 15. V dotazech lze provádět výpočty za jednotlivé věty (např. sčítání polí) či za skupiny vět (tzv. souhrny). 16. Parametrický dotaz umožňuje zadat výběrová kritéria při spouštění dotazu vyplněním parametrů v dialogových oknech. 17. V křížové tabulce jsou v řádcích uvedeny varianty hodnot jednoho pole (či více polí), ve sloupcích varianty hodnot jiného pole, uvnitř tabulky je vyhodnoceno třetí pole. 18. Akční dotazy ovlivňují na rozdíl od výběrových a křížových dotazů přímo obsah tabulek. Dle výsledného působení je rozdělujeme na vytvářecí, aktualizační, odstraňovací, přidávací. 19. Pomocí jazyka SQL můžeme vytvořit další typy dotazů nedostupné v návrhové mřížce. 20. Výsledky dotazů lze zobrazovat formou kontingenčních tabulek a kontingenčních grafů. 21. V kontingenční tabulce můžeme uvádět procentuální hodnoty součtů vztažené k součtu řádků, sloupců či jejich seskupení. 22. V kontingenční tabulce můžeme zobrazovat vybranou část řádků či sloupců. Omezení lze provést výběrem hodnot či filtrací dle velikosti zobrazované hodnoty. 23. Do kontingenční tabulky lze doplnit dopočtená pole. Výpočet lze provést pro podrobnosti tabulky či pro součty. 24. Kontingenční tabulku je možné exportovat do MS Excelu.

101 Kapitola 5: Formuláře Formuláře Význam formulářů Druhy formulářů Zobrazení formuláře Struktura formuláře 5.1 Druhy formulářů Dalším objektem po tabulkách a dotazech je formulář. Formulář usnadňuje uživateli zadávání, úpravu a zobrazování dat z tabulky či dotazu. Umožňuje také data vytisknout, k tisku slouží především jiný objekt sestavy. Na rozdíl od zobrazení datového listu tabulek či dotazů nemusíme zobrazovat všechna pole 97. Pole nemusí být zobrazena v jediném řádku, do formuláře lze přidat tlačítka a doplnit další prvky automatizace často prováděných akcí formou reakce na události (např. makro či podprogram při otevření formuláře). Dle počtu vět ve formuláři lze rozdělit formuláře na druhy: Samostatný formulář na rozdíl od zobrazení datového listu zobrazuje pouze data jediné věty, např. personální údaje o jednom zaměstnanci. Samostatný formulář vytvoříme snadno, když: V navigačním podokně klepnutím označíme příslušnou tabulku či dotaz. V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka Formulář. Další druhy formulářů jsou kompromisem mezi zobrazením datového listu a formuláře: Rozdělený formulář: Kromě formuláře je zobrazen datový list podkladové tabulky či dotazu za účelem snadného hledání vět. Datový list může být zobrazen pod, nad, napravo či nalevo od formuláře. Nekonečný formulář: Věty jsou zobrazeny formou tabulky. V řádku tabulky může však být více dílčích řádků polí, lze přidat tlačítka a obrázky. Formulář lze zobrazit několika zobrazeními 98 : Formulářové zobrazení: Zobrazení, v němž lze používat formulář, nelze v něm provádět změny návrhu, např. rozšiřovat pole. Zobrazení rozložení: Zobrazení, v němž lze provádět řadu změn návrhu formuláře. V zobrazení rozložení jsou při úpravách formuláře zobrazena data, zobrazení je tak vhodné např. při nastavení velikosti polí. Návrhové zobrazení: Zobrazení, v němž nejsou zobrazena data, lze v něm provádět veškeré změny návrhu, mj.: Jsou zobrazeny sekce (oddíly) Záhlaví, Tělo a Zápatí, lze měnit jejich velikost. Lze měnit zásadní vlastnosti formuláře, např. Výchozí zobrazení. Lze přidat do formuláře další ovládací prvky, např. popisky, obrázky, čáry. Lze upravit zdroje ovládacích prvků. Zobrazení datového listu: Zobrazení podkladové tabulky či dotazu ve formě datového listu. Zobrazení kontingenční tabulky: Zobrazení dat podkladové tabulky či dotazu ve formě kontingenční tabulky. Zobrazení kontingenčního grafu: Zobrazení dat podkladové tabulky či dotazu ve formě kontingenčního grafu. Poslední tři zobrazení se využívají častěji pro tabulky či dotazy než pro formuláře. Formulář se skládá z několika sekcí: Záhlaví formuláře a Zápatí formuláře jsou zobrazeny v horním a dolním kraji formuláře. V případě nekonečného formuláře jsou zobrazeny bez ohledu na věty zobrazené v těle formuláře. Pokud v nich uvádíme souhrny, jsou zobrazeny souhrny za všechna podkladová data, nejen za data zobrazená ve formuláři. Záhlaví stránky a Zápatí stránky se uplatňují jen při tisku formuláře, nejsou v běžných zobrazeních vidět. 99 Tělo obsahuje prvky vztahující se k jednotlivým větám. 97 V tabulce lze také skrýt vybraná pole. Skrytí a zobrazování skrytých polí může však uživatele zdržovat. Výběr polí můžeme diferencovat v různých formulářích ke stejné tabulce. 98 Ve vlastnostech formuláře lze zamezit nabízení většiny zobrazení (formulářového zobrazení, zobrazení datového listu, zobrazení kontingenční tabulky, zobrazení kontingenčního grafu, zobrazení rozložení). 99 Náhled tisku je možné prohlédnout klepnutí do tlačítka Office a příkazem TISK, NÁHLED.

102 Kapitola 5: Formuláře 102 Ovládací prvky Tlačítka tvorby formuláře Ovládací prvky jsou objekty použité ve formuláři. Zobrazují data z podkladové tabulky či dotazu a doplňkové informace (např. popisky dat a obrázky). Dle návaznosti na podkladová data existují různé druhy ovládacích prvků: Vázaný ovládací prvek: Zdrojem je pole z podkladové tabulky či dotazu. Slouží k zobrazení hodnot. Dle zobrazované hodnoty existuje několik typů vázaných ovládacích prvků: Textové pole: pro pole typu Text, Memo, Číslo, Měna, Automatické číslo, Datum a čas nebo Hypertext. Seznam, Pole se seznamem: pro pole typu Text nebo Číslo s možností výběru. Zaškrtávací políčko, Přepínač, Přepínací tlačítko: Zobrazení a výběr hodnot typu Ano/ne. Rámeček vázaného objektu: pro pole typu Objekt OLE se zobrazením obrázku. Příloha: pro pole typu Příloha. Podformulář: pro zobrazení podformuláře v hlavním formuláři. Graf: grafické zobrazení dat (se zvláštním zdrojem), která mohou být ve vztahu k zobrazené větě. Vypočítaný ovládací prvek: Zdrojem dat není přímo pole z podkladové tabulky či dotazu, ale výraz obsahující data podkladové tabulky či dotazu či hodnoty z jiných ovládacích prvků formuláře. Ve výrazu je možné použít funkce. Nevázaný ovládací prvek: Nemá zdroj dat. Zvyšuje přehlednost formuláře. Mezi nevázané ovládací prvky patří: Popisek: Konstantní text zapsaný do formuláře. Často bývá přidružen k některému vázanému ovládacímu prvku. Hypertextový odkaz: Konstantní hypertextový odkaz např. na web firmy. Obrázek: Konstantní obrázek. Rámeček nevázaného objektu: Konstantní obsah objektu jiné aplikace. Čára: Čára, která může graficky zpřehlednit strukturu formuláře. Obdélník: Obdélník, který může graficky zpřehlednit strukturu formuláře. Konec stránky: Při tisku se zahájí tisk na novou stránku. Speciální nevázané ovládací prvky mají určené místo ve struktuře formuláře: Logo: Konstantní obrázek umístěný v záhlaví formuláře Název: Konstantní text umístěný v záhlaví formuláře vedle loga. Číslo stránky: Číslo tiskové stránky formuláře. Lze jej vložit do záhlaví či zápatí stránky a volitelně zarovnat. Datum a čas: Aktuální datum, popř. čas v pravém horním rohu záhlaví formuláře. Pokud formulář zobrazuje větší množství dat, lze data rozdělit do karet, potom se používá ovládací prvek: Karta: Obsahuje několik stránek, v nichž mohou být různé ovládací prvky. Tlačítka pro tvorbu formuláře jsou soustředěna v kartě VYTVOŘIT ve skupině Formuláře. Všechna tlačítka vytvoří prvotní návrh formuláře a zobrazí jej v zobrazení rozložení s výjimkou tlačítka Návrh formuláře, které zobrazí formulář v návrhovém zobrazení. Tlačítka se liší dle obsahu prvotního návrhu: Formulář: Jako podklad je využit objekt označený v navigačním podokně. 100 Z dat je vytvořen samostatný formulář včetně záhlaví formuláře, v němž je uveden datový zdroj. Název formuláře je převzat z názvu datového zdroje. 101 Ovládací prvky jsou v tzv. skládaném rozložení. Tažením za kraj ovládacího prvku můžeme tak snadno měnit jeho umístění v řádcích. Rozdělit formulář: Opět je využit jako podklad objekt označený v navigačním podokně. Z dat je však vytvořen rozdělený formulář se zobrazením datového listu pod formulářem. Více položek: Na základě objektu označeného v navigačním podokně je vytvořen nekonečný formulář. Každá věta je v samostatném řádku. V případě obrázků je zvýšena velikost řádku, aby byl zmenšený obrázek vidět. Ovládací prvky jsou v tabulkovém rozložení. Tažením za kraj ovládacího prvku můžeme měnit jeho umístění ve sloupcích. Kontingenční graf: Na základě objektu označeného v navigačním podokně je vytvořen kontingenční graf. Musíme upřesnit pole řad, kategorií, dat a případně i filtrů. 100 V případě, že je označen formulář či sestava je jako podklad převzat jejich zdroj záznamů. V případě, že je označeno makro nebo modul, není většina tlačítek skupiny Formuláře dostupná. 101 Tabulky a dotazy nesmí mít shodné názvy. Formulář může mít však název totožný s názvem tabulky či dotazu. Pokud by již formulář se stejným názvem existoval, byla by k názvu doplněna číslice.

103 Kapitola 5: Formuláře 103 Prázdný formulář: Vytvoří se nový prázdný formulář, který nemá definován datový zdroj. Více formulářů: K dispozici jsou méně časté varianty vytvořeného formuláře: Průvodce formulářem: V průvodci vybereme podkladovou tabulku či dotaz, pole formuláře, způsob rozložení ovládacích prvků ve formuláři (do sloupců či do tabulky) a styl formátování formuláře. Datový list: Připraví se formulář s výchozím zobrazením v datovém listu. Modální dialogové okno: Vytvořený formulář nemá definován datový zdroj. Má připravena dvě tlačítka OK a Storno bez přiřazených událostí. Formulář má pro vlastnost Modální okno nastavenu hodnotu Ano. 102 Kontingenční tabulka: Na základě objektu označeného v navigačním podokně je vytvořena kontingenční tabulka. Musíme upřesnit pole řad, kategorií, dat a případně i filtrů. Návrh formuláře: Vytvoří se nový prázdný formulář, který nemá definován datový zdroj. Formulář se zobrazí v návrhovém zobrazení. 5.2 Samostatný formulář Připravíme formulář pro zobrazení dat tabulky Personal. Cílový vzhled formuláře je uveden v obr OBR. 5-1: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE K TABULCE PERSONAL Návrhové zobrazení Abychom demonstrovali obecné možnosti tvorby formuláře, vyjdeme z prázdného formuláře v návrhovém zobrazení: V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka Návrh formuláře. Připraví se prázdný formulář nazvaný Form1. Výchozí návrh obsahuje pouze sekci Tělo o šířce asi 12 cm a výšce asi 10 cm. Přesný návrh formuláře usnadňuje vodorovné a svislé pravítko. V těle formuláře je zobrazen rastr mřížky dělené na ose x i ose y po 1 cm. Ovládací prvky budou přichycovány levým horním rohem k mřížce Modální okna vyžadují před přechodem k jinému formuláři nebo dialogovému oknu akci uživatele, např. klepnutí do tlačítka OK. Používají se při programování.

104 Kapitola 5: Formuláře 104 Vlastnosti Pole ve formuláři Formulář a jeho objekty mají řadu vlastností: Zobrazíme seznam vlastností formuláře: klepnutím do tlačítka Seznam vlastností v kartě NÁVRH ve skupině Nástroje nebo kombinací kláves Alt Enter nebo klávesou F4. Zobrazí se okno Seznam vlastností. Pozici okna můžeme tažením za titulek okna měnit. Tažením k pravému nebo levému kraji okna Accessu můžeme okno ukotvit ke kraji. Pokud není okno ukotveno, můžeme tažením za jeho kraje měnit jeho velikost. Tažením za příčku mezi dvěma sloupci okna můžeme měnit proporci sloupce názvu vlastností a jejich hodnot. Každý objekt má své vlastnosti. Když je zobrazeno okno Seznam vlastností, můžeme objekt vlastností měnit klepnutím do objektu. Např. v našem případě klepnutím do bílé plochy těla zobrazíme vlastnosti sekce těla, klepnutím do pravítka nebo průsečíku pravítek zobrazíme vlastnosti formuláře. Vlastností je velké množství. Jsou proto rozděleny do skupin v kartách, poslední karta obsahuje všechny vlastnosti. Okno Seznam vlastností ukotvíme k pravému kraji. Pro formulář změníme v kartě Formátové nebo v kartě Vše vlastnosti Dělení osy x mřížky a Dělení osy y mřížky z hodnoty 10 na 5. Mřížka obsahuje nyní detailní dělení po 0,2 cm (5 bodů na 1 cm). Detailní dělení je zobrazeno jen pro menší počet dílčích dílků, pro dělení 10 nebylo zobrazeno, přichycování by však bylo funkční. Formulář zatím nemá definován zdroj záznamů, vlastnost formuláře Zdroj záznamů (ze skupiny Datové) není vyplněna. Do formuláře postupně přidáme jednotlivá pole: Zobrazíme seznam dostupných polí: klepnutím do tlačítka Přidat existují pole v kartě NÁVRH ve skupině Nástroje nebo kombinací kláves Alt F8. Místo okna Seznam vlastností se zobrazilo okno Seznam polí. V okně je přehled všech tabulek aktuální databáze. Pro každou tabulku je před jejím názvem rozbalovací tlačítko. Napravo od názvu tabulky je odkaz Upravit tabulku, kterým můžeme zobrazit tabulku v zobrazení datového listu a upravit její obsah. Rozbalíme tabulku Personal. Poklepeme na pole E_mail. Do těla formuláře se umístil ovládací prvek E_mail a s ním svázaný konstantní popisek převzatý z titulku pole E_mail ve struktuře tabulky Personal. V okně Seznam polí jsou nyní tabulky a jejich pole rozděleny do tří skupin: Pole dostupná pro toto zobrazení: pole tabulky (později více tabulek), která jsou ve zdroji záznamů formuláře, po umístění pole E_mail je zde nabízena tabulka Personal a její pole. Pole dostupná v souvisejících tabulkách: tabulky, které mají v relacích přímé vazby na tabulku Personal (obecně přímé vazby na tabulky ze skupiny Pole dostupná pro toto zobrazení). Pole dostupná v jiných tabulkách: tabulky, které nemají v relacích přímé vazby na tabulku Personal. Klepnutím na spodní řádek podokna Zobrazit pouze pole v aktuálním zdroji záznamu můžeme zobrazit pouze pole použitá ve formuláři, tj. část polí z první skupiny. V našem případě by to bylo pole E_mail. Klávesou F4 zobrazíme opět okno Seznam vlastností. Ve vlastnosti formuláře Zdroj záznamů je již hodnota SELECT Personal.E_mail, tj. SQL forma dotazu, který je podkladovým zdrojem formuláře: Na konci řádku vlastnosti Zdroj záznamů můžeme vyklopit seznam tabulek a dotazů a výběrem změnit zdroj. Klepnutím do tlačítka se třemi tečkami můžeme zobrazit QBE mřížku podkladového dotazu a dotaz modifikovat. 104 Z kontextové karty návrhu dotazu se vrátíme do formuláře tlačítkem Zavřít ze skupiny Zavřít. 103 Zobrazování pravítka a mřížky lze potlačit v kartě USPOŘÁDAT ve skupině Zobrazit či skrýt tlačítky Pravítko a Mřížka. Ovládací prvky jsou přichycovány k mřížce, pokud je zatlačeno tlačítko Přichytit k mřížce v kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvku. 104 Klepnutím do tlačítka Uložit jako v kartě NÁVRH ve skupině Zavřít bychom mohli dotaz uložit pod názvem jako samostatný dotaz a použít jej např. také pro jiný formulář.

105 Kapitola 5: Formuláře 105 Úpravy ovládacích prvků Rozložení ovládacích prvků Formulářové zobrazení Kombinací kláves Alt F8 zobrazíme okno Seznam polí. Poklepeme na pole Titul1. Ovládací prvek se umístí přes textové pole E_mail. V panelu nástrojů Rychlý přístup klepneme do tlačítka Zpět. Tažením z okna Seznam polí do těla formuláře umístíme pole Titul1 pod pole E_mail. V těle formuláře můžeme upravovat ovládací prvky: Klepnutím označíme ovládací prvek. Tažením za jeho kraj můžeme přemístit např. textové pole Titul1 a s ním přidružený popisek Titul před jménem. Obdobně můžeme přemístit popisek a přidružené textové pole. Tažením za čtvercový úchyt v levém horním rohu můžeme přemístit ovládací prvek bez souběžného přemístění popisku. Tažením za úchyt uprostřed kraje ovládacího prvku můžeme modifikovat jeho výšku či šířku. Tažením za úchyt v (jiném než levém horním) rohu můžeme modifikovat současně výšku i šířku ovládacího prvku. Abychom nemuseli upravovat polohu a velikost ovládacích prvků vkládaných do formuláře, využijeme rozložení ovládacích prvků: Klepnutím označíme textové pole E_mail. Držením klávesy Shift a klepnutím současně označíme textové pole Titul1. V kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvku klepneme do tlačítka Skládané. Rozložení zajišťuje svislé (skládané) či vodorovné (tabulkové) zarovnání ovládacích prvků. Ovládací prvky tvoří pomyslnou tabulku. V případě skládaného rozložení jsou popisky uvedeny vlevo od textových polí. Formulář může obsahovat více rozložení obou typů. Celé rozložení lze vybrat klepnutím do oranžového voliče v levém horním rohu rozložení. V rozložení mají všechny popisky stejnou šířku, rovněž všechna pole mají stejnou šířku. Modifikací šířky jednoho ovládacího prvku se změní šířky všech ostatních ovládacích prvků (popisků či polí). Do těla formuláře přidáme další ovládací prvky: Do rozložení přidáme další pole Jméno. Táhneme pole ze Seznamu polí pod ovládací prvek Titul1. Oranžová vodorovná čára signalizuje, že se Jméno stane součástí rozložení. Vázaný ovládací prvek Jméno se díky definici ve struktuře dat přidal jako pole se seznamem. Obdobně přidáme pole Příjmení, Titul2, Pohlaví, Místnost, Telefon, Oddělení, Nadřízený, Charakteristika, Úvazek, Web, Foto, Oprávnění. Fotografie zaměstnance je malá. Chceme ji umístit napravo od skládaného rozložení polí. Klepnutím označíme vázaný ovládací prvek Foto. V kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvku klepneme do tlačítka Odebrat. Popisek i vázaný ovládací prvek Rámeček vázaného objektu přestaly být součástí rozložení. Ovládací prvek Oprávnění fakturovat se posunul nahoru a překrývá se nyní s prvkem Foto. Tažením za okraj vázaného prvku přesuneme popisek i vázaný prvek napravo nahoru od ostatních polí. Klepneme do popisku Foto a klávesou Delete jej odstraníme. Tažením za střed spodního kraje zvýšíme pole Foto dle jeho šířky (asi 7,6 cm). Zdrojem dat pro formulář je zatím jen tabulka Personal. Chceme pod Oddělení dopsat vysvětlivku zkratky oddělení. V okně Seznam polí vybereme pole tentokrát ze skupiny Pole dostupná v souvisejících tabulkách. 105 Z tabulky Oddělení přetáhneme do formuláře pod Oddělení pole Oddělení_v. Tabulka Oddělení se v Seznamu polí přesunula do skupiny Pole dostupná pro toto zobrazení. Do vlastnosti formuláře Zdroj záznamů se vložil dotaz 106 obsahující všechna pole tabulky Personal a pole Oddělení_v z tabulky Oddělení. Podívejme se nyní na zobrazení formuláře: Klepneme do tlačítka Zobrazení ze skupiny Zobrazení v kartě NÁVRH. Formulář se zobrazí ve formulářovém zobrazení. 105 Pokud není skupina Pole dostupná v souvisejících tabulkách zobrazena, klepneme do řádku Zobrazit všechny tabulky. 106 Dotaz jsme mohli upravit také v dotazovací mřížce. Kdybychom v návrhu dotazu přidali tabulku Oddělení a z ní vybrali pole Oddělení_v, také by se tabulka Oddělení přesunula do skupiny Pole dostupná pro toto zobrazení. Kdybychom naopak později v podkladovém dotazu odstranili pole Oddělení_v, zobrazil by se ve formuláři pro pole Oddělení_v v levém horním rohu zelený trojúhelník, který by signalizoval, že nejsou k dispozici potřebná data. Ve formulářovém zobrazení a v zobrazení rozložení by místo hodnoty byl vypisován text #Název?, který by oznamoval, že není známý název pole.

106 Kapitola 5: Formuláře 106 Zobrazení rozložení Uzamčení pole Pole se seznamem Věty jsou řazeny dle oddělení. Chceme je řadit dle u zaměstnance. Klepneme do pole E_mail a potom do tlačítka Vzestupně v kartě DOMŮ ve skupině Seřadit a filtrovat. Upravili jsme tak vlastnost formuláře Řadit podle (ze skupiny vlastností Datové). Přesvědčíme se o tom v návrhovém zobrazení, do něhož přejdeme: klepnutím do spodní části tlačítka Zobrazení a výběrem volby NÁVRHOVÉ ZOBRAZENÍ nebo klepnutím do tlačítka Návrhové zobrazení v pravé části stavového řádku. Ve formulářovém zobrazení se po klepnutí do polí E_mail a Telefon zobrazí inteligentní značky, což signalizuje fialový trojúhelník v pravém dolním rohu pole. V návrhu formuláře chceme provést některé úpravy velikosti ovládacích prvků. Velikost optimálně nastavíme při zobrazení dat. Využijeme proto zobrazení rozložení: Ve formulářovém zobrazení klepneme do tlačítka Zobrazení. V kartě USPOŘÁDAT můžeme klepnutím do tlačítka Seznam vlastností ve skupině Nástroje zobrazit či potlačit zobrazení okna Seznam vlastností. Tažením za spodní kraj pole Pohlaví zmenšíme jeho výšku. Klepneme do pole Foto a formátovou vlastnost Styl okraje změníme z hodnoty plná čára na hodnotu průhledný. Podkladový dotaz má charakter dynamické sady. Můžeme proto editovat název oddělení, který by se promítnul do tabulky Oddělení. Formuláře bude sloužit pouze k editaci tabulky Personal. Upravíme proto ovládací prvek Oddělení_v a jeho popisek: V zobrazení rozložení zobrazíme seznam vlastností textového pole Oddělení_v. Změníme hodnotu datové vlastnosti Uzamknout na ano. 107 V zobrazení rozložení nelze editovat věty. Klepnutím do tlačítka Zobrazení přejdeme do formulářového zobrazení. Nyní již nelze upravit hodnotu názvu oddělení. Vrátíme se do zobrazení rozložení a pro Oddělení_v upravíme formátovou vlastnost Styl okraje na hodnotu Průhledný. Upravíme popisek pole Oddělení_v změnou vlastnosti Titulek nebo přímo editací textu ve formuláři. Zadáme hodnotu Název oddělení. Oproti návrhu tabulky Personal bychom rádi usnadnili vkládání seznamem již vložených hodnot: V návrhovém zobrazení klepneme pravým tlačítkem na pole Titul1 a vybereme z místní nabídky volbu ZMĚNIT NA, POLE SE SEZNAMEM. Nemáme připravený vhodný dotaz, proto klepneme do tlačítka Tvůrce na konci vlastnosti Zdroj řádků. Vybereme tabulku Personal, z ní pole Titul1. Ve vlastnosti dotazu zadáme do vlastnosti Jedinečné hodnoty hodnotu ano. Pro jediné pole Titul1 zadáme v dotazovací mřížce řazení vzestupně. Návrh dotazu ukončíme tlačítkem Zavřít ve skupině Zavřít v kartě NÁVRH. 108 Potvrdíme uložení změn. Ve formulářovém zobrazení je nyní již seznam hodnot. Hodnota žádný je uvedena dvakrát, neboť zastupuje prázdnou (Lukáš Škoda) a nulovou hodnotu (ostatní zaměstnanci). Podkladový dotaz je typu statický snímek, jeho doplnění neumožní ani hodnota Ano datové vlastnosti Povolit úpravy seznamu hodnot (na rozdíl např. od možnosti doplnění dalšího oddělení). Pokud v nové větě přibude do seznamu další hodnota, např. nové křestní jméno, projeví se v seznamu až při novém otevření formuláře: zavřením a otevřením formuláře, přechodem do návrhového zobrazení a návratem do formulářového zobrazení. 109 Obdobně chceme nabídnout seznam pro pole Titul2. Nejdříve změníme pole Titul2 na pole se seznamem. Podkladový dotaz bude podobný. Zkopírujeme vlastnosti Zdroj řádků z pole Titul1 do stejné vlastnosti pole Titul Pro vlastnost Zpřístupnit ponecháme hodnotu Ano, aby bylo možné v poli vyhledávat kombinací kláves Ctrl F. 108 Tlačítkem Uložit jako bychom mohli uložit dotaz jako samostatný nazvaný dotaz pro využití v jiných formulářích, sestavách či pouze jako dotaz. 109 Toto omezení neplatí pro doplnění hodnoty do podkladové tabulky při využití vlastnosti Formulář pro úpravu položek seznamu v podkladové tabulce, např. v případě Oddělení. Obdobné řešení pro doplnění titulů není možné, ani když bychom se vzdali zobrazování jedinečných hodnot. Nemůžeme přidat nový titul, neboť bychom tak editovali tabulku Personal, která vyžaduje pro každou větu vyplnění některých polí, např. Příjmení.

107 Kapitola 5: Formuláře 107 Odebrání rozložení Automatická velikost Seskupování ovládacích prvků Označování více objektů Klepnutím do tlačítka Tvůrce zobrazíme návrh dotazu, v němž v návrhové mřížce změníme jediné pole Titul1 na Titul2. Klepnutím do tlačítka Zavřít ve skupině Zavřít ukončíme úpravu dotazu. Ve formulářovém zobrazení je již seznam hodnot pro pole Titul2. Některé ovládací prvky jsou zbytečně široké. Omezíme proto jejich šířku. Omezením šířky jednoho prvku by se díky skládanému rozložení omezila šířka všech prvků rozložení. Rozložení proto vypneme: V zobrazení rozložení nebo v návrhovém zobrazení klepneme do oranžového voliče v levém horním rohu rozložení. Označíme tak všechny ovládací prvky rozložení. V kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvku klepneme do tlačítka Odebrat. Nyní již můžeme individuálně upravit šířku ovládacích prvků dle obr. 5-1 a to nejlépe v zobrazení rozložení, v němž vidíme hodnoty polí. Upravíme vysvětlení názvu oddělení: Klepnutím označíme popisek Název oddělení. Klávesou Delete popisek odstraníme. Tažením přesuneme textové pole názvu Oddělení_v napravo od zkratky oddělení. Chceme nyní změnit umístění některých dalších polí: Ve skládaném rozložení neakceptoval Access mřížku. Nejprve proto upravíme velikost polí a umístění polí dle mřížky: V návrhovém zobrazení označíme všechny ovládací prvky kombinací kláves Ctrl A. V kartě USPOŘÁDAT ve skupině Zarovnání ovládací prvku klepneme do tlačítka K mřížce. Ve skupině Velikost klepneme do tlačítka Velikost podle mřížky. Tažením za popisky, které jsou přidruženy k vázaným ovládacím prvkům, umístíme pole: Popisek bude v levém horním rohu, tj. 0,2 cm na vodorovném pravítku a 0,2 cm na svislém pravítku 111. Další pole umístíme vždy 0,2 cm pod předchozí pole. Pole Foto umístíme tak, aby levý horní roh byl na pozici 8,4;0,2. Popisky jsou zatím všechny stejně široké, neboť jsme je vkládali původně do rozložení. Automaticky přizpůsobíme jejich velikost: Klepnutím do vodorovného pravítka nad popisky všechny popisky označíme. V kartě USPOŘÁDAT ve skupině Velikost klepneme do tlačítka Automatická velikost. Šířka popisků se přizpůsobila jejich obsahu. Můžeme ještě aplikovat přizpůsobení velikosti k mřížce. Vysvětlivku s názvem oddělení seskupíme s vázaným ovládacím prvkem Oddělení: Klepnutím označíme popisek Oddělení. Klepnutím s klávesou Shift označíme také vázaný ovládací prvek Oddělení a vysvětlivku Oddělení_v. V kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvku klepneme do tlačítka Skupina. Klepnutím do kteréhokoliv seskupeného prvku skupiny se označí celá skupina. Tažením kteréhokoliv prvku se přesunuje celá skupina. Prvky můžeme později oddělit označením skupiny a klepnutím do tlačítka Oddělit ze skupiny Rozložení ovládacího prvku. Obecně je několik možností, jak označovat více objektů ve formuláři: Klepnutím do jednotlivého objektu se označí jeden objekt. Pokud klepneme do jiného objektu, označí se nově tento objekt. Pokud však klepneme do jiného objektu a současně držíme klávesu Shift, zůstanou označeny oba objekty (či postupně více objektů). Klepnutím do svislého pravítka se označí všechny objekty v daném řádku. Pokud držíme klávesu Shift a klepneme znovu jinam do svislého pravítka, označí se více řádků. Klepnutím do prázdného místa formuláře se zruší stávající označení. Pokud z prázdného místa formuláře roztáhneme obrys obdélníku levým tlačítkem myši, označí se všechny objekty, které alespoň z části obdélník zahrnuje. 112 Tažením myší po svislém pravítku můžeme označit více sousedních řádků. 110 Klepneme do předchozí vlastnosti, klávesou Tab označíme celý text vlastnosti Zdroj řádků. Stiskneme kombinaci kláves Ctrl C. Klepneme do ovládacího prvku Titul2 a vložíme schránku do vlastnosti Zdroj řádků kombinací kláves Ctrl V. 111 Takovouto pozici budeme v dalším textu zkráceně zapisovat 0,2;0, Klepnutím do tlačítka Office a tlačítka Možnosti aplikace Access můžeme v kartě Návrháři objektů ve skupině Formuláře či sestavy v poli Chování při označování modifikovat způsob označení objektů při vytyčení obdélníku.

108 Kapitola 5: Formuláře 108 Výraz ve formuláři Kopírování formátu Výchozí nastavení prvku Funkce Len Obdobné zásady pro označování objektů, které platí pro svislé pravítko, platí i pro označování sloupců klepnutím či tažením ve vodorovném pravítku. Vedle pole Telefon chceme umístit bývalou telefonní linku z tabulky Místnosti: Zobrazíme seznam polí. Táhneme pole Původní_telefon ze skupiny Pole dostupná v souvisejících tabulkách z tabulky Místnosti napravo od pole Telefon. Klepnutím označíme popisek a klávesou Delete jej odstraníme. Upravíme vlastnost Zdroj ovládacího prvku nového ovládacího prvku na hodnotu: = dříve: & Původní_telefon Rovnítko zahajující výraz musíme zapsat. Konstantní text musíme zapisovat do uvozovek. Operátor & slučuje textové řetězce. Access sám doplní hranaté závorky k názvu pole Původní_telefon. Ve výrazu mohou být obecně uváděny nejen pole z podkladového dotazu, ale také ovládací prvky identifikované jejich názvem. Access narazí při zobrazení hodnot na problém shody názvu ovládacího prvku a pole z podkladového dotazu. Upřednostní využití názvu ovládacího prvku, čímž výraz obsahuje kruhovou definici: Původní_telefon: = dříve: & [Původní_telefon]. V zobrazení rozložení i ve formulářovém zobrazení se zobrazuje text #Chyba. Upravíme název ovládacího prvku ve vlastnosti Název na hodnotu Původní_telefon_n. Nemusíme nastavovat vlastnost Uzamknout, neboť pole s výrazem není možné editovat. Chceme, aby ovládací prvek nebyl ohraničen. Zkopírujeme formát z názvu oddělení: V zobrazení rozložení nebo v návrhovém zobrazení označíme klepnutím název oddělení. Klepneme do tlačítka Kopírovat formát ve skupině Písmo v kartě FORMÁT. Klepneme do původního telefonu. 113 Chceme, aby formátové a některé další vlastnosti nastavené pro textové pole Původní_telefon (např. Styl okraje) byly aplikovány na další nově vkládaná textová pole. Označíme ovládací prvek Původní_telefon a v kartě NÁVRH ve skupině Ovládací prvky 114 klepneme do tlačítka Výchozí nastavení prvku. Přetažením pole Původní_telefon se modifikoval podkladový dotaz formuláře. Doplnila se do něj tabulka Místnosti. Upravíme ještě typ spojení na Zahrnout všechny záznamy z tabulky Personal tak, aby byli ve formuláři zobrazováni i zaměstnanci, kteří sedí v místnosti, kde nebyl telefon (Alena Pospíšilová z místnosti 25) nebo nemají přiřazenu místnost (Ondřej Světlý). Access hlídá délku vkládání textových polí dle struktury tabulky. Složitější je hlídání délky (např. únosné z hlediska délky rekapitulace dat v sestavách) pro memo pole. Doplňme do formuláře zobrazování délky memo pole Charakteristika dle obr. 5-1: Všechna pole už jsme umístili do formuláře. Mohli bychom znovu umístit pole Charakteristika a upravit jeho zdroj na výraz. Tentokrát však umístíme obecné textové pole, jehož zdroj upřesníme. V návrhovém zobrazení v kartě NÁVRH klepneme ve skupině Ovládací prvky do tlačítka Textové pole 115. U kurzoru se zobrazí kříž se symbolem textového pole. Tažením myší vymezíme textové pole ve formuláři pod popiskem Charakteristika. (Táhneme z levého horního rohu do pravého dolního rohu.) Nové pole nemá popisek, neboť textové pole má nyní výchozí nastavení bez popisku. Pokud bychom nenastavili dříve výchozí nastavení, museli bychom odstranit popisek vloženého pole Text Do vlastnosti Zdroj ovládacího prvku zapíšeme výraz ="Délka: " & Len([Charakteristika]) Funkce Len vrací počet znaků textového řetězce. 113 Zkopírovali jsme tak pouze formátové vlastnosti, nikoliv ostatní, např. jsme nezkopírovali hodnotu vlastnosti Přístup klávesou tabelátor. 114 Výchozí nastavení platí jen v rámci formuláře. Formulář lze nastavit jako výchozí pro tvorbu nových formulářů klepnutím do tlačítka Office a do tlačítka Možnosti aplikace Access a úpravou vlastnosti Šablona formuláře ve skupině Formuláře či sestavy. 115 Obdobně můžeme přidávat další obecné ovládací objekty, z nichž jsme zatím poznali zaškrtávací políčko, pole se seznamem, seznam, rámeček vázaného objektu (pro vložení objektu OLE). Můžeme také vložit základní prvky čárové grafiky: čáru a obdélník. 116 Popisek má obecný text Text99, kde 99 je pořadové číslo ovládacího prvku ve formuláři.

109 Kapitola 5: Formuláře 109 Modifikace seznamů Pořadí prvků ve formuláři Do vlastnosti název zapíšeme Charakteristika_d (délka charakteristiky). Ovládací prvek není díky výchozímu nastavení ohraničen. Uživatel může (po přechodu z pole Charakteristika do jiného pole) zjistit délku charakteristiky a držet se doporučované maximální délky např. 50 znaků. 117 Funkce Len vrací v případě položky Memo s formátem RTF délku včetně kódů HTML. Proto je délka delší u textů s formátováním. U všech je delší o 11 znaků, tj. značky <div> a </div>. O kódech HTML uložených pro texty formátu RTF se můžeme přesvědčit jednoduchým výběrovým dotazem, který vypíše pole E_mail, Charakteristika, CStr(Charakteristika) a Len(Charakteristika). 118 Vlastnosti seznamu a polí se seznamem byly zkopírovány ze struktury tabulky. Chceme usnadnit vložení hodnot uživateli formuláře vysvětlivkami: pro pole Pohlaví upravíme vlastnosti: datová vlastnost Zdroj řádků: M;muž;Z;žena datová vlastnost Zdědit seznam hodnot: ne formátová vlastnost Počet sloupců: 2 formátová vlastnost Šířky sloupců: 0,5 formátová vlastnost Šířka: 2 pro pole Oddělení upravíme vlastnosti: formátová vlastnost Počet sloupců: 2 formátová vlastnost Šířky sloupců: 1 formátová vlastnost Šířka seznamu: 3,5 Ve formulářovém zobrazení se pohybujeme mezi jednotlivými poli tabulátorem nebo odesláním. Vadí nám však, že: z pole Oddělení se přechází na název oddělení, z pole Web se přechází na pole Foto místo na pole Oprávnění, z pole Oprávnění se přechází na pole Původní_telefon a Charakteristika_d. Upravíme proto pořadí polí a do některých zamezíme přístup tabulátorem: V zobrazení rozložení nebo v návrhovém zobrazení klepneme v kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvku do tlačítka Pořadí oušek. Zobrazí se dialogové okno Pořadí prvků (viz obr. 5-2). OBR. 5-2: DIALOGOVÉ OKNO POŘADÍ PRVKŮ 117 Přísnější ochranou by bylo zahrnutí podmínky omezené délky do ověřovacího pravidla tabulky, např. ve tvaru: ([Příjmení] Not Like "*á" Or [Pohlaví]="Z") And Len([Charakteristika])<=50. Potom by Access při ukládání věty kontroloval délku pole Charakteristika. 118 Značky <div> a </div> nejsou vloženy v případě, že pole věty bylo vyplněno ve stavu, kdy ve struktuře tabulky měla vlastnost Formát textu hodnotu Prostý text.

110 Kapitola 5: Formuláře 110 P52a Personal Identifikace Barvy ve formuláři V okně jsou uvedeny názvy vázaných ovládacích prvků (tj. hodnota jejich vlastnosti Název). Klepnutím můžeme označit libovolný vázaný objekt (objekt, který je proměnlivý dle hodnoty některého pole či výrazu) či tažením více objektů a přetáhnout je na jiné pořadí. Pro ilustraci zvolíme jinou cestu. Klepneme do tlačítka Automatické pořadí. Access zvolí sám pořadí po řádcích formuláře. Položku Foto (jedinou ve druhém sloupci formuláře) tažením za počáteční volič přesuneme na konec seznamu. Klepnutím do tlačítka OK zavřeme dialogové okno. Při vyplňování či prohlížení formuláře potom po odeslání klávesou Enter či stisknutí klávesy Tab přejde Access na následující svázaný prvek. 119 Klepneme do ovládacího prvku původního telefonu, s klávesou Shift současně označíme název oddělení a délku charakteristiky. V seznamu vlastností jsou vlastnosti společné pro vícenásobný výběr. Upravíme vlastnost Přístup klávesou tabelátor ze skupiny Jiné na hodnotu ne. V zobrazení formuláře již nejsou klávesou Tab dostupné upravené ovládací prvky. 120 Klepnutím označíme původní telefon a do jiné vlastnosti Vysvětlivka zapíšeme hodnotu Původní telefon. Vysvětlivka se zobrazí v samostatném nápovědném okénku s šedivým pozadím, když umístíme ukazatel myši nad ovládací prvek v zobrazení rozložení nebo v návrhovém zobrazení. Dosud nenazvaný formulář uložíme klepnutím do tlačítka Office a příkazem ULOŽIT nebo kombinací kláves Ctrl S. Zobrazí se dialogové okno Uložit jako s připraveným názvem Form1. Název přepíšeme na P52a Personal Identifikace. 121 Ve formuláři chceme barevně zvýraznit klíčové pole E_mail: Klepnutím označíme pole . Ve formátové vlastnosti Barva popředí je hodnota # Mřížky na začátku značí, že hodnota je udána v šestnáctkové soustavě využívající číslice 0, 1,..., 9, A, B,..., F. Každé dvě cifry udávají hodnotu podílu červené (R red), zelené (G green) a modré (B blue) barvy, tj. tzv. model RGB. Můžeme hodnotu zadat: přesným určením zastoupení barev, např. #BA1419 zastupuje tmavě červenou barvu, výběrem z předdefinované barvy, použitím tvůrce barev. Seznam předdefinovaných barev rozbalíme klepnutím do prvního tlačítka na konci řádku vlastnosti Barva popředí. Nabízí se dvě skupiny barev: Alternativní řádek, Formulář pozadí, Světlé pozadí záhlaví, Tmavé pozadí záhlaví, Ohraničení a mřížka, Černý text, Popis textu, Tmavý text, Zvýraznění, Motiv aplikace Access 1, 2,..., 10: barvy přebírané z tzv. barevného schématu. Barevné schéma určuje barevné řešení oken Accessu. Barvy ovládacích prvků lze takto sladit s barevným schématem Accessu (platným i pro další aplikace Office, např. pro PowerPoint). K dispozici jsou tři barevná schémata (Modré, Stříbrné, Černé), které lze vybrat klepnutím do tlačítka Office a do tlačítka Možnosti aplikace Access v kartě Oblíbené v poli Barevné schéma. Barevné schéma nelze upravovat, nelze definovat další barevná schémata. Systém posuvník, Systém schéma,..., Systém panel nabídek: barvy přebírané z barevného nastavení Windows. Barvy ovládacích prvků lze takto sladit s nastavením barev ve Windows. 122 Klepnutím do druhého tlačítka na konci řádku vlastnosti Barva popředí se zobrazí okno s nabídkou barev (viz obr. 5-3): 119 Jedinou výjimkou je pole Web kde se odesláním zobrazí webová stránka. Z tohoto pole se přesunujeme na další prvek klávesou Tab. 120 Zůstávají dostupné klepnutím do ovládacího prvku např. pro účely vyhledávání dle hodnoty pole kombinací kláves Ctrl F. Pokud bychom upravili datovou vlastnost Zpřístupnit na hodnotu ne, nebylo by ve formulářovém zobrazení možné ani klepnout do ovládacího prvku. Ovládací prvek by byl odlišen šedým pozadím. 121 V ukázkové databázi Encian jsou formuláře již přichystány. Jejich název začíná písmenem P (publikace) s číslem kapitoly (první číslice), podkapitoly (druhá číslice) a dotazu v rámci podkapitoly (písmeno), např. P52a Personal Identifikace. Své individuální pokusy ukládejte přímo pod číslem formuláře, např. 51a. Individuální pokusy tak budou zařazeny dle abecedy na začátku. 122 Např. ve Windows Vista lze nastavit barvy příkazem START, OVLÁDACÍ PANELY, Vzhled a přizpůsobení, ve skupině Individuální nastavení volba Vlastní nastavení barev, volba Otevřít klasické vlastnosti vzhledu pro více možností barev, tlačítko Upřesnit. Můžeme tako nastavit některé z 31 možností barev (posuvník, plocha,..., panel nabídek).

111 Kapitola 5: Formuláře 111 OBR. 5-3: OKNO S NABÍDKOU BAREV V prvním řádku můžeme kdykoliv později vybrat automaticky vybíranou barvu pro formulář (např. pro barvu popředí je to černá, pro barvu pozadí bílá). Skupina Barvy motivu aplikace Access nabízí barvy z nastaveného barevného schématu Accessu. Umístěním ukazatele myši nad barvu se zobrazí název barvy. V prvním řádku jsou barvy Texty nadpisu, Světlý text popisku,..., Zvýraznění. Ve druhém řádku jsou barvy Motiv aplikace Access 1 (nejsvětlejší), 2,..., 10 (nejtmavší). Skupina Standardní barvy nabízí jednoduché barvy. 123 V prvních šesti řádcích jsou různé odstíny 10 barev uvedených ve sloupcích. V posledním sedmém řádku je nabídka různých standardních barev. Skupina Naposledy použité barvy usnadňuje opakované využití stejných barev. 124 Umístěním ukazatele myši nad naposledy použitou barvu se zobrazí její RGB model. 125 Klepnutím do volby Další barvy zobrazíme dialogové okno Barvy se dvěma kartami:» Standardní: paleta 127 nejčastějších barev a 15 odstínů černé.» Vlastní: nástroj pro namíchání vlastní barvy výběrem v levé paletě a upřesněním odstínu v pravé stupnici nebo přímo zadáním modelu RGB či HSL v desítkové soustavě, např. tmavě červená barva má složky (viz obr. 5-4): OBR. 5-4: DIALOGOVÉ OKNO BARVY červená: #BA, tj. 11* * 1 = = Standardní barvy nelze v Accessu bohužel nastavit. Access na rozdíl např. od PowerPointu či Visia nevyužívá žádné barevné sady či motivy. 124 Barvu lze vybírat také klepnutím do pravé části tlačítka Barva písma v kartě FORMÁT ve skupině Písmo. Na tlačítku se pamatuje naposledy použitá barva, kterou lze aplikovat na jiný ovládací prvek jeho výběrem a klepnutím do levé části tlačítka. 125 Bohužel části RGB modelu jsou v opačném pořadí. Barva #BA1419 je tak zobrazena jako #1914BA.

112 Kapitola 5: Formuláře 112 Automatický formát P52b Personal automatický formát zelená: #14, tj. 1* *1 = = 20 modrá: #19, tj. 1 * * 1 = = 25 V našem případě vybereme pro ovládací prvek E_mail barvy: Barva popředí: tmavě červená #BA1419 Barva okraje: tmavě červená #BA1419 Barva pozadí: pozadí #EDEDED Ovládací prvek E_mail ještě formátujeme tučným písmem: kombinací kláves Ctrl B nebo klepnutím do tlačítka Tučné v kartě FORMÁT 126 ve skupině Písmo. Access sice nenabízí motivy či barevné sady, nabízí však hromadnou úpravu formátu formuláře či sestavy pomocí automatického formátu: Před zkouškami automatického formátu formulář uložíme kombinací kláves Ctrl S. Formulář je do souboru databáze uložen pod dříve zadaným názvem. V zobrazení rozložení v kartě FORMÁT jsou ve skupině Automatický formát k dispozici dva automatické formáty 127. Klepnutím do tlačítek posuvníku napravo od tlačítek automatických formátů můžeme zobrazit skupiny dalších automatických formátů. Klepnutím do tlačítka Více pod posuvníkovými tlačítky zobrazíme úplnou nabídku automatických formátů. Access nabízí 25 automatických formátů: Access 2003 Access 2007 Vrchol Aspekt Civilní Shluk Papír Modul Jmění Tok Lití písma Medián Metro Žádný Northwind Office Hojnost Oriel Počátek Slunovrat Technický Cesta Městský Elán Windows Vista Kromě 5 automatických formátů (Access 2003, Access 2007, Žádný, Northwind, Windos Vista) jsou shodné s motivy v aplikaci Visio. 128 Aplikujeme automatický formát Civilní. Automatický formát zahrnuje tři části formátování: písmo, barvu a okraj, které se aplikovaly na všechny ovládací prvky včetně ovládacího prvku E_mail. Zůstalo tučné vypisování u. Upravený formulář uložíme pod jiným názvem tlačítkem Office a příkazem ULOŽIT JAKO. Zadáme název P52b Personal automatický formát. Automatický formát můžeme také použít v modifikované podobě: V kartě FORMÁT ve skupině Automatický formát klepneme do tlačítka Více. Pod seznamem formátů klepneme do volby Průvodce automatickým formátem. Zobrazí se dialogové okno Automatický formát (viz obr. 5-5): OBR. 5-5: DIALOGOVÉ OKNO AUTOMATICKÝ FORMÁT 126 Formát lze upravit v návrhovém zobrazení v kartě NÁVRH, v zobrazení rozložení v kartě FORMÁT. 127 V případě nedostatku místa je k dispozici pouze tlačítko Automatický formát, které zobrazuje nabídku všech automatických formátů. Naopak v případě dostatku místa může být zobrazeno více automatických formátů. 128 Obdobou automatického formátu Office z Accessu je motiv Kancelář ve Visiu. V PowerPointu jsou některé motivy v češtině nazvány jinak (Oriel Arkýř, Civilní Administrativní, Hojnost Bohatý, Elán Talent, Počátek Původ, Městský Urbanistický).

113 Kapitola 5: Formuláře 113 Velikost formuláře P53 Podniky Identifikace Klepnutím do tlačítka Možnosti zobrazíme sekci Použít pro nastavení vlastnosti. V levé části můžeme vybrat automatický formát, jeho náhled uvidíme v pravé části. V spodních polích můžeme zaškrtnutím zvolit, které části automatického formátu chceme aplikovat. Klepnutím do tlačítka Přizpůsobit zobrazíme dialogové okno Přizpůsobit automatický formát, v němž můžeme» vytvořit nový automatický formát s využitím formátu aktuálního formuláře, nový automatický formát vhodně nazveme 129,» aktualizovat vybraný formát dle formátu aktuálního formuláře,» odstranit vybraný automatický formát. Na závěr přípravy formuláře omezíme jeho výšku. Myší se přiblížíme k spodní hranici těla formuláře (sekce okna formuláře s mřížkou). Objeví se symbol dvojité šipky. Spodní hranici přitáhneme 0,2 cm pod poslední řádek formuláře. Obdobně (pokud je to nutné) omezíme šířku formuláře. Tím jsme nastavili vlastnost formuláře Šířka a vlastnost těla formuláře 130 Výška. Formulář uložíme a uzavřeme Další samostatný formulář Navrhování formuláře procvičíme na podobném formuláři, jehož prostřednictvím budeme zobrazovat a editovat data tabulky Podniky. Obdobně, jako jsme zobrazovali ve formuláři k tabulce Personal hodnoty polí z jiných tabulek (původní telefon, název oddělení), budeme chtít v novém formuláři zobrazovat vysvětlivky ke stadiu vývoje a k jednotlivým činnostem NACE (cílový stav formuláře je v obr. 5-6). OBR. 5-6: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P53 PODNIKY IDENTIFIKACE Tentokrát vytvoříme formulář s větší pomocí Accessu: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Podniky. V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka Formulář. Vytvoří se formulář, který se otevře v zobrazení rozložení: 129 Vytvořený automatický formát není v tlačítkách formátů, je však dostupný v dialogovém okně Automatický formát. Automatický formát je uložen v nastavení Acccessu na konkrétním počítači. Je možné využít jej i v jiných databázích, nepřenáší se však s konkrétní databází. 130 V kap. 5.4 poznáme, že formulář se skládá ze sekcí. Náš formulář obsahuje jedinou sekci Tělo. 131 Formulář obdobně jako další formuláře přidáme do skupiny 5 Formuláře. Klepnutím na název formuláře zobrazíme místní nabídku, z níž vybereme PŘIDAT DO SKUPINY a vybereme skupinu 5 Formuláře.

114 Kapitola 5: Formuláře 114 Úprava a uložení podkladového dotazu V záhlaví formuláře je logo a název formuláře. V těle formuláře jsou dvě skládaná rozložení s poli tabulky Podniky. Ve spodní části formuláře je podformulář se seznamem faktur, které byly vystaveny jednotlivému zobrazovanému podniku odběrateli. V návrhovém zobrazení označíme podformulář, jehož zdrojem je tabulka Faktury a klávesou Delete jej odstraníme. Tažením v zobrazení rozložení postupně přesuneme z pravého do levého rozložení pole NACE6, PSČ, Obec, Ulice, Telefon, Bankovní_účet, Bankovní_kód. Snížíme šířku polí v rozložení asi na polovinu. Pro další práci potlačíme rozložení. Klepnutím do voliče v jeho levém horním rohu jej označíme a v kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvku klepneme do tlačítka Odebrat. Zobrazíme seznam polí a tažením ze skupiny Pole dostupná v souvisejících tabulkách přesuneme do formuláře pole Stupeň z tabulky Stadia a ovládací prvek modifikujeme: Umístíme ovládací prvek napravo od pole Stadium. Zúžíme jeho šířku. Styl okraje zadáme průhledný. Ve formuláři je zobrazena jedna z 69 vět odběratelů. Chceme doplnit vysvětlivky k jednotlivým kódům NACE: Zobrazíme seznam polí. Ze skupiny Pole dostupná v souvisejících tabulká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. Obdobně přesuneme NACE_v tentokrát již ze skupiny Pole dostupná pro toto zobrazení napravo od NACE2. Pokud se vytvoří nové rozložení popisku a ovládacího prvku, odebereme je. Odstraníme popisek. Rozšíříme ovládací prvek. Vysvětlivka se bohužel opět vztahuje k NACE1. Musíme modifikovat podkladový dotaz: V návrhovém zobrazení proto zobrazíme návrh podkladového dotazu, tj. datovou vlastnost formuláře Zdroj záznamů (viz obr. 5-7). OBR. 5-7: DOTAZ K FORMULÁŘI P53 PODNIKY IDENTIFIKACE tabulky: NACE (6x) Podniky Stadia (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.

115 Kapitola 5: Formuláře 115 Rozdělení formuláře Pro všechna nová spojení zadáme typ spojení Zahrnout všechny záznamy z tabulky Podniky. 132 Do dotazové mřížky doplníme NACE z jednotlivých NACE_1, _2,..., _5 s titulkem NACE_v2, 3,..., 6. Podkladový dotaz uložíme tlačítkem Uložit jako ve skupině Zavřít pod názvem P53 Podniky Identifikace a zavřeme s uložením do formuláře. Ve vlastnosti formuláře Zdroj záznamů je nyní uveden dotaz P53 Podniky Identifikace. Ve formuláři odstraníme vedle NACE2 neúspěšný pokus o vysvětlivku. V návrhovém zobrazení klepneme do první vysvětlivky NACE_v a upravíme ji: Do formátové vlastnosti Styl okraje zadáme hodnotu průhledný. V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Výchozí nastavení prvku. Do formuláře doplníme ze seznamu polí NACE_v2, 3,..., 6. Označíme dvojici prvků NACE1 a NACE_v. V kartě USPOŘÁDAT ve skupině Zarovnání ovládacího prvku klepneme do tlačítka Zarovnat nahoru. Obdobně zarovnáme zbývajících pět dvojic NACE a NACE_v. Upřesníme formát některých ovládacích prvků: Do datové vlastnosti Uzamknout pole Stupeň zadáme hodnotu ano. V popiskách Název_podniku, Bankovní_účet a Bankovní_kód nahradíme podtržítka mezerami. Abychom snadno našli jednotlivý podnik zobrazený ve formuláři, zobrazíme formulář v rozdělení na datový list a vlastní formulář: V návrhovém zobrazení zadáme do formátové vlastnosti formuláře Výchozí zobrazení hodnotu Rozdělit formulář. V návrhovém zobrazení v kartě USPOŘÁDAT ve skupině Zobrazit či skrýt potlačíme zobrazení sekce Záhlaví formuláře klepnutím do tlačítka Záhlaví a zápatí formuláře. Potvrdíme, že odstraněním sekci budou odstraněny také všechny ovládací prvky v těchto sekcích. Tím ušetříme místo v okně formuláře. Označíme všechny ovládací prvky formuláře a posuneme je do levého horního rohu formuláře asi na pozici 0,2;0,2 levého horního ovládacího prvku ve formuláři. V zobrazení rozložení nebo formulářovém zobrazení tažením za příčku mezi datovým listem a formulářovým zobrazením (tzv. rozdělovač) změníme jejich poměr tak, aby byl vidět celý formulář. K dočasnému zvětšení prostoru pro formulář můžeme potlačit zobrazování pásu karet, když z místní nabídky pásu zadáme příkaz MINIMALIZOVAT PÁS KARET. Můžeme nyní snadno najít v datovém listu podniku, po klepnutí do jeho řádku se zobrazí ve spodním formuláři. Ve vlastnostech formuláře v návrhovém zobrazení lze upřesnit parametry rozdělení formuláře: Orientace rozděleného formuláře: Můžeme zadat, zda se datový list zobrazí nad formulářem, pod ním, vlevo nebo vpravo od něj. Datový list rozděleného formuláře: Můžeme potlačit možnost editace v datovém listu. Rozdělovač rozděleného formuláře: Můžeme potlačit možnost měnit polohu příčky mezi datovým listem a formulářovým zobrazením. Uložit pozici rozdělovače: V případě hodnoty ano se při zavírání formuláře ukládá pozice rozdělovače pro další otevření formuláře. Velikost rozděleného formuláře: Lze nastavit výšku (či šířku) pro formulářové zobrazení. Tisk rozděleného formuláře: Je možné upřesnit, které části formuláře se tisknou. Formulář uložíme pod názvem P53 Podniky Identifikace. Kdybychom používali formulář k editaci, bylo by vhodné změnit všechna pole kódů z textových polí na pole se seznamy. Formulář umožňuje vložit další NACE, aniž jsme vyplnili předchozí NACE stejného podniku. (V kap. 7.4 zdokonalíme formulář tak, abychom mohli vkládat další NACE jen po vyplnění předchozího NACE, např. NACE3 budeme moci vložit pouze po vyplnění NACE2.) 132 Pokud bychom nezměnili typ spojení, zobrazil by se jediný podnik, neboť většina z našich odběratelů nemá vyplněno všech 6 kódů NACE.

116 Kapitola 5: Formuláře 116 P54 Cesty 5.4 Nekonečný formulář Další formulář bude sloužit ke vkládání a prohlížení tabulky Cesty. Cílový vzhled formuláře je uveden v obr OBR. 5-8: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P54 CESTY Nekonečný formulář Funkce IIf Vytvoříme formulář s větší pomocí Accessu: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Cesty. V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka 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. Tažením za jednotlivé svislé čáry zúžíme šířku pro jednotlivé sloupce tabulky. Do tabulky chceme doplnit nový sloupec s výrazem, který vypočítá délku cest: V návrhovém zobrazení klepneme v kartě NÁVRH ve skupině Ovládací 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 popisky zapíšeme text Délka. Do datové vlastnosti nevázaného ovládacího prvku Zdroj ovládacího prvku zapíšeme vzorec: =Dokončení Zahájení Do jiné vlastnosti Název zapíšeme hodnotu Délka. Délka je zarovnána zleva, je zobrazena jako textové pole. Upravíme zarovnání: klepnutím do tlačítka Zarovnat text vpravo ve skupině Písmo v kartě FORMÁT nebo do formátové vlastnosti Zarovnání textu pole Délky zadáme hodnotu vpravo. Obdobně zarovnáme příslušný popisek v záhlaví tabulky. Chyba vypisovaná v řádku nové věty v sloupci Délka zmizí po vyplnění polí Zahájení a Dokončení. Upravíme výraz pro výpočet délky využitím funkce IIf. Funkce IIf umožňuje větvit výsledek dle podmínky:

117 Kapitola 5: Formuláře 117 =IIf([Zahájení] Is Null; ;[Dokončení] [Zahájení]) Funkce IIf umožňuje variantně naplnit zdroj ovládacího prvku. Argumenty funkce jsou odděleny středníky: podmínka (1. argument); text, který se vypíše při splnění podmínky (2. argument); případně text, který se vypíše při nesplnění podmínky (3. argument, nemusí být uveden). Délku chceme zobrazovat třemi různým barvami dle její hodnoty: Klepneme do libovolného řádku do sloupce Délka. V kartě FORMÁT ve skupině Písmo klepneme do tlačítka Podmíněné. V dialogovém okně Podmíněné formátování dvakrát klepneme do tlačítka Přidat, abychom mohli definovat tři (maximálně možné) větve formátování (viz obr. 5-9). OBR. 5-9: DIALOGOVÉ OKNO PODMÍNĚNÉ FORMÁTOVÁNÍ V prvním řádku podmínky definujeme podmínku větve, ve druhém řádku klepnutím do formátovacích tlačítek formát větve. Pro Výchozí formát zadáme tučné formátování a pozadí šedé (druhý řádek, první sloupec palety). Obdobně zadáme tučné formátování a šedé pozadí (znázorňující, že není možné hodnotu editovat) pro všechny tři větve. Pro 1. větev, kdy hodnota je menší než 5 dnů, zadáme navíc barvu písma tmavě zelenou (z posledního řádku nabídky barev). Pro 2. větev, kdy hodnota je mezi (včetně konců intervalu) 5 a 9 dny, zadáme navíc barvu písma oranžovou (z posledního řádku nabídky barev). Pro 3. větev, kdy hodnota je větší nebo rovna než 10 dnů, zadáme navíc barvu písma červenou (z posledního řádku nabídky barev). Ve formuláři jsou barevně odlišeny různé délky cest. Formulář uložíme pod názvem P54 Cesty. (Tento modifikovaný formulář se později stane podformulářem hlavního formuláře o tabulce Personal.) P55 Licence 5.5 Formulář se souhrny Úkolem dalšího formuláře bude editovat a zobrazovat data o licencích v řazení dle programů a licencí. Opět se bude jednat o nekonečný formulář. Jedna věta bude ve formuláři zobrazena na jednom řádku. Cílový vzhled formuláře je uveden v obr Prvotní návrh nekonečného formuláře připraví Access: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Licence. V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka 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í.

118 Kapitola 5: Formuláře 118 OBR. 5-10: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P55 LICENCE Souhrn ve formuláři Tažením za vodorovnou čáru tabulky zmenšíme výšku všech řádků tabulky. Tažením za jednotlivé svislé čáry zúžíme šířku pro jednotlivé sloupce tabulky. Změníme pořadí sloupců a doplníme dva další: Tažením za název sloupce v záhlaví nebo za kteroukoliv hodnotu přesuneme sloupec Faktura na začátek tabulky. V názvu sloupec Sériové_číslo nahradíme podtržítko mezerou. Ze seznamu polí ze skupiny Pole dostupná v souvisejících tabulkách 133 přesuneme na konec tabulky sloupce Program_v a Cena. Změníme název sloupce Program_v na Název. Zúžíme sloupec Cena. V zobrazení rozložení klepneme do sloupce Program a s klávesou Shift do sloupce Cena. Upravíme vybrané vlastnosti: datovou vlastnost Uzamknout na hodnotu ano, jinou vlastnost Přístup klávesou tabelátor na hodnotu ne, formátovou vlastnost Barva pozadí na hodnotu Formulář pozadí. Věty jsou řazeny dle programu. Chceme je seřadit dle čísla faktury, názvu programu a sériového čísla. V návrhovém zobrazení upravíme datovou vlastnost formuláře Zdroj záznamů: Z podokna Diagram tažením vložíme do podokna Mřížka pole Faktura před pole Program_v a pole Sériové_číslo za Program_v. Pro pole Faktura a Sériové_číslo zrušíme zaškrtnutí řádku Zobrazit. V řádku Řadit vyplníme hodnotu vzestupně pro sloupce Faktura, Program_v a Sériové_číslo. Klepnutím do tlačítka Zavřít ze skupiny Zavřít ukončíme změnu návrhu dotazu. Potvrdíme jeho uložení. Do zápatí formuláře doplníme celkové tržby za všechny licence: V návrhovém zobrazení přesuneme pole Cena do sekce Zápatí formuláře. Jeho popisek změníme na Celkové tržby. Klepneme na ovládací prvek Program_v v těle a s klávesou Shift na popisek Celkové tržby. Zarovnáme je zleva klepnutím do tlačítka Zarovnat vlevo ve skupině Zarovnání ovládacího prvku v kartě USPOŘÁDAT. Obdobně zarovnáme pole Cena v těle a v záhlaví formuláře. Pro Cenu v těle a v záhlaví sjednotíme ještě šířku klepnutím do tlačítka Velikost podle nejužšího ve skupině Velikost v kartě USPOŘÁDAT. V zobrazení rozložení vidíme, že v zápatí se zobrazuje cena za první licenci. Upravíme datovou vlastnost Zdroj ovládacího prvku celkových tržeb na výraz: =sum(cena) Pokud je to nutné, rozšíříme šířku celkových tržeb i sloupce Cena. V zápatí je nyní uvedena celková cena za všechny (nejen zobrazené) licence. Záhlaví a zápatí se zobrazuje pro jakékoliv věty zobrazené v těle formuláře. Upravíme formát celkových tržeb: Do formátové vlastnosti Styl okraje zadáme hodnotu průhledný. 133 Pokud není skupina zobrazena, klepneme do volby Zobrazit všechny tabulky na spodním kraji okna Seznam polí.

119 Kapitola 5: Formuláře 119 Do formátové vlastnosti Barva pozadí pro popisek i součtový ovládací prvek zadáme hodnotu Formulář pozadí. Formulář uložíme pod názvem P55 Licence. P56a Licence P56b Faktury 5.6 Podformulář Formulář z kap. 5.5 nelze používat k zapsání nových faktur do databáze. Tabulka Licence je totiž v přímé vazbě k tabulce Faktury a v nepřímé vazbě k tabulkám Podniky a Personal. Formulář může sloužit pouze k přidávání licencí k existujícím fakturám. Pokud zapíšeme licenci k neexistující faktuře, Access při ukládání věty vypíše chybové hlášení Nelze přidat nebo změnit záznam, protože je vyžadován související záznam v tabulce Faktury. Abychom předešli chybnému zadání faktury, musíme omezit vstup do pole Faktura. Předvedeme si dva způsoby omezení vstupu. V prvním případě změníme ovládací prvek Faktura z textového pole na pole se seznamem s vlastnostmi: datová vlastnost Zdroj řádků: Faktury, formátová vlastnost Počet sloupců: 3, formátová vlastnost Šířky sloupců: 1cm;0cm;2cm, formátová vlastnost Šířka seznamu: 3cm, datová vlastnost Omezit na seznam: ano. V rozbalovacím seznamu zobrazujeme nabídku čísel faktur s daty jejich vzniku. Zadáním šířky 0 cm nevypisujeme druhé pole z tabulky Faktury, tj. E_mail. Omezením vstupu na seznam nepřipustíme zadání neexistující faktury. Jestliže vložíme číslo faktury bez využití rozbalovací nabídky, Access již po zadání čísla faktury upozorní, že Zadávaný text musí odpovídat položce v seznamu. Pole Faktura mírně rozšíříme, neboť rozbalovací šipka zabírá jistý prostor. Upravený formulář uložíme pod názvem P56a Licence. Ve druhém případě budeme vkládat nové faktury ve formuláři faktur, v jehož rámci umožníme vložení licencí k jednotlivým fakturám v tzv. podformuláři. Připravme nejprve pro tabulku Faktury samostatný formulář (viz obr. 5-11): OBR. 5-11: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P56B FAKTURY Podformulář V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Faktury. V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka 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. Tažením za jednotlivé svislé čáry zúžíme šířku pro jednotlivé sloupce tabulky. Upravíme popisek E_mail na . V návrhovém zobrazení změníme typy ovládacích prvků: Pole E_mail změníme na pole se seznamem, zdrojem řádků bude tabulka Personal, vkládání omezíme na seznam. Pole IČ změníme na pole se seznamem, zdrojem řádků bude tabulka Podniky, vkládání omezíme na seznam. Do formátových vlastností zadáme hodnoty:» Počet sloupců: 2» Šířky sloupců: 2cm» Šířka seznamu: 4cm

120 Kapitola 5: Formuláře 120 P56c Faktury P56d Licence V rozbalovacím seznam se tak zobrazují pole IČ a Název_podniku. Formulář uložíme pod názvem P56b Faktury. Pro další úpravy vytvoříme kopii formuláře: Klepnutím označíme formulář P56b Faktury v navigačním podokně. Kombinací kláves Ctrl C zkopírujeme formulář do schránky. Vložíme formulář kombinací Ctrl V. V dialogovém okně Vložit jako upřesníme název 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 OBR. 5-12: SOUSTAVA FORMULÁŘŮ V návrhovém zobrazení otevřeme formulář P56c Faktury, do nějž vložíme jiný formulář: Tažením za dolní okraj zvýšíme tělo na výšku 6,5 cm. Z navigačního podokna táhneme formulář S56d Licence asi 1 cm pod ovládací prvek Faktura v těle formuláře. Access zobrazí hlášení, v němž nás informuje, že dílčí vkládaný formulář podformulář nemůže být součástí nekonečného formuláře. Klepnutím do tlačítka OK změníme formulář S56c Faktury na samostatný. Klepnutím označíme a klávesou Delete odstraníme popisek podformuláře. 134 Podformulář umístíme asi 0,2 cm pod pole Faktura. Podformulář zvýšíme tažením úchytu ve středu jeho dolního kraje na výšku 6,2 cm. Tažením za spodní kraj minimalizujeme tělo formuláře. (Pokud přetáhneme kraj přes podformulář, Access automaticky výšku zvýší tak, aby byly vidět všechny ovládací prvky, tj. i podformulář.) V zobrazení rozložení prohlédneme jednotlivé věty formuláře P56c Faktury. Kromě dat o faktuře jsou v podformuláři zobrazeny věty příslušné faktury. Návaznost podformuláře a hlavního formuláře zajišťují vlastnosti podformuláře Řídící propojovací pole (z hlavního formuláře) a Dceřiné propojovací pole (z podformuláře), které mají shodnou hodnotu Faktura. Pokud by zde hodnota nebyla vyplněna, zobrazovaly by se v podformuláři všechny věty, tj. nejen věty související s větou v hlavním formuláři. Číslo faktury v podformuláři je zbytečné, neboť v podformuláři jsou zobrazeny jen licence s číslem faktury uvedeným v hlavním formuláři. Při vyplňování nových licencí by se číslo faktury po zápisu libovolného pole podformuláře automaticky vyplnilo. Pole Faktura 134 Podformulář bude nadepsán ve svém záhlaví včetně loga. Toto záhlaví se nebude zobrazovat, pokud podformulář nebude obsahovat žádnou větu k větě hlavního formuláře. Popisek by se vypisoval vždy.

121 Kapitola 5: Formuláře 121 odstraníme z podformuláře včetně jeho popisku. Vzhledem k tomu, že ovládací prvky jsou v tabulkovém rozložení, automaticky se posunou zbývající ovládací prvky doleva. Ručně však musíme posunout celkové tržby včetně jejich popisku v zápatí podformuláře. 135 Výsledný stav formuláře je uveden v obr OBR. 5-13: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P56C FAKTURY P56e Faktury P56f Podniky Fakturu nemůžeme psát pro podnik, který není v tabulce Podniky. Proto jsme v předchozím formuláři vybírali IČ podniku ze seznamu. Při psaní nové faktury chceme mít přehled o případných dřívějších prodejích stejnému podniku. Také faktury chceme zadávat formou podformuláře v hlavním formuláři dat o podnicích. Access umožňuje dvojí úroveň vnoření formulářů. Nejprve stávající formulář P56c Faktury zkopírujeme do formuláře P56e Faktury, který se stane součástí hlavního formuláře a který bude později modifikován (vynecháním pole IČ, jímž bude propojen s hlavním formulářem). Připravíme formulář P56f Podniky s vybranými základními poli z tabulky Podniky. Nechceme do formuláře uvést všechna pole, proto použijeme Průvodce formulářem: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Podniky. V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka Více formulářů a v nabídce vybereme 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). Klepneme do tlačítka Další. OBR. 5-14: PRŮVODCE FORMULÁŘEM - PRVNÍ OKNO 135 Ovládací prvky podformuláře lze označit i při práci s hlavním formulářem. Prvním klepnutím označíme podformulář (a vidíme jeho vlastnosti), druhým klepnutím vybereme ovládací prvek podformuláře.

122 Kapitola 5: Formuláře 122 Ve druhém okně Průvodce vybereme rozložení Tabulka a klepneme do tlačítka Další. Ve třetím okně Průvodce vybereme styl Access 2007 a klepneme do tlačítka Další. Ve čtvrtém okně Průvodce zadáme název formuláře P56f Podniky a ponecháme vybránu volbu Otevřít formulář pro zobrazení informací. Klepneme do tlačítka Dokončit. Vytvoří se formulář, který se otevře ve formulářovém zobrazení. V zobrazení rozložení provedeme úpravy formuláře: Změníme název formuláře v záhlaví na Podniky. Zmenšíme výšku ovládacího prvku popisku s názvem tak, aby nepřekrývala nadpisy sloupců tabulky. Změníme nadpis sloupce Název_podniku na Název podniku. Upravíme šířky sloupců tabulky. Klepnutím do voliče rozložení v levém horním rohu označíme všechny jeho ovládací prvky, v kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvku klepneme do tlačítka 136 Výplň ovládacího prvku a vybereme volbu ŽÁDNÁ. Označíme současně vázané ovládací prvky IČ, Název_podniku a Obec a do datové vlastnosti Uzamknout zadáme hodnotu ano, neboť formulář nebudeme používat k editaci dat o podnicích či vkládání nových podniků, ale pouze pro vyhledávání faktur k jednotlivým podnikům. Upravíme také jejich formátovou vlastnost Barva pozadí na hodnotu Formulář pozadí. V návrhovém zobrazení změníme formátovou vlastnost formuláře Výchozí zobrazení na hodnotu Samostatný formulář. V návrhovém zobrazení zvýšíme výšku těla na 8 cm a tažením vložíme do těla asi 1 cm pod pole IČ podformulář P56e Faktury. Odstraníme popisek podformuláře P56e Faktury a posuneme nahoru asi 0,2 cm pod ovládací prvek IČ podformulář. Abychom mohli snadno hledat podnik, jehož faktury a licence chceme zobrazit, upravíme ještě výchozí zobrazení formuláře P56f Podniky. V návrhovém zobrazení upravíme vlastnosti: formátová vlastnost Výchozí zobrazení: Rozdělit formulář. formátová vlastnost Orientace rozděleného formuláře: Datový list napravo. Závěrem vhodně upravíme šířku formulářů a objektů podformulářů 137. Výsledný stav formuláře je uveden v obr OBR. 5-15: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P45F PODNIKY 136 Ve vlastnosti vícenásobného výběru rozložení můžeme upravovat také vlastnosti Šířka okraje (standardně vlasová čára) a Barva okraje (standardně barva Ohraničení a mřížka, tj. modrá). 137 Podformulář můžeme v návrhovém zobrazení zobrazit v samostatném novém okně klepnutím do tlačítka Podformulář v novém okně ve skupině Nástroje v kartě NÁVRH.

123 Kapitola 5: Formuláře 123 Zvláště důležité je správně se zorientovat v navigačních tlačítkách jednotlivých formulářů: Spodní navigační tlačítka slouží k pohybu mezi jednotlivými podniky, tj. v tabulce Podniky. Navigační tlačítka v předposledním řádku slouží k pohybu mezi fakturami, tj. v tabulce Faktury (přesněji ve větách tabulky Faktury souvisejících se zobrazenou větou tabulky Podniky). Navigační tlačítka ve třetím řádku zespodu slouží k pohybu mezi licencemi zobrazené faktury, tj. v tabulce Licence (přesněji ve větách tabulky Licence souvisejících se zobrazenou větou tabulky Faktury). Pro úplnost ještě dodejme: Podformulář lze vložit do formuláře v návrhovém zobrazení také klepnutím do tlačítka Podformulář či podsestava ve skupině Ovládací prvky v kartě NÁVRH a upřesněním vlastností podformuláře v průvodci podformulářem či přímo ve vlastnostech (především Zdrojový objekt, Dceřiné a Řídící propojovací pole). Podformulář vloží za vhodných podmínek do formuláře Access sám při prvotní definici formuláře. Podformulář je v tomto případě však formou tabulky, což lze upravit výběrem vhodného podformuláře do datové vlastnosti Zdrojový objekt v návrhovém zobrazení. Podformulář může být s formulářem propojen i skupinou více polí. Potom jsou jednotlivá pole ve vlastnosti Dceřiné a Řídící propojovací pole oddělena středníkem. Názvy polí nemusíme vypisovat ručně, lze je vybrat ze seznamu při využití tvůrce, tj. klepnutím do tlačítka na konci řádku Řídící propojovací pole nebo Dceřinné propojovací pole. Graf P57 Podklady grafů 5.7 Graf Jedním z ovládacích prvků formuláře může být graf. Graf může být celkový bez ohledu na data ve formuláři nebo může mít charakter podformuláře a zobrazovat jen data ve větách souvisejících s větou v (hlavním) formuláři. Vytvoříme postupně tři grafy: graf celkových tržeb firmy, graf tržeb vybraného zaměstnance dle měsíců, graf tržeb fakturovaných vybranému podniku odběrateli. Nejdříve připravíme podkladový dotaz pro všechny tři grafy. V dotazu upřesňujeme ke každé faktuře měsíc prodeje, značku programu a cenu programu (viz obr. 5-16). OBR. 5-16: DOTAZ P57 PODKLADY GRAFŮ 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ŘIT ve skupině Formuláře klepneme do tlačítka Prázdný formulář. Otevře se prázdný formulář v zobrazení rozložení. Přejdeme do návrhového zobrazení. V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Vložit graf. Graf vymezíme po celé ploše těla formuláře. Dále nás vede Průvodce grafem. V prvním okně vybereme dotaz P57 Poklady grafů, který použijeme pro vytvoření grafu. V druhém okně vybereme pole, která chceme zobrazit v grafu: Program, Měsíc, Cena. V třetím okně ponecháme vybraný první typ grafu sloupcový.

124 Kapitola 5: Formuláře 124 Ve čtvrtém okně upřesníme umístění polí v grafu: Tažením mimo graf odstraníme pole Součet-Měsíc. Na ose x (oblast Osa) ponecháme Program. Do oblasti Data přetáhneme Cenu. Změní se na Součet-Cena. Do oblasti Série přetáhneme Měsíc. Tlačítkem Náhled grafu můžeme zobrazit ukázkový náhled. V pátém okně upřesníme nadpis grafu Celkové tržby a ponecháme zobrazenu legendu. Graf v návrhovém zobrazení obsahuje jen ilustrativní data (za Východ, Západ, Sever v čtvrtletí, která nejsou čerpána z podkladového dotazu). Zobrazíme graf v zobrazení rozložení a mírně zvětšíme, čímž se graf zformátuje. Ve formulářovém zobrazení poklepáme na graf. Graf se zobrazí v aplikaci Microsoft Graph, v níž upravíme typ grafu: Z menu zadáme příkaz GRAF, TYP GRAFU. V dialogovém okně Typ grafu vybereme v rámci typu grafu Sloupcový první podtyp grafu Skládaný sloupcový a klepneme do tlačítka OK. Klepnutím do bílé části okna Accessu mimo graf ukončíme práci s aplikací Microsoft Graph. Do formátové vlastnosti Styl okraje grafu zadáme hodnotu průhledný. Výsledný formulář uložíme pod názvem P57a Graf Celkové tržby (viz obr. 5-17). OBR. 5-17: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P57A GRAF CELKOVÉ TRŽBY P57b Graf Personal Druhý formulář bude obsahovat graf zobrazující data vztahující se pouze k zobrazenému zaměstnanci. Podkladový dotaz je připraven pro graf, nikoliv pro formulář. Nový formulář připravíme z tabulky Personal: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Personal. V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka Více formulářů a v nabídce vybereme PRŮVODCE FORMULÁŘEM: V prvním okně Průvodce vybereme pouze pole . V druhém okně ponecháme rozložení Sloupce. V třetím okně ponecháme styl Access Ve čtvrtém okně nazveme formulář P57b Graf Personal. V návrhovém zobrazení potlačíme zobrazení sekce Záhlaví formuláře klepnutím do tlačítka Záhlaví a zápatí formuláře ve skupině Zobrazit či skrýt v kartě USPOŘÁDAT. Odsouhlasíme odstranění sekce. Jediné pole v těle posuneme do levého horního rohu. Zúžíme popisek . Upravíme vlastnosti ovládacího prvku E_mail: formátová vlastnost Styl okraje: průhledný datová vlastnost Uzamknout: ano V návrhovém zobrazení zvětšíme formulář na 10 x 10 cm a vložíme do něj graf:

125 Kapitola 5: Formuláře 125 V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Vložit graf. Pod polem E_mail vymezíme v celé ploše formuláře graf. V prvním okně vybereme dotaz P57 Poklady grafů, který použijeme pro vytvoření grafu. V druhém okně vybereme pole, která chceme zobrazit v grafu: Program, Měsíc, Cena. V třetím okně ponecháme vybraný první typ grafu sloupcový. Ve čtvrtém okně upřesníme umístění polí v grafu: Tažením mimo graf odstraníme pole Součet-Měsíc. Na ose x (oblast Osa) ponecháme Program. Do oblasti Data přetáhneme Cenu. Změní se na Součet-Cena. Do oblasti Série přetáhneme Měsíc. Tlačítkem Náhled grafu můžeme zobrazit ukázkový náhled. V pátém okně jsem na rozdíl od předchozího grafu požádáni o výběr polí spojujících větu a graf, neboť pro formulář je definován podkladový dotaz. Ponecháme jako Formulář pole i jako Pole grafu pole E_mail. Později bude vyplněno do vlastností Řídící a Dceřiné propojovací pole. V šestém okně upřesníme nadpis grafu Tržby zaměstnance a ponecháme zobrazenu legendu. Graf v návrhovém zobrazení obsahuje jen ilustrativní data (za Východ, Západ, Sever v čtvrtletí, která nejsou čerpána z podkladového dotazu). Zobrazíme graf v zobrazení rozložení a mírně zvětšíme, čímž se graf zformátuje. Ve formulářovém zobrazení poklepáme na graf. Graf se zobrazí v aplikaci Microsoft Graph, v níž upravíme typ grafu: Z menu zadáme příkaz GRAF, TYP GRAFU. V dialogovém okně Typ grafu vybereme v rámci typu grafu Sloupcový první podtyp grafu Skládaný sloupcový a klepneme do tlačítka OK. Klepnutím do bílé části okna Accessu mimo graf ukončíme práci s aplikací Microsoft Graph. Do formátové vlastnosti Styl okraje grafu zadáme hodnotu průhledný. V datové vlastnosti Vstupní maska pole E_mail smažeme obsah. Výsledný formulář uložíme pod názvem P57b Graf Personal. V grafu jsou analyzovány pouze tržby za zaměstnance zobrazeného ve formuláři (viz obr. 5-18). Někteří zaměstnanci nemají právo fakturovat, nevykazují proto tržby, nemají zobrazen graf. Propojení funguje díky správnému naplnění datových vlastností grafu Řídící a Dceřiné propojovací pole hodnotou E_mail. OBR. 5-18: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P57B GRAF PERSONAL V návrhovém zobrazení změníme ještě vlastnosti formuláře: formátová vlastnost Výchozí zobrazení: Rozdělit formulář

126 Kapitola 5: Formuláře 126 P57c Graf Podniky formátová vlastnost Orientace rozděleného formuláře: Datový list napravo Do formuláře doplníme pole Oprávnění fakturovat. Datový list v pravé části rozděleného formuláře usnadňuje výběr zaměstnance. Umožňuje také filtrování zobrazovaných zaměstnanců, např. můžeme zobrazit jen zaměstnance s oprávněním fakturovat. Obdobně připravíme formulář s grafem pro podniky s následujícími rozdíly: Formulář vychází z tabulky Podniky, nikoliv z tabulky Personal. Zobrazuje IČ a název podniku. Ve formuláři odstraníme skládané rozložení a uspořádáme prvky do jednoho řádku. Do grafu jsou umístěny pouze Program (Osa) a Cena (Data). Polem spojujícím větu a graf je pole IČ. Graf je nadepsán Tržby za prodeje podniku. Není zobrazena legenda. Formulář je uložen pod názvem P57c Graf Podniky. Výsledný stav formuláře je v obr OBR. 5-19: FORMULÁŘOVÉ ZOBRAZENÍ FORMULÁŘE P57C GRAF - PODNIKY P58e Karta Personal 5.8 Formulář s kartami O zaměstnancích máme k dispozici velké množství informací, které zobrazujeme v několika formulářích. Vytvoříme nyní formulář s komplexními informacemi o jednotlivých zaměstnancích. Access umožňuje rozložení většího množství polí do více karet. Karty jsou obdobou podformulářů, mohou se však ve formuláři překrývat. Využijeme stávající formuláře a vložíme je jako podformuláře na karty komplexního formuláře. Na kartách budeme chtít zobrazovat jen věty podformulářů vztahující se k zaměstnanci zobrazenému v komplexním formuláři. Access nazývá objekt se záložkami karta, každá záložka zastupuje jednu stránku. Formulář bude obsahovat čtyři karty s podformuláři, které budeme mírně modifikovat, a proto si nejprve připravíme jejich kopie: P52a Personal Identifikace zkopírujeme do formuláře P58a Personal Identifikace, P56c Faktury zkopírujeme do formuláře P58b Faktury. P57b Graf Personal zkopírujeme do formuláře P58c Graf Personal. P54 Cesty zkopírujeme do formuláře P58d Cesty. Provedeme následující úpravy ve formulářích: P58a Personal Identifikace: Odstraníme pole E_mail, neboť bude uvedeno v hlavním formuláři. Ostatní ovládací prvky v levé části přesuneme v těle nahoru. Zmenšíme výšku těla. P58b Faktury: Odstraníme pole E_mail.

127 Kapitola 5: Formuláře 127 Karta Vytvoření a přejmenování stránky Odstranění stránky Pořadí stránek P58c Graf Personal: Odstraníme pole E_mail a Oprávnění. Graf posuneme nahoru. Zmenšíme výšku těla. Do formátové vlastnosti formuláře Výchozí zobrazení zadáme hodnotu Samostatný formulář. P58d Cesty: Modifikujeme zdroj záznamů, kterým bude dotaz využívající tabulky Cesty a Výjezdy, výsledkem dotazu budou všechna pole z tabulky Cesty a pole E_mail z tabulky Výjezdy. Pole E_mail v podformuláři neumístíme. Vytvoříme hlavní formulář, který bude obsahovat pouze pole E_mail a karty podformulářů. Připravíme kopii formuláře P57b Graf Personal pod názvem P58e Karta Personal. Odstraníme pole Oprávnění a graf. Do formuláře nachystáme objekt karta: V návrhovém zobrazení klepneme v kartě NÁVRH ve skupině Ovládací prvky do tlačítka Karta. Kartu vymezíme v těle formuláře pod polem E_mail. Pravý dolní roh bude na pozici 15;12. Kartu bude možné později označit klepnutím napravo od poslední záložky. Klepnutím do některé ze záložek bude možné označit dílčí stránku karty. V kartě jsou přichystány dvě stránky. Postupně klepneme na jejich záložky a upravíme jinou vlastnost Název na hodnotu Identifikace pro první stránku a Faktury pro druhou stránku 138. Do karty chceme vložit další dvě stránky. Označíme kartu či některou stránku a v kartě NÁVRH klepneme ve skupině Ovládací prvky do tlačítka Vložit stránku. Takto vložíme dvě stránky a nové stránky přejmenujeme na Graf prodejů a Cesty. Pro úplnost uveďme další možné operace se stránkami. Klepnutím pravým tlačítkem do záložky stránky zobrazíme místní nabídku, v níž můžeme: příkazem ODSTRANIT STRÁNKU označenou stránku odstranit, příkazem POŘADÍ STRÁNEK zobrazit dialogové okno, v němž tlačítky Přesunout nahoru a Přesunout dolů můžeme upravit pořadí stránek. Na stránky umístíme podformuláře (viz obr. 5-20): OBR. 5-20: STRÁNKA CESTY FORMULÁŘE P58E KARTA - PERSONAL V návrhovém zobrazení klepneme na záložku první stránky Identifikace. Nyní bychom mohli umisťovat do stránky karty nové ovládací prvky. Z navigačního podokna přesuneme do levého horního rohu černé části stránky 139 Identifikace formulář P58a Personal Identifikace. Pokud je podformulář vyšší či širší, automaticky se změní velikost stránky (v našem případě její výška i šířka). 138 Pokud bychom vyplnili formátovou vlastnost Titulek, bude titulek použit pro text záložky stránky. Pokud je vlastnost Titulek prázdná, je pro text záložky použit Název. 139 Pokud bychom objekt neumístili do černé části, nebyl by součástí stránky karty, byl by však součástí přímo celého formuláře a překrýval by objekt karty.

128 Kapitola 5: Formuláře 128 P58i Karta Podniky Odstraníme popisek podformuláře, posuneme podformulář o ušetřené místo nahoru a zmenšíme výšku karty. Obdobně umístíme na další stránky další podformuláře. 140 Podformuláře vkládáme do levého horního rohu stránek. Podformulář je propojen s hlavním formulářem polem E_mail. Pro podformulář na stránce Graf prodejů musíme upřesnit vlastnost Řídící a Dceřiné propojovací pole na hodnotu E_mail. Obdobně připravíme komplexní formulář o podnicích, nejprve podformuláře: P53 Podniky Identifikace zkopírujeme do formuláře P58f Podniky Identifikace, P56c Faktury zkopírujeme do formuláře P58g Faktury. P57c Graf Podniky zkopírujeme do formuláře P58h Graf Podniky. Ve všech třech nově vytvořených formulářích odstraníme pole IČ a Název_podniku neboť budou uvedena v hlavním formuláři. Hlavní formulář P58i Karta Podniky bude vycházet z kopie formuláře P57c Graf Podniky. Připravíme kartu se třemi stránkami Identifikace, Prodeje, Graf prodejů. Analogicky jako v případě formuláře P58e Personal Karta na jednotlivé stránky kopírujeme upravené podformuláře. Pro úplnost dodejme, že ve formulářích lze použít kontingenční tabulku a graf obdobně jako v tabulkách a dotazech. Shrnutí 1. Formulář usnadňuje uživateli zadávání, úpravu a zobrazování dat z tabulky či dotazu. 2. Samostatný formulář na rozdíl od datového listu zobrazuje pouze data jediné věty. 3. V rozděleném formuláři je zobrazen kromě formuláře datový list tabulky či dotazu. 4. Nekonečný formulář zobrazuje více vět, jejich počet je závislý na velikosti okna formuláře. Věta v nekonečném formuláři je obvykle uspořádána v malém počtu řádků. 5. Formulář navrhujeme v zobrazení rozložení nebo v návrhovém zobrazení. Používání formuláře probíhá ve formulářovém zobrazení. 6. Formulář se skládá z ovládacích prvků, z nichž některé jsou vázány s poli v podkladové tabulce či podkladovém dotazu. 7. Formulář se skládá ze sekcí, především z těla, záhlaví a zápatí. Formulář jako celek, jednotlivé sekce i jednotlivé ovládací prvky mají řadu vlastností. 8. Pro výchozí návrh formuláře můžeme použít Accessem vytvořený samostatný či nekonečný formulář nebo využít průvodce formulářem nebo můžeme formulář vytvořit sami. 9. Pole umisťujeme do formuláře ze seznamu polí. Pokud je v kartě Vyhledávání návrhu tabulky vhodně definován zobrazovaný ovládací prvek, promítne se typ ovládacího prvku i do formuláře. Pole můžeme tvořit také z karty NÁVRH, takto vytvořená pole musíme potom vázat s podkladovou tabulkou či dotazem prostřednictvím vlastnosti Zdroj ovládacího prvku. 10. Pole, pro něž nepřipouštíme editaci, je vhodné zamknout a barevně odlišit jejich pozadí. 11. Ovládací prvky mají řadu vlastností. V okně vlastností můžeme zobrazit všechny vlastnosti nebo vybranou skupinu vlastností. Každá skupina má v okně vlastností svou záložku. 12. Vázaná pole jsou doprovázena popisky. Popisky se přesouvají ve formuláři se svázanými poli, můžeme je také přesouvat izolovaně (tažením za úchyt v levém horním rohu). Můžeme měnit text popisků, můžeme je odstraňovat, můžeme vytvářet popisky bez polí. 13. Ovládací prvky mohou být uspořádána formou tabulkového nebo skládaného rozložení. 14. Ve formuláři mohou být i pole definovaná výrazy. Tvorbu výrazů usnadňuje Tvůrce výrazů. 15. Druh ovládacího prvku můžeme měnit příkazem FORMÁT, ZMĚNIT NA. 16. Ve formuláři je možné uvádět souhrny (nejčastěji součty v sekci Zápatí). 17. Formulář může obsahovat podformulář, v němž jsou zobrazovány související věty z jiné datové sady. 18. Do formuláře lze vložit graf, který bývá proměnlivý dle hodnot konkrétní věty. 19. Komplexní pohled na data nabízí ovládací prvek karta, který se skládá ze stránek. Stránky můžeme přejmenovávat a doplňovat. Na stránce lze zobrazit např. podformulář či graf. 140 Po odstranění popisku prvního podformuláře je vhodné nastavení vlastností pole podformuláře definovat jako výchozí klepnutím do tlačítka Výchozí nastavení prvku ve skupině Ovládací prvky v kartě NÁVRH, aby se ostatní podformuláře vkládaly již bez popisku.

129 Kapitola 6: Sestavy Sestavy Význam sestav Druhy sestav Zobrazení sestavy Struktura sestavy 6.1 Druhy sestav Sestavy slouží k prezentaci dat, zejména k tisku dat na tiskárně. Tisknout lze i formuláře 141, sestavy však nabízejí širší možnosti, poskytují větší volnost v prezentaci sumárních informací. Návrh sestavy je podobný návrhu formuláře. Také sestava se skládá z ovládacích prvků, které lze parametrizovat pomocí vlastností a které jsou umístěny do sekcí sestavy. V porovnání s formuláři mají sestavy jediný druh, který je analogií nekonečného formuláře. Tisknou se tedy všechny věty. Neexistuje analogie samostatného a rozděleného formuláře. V sestavě se tisknou vždy všechny věty podkladové tabulky či dotazu. Výběr vět můžeme provádět filtrováním. Věty v sestavě lze řadit či seskupovat. Skupina může mít své záhlaví a zápatí, skupiny mohou být do sebe vnořeny v několika úrovních. Do sestavy lze doplňovat součty za celou sestavu či za jednotlivé skupiny. Sestavu lze zobrazit několika zobrazeními 142 : Zobrazení sestavy: Sestava je zobrazena tak, jak bude vytištěna: Na rozdíl od zobrazení rozložení a návrhového zobrazení nelze provádět změny návrhu, např. rozšiřovat pole. Na rozdíl od náhledu lze definovat filtr a lze označovat tažením věty např. za účelem kopírování do schránky. Náhled: Sestava je zobrazena tak, jak bude vytištěna. Zobrazí se kontextová karta NÁHLED, v níž je možné: nastavit lupu zobrazení náhledu, nastavit velikost a orientaci stránky, exportovat data, např. do Wordu, tisknout data na tiskárně. Práci s náhledem je nutné ukončit klepnutím do tlačítka Zavřít náhled. Zobrazení rozložení: Zobrazení, v němž lze provádět řadu změn návrhu sestavy. V zobrazení rozložení jsou při úpravách sestavy zobrazena data, zobrazení je tak vhodné např. při nastavení velikosti polí. Návrhové zobrazení: Zobrazení, v němž nejsou zobrazena data. Lze v něm provádět veškeré změny návrhu, mj.: Jsou zobrazeny sekce (oddíly) Záhlaví sestavy, Záhlaví stránky, Tělo (Podrobnosti), Zápatí stránky, Zápatí sestavy. Lze měnit jejich velikost. Lze měnit zásadní vlastnosti sestavy, např. Výchozí zobrazení. Výchozím zobrazením může být Zobrazení sestavy nebo Náhled tisku. Lze přidat do sestavy další ovládací prvky, např. popisky, obrázky, čáry. Lze upravit zdroje ovládacích prvků. Sestava se skládá z několika sekcí: Záhlaví sestavy je vytištěno na začátku sestavy. V případě použití ovládacího prvku obsahujícího funkci Sum je vypočítán součet za celou sestavu. Záhlaví stránky je vytištěno na začátku každé stránky. Na první stránce je vytištěno až za záhlavím sestavy. Záhlaví skupiny je vytištěno na začátku skupiny. Může obsahovat např. pole, dle nějž sestavu seskupujeme. Takové pole potom již nemusíme uvádět do těla sestavy, můžeme tak ušetřit sloupec tabulky. Sestavu zaměstnanců můžeme např. seskupit dle pole Oddělení a pole Oddělení (či lépe Oddělení_v) tisknout do záhlaví skupiny. V případě použití ovládacího prvku obsahujícího funkci Sum je vypočítán součet za skupinu. Tělo (Podrobnosti) 143 obsahuje prvky vztahující se k jednotlivým větám. 141 Ilustrace tisku formuláře je zařazena v kap. 8. Tisknout lze také přímo tabulky. V navigačním podokně klepnutím označíme tabulku, klepneme do tlačítka Office a zadáme příkaz TISK, NÁHLED. Tabulky se tisknou ve formě ohraničených buněk, každá věta tvoří jeden řádek. Sloupce jsou nazvány dle názvů polí. Obdobně lze tisknout výsledky dotazů. 142 Ve vlastnostech sestavy lze zamezit nabízení některých zobrazení (zobrazení sestavy, zobrazení rozložení).

130 Kapitola 6: Sestavy 130 Ovládací prvky Tlačítka tvorby sestavy P62 Personal Identifikace Zápatí skupiny je vytištěno na konci skupiny. Může obsahovat např. volný prostor k oddělení skupin. Zápatí stránky je vytištěno na konci každé stránky. Zápatí sestavy je vytištěno na konci sestavy před zápatím stránky 144. Ovládací prvky jsou objekty použité v sestavě. Zobrazují data z podkladové tabulky či dotazu a doplňkové informace (např. popisky dat a obrázky). Dle návaznosti na podkladová data existují obdobně jako ve formulářích různé druhy ovládacích prvků: vázané: slouží k tisku hodnot, vypočítané: tisknou výsledek výrazu, nevázané: zvyšují přehlednost sestavy, speciální prvky Číslo stránky a Datum a čas se používají především v sestavách. Tlačítka pro tvorbu sestavy jsou soustředěna v kartě VYTVOŘIT ve skupině 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ě. 145 Z dat je vytvořena sestava včetně záhlaví sestavy (v němž je uveden datový zdroj), záhlaví stránky, zápatí stránky (číslo stránky) a zápatí sestavy (počet vět). Název sestavy je převzat z názvu datového zdroje. 146 Ovládací prvky jsou v tzv. tabulkovém rozložení. Tažením za kraj ovládacího prvku můžeme tak snadno měnit jeho umístění ve sloupcích. Sestava se zobrazí v zobrazení rozložení. Štítky: Jako podklad je využit objekt označený v navigačním podokně. Připraví se sestava určená pro tisk štítků např. s adresami odběratelů. V průvodci štítky vybereme jejich rozměr, formát písma, pole do jednotlivých řádků štítku, kritéria řazení vět vypisovaných do štítků, název sestavy. Závěrem se rozhodneme, zda sestavu zobrazíme v náhledu či návrhovém zobrazení. Prázdná sestava: Vytvoří se nová prázdná sestava, která nemá definován datový zdroj. Sestava se zobrazí v zobrazení rozložení. Průvodce sestavou: V průvodci vybereme podkladovou tabulku či dotaz, pole sestavy, úroveň seskupení polí, řazení, způsob rozložení ovládacích prvků v sestavě a styl formátování sestavy. Závěrem se rozhodneme, zda sestavu zobrazíme v náhledu či návrhovém zobrazení. Návrh sestavy: Vytvoří se nová prázdná sestava, která nemá definován datový zdroj. Sestava se zobrazí v návrhovém zobrazení. V dalším výkladu (v kap ) se zaměříme na přípravu evidenčních listů zaměstnanců pro ředitele, na nichž chceme vypsat základní údaje o zaměstnanci i o jeho aktivitách ve firmě, tj. prodejích programů a služebních cestách. Evidenční list bude obsahovat pro každého zaměstnance: základní informace o zaměstnanci (kap. 6.2): tituly, jméno, příjmení, pohlaví, kancelář, telefon, oddělení, charakteristiku, úvazek, webovou adresu, informace o oprávnění fakturovat, informace o absolvovaných služebních cestách (kap. 6.3): číslo cesty, den zahájení a ukončení cesty, místo, informace o licencích, pro které zaměstnanec vyhotovil faktury (kap. 6.4): číslo faktury, datum, odběratel, značka programu, sériové číslo, cena. 6.2 Sestava s výrazy Začneme sestavou základních informací o zaměstnanci. Část sestavy je uvedena v obr Každý zaměstnanec je nadepsán svým jménem a příjmením s tituly tučně větším písmem. Dále jsou obdobně jako ve formuláři P52 Personal Identifikace vypsána o zaměstnanci známá pole, přičemž: 143 Terminologie Accessu zde bohužel není jednoznačná, obdobně jako v pojmu sekce a oddíl. 144 V návrhovém zobrazení je zápatí sestavy uvedeno pod zápatím stránky. V náhledu a při tisku sestavy se zápatí sestavy tiskne nad zápatím stránky za zápatím poslední skupiny nebo tělem poslední věty na poslední stránce. 145 V případě, že je označen formulář či sestava je jako podklad převzat jejich zdroj záznamů. V případě, že je označeno makro nebo modul, není většina tlačítek skupiny Sestavy dostupná. 146 Tabulky a dotazy nesmí mít shodné názvy. Sestava však může mít název totožný s názvem tabulky či dotazu. Pokud by již sestava se stejným názvem existovala, byla by k názvu doplněna číslice.

131 Kapitola 6: Sestavy 131 OBR. 6-1: SESTAVA P62 PERSONAL IDENTIFIKACE Výraz v sestavě Pohlaví je vysvětleno slovně. Oddělení je vysvětleno slovně s využitím vysvětlivky z tabulky Oddělení. Do řádku Web je vypsána webová adresa (druhý parametr pole Web). Pole Oprávnění je vypisováno jen pro hodnotu ano a je nahrazeno textem. Fotografie zaměstnance je umístěna napravo od ostatních polí. Jednotliví zaměstnanci jsou od sebe odděleni vodorovnou čarou. Sestavy nemají druh obdobný samostatnému formuláři. Nemůžeme proto vytvořit základ sestavy tlačítkem Sestava, které by vytvořilo sestavu v tabulkovém rozložení. Navrhneme sestavu sami: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Personal. V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Návrh sestavy. Vytvoří se sestava bez zdroje záznamů se sekcemi Záhlaví stránky, Tělo, Zápatí stránky. Klepnutím do tlačítka Záhlaví a zápatí stránky ve skupině Zobrazit či skrýt v kartě USPOŘÁDAT potlačíme zobrazení záhlaví a zápatí stránky. Klepnutí do tlačítka Přidat existující pole ve skupině Nástroje v kartě NÁVRH zobrazíme okno Seznam polí, v němž zobrazíme všechny tabulky. Rozbalíme seznam polí tabulky Personal a poklepeme na první pole E_mail. Pole E_mail se umístilo včetně popisku do těla. Tažením za okraj popisku (mimo čtvercové úchyty) přesuneme pole do levého horního rohu na pozici asi 0,2;0,2. Na začátek těla umístíme celé jméno zaměstnance včetně titulů: Klepneme do vázaného ovládacího prvku E_mail a založíme skládané rozložení klepnutím do tlačítka Skládané ve skupině Rozložení ovládacího prvku v kartě USPOŘÁDAT. V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Textové pole. Tažením vymezíme textové pole pod polem E_mail. Tažením přesuneme nové pole do skládaného rozložení. Upravíme popisek nového pole na Celé jméno. Automaticky se rozšíří oba popisky. Do datové vlastnosti Zdroj ovládacího prvku nového pole zapíšeme výraz: =Trim([Titul1] & " " & [Jméno] & " " & [Příjmení] & [Titul2]) 147 Do zdroje jsme uvedli výraz, v němž spojíme operátorem & jednotlivé části celého jména. Části od sebe oddělujeme mezerou s výjimkou případného titulu za jménem, v němž předpokládáme, že je uvedena na začátku oddělující čárka (např., Ph.D.). Nadbytečnou mezeru na začátku pro zaměstnance bez titulu odstraní funkce Trim, která utrhne mezery na začátku a konci textového argumentu Výraz můžeme zapsat pomocí Tvůrce výrazu. Nemusíme zapisovat hranaté závorky, které doplní Access. Musíme však zapisovat uvozovky. 148 V případě, že by u některých zaměstnanců s titulem chybělo křestní jméno, museli bychom výraz upravit: =Trim(Trim([Titul1] & " " & [Jméno]) & " " & [Příjmení]) & [Titul2]

132 Kapitola 6: Sestavy 132 Funkce HyperLinkPart Formát písma Klepnutím do tlačítka Zobrazení ze skupiny Zobrazení v kartě NÁVRH přejdeme do zobrazení sestavy. Access nás vyzve k zadání parametru Titul1, neboť v podkladovém dotazu sestavy není pole Titul1. Klepnutím do tlačítka Storno se vrátíme zpět do návrhového zobrazení. Ze Seznamu polí přidáme pod rozložení pole Titul1, Jméno, Příjmení a Titul2. Přidají se tak do zdrojové dotazu. Označíme je a odstraníme klávesou Delete ze sestavy. Ve zdrojovém dotazu zůstala pole zachována. Nyní již můžeme přejít do zobrazení sestavy. Po prohlédnutí se vrátíme do návrhového zobrazení. Nové pole nazveme v jiné vlastnosti Název jako Celé_jméno. Pole Celé_jméno přesuneme před pole E_mail. Obdobně vložíme do sestavy další pole: Ze Seznamu polí přesuneme do skládaného rozložení pole Pohlaví, Místnost, Telefon, Nadřízený, Charakteristika, Úvazek, Web, Oprávnění fakturovat. Klepnutím pravým tlačítkem a příkazem Změnit na změníme typ na textové pole pro pole Pohlaví, Místnost, Nadřízený a Úvazek. Z tabulky Oddělení přidáme do sestavy za Telefon pole Oddělení_v, jeho popisek změníme na Oddělení. Pro pole E_mail a Telefon smažeme obsah datové vlastnosti Inteligentní značky, aby nás nerušil fialový indikátor v pravém dolním rohu. 149 Pro pole Pohlaví chceme vypisovat vysvětlivku. Proto upravíme vlastnosti: jiná vlastnost Název: Pohlaví_v 150 datová vlastnost Zdroj ovládací prvku: =IIf([Pohlaví]="M";"muž";"žena") Pro pole Web chceme vypisovat druhou část pole adresy, proto upravíme vlastnosti: jiná vlastnost Název: Web_2 datová vlastnost Zdroj ovládací prvku: =HyperLinkPart(Web;2) formátová vlastnost Hypertextový odkaz: ne 151 Stav Oprávnění fakturovat budeme vypisovat formou věty: Zaškrtávací pole nemůžeme změnit na textové pole. Odstraníme proto pole Oprávnění. Vložíme textové pole: Klepneme do tlačítka Textové pole ve skupině Ovládací prvky v kartě NÁVRH. Vymezíme pole pod skládaným rozdělením. Přesuneme textové pole do skládaného rozdělení na konec. Změníme popisek nového pole na Oprávnění. Změníme vlastnosti dosud nevázaného nového textového pole: jiná vlastnost Název: Oprávnění_v datová vlastnost Zdroj ovládacího prvku: =IIf(Oprávnění;"Má oprávnění fakturovat.") Popisek chceme odstranit. Musíme nejdříve odebrat ovládací prvek Oprávnění_v z rozložení. Označíme je klepnutím a v kartě USPOŘÁDAT klepneme ve skupině Rozložení ovládacího prvku do tlačítka Odebrat. Klepnutí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. Obdobně odebereme z rozložení Celé_jméno. Odstraníme jeho popisek. Posuneme dolů zbývající rozložení. Tlačítkem Velikost písma ve skupině Písmo v kartě NÁVRH zvětšíme písmo v poli Celé_jméno na 14. Zvýšíme jeho velikost. Tlačítkem Tučné nebo kombinací kláves Ctrl B upravíme formát textu na tučný. Nadřízeného vypíšeme celým jménem s tituly, nikoliv pouze em: Nejdříve musíme upravit zdrojový dotaz v datové vlastnosti sestavy Zdroj záznamů: Zobrazíme dotaz klepnutím do tlačítka Tvůrce na konci řádku vlastnosti. 149 Indikátor inteligentní značky se zobrazuje pouze v zobrazení sestavy a v zobrazení rozložení. Netiskne se, ani nezobrazuje v zobrazení náhledu. 150 Nesmíme zapomenout změnit i vlastnost Název na hodnotu Pohlaví_v, aby ve výrazu nebyl použit stejný název, jako je název ovládacího prvku sestavy. (Ve výrazu může být totiž použit odkaz na název ovládacího prvku, který má při vyhodnocení přednost před stejným názvem pole z podkladové tabulky či dotazu. Pokud bychom název nezměnili, v sestavě by se vypisoval chybný výstup.) 151 Pokud bychom vlastnost Hypertextový odkaz neopravili, byl by hypertextový odkaz podtržený i v náhledu a při tisku. Byl by však citlivý v zobrazení sestavy.

133 Kapitola 6: Sestavy 133 Velikost těla sestavy Tlačítkem Zobrazit tabulku ve skupině Nastavení dotazu v kartě NÁVRH zobrazíme dialogové okno Zobrazit tabulku a v něm poklepeme na tabulku Personal. Dialogové okno zavřeme. Tažením pole E_mail z tabulky Personal_1 na pole Nadřízený v tabulce Personal propojíme tabulky Personal a Personal_1. Upravíme typ spojení na Zahrnout všechny z tabulky Personal pro případ, že by některý zaměstnanec neměl vyplněného nadřízeného. Poklepáním v tabulce Personal_1 v podokně Diagram vybereme Titul1, Jméno, Příjmení, Titul2. 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í. Klepnutím do tlačítka Zavřít ve skupině Zavřít v kartě NÁVRH ukončíme úpravu dotazu. Zkopírujeme obsah datové vlastnosti pole Zdroj ovládacího prvku pole Celé_jméno do schránky. Obsah schránky vložíme do datové vlastnosti Zdroj ovládacího prvku pole Nadřízený a vlastnost upravíme na výraz: =Trim([Titul1_nad] & " " & [Jméno_nad] & " " & [Příjmení_nad] & [Titul2_nad]) Upravíme jinou vlastnost Název upraveného výrazu na Nadřízený_celé_jméno. Zmenšíme velikost těla sestavy: Označíme klepnutím do voliče v levém horním rohu skládané rozdělení a klepneme do tlačítka Výplň ovládacího prvku ve skupině Rozložení ovládacího prvku v kartě USPOŘÁDAT. 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 klepneme do ovládacího prvku Celé_jméno, vyjme jej tak z označené skupiny. Rozbalíme tlačítko Velikost písma ve skupině Písmo v kartě NÁVRH a vybereme velikost 9. Tažením za prostřední dolní úchyt kteréhokoliv označeného ovládacího prvku zmenšíme velikost všech označených ovládacích prvků tak, aby byl text čitelný a zabíral co nejméně místa. Ovládací prvky v rozložení se přisunou k sobě. Ručně přisuneme Oprávnění. Tažením za úchyt ve středu pravého kraje kteréhokoliv popisku v rozložení zúžíme popisky rozložení na minimum tak, aby byl text Charakteristika celý zobrazen. Kombinací kláves Ctrl A označíme všechny ovládací prvky sestavy a přesuneme je tažením za Celé_jméno do levého horního rohu sestavy. Označíme libovolné textové pole rozložení a tažením za prostřední úchyt v pravém kraji zmenšíme šířku, tak abychom mohli zúžit sestavu na 8 cm. Pole Foto umístíme napravo od kratších položek: Přesuneme pole Nadřízený pod pole Úvazek. Označíme klepnutím do rohového voliče celé rozložení a tlačítkem Odebrat ze skupiny Rozložení ovládacího prvku v kartě USPOŘÁDAT odebereme z rozložení všechny ovládací prvky tak, abychom před některé z nich mohli umístit pole Foto. Ze seznamu polí přetáhneme pole Foto pod Oprávnění. Odstraníme popisek pole Foto. Tažením umístíme Foto tak, aby levý horní roh byl vedle pole Celé_jméno na vodorovné pozici asi 5,2 cm. Tažením za pravý dolní roh zvětšíme Foto tak, aby pravý dolní roh byl nad pole Nadřízený a svou šířkou dosahoval k vodorovné pozici 8 cm. Do formátové vlastnosti Styl okraje zadáme hodnotu průhledný. Pod pole Oprávnění umístíme vodorovnou čáru: Klepneme do tlačítka Čára ve skupině Ovládací prvky v kartě NÁVRH. Čáru nakreslíme v šířce 8 cm pod polem Oprávnění a případně ji tažením posuneme těsně pod Oprávnění. Označíme řádky E_mail až Oprávnění bez Foto a klepneme do tlačítka Stejné svislé mezery ve skupině Pozice v kartě USPOŘÁDAT. Sestavu tažením za dolní a pravý kraj zmenšíme na minimum.

134 Kapitola 6: Sestavy 134 Možnost zmenšení Náhled Sestavu prohlédneme v zobrazení sestavy. Vidíme, že pro zaměstnance bez oprávnění fakturovat zbývá po Oprávnění volný řádek, což upravíme: Do formátové vlastnosti Možnost zmenšení pole Oprávnění_v zadáme hodnotu ano. 152 Do formátové vlastnosti těla Možnost zmenšení zadáme hodnotu ano. Sestavu prohlédneme v náhledu. V kartě NÁVRH klepneme do spodní části tlačítka Zobrazení ve skupině Zobrazení a vybereme NÁHLED nebo klepneme do tlačítka Náhled ve stavovém řádku. Pás karet nyní nahradil stávající karty kontextovou kartou NÁHLED, která obsahuje několik skupin tlačítek 153 : Ve skupině Rozložení stránky: Tlačítkem Velikost můžeme vybrat velikost papíru, na nějž budeme sestavu tisknout. Tlačítky Na výšku a Na šířku můžeme vybrat orientaci tisku. 154 Tlačítkem Okraje rozbalujeme nabídku tří variant okrajů stránky. Standardně je nabízen minimální (úzký) okraj s ohledem na nemožnost tisku na úplné kraje papíru, který činí na všech okrajích papíru 0,64 cm. Vlastní okraje můžeme nastavit v kartě Možnosti tisku po klepnutí do tlačítka Vzhled stránky. Zaškrtávací pole Zobrazit kraje není v náhledu dostupné. 155 Po zaškrtnutí pole Tisknout jenom data se tisknou pouze vázané ovládací prvky, tj. netisknou se popisky a grafické prvky (např. čára) sestavy. Zaškrtnutí by bylo vhodné při tisku do předtištěných formulářů. Tlačítkem Sloupce zobrazíme kartu Sloupce dialogového okna Vzhled stránky. Můžeme nastavit tisk do více sloupců (viz sestava v kap. 6.4). Sestavu se zaměstnanci bychom vzhledem k její malé šířce mohli tisknout ve dvou sloupích. Ponecháme ji však v jednom sloupci. 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: Klepnutím do horní části tlačítka Lupa přiblížíme či vzdálíme náhled. Stejného výsledku dosáhneme klepnutím myší do okna náhledu. Klepnutím do dolní části tlačítka Lupa se zobrazí nabídka různých měřítek náhledu. Prvotně je náhled zobrazen v měřítku dle velikosti okna. Klepnutím do tlačítka Dvě stránky se zobrazí náhled dvou po sobě jdoucích stránek. Přechodem na další stránku v navigaci v dolní části náhledu potom přecházíme na další dvě stránky. Klepnutím do tlačítka Další stránky se zobrazí nabídka dalších násobků současně zobrazených stránek: čtyři, osm, dvanáct. Volbou počtu se vždy přizpůsobí měřítko. Klepnutím do tlačítka Jedna stránka se můžeme vrátit k zobrazení jediné stránky. Ve skupině Data: Tlačítka Aktualizovat vše, Excel, Seznam SharePoint nejsou v obecné skupině Data pro 156 sestavy aktivní. Klepnutím do tlačítka Word můžeme provést export sestavy do formátu rtf. V následujícím dialogovém okně upřesníme umístění a název souboru. Můžeme také zaškrtnout možnost otevření vytvořeného souboru po jeho exportu. Ve výsledném souboru nejsou uvedeny obrázky a grafika sestavy (čára). Uspořádání sestavy do tabulky zajišťují tabulátory. Výsledkem vstupní masky pole E_mail jsou mezery za hodnotou E_mailu. Klepnutím do tlačítka Text můžeme exportovat sestavu do textového souboru. Před exportem jsme vyzváni k upřesnění kódování textového souboru. Ponecháme výchozí kódování Windows. Uspořádání sestavy do tabulky zajišťují mezery. 152 Volný řádek se přesune v zobrazení sestavy za čáru mezi zaměstnanci, protože jsme nepovolili zmenšení těla sestavy. 153 Skupina Rozložení stránky je dostupná také v zobrazení rozložení či návrhovém zobrazení na kartě VZHLED STRÁNKY. 154 Parametry velikosti a orientace se ukládají se sestavou. Mohou být pro různé sestavy nastaveny různě. 155 V zobrazení rozložení můžeme potlačit zobrazování okraje tisku. 156 Tlačítka Excel, Seznam SharePoint jsou aktivní pro náhled tabulky.

135 Kapitola 6: Sestavy 135 Snapshot Viewer Tisk na tiskárně Klepnutím do tlačítka Další zobrazíme nabídku dalších výstupních formátů exportu:» Databáze aplikace Access: Export do jiné databáze Accessu. Ta nesmí být v době exportu otevřena.» Soubor XML: Soubor nelze z náhledu sestavy exportovat do formátu XML. 157» Prohlížeč snímků: Sestavu můžeme uživateli vytisknout nebo předat v elektronické podobě ve formě snímku sestavy. Snímek sestavy je soubor (s příponou.snp), který obsahuje věrnou kopii všech stránek sestavy. K prohlížení a tisku snímku sestavy nepotřebujeme Access, stačí volně šiřitelný program Snapshot Viewer. 158 Šíření výstupů Accessu formou snímků je vhodné, jestliže koncový uživatel neumí ovládat Access či dokonce Access nemá nainstalovaný. Snímek sestavy je však vždy jen statickou ( mrtvou ) kopií sestavy, která se nemění v souvislosti s aktualizací databáze. Pokud jsme při exportu zaškrtnuli pole Po dokončení operace exportu otevřít cílový soubor, otevře se po exportu okno programu Snapshot Viewer a v něm snímek sestavy. Můžeme provádět základní operace: K prohlížení celého snímku nám slouží vodorovný a svislý posuvník a tlačítka přechodu na první, předchozí, určenou, další či poslední stránku analogická jako při pohybu mezi větami v tabulce Accessu. Příkazem SOUBOR, TISK můžeme snímek vytisknout. Příkazem SOUBOR, ODESLAT můžeme odeslat snímek elektronickou poštou. Příkazem SOUBOR, OTEVŘÍT můžeme vyhledat a zobrazit jiný snímek. Klepnutím do tlačítka Dokument HTML provedeme export sestavy do formátu webových prohlížečů HTML. Při exportu můžeme upřesnit šablonu HTML pro formátování výstupu. Sestava je rozdělena na více webových stránek, mezi nimiž se můžeme pohybovat odkazy (První, Předchozí, Další, Poslední) na konci webové stránky. Jedná se o statickou ( mrtvou ) kopii sestavy, která se nemění v souvislosti s aktualizací databáze. Ve skupině Tisk: Klepnutí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 zadat tiskárnu či změnit vlastnosti tisku (např. zadat úsporný režim tisku).» Jestliže zaškrtneme pole Tisk do souboru, budeme po klepnutí do tlačítka OK dotázáni na název souboru (zadáme jej nejlépe s příponou prn). Sestava se nevytiskne na tiskárně, pouze se připraví soubor, který lze později vytisknout na tiskárně z počítače, kde nemusí být dostupný Access.» Zadáním čísel stránek můžeme omezit tisk. Při prvním tisku na tiskárně je vhodné nejdříve vytisknout jen první stránku na zkoušku a teprve potom zbývající stránky. 157 Export do XML formátu můžeme provést po zavření náhledu. V navigačním podokně klepnutím označíme sestavu a v kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Další a z nabídky vybereme SOUBOR XML. Exportují se podkladová data sestavy, nikoliv data uspořádaná jako v sestavě. 158 Program byl připravován pro starší verze Accessu a je dostupný na webu Microsoftu.

136 Kapitola 6: Sestavy 136 Uložení sestavy» Volba Vybrané záznamy je dostupná jen při tisku tabulek či výsledků dotazů. Potom je možné voličem záznamů označit záznamy, které chceme vytisknout, a zadat do Rozsahu tisku hodnotu Vybrané záznamy.» Zadáme-li v poli Počet kopií číslo větší než 1, má smysl zaškrtnout pole Kompletovat. Je-li pole zaškrtnuto, budou vytištěny tříděné kopie (stránky v pořadí 1-2-3, 1-2-3). Pokud zaškrtnutí zrušíme, vytisknou se netříděné kopie (stránky v pořadí 1, 1, 2, 2, 3, 3).» Klepnutím do tlačítka Nastavit zobrazíme dialogové okno Vzhled stránky bez karty Stránka. 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. Sestavu uložíme kombinací kláves Ctrl S pod názvem P62 Personal Identifikace. Pokud bychom chtěli po poklepání v navigačním podokně zobrazit sestavu přímo v náhledu, mohli bychom upravit formátovou vlastnost sestavy Výchozí zobrazení na hodnotu Náhled tisku. Potom by také výchozím stavem tlačítka Zobrazení byl náhled. 6.3 Sestava dle upravené šablony V další sestavě chceme vytisknout seznam služebních cest. Cílový stav sestavy (před doplněním pole E_mail do zdroje dat) je v obr OBR. 6-3: SESTAVA P63 CESTY Výchozí nastavení prvku Šablona sestavy Chceme opět, aby seznam byl vypisován písmeny velikosti 9, což budeme chtít i v následující sestavě licencí. Využijeme proto nastavení ze sestavy o zaměstnancích: Otevřeme sestavu P62 Personal Identifikace v návrhovém zobrazení. Klepneme do libovolného textového pole s velikostí 9, např. do pole E_mail. V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Výchozí nastavení prvku, čímž způsobíme, že: Další textová pole přidávaná do sestavy (ze seznamu polí či ze skupiny ovládacích prvků) budou ve stejném formátu. Pokud bude sestava použita jako šablona, budou textová pole vkládaná do další sestavy založené na šabloně vycházet z výchozího formátování. Uložíme sestavu a zavřeme její návrh. Povýšíme sestavu na šablonu: Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Access. V kartě Návrháři objektů v předposlední skupině Formuláře či sestavy zadáme do pole Šablona sestavy hodnotu P62 Personal Identifikace. Šablonu musíme vyplnit, nelze ji vybrat ze seznamu sestav.

137 Kapitola 6: Sestavy 137 P63 Cesty Aktuální datum a čas Počet stránek a počet vět Automatická velikost Vybraná sestava bude (pokud bude v databázi k dispozici 159 ) vzorem pro formátování nových sestav. Toto nastavení platí nejen pro otevřenou databázi, ale pro Access, tj. pro všechny databáze (do nichž bychom však museli importovat příslušnou vzorovou sestavu). Šablona obsahuje formátování typů polí (textová pole, pole se seznamem a další) i některé vlastnosti sestavy a jejich sekcí. Vytvoříme novou sestavu: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Cesty. V kartě VYTVOŘIT ve skupině Sestavy klepneme 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, popisky nikoliv, neboť jsme v šabloně nepovýšili jejich formátování na výchozí. Vytvořená sestava má několik sekcí: V Záhlaví sestavy je:» ikona sestavy a název Cesty 160,» v pravé části aktuální datum jako textové pole s výrazem =Date(),» aktuální čas jako textové pole s výrazem =Time(). V Záhlaví stránky jsou popisky sloupců tabulkového rozložení (velikosti 11). Všimněme si čáry, která odděluje záhlaví stránky. Čára není samostatný ovládací prvek. Souvisí s tabulkovým rozložením ovládacích prvků a s nastavením formátových vlastností popisků:» Styl mřížky dole: plná čára» Šířka mřížky dole: 1 bod V Těle jsou pole tabulkového rozložení (velikosti 9). V Zápatí stránky je textové pole, které formou výrazu obsahuje číslo stránky a celkový počet stránek: ="Stránka " & [Page] & " z " & [Stránky] V Zápatí sestavy je rekapitulován počet vět, tj. počet cest (15) formou textového pole: =Count(*) Všimněme si čáry, která odděluje zápatí sestavy. Čára není samostatný ovládací prvek. Souvisí s tabulkovým rozložením ovládacích prvků ve sloupci Rok a s nastavením formátových vlastností:» Styl mřížky nahoře: plná čára» Šířka mřížky nahoře: 2 body Sestava se stane podsestavou hlavní sestavy dat o zaměstnanci. Provedeme proto některé úpravy: V návrhovém zobrazení odstraníme logo sestavy, aktuální datum, aktuální čas. Název Cesty zmenšíme na velikost 9, zmenšíme jeho ovládací prvek a přesuneme do levého horního rohu Záhlaví sestavy. V záhlaví stránky změníme velikost písma pro všechny popisky na 9. Kombinací kláves Ctrl A označíme všechny ovládací prvky a upravíme jejich velikost klepnutím do tlačítka Automatická velikost ve skupině Velikost v kartě USPOŘÁDAT. V zobrazení rozložení zvětšíme šířku sloupců, u nichž je to nutné. Pro pole Zahájení odstraníme datovou vlastnost Inteligentní značky. Pole Rok, Cesta, Zahájení, Dokončení zarovnáme zprava. Pro všechna pole tabulky upravíme formátovou vlastnost Styl okraje na hodnotu plná čára. Označíme všechna pole tabulky a v kartě USPOŘÁDAT ve skupině Rozložení ovládacího prvku klepneme do tlačítka Výplň ovládacího prvku a vybereme volbu ŽÁDNÁ. Tažením přesuneme všechny popisky do levého horního rohu záhlaví stránky. Tažením přesuneme všechna pole těla do levého horního rohu těla. Minimalizujeme výšku záhlaví stránky a těla. V zápatí stránky odstraníme číslování stránek, které nebude v rámci hlavní sestavy nutné. Zápatí stránky minimalizujeme. 159 Není-li sestava šablony k dispozici, je aplikována vestavěná šablona Accessu s názvem Normální, k níž se také můžeme vrátit, když již nechceme využívat svou šablonu. Šablona se aplikuje pouze pro nově vytvářené sestavy. Obdobně můžeme použít šablonu pro formuláře. 160 Název lze snadno vložit do sestavy klepnutím do tlačítka Název ve skupině Ovládací prvky v kartě NÁVRH.

138 Kapitola 6: Sestavy 138 Záhlaví stránky by se v podsestavě nevypisovalo, proto chceme popisky umístit do záhlaví sestavy. Nejprve musíme odstranit tabulkové rozložení: Klepnutím do rohového voliče označíme všechny ovládací prvky rozložení a klepneme do tlačítka Odebrat ve skupině Rozložení ovládacího prvku v kartě USPOŘÁDAT. Všimněme si, že již není zobrazena čára pod popisky a nad počtem vět. Klepnutím ve svislém pravítku označíme všechny popisky a kombinací kláves Ctrl X je vyjmeme do schránky. Klepneme na sekci Záhlaví sestavy a vložíme popisky kombinací kláves Ctrl V. Označíme všechny popisky a klepneme do tlačítka Zmenšit vodorovné mezery ve skupině Pozice v kartě USPOŘÁDAT. Obdobně zmenšíme mezery pro textová pole těla. Název Cesty v záhlaví sestavy vypíšeme kurzívou. V zápatí sestavy upravíme pro jediný ovládací prvek v datové vlastnosti Zdroj ovládacího prvku výraz na tvar: ="Počet cest: " & Count(*) Ovládací prvek v zápatí sestavy rozšíříme. Pro přehlednost potlačíme zobrazení záhlaví a zápatí stránky klepnutím do tlačítka Záhlaví a zápatí stránky ve skupině Zobrazit či skrýt v kartě USPOŘÁDAT. Minimalizujeme zápatí sestavy. Minimalizujeme šířku sestavy. Je nyní široká necelých 8 cm. Sestava se stane podsestavou hlavní sestavy s daty o zaměstnanci. Musíme proto připravit propojující pole E_mail do zdroje dat tak, abychom mohli v podsestavě tisknout pouze cesty zaměstnance z hlavní sestavy: Zobrazíme seznam polí a z tabulky Výjezdy přesuneme do těla pole E_mail. Pole E_mail odstraníme. Minimalizujeme výšku těla a šířku sestavy. Modifikovali jsme tak datovou vlastnost sestavy Zdroj záznamů, která již obsahuje propojení s tabulkou Výjezdy. Sestava nyní zobrazuje 30 vět (30 výjezdů zaměstnanců). Sestavu uložíme pod názvem P63 Cesty. P64 Licence 6.4 Sestava o více sloupcích V další sestavě chceme vytisknout seznam licencí prodaných programů. Cílový stav sestavy (pouze pro Miloše Adamce) je v obr OBR. 6-4: SESTAVA P64 LICENCE (POUZE LICENCE MILOŠE ADAMCE)

139 Kapitola 6: Sestavy 139 Výplň ovládacího prvku Možnost zvětšení a zmenšení Řazení Vytvoříme novou sestavu: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Licence. V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Sestava. Vytvoří se sestava, jejímž zdrojem záznamů je tabulka Licence (viz datová vlastnost sestavy Zdroj záznamů). Textová pole v sestavě mají velikost 9, nadále využíváme společnou šablonu dle sestavy P62 Personal Identifikace. Změníme pořadí sloupců a doplníme nové sloupce v sestavě: Přesuneme sloupec Faktura na začátek. Za sloupec Faktura doplníme pole Datum z tabulky Faktury. Za sloupec Datum doplníme pole Název_podniku z tabulky Podniky. Za sloupec Sériové_číslo doplníme pole Cena z tabulky Programy. Za sloupec Cena doplníme sloupec E_mail z tabulky Faktury a odstraníme jej tak, aby se stal součástí zdrojového dotazu. Upravíme názvy sloupců: Zmenšíme písmo v popiskách sloupců z 11 na 9. Změníme název sloupce Faktura na Fa. Textové pole zarovnáme zprava. Zúžíme sloupec. Sloupec Datum zarovnáme zprava a zúžíme. Změníme název sloupce Název_podniku na Odběratel. Sloupec zúžíme. Změníme název sloupce Program na Prg. Sloupec zúžíme. Změníme název sloupce Sériové_číslo na Čís. Textové pole zarovnáme zprava. Zúžíme sloupec. Sloupec Cena zarovnáme zprava a zúžíme. Upravíme sestavu tak, aby byla co nejmenší: Ze záhlaví sestavy odstraníme logo, aktuální datum a aktuální čas. Název sestavy zmenšíme na 9. Vypíšeme jej kurzívou. Zmenšíme automatickou velikostí (karta USPOŘÁDAT, skupina Velikost). Přesuneme do levého horního rohu záhlaví sestavy. Minimalizujeme záhlaví sestavy. Ze zápatí stránky odstraníme číslování stránky a minimalizujeme zápatí stránky. Označíme všechna textová pole těla a omezíme výplň jejich ovládacího prvku na žádnou. (Klepneme do tlačítka Výplň ovládacího prvku ve skupině Rozložení ovládacího prvku v kartě USPOŘÁDAT a vybereme volbu ŽÁDNÁ.) Pro textová pole těla změníme formátovou vlastnost Styl okraje na hodnotu plná čára. Označíme tabulkové rozložení a odebereme je. (Klepneme do tlačítka Odebrat ve skupině Rozložení ovládacího prvku v kartě USPOŘÁDAT.) Zmenšíme mezery mezi textovými poli. (Klepneme do tlačítka Zmenšit vodorovné mezery ve skupině Pozice v kartě USPOŘÁDAT.) Ovládací prvky v záhlaví stránky a v těle přesuneme do levého horního rohu, minimalizujeme obě sekce. Pro textové pole Název_podniku upravíme formátové vlastnosti Možnost zvětšení a Možnost zmenšení na hodnotu ne, aby výška textového pole byla stejná jako u ostatních textových polí. Popisky přesuneme ze sekce Záhlaví stránky do sekce Záhlaví sestavy pod název Licence. Potlačíme zobrazení sekcí Záhlaví stránky a Zápatí stránky. (Klepneme do tlačítka Záhlaví a zápatí stránky ve skupině Zobrazit či skrýt v kartě USPOŘÁDAT.) Upravíme datovou vlastnost pole Zdroj ovládacího prvku jediného pole Zápatí sestavy na výraz: ="Počet licencí: " & Count(*) Textové pole rozšíříme a umístíme do levého horního rohu Zápatí sestavy. Sekci Zápatí sestavy minimalizujeme. Sestavu uložíme pod názvem P64 Licence. V sestavě chceme vypisovat licence ve vhodném pořadí: V datové vlastnosti sestavy Zdroj záznamů nahradíme pole Licence.* třemi poli Faktura, Program, Sériové_číslo, k nimž doplníme řazení vzestupně. Řazení ve zdrojovém dotazu se nepromítlo do sestavy. V sestavě musíme řazení definovat v návrhu sestavy. Klepneme do tlačítka Seskupit a seřadit ve skupině Skupiny a souhrny v kartě NÁVRH.

140 Kapitola 6: Sestavy 140 V podokně Skupina, řazení a součet klepneme do tlačítka Přidat řazení. Ze seznamu polí vybereme pole Faktura. Klepneme do tlačítka Přidat řazení a vybereme pole Program. Klepneme do tlačítka Přidat řazení a vybereme pole Sériové_číslo. V podokně Skupina, řazení a součet je hierarchie řazení naznačena graficky (viz obr. 6-5). OBR. 6-5: PODOKNO SKUPINA, ŘAZENÍ A SOUČET 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á a dlouhá. Budeme ji proto vypisovat ve dvou sloupcích: V kartě VZHLED STRÁNKY v skupině Rozložení stránky klepneme do tlačítka Sloupce. Zobrazí se karta Sloupce dialogového okna Vzhled stránky (viz obr. 6-6). OBR. 6-6: DIALOGOVÉ OKNO VZHLED STRÁNKY Parametry rozdělení sestavy do sloupců: Počet sloupců: Sloupců může být i více než dva. Sloupce se však musejí na stránku vejít, tj. je třeba dodržet podmínku: šířka sestavy * počet sloupců + vzdálenost sloupců levý okraj + pravý okraj <= šířka papíru. Vzdálenost řádků: Můžeme definovat rozestupy mezi řádky. (Jiným způsobem dosažení rozestupů je úprava těla sestavy.) Vzdálenost sloupců: Je vhodné sloupce od sebe oddělit mezerou, aby sestava byla přehledná. Zadáme 2 cm. Velikost sloupce: Je-li zatrženo pole Stejná jako pro tělo, akceptuje se šířka a výška věty z těla návrhu sestavy, jinak můžeme šířku a výšku omezit zde. Vzhled sloupce: Při rozmístění Příčně, pak dolů se vypisují věty po řádcích 162, při rozmístění Dolů, pak příčně se vypisují věty po sloupcích. V případě vypisování po sloupcích dochází k vypisování do druhého sloupce až po dosažení konce stránky. Proto náš případ několika prodejů pro každého zaměstnance není pro rozmístění Dolů, pak příčně vhodný. 161 Při více než dvou sloupcích musíme počítat s hodnotou vzdálenost sloupců * (počet sloupců 1) 162 Řádek obsahuje tělo věty, může to být více než jeden řádek.

141 Kapitola 6: Sestavy 141 Uspořádání sestavy do sloupců se projevuje pouze v náhledu sestavy. Popisky jsou bohužel vytištěny jen v prvním sloupci 163. Sestavu uložíme pod stejným názvem kombinací kláves Ctrl S. P65 Hlavní sestava 6.5 Hlavní sestava a podsestavy Vytvoříme hlavní sestavu, která bude pro jednotlivé zaměstnance zobrazovat: osobní data (k jedné větě hlavní sestavy jedna věta podsestavy P62 Personal Identifikace), služební cesty zaměstnance (žádná, jedna či více vět v podsestavě P63 Cesty ke každému zaměstnanci v hlavní sestavě), licence fakturované zaměstnancem (žádná, jedna či více vět v podsestavě P64 Licence ke každému zaměstnanci v hlavní sestavě). Cílový stav sestavy (před doplněním pole E_mail do zdroje dat) je v obr V sestavě jsou zobrazeny věty Petra Nováka a Aleny Pospíšilové tak, aby demonstrovaly různé varianty dat jednotlivých zaměstnanců. OBR. 6-7: SESTAVA P65 HLAVNÍ SESTAVA PRO PETRA NOVÁKA A ALENU POSPÍŠILOVOU Vytvoříme novou sestavu: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Personal. V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Sestava. Vytvoří se sestava, jejímž zdrojem záznamů je tabulka Personal. Klepnutím do voliče v levém horním rohu označíme tabulkové rozložení a klávesou Delete odstraníme všechny jeho ovládací prvky. Zdroj Personal zůstane připojen (viz datová vlastnost sestavy Zdroj záznamů). Minimalizujeme prázdné Záhlaví stránky a Zápatí sestavy. Ze záhlaví sestavy odstraníme logo sestavy a aktuální čas. Název sestavy přesuneme do levého horního rohu Záhlaví sestavy, upravíme jeho šířku na 17 cm a zarovnáme na střed. Text upravíme na znění: 163 Můžeme rozšířit sestavu a v záhlaví sestavy uvést popisky znovu. Rozšíříme tím i tělo sestavy, protože šířka sestavy je společná pro všechny sekce. V kartě VZHLED STRÁNKY klepneme ve skupině 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 tělo.

142 Kapitola 6: Sestavy 142 Podsestava Informace o zaměstnancích firmy Encián Aktuální datum přesuneme pod název sestavy úplně vlevo, upravíme jeho šířku na 17 cm a zarovnáme na střed. Výraz v textovém poli upravíme na hodnotu: ="Stav ke dni: " & Date() Textové pole v Zápatí stránky přesuneme do levého horního rohu Zápatí stránky, upravíme jeho šířku na 17 cm. Ponecháme jeho hodnutu: ="Stránka " & [Page] & " z " & [Stránky] Šířku stránky zúžíme na 17 cm. Do hlavní sestavy umístíme první podsestavu: Tažením na pozici těla asi 0,5;0 umístíme z navigačního podokna sestavy P62 Personal Identifikace. Mírný odstup od horního kraje těla byl nutný, abychom snadno mohli označit popisek, který odstraníme. Ovládací prvek podsestavy umístíme do levého horního rohu těla hlavní sestavy. Šířku podsestavy zvětšíme na 8 cm tak, aby se zobrazil celý její obsah. Formátovou vlastnost podsestavy Možnost zmenšení upravíme na hodnotu ano. Zamezíme tak vypisování volného řádku pro zaměstnance bez oprávnění fakturovat. Aby podsesestava nebyla ohraničena, upravíme její formátovou vlastnost Styl okraje na hodnotu průhledný. Abychom nemuseli u dalších podsestav odstraňovat popisek a ohraničení, povýšíme formát první podsestavy na výchozí: Označíme podsestavu klepnutím. Klepneme do tlačítka Výchozí nastavení prvku ve skupině Ovládací prvky v kartě NÁVRH. Do hlavní sestavy umístíme další dvě podsestavy: Tažením z navigačního podokna umístíme 1 cm napravo od první podsestavy pod horní kraj těla sestavu P63 Cesty. Šířku podsestavy upravíme na 8 cm. Tažením z navigačního podokna umístíme pod první podsestavu sestavu P64 Licence. Rozšíříme ji na 16 cm tak, aby v náhledu hlavní sestavy byly vytištěny oba sloupce podsestavy. Pro obě podsestavy zadáme do formátové vlastnosti Možnost zmenšení hodnotu ano, aby po podsestavách nezbylo volné místo, pokud by byly prázdné (např. v případě, že zaměstnanec nefakturoval žádné licence). Přemístíme čáru oddělující zaměstnance z podsestavy do hlavní sestavy: Klepnutím označíme první podsestavu. Dalším klepnutím označíme její libovolný ovládací prvek. Tažením za dolní okraj těla podsestavy tělo dočasně zvýšíme. Klepnutím označíme čáru pod Oprávněním. Kombinací kláves Ctrl X ji vyjmeme do schránky. Minimalizujeme opět tělo podsestavy. Zvýšíme tažením za dolní kraj tělo hlavní sestavy. Kombinací kláves Ctrl V vložíme ze schránky čáru. Tažením ji přemístíme z horního kraje těla hlavní sestavy pod třetí podsestavu a rozšíříme na šířku hlavní sestavy, tj. 17 cm. Pokud je to nutné, omezíme opět šířku hlavní sestavy na 17 cm. Access propojil všechny tři podsestavy s daty v hlavní sestavě, tj. naplnil hodnotou E_mail jejich datové vlastnosti Řídící propojovací pole a Dceřiné propojovací pole. Díky tomu se v podsestavách zobrazí pouze věty (zaměstnanec, cesty, licence) se shodným polem E_mail v hlavní sestavě. Sestavu musíme prohlédnout v náhledu, jedině v tomto zobrazení je korektně zobrazena. Hlavní sestavu uložíme pod názvem P65 Hlavní sestava. Na konci stránek náhledu mohou vznikat velké mezery, neboť Access udržuje jednotlivé věty hlavní sestavy na samostatných stránkách. Upravíme formátovou vlastnost hlavní sestavy Udržovat pohromadě na hodnotu ne. Nyní již jednotlivé podsestavy stejného zaměstnance mohou být na různých stránkách. Jednotlivé věty podsestavy jsou umístěny na stejné stránce, což by bylo možné uvolnit ve formátové vlastnosti těla podsestavy Udržovat pohromadě.

143 Kapitola 6: Sestavy 143 P66 Telefonní seznam 6.6 Sestava bez duplikátů V další sestavě vytiskneme aktuální místní telefonní seznam firmy uspořádaný dle oddělení a v rámci oddělení dle příjmení a jména (viz obr. 6-8, v němž jsou oddělení analýza a distribuce). OBR. 6-8: SESTAVA P66 TELEFONNÍ SEZNAM ODDĚLENÍ ANALÝZA A DISTRIBUCE Průvodce sestavou Blokové rozložení sestavy Skrytí duplikátů Vytvoříme novou sestavu: Nechceme již navazovat na šablonu první sestavy: Klepneme do tlačítka Office a potom do tlačítka Možnosti aplikace Access. V kartě Návrháři objektů ve skupině Formuláře či sestavy zadáme do pole Šablona sestavy text Normální. Do sestavy chceme zahrnout jen vybraná pole tabulky Personal, proto využijeme Průvodce sestavou. V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Personal. V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Průvodce sestavou. V prvním okně vybereme z tabulky Personal pole Jméno, Příjmení, E_mail, Místnost a Telefon. Z tabulky Oddělení (výběrem v poli Tabulky či dotazy) vybereme dále pole Oddělení_v. V druhém okně zadáme, že chceme data prohlížet dle pole z tabulky Oddělení. V pravé části se naznačí příprava seskupení dle pole Oddělení_v. V třetím okně nepřidáme další úrovně seskupení. Ve čtvrtém okně zadáme řazení vět dle Příjmení a dle Jména. V pátém okně vybereme rozložení sestavy Blokové a ponecháme orientaci na výšku. V šestém okně vybereme použití stylu Žádný. V sedmém okně nazveme sestavu Telefonní seznam a zadáme zobrazení náhledu sestavy. Po prohlédnutí výchozího náhledu přejdeme do zobrazení rozložení a provedeme úpravy sestavy: Pro pole Telefon odstraníme obsah datové vlastnosti Inteligentní značky. Upravíme šířky sloupců. Zarovnáme pole Místnost a Telefon na střed. Upravíme popisek Oddělení_v na Oddělení. Označíme všechny ovládací prvky a upravíme jejich formátovou vlastnost Styl okraje na hodnotu průhledný. Oddělení budeme vypisovat tučně. Klepneme do libovolného oddělení a do tlačítka Tučné ve skupině Písmo v kartě FORMÁT. 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í. Klepnutím do tlačítka Seskupit a seřadit ve skupině Skupiny a souhrny v kartě FORMÁT zobrazíme dialogové okno Skupina, řazení a součet. Vidíme v něm, že sestava je: seskupena dle Oddělení, seřazena dle Příjmení a Jména.

144 Kapitola 6: Sestavy 144 Vložení obrázku Do sestavy vložíme obrázek: Klepneme do tlačítka Logo ve skupině Ovládací prvky v kartě FORMÁT. Dohledáme umístění souboru obrázku. 164 Obrázek se umístí do levého horního rohu Záhlaví sestavy. Ve formátových vlastnostech obrázku: Všimneme si, že ve vlastnosti Režim velikosti je hodnota zachovat proporce. Obrázek tedy nevyplní celou plochu ovládacího prvku, dbá na poměr výšky a šířky. Ve vlastnosti Barva pozadí vybereme bílou barvu (#FFFF) pro okraje, které vznikají zachováním proporcí. Do vlastnosti Styl okraje zadáme hodnotu průhledný. V sestavě upravíme ještě vygenerované ovládací prvky: Aktuální datum přesuneme do Záhlaví sestavy nahoru tak, aby končilo stejně jako poslední pole Telefon (asi 14,2 cm na vodorovném pravítku). Pole zúžíme a zarovnáme zprava. Upravíme jeho datovou vlastnost Zdroj ovládacího prvku na hodnotu: ="Stav ke dni: " & Now() Funkce Now() vypisuje na rozdíl od funkce Date() aktuální datum či čas. Číslo stránky posuneme nahoru v Zápatí stránky, rozšíříme na délku 14,2 cm a zarovnáme na střed. Minimalizujeme výšku Zápatí stránky. Upravíme vzhled stránky: Minimalizujeme šířku sestavy na 14,2 cm. Klepnutím do tlačítka Vzhled stránky ve skupině Rozložení stránky v kartě VZHLED STRÁNKY zobrazíme dialogové okno Vzhled stránky. V kartě Možnosti tisku upravíme pole Levý a Pravý na 34 mm. (Šířka stránky A4 je 21 cm, při šířce sestavy 14,2 cm zbývá na okraje 21 14,2 = 6,8 cm, chceme sestavu tisknout doprostřed stránky, tj. na levý i pravý okraj zbývá 6,8/2 = 3,4 cm.) Sestavu přejmenujeme na P66 Telefonní seznam. 6.7 Sestava nad více dotazy V další sestavě chceme k zaměstnancům dopsat, zda se účastnili na přípravě faktur. Část výsledné sestavy je v obr OBR. 6-9: SESTAVA P67 FAKTURACE P67 Tržby Průvodce dotazem Sestava bude vycházet z tabulek Personal, Oddělení a z účelově připraveného dotazu, v němž zjistíme za kolik Kč (celkem za sledované období) fakturovali jednotliví zaměstnanci. V sestavě budeme v případě, že tržby z faktur za jednotlivého zaměstnance byli nulové, vypisovat symbol smutku (zamračené tváře). Nejdříve připravíme účelový dotaz, využijeme k tomu průvodce dotazem: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Personal. Klepneme do tlačítka Průvodce dotazem ve skupině Jiné v kartě VYTVOŘIT. V prvním okně průvodce vybereme Průvodce jednoduchým dotazem. 164 Ukázkový obrázek je uložen v souboru Telefon.gif. Je převzat z galerie klipartů a je zmenšen.

145 Kapitola 6: Sestavy 145 P67 Fakturace Seskupení dle prvního znaku Odsazované rozložení sestavy Název písma Ve druhém okně vybereme pole E_mail z tabulky Personal a pole Cena z tabulky Programy. V třetím okně vybereme druh dotazu Souhrnný. Klepneme do tlačítka Možnosti souhrnu a pro pole Cena zaškrtneme Součet. Ve čtvrtém okně zadáme název dotazu P67 Tržby a vybereme možnost Změnit návrh dotazu. Díky relacím se doplnily do dotazu tabulky Faktury a Licence. Titulek druhého pole dotazu změníme z textu Sum of Cena na Tržby. Výsledkem dotazu je pouze 9 vět za zaměstnance, kteří dosáhli nějaké tržby. Návrh dotazu zavřeme s uložením změn. Vytvoříme novou sestavu: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Personal. V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Průvodce sestavou. V prvním okně vybereme z tabulky Personal pole Jméno, Příjmení, z tabulky Oddělení pole Oddělení_v, z tabulky Personal pole Úvazek, Oprávnění (opakovaně čerpáme z tabulky Personal, abychom připravili pořadí polí v sestavě), z dotazu P67 Tržby pole Tržby. V druhém okně přidáme seskupení z pole Příjmení. Klepneme do tlačítka Možnosti seskupení a v dialogovém okně Způsob seskupení upravíme pole Způsob seskupení na hodnotu prvního písmene. V třetím okně zadáme řazení vět dle Příjmení a dle Jména. V čtvrtém okně vybereme rozložení sestavy Odsazované a ponecháme orientaci na výšku. V pátém okně vybereme použití stylu Žádný. V šestém okně nazveme sestavu P67 Fakturace a zadáme zobrazení náhledu sestavy. V návrhu sestavy provedeme změny: Popisek Příjmení podle prvního písmena nahradíme pomlčkou. Sloupec s prvními písmeny zúžíme. Vhodně upravíme šířku ostatních sloupců. Popisek Oddělení_v upravíme na Oddělení. Popisek Oprávnění fakturovat upravíme na Oprávnění. Ovládací prvek Úvazek zarovnáme na střed. V sestavě jsou vypisováni pouze zaměstnanci, kteří fakturovali. Upravíme proto datovou vlastnost sestavy Zdroj záznamů. Upravíme spojení datových sad P67 Tržby a Personal na typ Zahrnout všechny záznamy z tabulky Personal. Místo hodnoty tržeb vypíšeme symbol smutku (zamračené tváře) pro zaměstnance, kteří nefakturovali žádné prodeje: Upravíme vlastnosti pole v posledním sloupci: do jiné vlastnosti Název zapíšeme hodnotu Tržby_o. do datové vlastnosti Zdroj ovládacího prvku zapíšeme hodnotu: =Trim(IIf(Tržby Is Null;"L")) Pro zaměstnance s tržbami se vypíše písmeno L. Změníme typ písma pro ovládací prvek Tržby_o, tj. upravíme formátovou vlastnost Název písma na hodnotu Wingdings. Ovládací prvek zarovnáme na střed. Pole Oprávnění je typu Zaškrtávací políčko. Nelze jej zarovnat na střed, museli bychom upravit jeho pozici, což v rámci tabulkového rozložení není možné. Odstraníme proto pole Oprávnění. Vložíme na jeho místo formálně pole Příjmení a upravíme: popisek na Oprávnění, datovou vlastnost textového pole na výraz: =IIf([Oprávnění];"ţ") 165 formátovou vlastnost Styl okraje textového pole na hodnotu průhledný, formátovou vlastnost Název písma na hodnotu Wingdings, zarovnáme textové pole na střed. 165 Znak ţ zapíšeme z klávesnice držením klávesy Alt a stisknutím kláves 0254 na numerické klávesnici.

146 Kapitola 6: Sestavy 146 Provedeme finální úpravy sestavy: Upravíme název sestavy v záhlaví sestavy na Fakturace. V zápatí stránky odstraníme aktuální datum, číslo stránky umístíme do levého horního rohu zápatí stránky, roztáhneme na šířku 12 cm a zarovnáme na střed. Sestavu zúžíme na 12 cm. Upravíme levý kraj stránky na 45 mm (21 12 = 9 cm, polovina je 4,5 cm). Sestavu uložíme pod názvem P67 Fakturace. 6.8 Sestava s podíly V následující sestavě vypočteme tržby za licence odběratelům dle jejich základní činnosti (kód NACE1) v seskupení dle sekcí NACE. V sestavě také vypíšeme podíl odběratelů jednotlivých činností na tržbách za sekci (na součtu za sekci) a podíl na celkových tržbách za všechny sekce (na součtu za všechny). Části výsledné sestavy jsou v obr začátek stránky 1 OBR. 6-10: SESTAVA P68 PODÍLY konec stránky 2 konec sestavy P68 Tržby Nejprve přichystáme zdrojový dotaz, v němž spočteme tržby od odběratelů dle jednotlivých kódů NACE (přesněji základní činnosti NACE1): V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky NACE. Klepneme do tlačítka Průvodce dotazem ve skupině Jiné v kartě VYTVOŘIT. V prvním okně průvodce vybereme Průvodce jednoduchým dotazem.

147 Kapitola 6: Sestavy 147 Ve druhém okně vybereme pole Sekce a Sekce_v z tabulky Sekce, pole NACE a NACE_v z tabulky NACE a pole Cena z tabulky Programy. Zobrazí se upozornění, že některé vybrané tabulky nejsou propojeny relacemi. Příčinou je propojení tabulek Sekce a NACE prostřednictvím dotazu. Klepneme do tlačítka Storno. Opět ve druhém okně odebereme pole Sekce a Sekce_v. Ve třetím okně vybereme pole Souhrnný dotaz a klepneme do tlačítka Možnosti souhrnu. Pro pole Cena zaškrtneme Součet. Ve čtvrtém okně zadáme název dotazu P68 Tržby a vybereme možnost Změnit návrh dotazu. Ve vytvořeném dotazu jsou dle relací propojeny tabulky NACE, Podniky, Faktury, Licence, Programy (viz obr. 6-11, kde je již dotaz upraven). OBR. 6-11: DOTAZ P68 TRŽBY P68 Podíly V kartě NÁVRH ve skupině Nastavení dotazu klepneme do tlačítka Zobrazit tabulku. Přidáme dotaz NACE_Oddíly a tabulky Oddíly_Sekce a Sekce. Odstraníme propojení tabulek NACE a NACE_Oddíly. Do podokna Mřížka doplníme na začátek pole s výrazem Sekce_s: [Sekce].[Sekce] & " " & [Sekce_v] 166 Pole NACE opatříme titulkem NACE_k: NACE. Pole Sum of Cena opatříme titulkem: Tržby: Cena. Výsledkem dotazu je 50 vět. 69 odběratelů firmy Encián má 50 různých kódů NACE základní činnosti NACE1. Dotaz uložíme pod názvem P68 Tržby. Vytvoříme novou sestavu: V navigačním podokně klepneme ve skupině 3 Tabulky do dotazu P68 Tržby. V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Průvodce sestavou. 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 Upřesnění tabulky Sekce pro pole Sekce je nutné, neboť pole Sekce se vyskytuje také v tabulce Oddíly_Sekce. 167 Mohli bychom zde zadat tisk součtů tržeb za sekce a výpočet podílů sekcí na tržbách za všechny skupiny NACE. Klepnuli bychom do tlačítka Možnosti souhrnu a v dalším okně bychom zaškrtnuli pro Tržby pole Součet, dále bychom zaškrtnuli pole Výpočet procent z celku pro součty. Vypočtená pole by však nebyla součástí rozložení, proto součty a podíly budeme řešit až v úpravě návrhu sestavy.

148 Kapitola 6: Sestavy 148 Obrysové rozložení sestavy Seskupování a řazení V čtvrtém okně vybereme rozložení sestavy Obrys a ponecháme orientaci na výšku. V pátém okně vybereme použití stylu Žádný. V šestém okně nazveme sestavu P68 Podíly a zadáme zobrazení náhledu sestavy. V návrhu sestavy provedeme změny: Název sestavy v Záhlaví sestavy změníme na Tržby za sekce a posuneme do levého horního rohu. Šířku Záhlaví sestavy minimalizujeme. V Záhlaví Sekce_s označíme klepnutím popisek Sekce_s a odebereme jej z tabulkového rozložení klepnutím do tlačítka Odebrat ve skupině Rozložení ovládacího prvku v kartě USPOŘÁDAT. Potom popisek odstraníme. Textové pole Sekce_s přesuneme do levého horního rohu Záhlaví Sekce_s a rozšíříme na šířku 19 cm. Klepnutím do rohového voliče označíme rozložení sloupců těla s popisky v záhlaví sekce a upravíme: Klepneme do tlačítka Výplň ovládacího prvku ve skupině Rozložení ovládacího prvku v kartě USPOŘÁDAT a vybereme ŽÁDNÁ. Tažením přesuneme rozložení na levý kraj. Označíme popisky tabulky (NACE_k, NACE_v, Tržby) a přesuneme je v záhlaví sekce pod pole Sekce_s. Minimalizujeme výšku záhlaví sekce. Upravíme text popisků. Popisek NACE_k změníme na NACE. Popisek NACE_v změníme na Název základní činnosti. Označíme textová pole těla a přesuneme je k horním kraji těla. Minimalizujeme výšku těla. Připustíme zvětšení textového pole NACE_v na více řádků (formátová vlastnost Možnost zvětšení). Šířku sloupce Tržby zmenšíme na 2 cm (formátová vlastnost Šířka). V zápatí stránky posuneme aktuální datum k levému kraji, číslo stránky tak, aby jeho pravý kraj byl na pozici 19 cm. Minimalizujeme šířku sestavy. Prohlédneme sestavu v náhledu, nyní je sestava přehledem tržeb dle kódu NACE základní činnosti. Tržby jsou seskupené dle sekcí NACE, každá sekce má své záhlaví popisků, před nímž je písmeno a název sekce NACE. Nyní doplníme do sestavy součet tržeb v jednotlivých sekcích a za všechny sekce: Klepneme do tlačítka Seskupit a seřadit ve skupině Skupiny a souhrny v kartě NÁVRH. Zobrazí se podokno Skupina, řazení a součet (viz obr. 6-12), v němž klepneme do tlačítka Další, abychom zobrazili další možnosti okna. Tlačítko Další je nahrazeno tlačítkem Méně. Obsah okna je rozsáhlý, můžeme se mezi jeho částmi pohybovat klepnutím do trojúhelníkových tlačítek na pravém kraji. OBR. 6-12: PODOKNO SKUPINA, ŘAZENÍ A SESKUPOVÁNÍ Význam voleb pro skupinu Sekce_s: Sekce_s: pole, dle nějž je provedeno seskupení či řazení, A nahoře: řazení dle abecedy vzestupně, podle celé hodnoty: seskupování dle celé hodnoty pole seskupení, je možné seskupovat také např. podle prvního znaku, bez součtů: k vybranému poli (sloupci) v rámci seskupení je možné přidat součet (provedeme dále pro náš případ podrobně), s názvem: možnost přidat do záhlaví sekce seskupení jeho název, s částí záhlaví: je k dispozici sekce Záhlaví Sekce_s, bez části zápatí: není k dispozici sekce Zápatí Sekce_s, neudržovat skupinu pohromadě na stránce: možnost vynutit udržení všech vět skupiny na jedné stránce či udržet pohromadě alespoň záhlaví a první větu.

149 Kapitola 6: Sestavy 149 Součty za sekce a sestavu Mřížka v rozložení Podíly v sestavě Průběžný součet Doplníme k tržbám součty: Rozbalíme nabídku bez součtů (klepnutím do trojúhelníku na konci). V poli Celkem vybereme Tržby. V poli Typ ponecháme součet. Zaškrtneme pole Zobrazit celkový součet a pole Zobrazit v zápatí skupiny. Vytvořená pole v jiné vlastnosti Název přejmenujeme: Součet v Zápatí Sekce_s bude mít název Tržby_sekce. Součet v Zápatí sestavy bude mít název Tržby_vše. Minimalizujeme výšku Zápatí Sekce_s a Zápatí sestavy. Doplníme popisek k součtu za sekci: Klepneme do tlačítka Popisek ve skupině Ovládací prvky v kartě NÁVRH. Tažením vymezíme popisek v levém horním rohu Zápatí Sekce_s a vložíme text Součet za sekci. Zkopírujeme popisek do Zápatí sestavy a upravíme jeho text na Součet za vše. Upravíme čáry v sestavě: Potlačíme čáry nad součty změnou formátové vlastnosti Styl mřížky nahoře na hodnotu průhledný. Doplníme mřížku do těla. Označíme klepnutím ve svislém pravítku všechna pole těla. Klepneme do tlačítka Mřížka ve skupině Mřížka v kartě NÁVRH a vybereme OBOJÍ. Chceme, aby každá skupina byla na stejné stránce. V podokně Skupina, řazení a součet pro seskupení Sekce_s vybereme hodnotu udržovat celou skupinu pohromadě na jedné stránce. Doplníme sloupec s podílem jednotlivých činností na tržbách za všechny sekce: Klepneme do popisku Tržby. S klávesou Shift klepneme do textového pole Tržby a do součtu tržeb za skupinu. Zkopírujeme označené ovládací prvky do schránky kombinací Ctrl C a vložíme je ze schránky kombinací Ctrl V. 168 Tažením doprava vložené prvky posuneme za první sloupec tržeb. Minimalizujeme Záhlaví Sekce_s, Tělo, Zápatí Sekce_s. Upravíme popisek Tržby na hodnotu Podíl na všem, za slovem Podíl stiskneme kombinaci kláves Shift Enter, abychom vytvořili v popisku nový řádek, nemusíme tak rozšiřovat sloupec. Upravíme vlastnosti textového pole posledního sloupce v Těle: datovou vlastnost Zdroj ovládacího prvku na hodnotu =Tržby/Tržby_vše 169, formátovou vlastnost Formát na hodnotu procenta. Upravíme vlastnosti textového pole posledního sloupce v Zápatí Sekce_s: datovou vlastnost Zdroj ovládacího prvku na hodnotu =Sum([Tržby])/[Tržby_vše], formátovou vlastnost Formát na hodnotu procenta. Doplníme předposlední sloupec s podílem jednotlivých činností: Označíme popisek, textové pole i součet posledního sloupce. Zkopírujeme jej na pozici předposledního sloupce, minimalizujeme Záhlaví Sekce_s, Tělo, Zápatí Sekce_s. Upravíme popisek na Podíl na sekci. Upravíme zdroj textového pole na hodnotu = [Tržby]/[Tržby_sekce]. Upravíme zdroj součtového pole na hodnotu =Sum([Tržby])/[Tržby_vše]. Pro lepší čitelnost popisků nad tabulkou vložíme na začátek popisků NACE, Název základní činnosti a Tržby volný řádek kombinací kláves Shift Enter. Sestavu uložíme pod názvem P68 Podíly. Při tvorbě sestav lze využít řadu dalších vlastností ovládacích prvků. Mezi ně patří datová vlastnost Průběžný součet. Pokud bychom ve sloupci Tržby zadali hodnotu: přes skupinu, vypisoval by se kumulativní součet tržeb v rámci skupiny, tj. součet by se nuloval v souvislosti s přechodem na další skupinu, přes všechno, vypisoval by se kumulativní součet tržeb za všechny věty. 168 Sloupec jsme vkládali kopírováním, abychom zachovali společné rozložení popisku, textového pole v těle a součtu v zápatí skupiny. 169 Ve výrazu tak používáme dříve připravený název ovládacího prvku. Dosud jsme se odkazovali pouze na pole ze zdroje dat.

150 Kapitola 6: Sestavy 150 Štítky 6.9 Štítky V další sestavě připravíme štítky (samolepící adresní etikety) na obálky, v nichž budeme zasílat aktuální letáky odběratelům firmy Encián. Předpokládejme, že adresy budeme tisknout na laserové tiskárně na štítky o rozměru 7 x 3,6 cm, které jsou ve 3 sloupcích a 8 řadách umístěny na listech o rozměru A4 s horním nakládacím okrajem 0,9 cm (viz obr. 6-13). 170 OBR. 6-13: VOLNÝ LIST A4 ADRESNÍCH ŠTÍTKŮ P69a Štítky Vytvoříme novou sestavu: V navigačním podokně klepneme ve skupině 3 Tabulky do tabulky Podniky. V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Štítky. V prvním okně Průvodce štítky se nabídne řada typů štítků. V poli Druh štítků ponecháme vybrány Volné listy 171, v poli Filtrovat podle výrobce můžeme vybrat výrobce štítků, jeho štítky se potom nabízí v horním seznamu. OBR. 6-14: PRVNÍ OKNO PRŮVODCE ŠTÍTKY 170 Rozměry štítku lze změřit nebo je můžeme spočítat z velikosti stránky A4. Pro šířku našeho štítku platí: 21/3 = 7 cm, pro výšku (29,7 0,9)/8= 28,8/8 = 3,6 cm. 171 Volba Nekonečný pás je určena na tisk štítků na souvislém pásu s perforací po krajích do jehličkových tiskáren. Volba Nekonečný pás se používá také k tisku štítků přímo na obálky.

151 Kapitola 6: Sestavy 151 Nevyužijeme žádný nabízený formát štítků, připravíme vlastní. Klepneme do tlačítka Přizpůsobit. Zobrazí se dialogové okno Velikost nového štítku. Zde může být uveden seznam dříve vytvořených vlastních štítků. Klepneme do tlačítka Nový. Zobrazí se dialogové okno Úprava štítku, v němž zadáme hodnoty dle obr OBR. 6-15: DIALOGOVÉ OKNO ÚPRAVA ŠTÍTKU Význam parametrů: Horní nakládací okraj 0,90 cm zadán dle parametrů štítků. Výška štítku 3,60 cm zadána dle výšky štítku. Levý okraj 0,80 cm je kraj papíru, na nějž nelze tisknout laserovou tiskárnou 172. Okraj mezi štítky zadáme jako dvojnásobek levého kraje. I na prostředním štítku obecně dodržíme levý i pravý okraj 0,80 cm. Šířka štítku 5,4 je zbytek po odečtení okrajů (7 2*0,8 = 7 1,6 = 5,4 cm). Pravý okraj 0,79 cm je opět nepotisknutelný okraj. Zadáme jej o něco menší, tak aby celková šířka byla menší než 21 cm: 0,8 + 3*5,4 + 2 * 1,6 + 0,79 = 0,8 + 16,2 + 3,2 + 0,79 = 20,99 Klepnutím do tlačítka OK ukončíme definici parametrů štítku. Klepnutím do tlačítka Zavřít zavřeme dialogové okno Velikost nového štítku. 173 Průvodce pokračuje: V druhém okně průvodce upravíme formát písma ve štítku. Změníme Velikost písma na 10. V třetím okně vybíráme z polí zdrojové tabulky či dotazu do vzorového štítku (viz obr. 6-16). Na začátku vynecháme volný řádek, aby text byl uprostřed štítku. OBR. 6-16: TŘETÍ OKNO PRŮVODCE ŠTÍTKY 172 Šířka okraje je různá dle typu tiskáren. Nebývá větší než 0,8 cm. 173 Definice vlastního štítku se neukládá do databáze, ale do uživatelských nastavení Accessu.

152 Kapitola 6: Sestavy 152 Ve čtvrtém okně zadáme řazení štítků dle IČ. V pátém okně zadáme název sestavy P69 Štítky a ponecháme vybrané zobrazení náhledu vytištěných štítků a klepneme do tlačítka Dokončit. Případné hlášení o nezobrazení některých dat odsouhlasíme klepnutím do tlačítka OK. Zobrazí se náhled sestavy štítků (viz obr. 6-17). OBR. 6-17: SESTAVA P69 ŠTÍTKY PRVNÍ ŘADA TŘÍ ŠTÍTKŮ Hromadná korespondence Štítky či obálky lze tisknout také prostřednictvím hromadné korespondence: Databázi musíme otevřít v nevýhradním přístupu. 174 V navigačním podokně klepneme do zdrojové tabulky či dotazu, např. Podniky. V kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Další a vybereme SLOUČIT S DOKUMENTEM MICROSOFT OFFICE WORD. Vybereme propojení s novým dokumentem. Dále ve Wordu provedeme parametrizaci hromadné korespondence. Můžeme vytvořit dopis, obálku či štítky napojené na databázi Accessu. Shrnutí 1. Sestavy slouží k tisku dat na tiskárně. Návrh sestavy je analogický jako návrh formuláře. 2. Účinnou pomoc poskytuje Průvodce sestavou. Průvodce nabízí sloupcové, tabulkové a zarovnané rozvržení pro sestavy bez skupiny a odsazované, blokové a obrysové pro sestavy se skupinami. 3. Sestavu lze zobrazit několika zobrazeními: zobrazení sestavy, náhled, zobrazení rozložení a návrhové zobrazení. Některé vlastnosti sestavy se plně projeví až v náhledu, např. tisk ve více sloupcích. V náhledu lze zobrazit i více stránek, lze také zobrazit detail vybraného místa stránky. 4. Sestava se skládá ze sekcí: záhlaví sestavy, záhlaví stránky, těla, zápatí stránky, zápatí sestavy. V případě seskupení je možné využít také záhlaví a zápatí skupin. Sestava jako celek, jednotlivé sekce i jednotlivé ovládací prvky mají řadu vlastností. 5. Ovládací prvky mohou být definovány výrazy. Ve výrazech lze použít např. funkce IIf, Trim, HyperLinkPart, Left, Right. Součástí výrazu může být výsledek jiného výrazu v sestavě, který zastupuje jeho název. Textové řetězce můžeme ve výrazu slučovat pomocí operátoru &. Výraz začíná rovnítkem. Ve výrazu nemusíme zapisovat hranaté závorky zastupující ohraničení názvu polí, musíme však zapisovat uvozovky ohraničující konstantní texty. 6. Sestavu můžeme uložit do souboru ve formátu snp. Statický obraz sestavy potom lze prohlížet volně šiřitelnou aplikací Snapshot Viewer. 7. Obdobně jako pro formuláře můžeme pro přípravu sestavy použít šablonu. Šablonou je jedna ze sestav databáze. V nové sestavě se potom přebírá formátování výchozích prvků a některé vlastnosti sestavy šablony. 8. Sestavy s úzkým tělem lze vypisovat ve více sloupcích. Více sloupců je zobrazeno až v náhledu. Popisky v záhlaví stránky či sestavy jsou uvedeny jen pro první sloupec. 9. V rámci hlavní sestavy může být obsaženo několik podsestav, v nich se vypisují věty, které mají shodu v řídícím (v hlavní sestavě) a dceřiném (podsestava) propojovacím poli. 10. Tisk opakujících se stejných hodnot polí můžeme v sestavě potlačit prostřednictvím vlastnosti pole Skrýt duplikáty. 11. Do setavy je možné vložit propojený či vložený obrázek. 12. V sestavě můžeme počítat součty za sekce či za celou sestavu a podíly jednotlivých vět na součtech za sekce či za všechny věty. 13. Tisk adresních štítků podporuje Access průvodce štítky. Můžeme využít předvolené formáty nebo připravit formát vlastního štítku. 174 Sdílený přístup otevírání lze nastavit po klepnutí do tlačítka Office a Možnosti aplikace Access ve skupině Upřesnit v poli Výchozí režim otevření nebo individuálně při otevírání databáze.

153 Kapitola 7: Makra Makra Makro Akce dle zabezpečení Skupiny maker Podmínka akce Argumenty Spouštění maker Ukládání maker P72 Dotaz 7.1 Druhy a struktura maker Makro je prostředek, který automaticky vykoná předem definovanou operaci či celou řadu operací. Jednotlivé operace, které Access provádí v makru, se nazývajíc akce. Při tvorbě makra vybíráme akce ze seznamu použitelných akcí. Fungování akcí upřesňujeme prostřednictvím argumentů akcí. Dostupné akce lze z hlediska nároků na zabezpečení rozdělit na dva druhy: základní: 45 typů akcí, které nevyžadují kontrolu důvěryhodnosti, rozšířené: 25 typů akcí, které lze spouštět jen při vhodném nastavení maker, neboť provádějí operace, které by mohly ohrozit obsah databáze. Makro je objektem Accessu jako tabulky, dotazy, formuláře a sestavy. V jednom objektu (samostatně uváděném v navigačním podokně) může být obsaženo jedno makro nebo více maker. Objekt uváděný v navigačním podokně je potom skupinou maker, dílčí makra ve skupině mají svůj název. Při spouštění makra potom musíme uvést název objektu skupiny i název dílčího makra. Makro se skládá z jednotlivých akcí. Jednotlivé akce mohou být prováděny jen při splnění podmínky zadané výrazem. Podmínku lze snadno opakovat pro více akcí. Akce lze parametrizovat prostřednictvím argumentů. Jednotlivé typy mají různé argumenty. Hodnoty argumentů lze často vybírat z rozevíracích seznamů. Z hlediska spouštění makra lze makra rozdělit na: makra spouštěná přímo z navigačního podokna, makra spouštěná z jiných objektů (především formulářů a sestav) při zadané události (např. při klepnutí do tlačítka ve formuláři nebo při přechodu na další větu ve formuláři nebo při přechodu na tisk další věty v sestavě). Makro lze spustit: běžně bez krokování: Makro provádí akce v něm obsažené bez zastavování. s krokováním: Po každé akci se makro pozastaví, zobrazí se dialogové okno Krokovat makro, abychom mohli analyzovat výsledek jednotlivých akcí. Dále můžeme pokračovat krokováním nebo pokračováním bez krokování. Krokování můžeme zahájit také až z vybraného místa makra, když do makra zařadíme akci Krok. Makra mohou být uložena: jako objekty zobrazované v navigačním podokně, jako vnořené makro spouštěné při události v jiném objektu, makro je potom uložené přímo v tomto objektu Makro spustitelné samostatně Chceme vytvořit makro, které zobrazí ve formuláři licence fakturované odděleními vybranými v tabulce Oddělení_F. V případě, že pro vybraná oddělení žádné licence neexistují, chceme pouze zobrazit dialogové okno s hlášením. Nejdříve nachystáme podkladový dotaz, který vybere licence fakturované vybraným oddělením, a z něho vycházející formulář: Do tabulky Oddělení_F vložíme jedinou větu s hodnotou DIS. Nejprve připravíme dotaz: Podkladový dotaz vychází z tabulek Oddělení_F, Personal, Faktury, Licence, z nichž vybere:» z tabulky Personal: Jméno, Příjmení, 175 Různé způsoby uložení jsou analogické jako uložení dotazů. Např. podkladem formuláře může být dotaz samostatně uložený a zobrazený v navigačním podokně nebo dotaz bez názvu uložený přímo ve formuláři.

154 Kapitola 7: Makra 154 P72 Licence Akce Otevřít formulář P72 Makro Akce Najít Záznam Akce Přejít Na Ovládací Prvek» z tabulky Faktury: Faktura, Datum, IČ,» z tabulky Licence: Program, Sériové_číslo. Dotaz uložíme pod názvem P72 Dotaz. Na základě dotazu vytvoříme formulář: V navigačním podokně označíme klepnutím objekt P72 Dotaz. V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka 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. Formulář uložíme pod názvem P72 Licence. Připravíme jednoduché makro, které pouze otevře vytvořený formulář: V kartě VYTVOŘIT ve skupině Jiné klepneme do tlačítka Makro. Zobrazí se tabulka, do níž budeme zapisovat jednotlivé akce. Pro každou akci jsou přichystány tři sloupce: Do sloupce Akce vybereme akci z nabídky 45, popř. 70 akcí. Ve sloupci Argumenty budou zrekapitulovány argumenty akce, jedná se jen o rekapitulaci, editaci budeme provádět v dolním podokně Argumenty akce. Do sloupce Komentář můžeme zapsat dokumentační komentář. Další sloupce (Názvy maker, Podmínky) zobrazíme později. Akci lze do makra zadat několika způsoby: výběrem ze seznamu akcí, který rozbalíme klepnutím do tlačítka na konci pole akce, zapsáním jednoznačného počátku názvu akce, v případě některých akcí přímo vycházejících z jiných databázových objektů tažením objektu z navigačního podokna do pole Akce (s automatickým vyplněním některých argumentů). Rozsah nabídky akcí závisí na stavu tlačítka Zobrazit všechny akce ve skupině Zobrazit či skrýt v kartě NÁVRH. Prvotně se nabízí 45 typů akcí, při klepnutí do tlačítka se zobrazí nabídka 70 typů akcí včetně akcí, pro něž je nutné nastavit jiné zabezpečení maker. 176 V našem případě táhneme z navigačního podokna objekt P72 Licence do prvního řádku tabulky akcí. Nastaví se akce Otevřít formulář s argumenty (viz dolní podokno Argumenty akce): Název formuláře: P72 Licence Zobrazit: formulář Režim okna: normální Před spuštěním makro uložíme klepnutím do tlačítka Uložit v panelu nástrojů Rychlý přístup pod názvem P72 Makro. Z návrhu makra makro spustíme klepnutím do tlačítka Spustit ze skupiny Nástroje v kartě NÁVRH. (Z navigačního podokna můžeme makro spustit poklepáním na jeho název.) Otevře se formulář P72 Dotaz. Po otevření je kurzor v prvním sloupci Jméno. Zavřeme formulář. Budeme demonstrovat další typy akcí: Do návrhu makra doplníme akci Najít záznam. Akce provádí hledání v obsahu otevřené tabulky či výsledku dotazu obdobně jako, kdybychom hledali stisknutím kláves Ctrl F. Do argumentu Najít zapíšeme hodnotu Eva. Spustíme znovu makro. Access nás vyzve k uložení makra. Po uložení se otevře formulář na první větě s křestním jménem Eva. Chceme však hledat v poli Program: Proto doplníme do návrhu makra další akci. Novou akci chceme vložit před akci Najít. Klepnutím do voliče akce NajítZáznam (čtvereček na začátku řádku) označíme akci a stiskneme klávesu Insert. Doplníme akci PřejítNaOvládacíPrvek s jediným argumentem Název ovládacího prvku, vložíme do něj hodnotu Program. Hodnotu nelze vybrat z rozbalovacího seznamu. V akci NajítZáznam upravíme argument Najít z hodnoty Eva na FIN. Po spuštění makra se otevře formulář a kurzor se umístí do věty licence programu FIN. 176 Nastavení se provádí klepnutím do tlačítka Office a tlačítka Možnosti aplikace Access. V kartě Centrum zabezpečení klepneme do tlačítka Nastavení Centra zabezpečení a zde nastavení upravíme v kartě Nastavení maker.

155 Kapitola 7: Makra 155 Akce Najít Další Akce Zvukový Signál Podmínka akce Opakování podmínky (...) Akce Okno Se Zprávou Chceme vyhledat druhý výskyt licence FIN: Doplníme do makra na konec akci NajítDalší, která nemá žádný argument. Po spuštění makra se otevře formulář a kurzor se umístí do věty druhé licence programu FIN. Konec průběhu makra oznámíme zvukovým signálem: Doplníme do makra na konec akci ZvukovýSignál, která nemá žádný argument. Formulář chceme zobrazit pouze v případě, že výsledkem podkladového dotazu je jedna či více vět: Klepnutím do tlačítka Podmínky ve skupině Zobrazit či skrýt v kartě NÁVRH zobrazíme v tabulce akcí makra sloupec Podmínka. K první akci zapíšeme podmínku: DCount("[Program]";"P72 Dotaz")>0 Funkce DCount zjišťuje v datové sadě (dotazu) P72 Dotaz počet vět s vyplněnými poli Program. Akci provedeme pouze, když počet je větší než 0. Podmínka platí jen pro jednotlivou akci. Abychom nemuseli opisovat podmínku, zapíšeme v řádku dalších akcí s výjimkou poslední akce do sloupce Podmínka tři tečky (...), čímž opakujeme podmínku z předchozího řádku. Fungování makra vyzkoušíme variantně zadáním hodnoty ANA (nezobrazí se formulář, pouze zazní zvukový signál) a DIS (zobrazí se formulář) do tabulky Oddělení_F. Pro případ, že výsledkem podkladového dotazu není žádná věta, chceme zobrazit oznámení v dialogovém okně: Označíme první akci klepnutím do voliče řádku a zkopírujeme ji do schránky kombinací kláves Ctrl C. Klepneme kamkoliv v řádku první akce a vložíme akci ze schránky kombinací kláves Ctrl V. Upravíme podmínku na tvar: DCount("[Program]";"P72 Dotaz")=0 Změníme akci na OknoSeZprávou s argumenty: Zpráva: Vybraná oddělení nevystavila žádnou fakturu. Zvukový signál: ano Typ: informační zpráva Titulek: Upozornění Pro variantu hodnoty ANA v tabulce Oddělení_F se zobrazí dialogové okno dle nastavených argumentů. Typ informační zpráva se projevuje zobrazením ikony vedle zprávy (viz obr. 7-1). OBR. 7-1: DIALOGOVÉ OKNO UPOZORNĚNÍ Obě podmínky jsou podobné. V případě úpravy názvu dotazu nebo pole Program by se změny v makru neprojevily, museli bychom opravit obě podmínky. Počet výsledných vět dotazu proto uložíme do proměnné: Na začátek makra vložíme novou akci NastavitDočasnouProměnnou s argumenty: Název: Pocet Výraz: DCount("[Program]";"P72 Dotaz") Dočasných proměnných můžeme využít až 256, názvy si tvoříme sami. Na dočasné proměnné se odkazujeme ve tvaru [DočasnéProměnné]![Název proměnné], tj. podmínky upravíme na tvary: [DočasnéProměnné]![Pocet]=0 [DočasnéProměnné]![Pocet]>0

156 Kapitola 7: Makra 156 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ě NÁVRH ve skupině Formuláře klepneme do tlačítka 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 definujeme pro ni stejnou podmínku jako v předchozím řádku zadáním tří teček do sloupce Podmínka. Výsledné znění makra je uvedeno v obr OBR. 7-2: MAKRO P72 MAKRO Akce Zavřít Chceme usnadnit přepínání mezi formuláři. Do formulářů doplníme tlačítka přechodu na druhý formulář: Do formuláře P72 Oddělení doplníme tlačítko: V návrhovém zobrazení rozšíříme formulář na 10 cm. V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Tlačítko. Vymezíme tlačítko v Záhlaví formuláře napravo od popisku Oddělení_F v šířce 6 10 cm. Do tlačítka napíšeme text Formulář licencí. Upravíme tak formátovou vlastnost Titulek. V událostní vlastnosti Při klepnutí klepneme do rozbalovacího tlačítka a vybereme makro P72 Makro. Formulář uložíme se změnami. Také do formuláře P72 Licence doplníme tlačítko: V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Tlačítko. Vymezíme tlačítko v Záhlaví formuláře napravo od popisku P72 Dotaz v šířce 6 10 cm. Do tlačítka napíšeme text Výběr oddělení. Popisek P72 Dotaz změníme na Licence. V událostní vlastnosti Při klepnutí vytvořeného tlačítka klepneme do druhého tlačítka Tvůrce a vybereme Tvůrce maker. Vytvořili jsme tak vnořené makro, které je uloženo v objektu formuláře. Vnořené makro bude obsahovat dvě akce:» OtevřítFormulář s argumentem: Název formuláře: P72 Oddělení» Zavřít s argumenty: Typ objektu: formulář Název objektu: P72 Licence Uložit: výzva Tvorbu makra ukončíme klepnutím do tlačítka Zavřít ve skupině Zavřít v kartě NÁVRH. Potvrdíme uložení makra a aktualizování vlastnosti. Formulář uložíme se změnami. V tabulce Oddělení_F nachystáme jediné oddělení ANA a vyzkoušíme fungování formulářů: Poklepáním na název makra spustíme z navigačního podokna makro P72 Makro. Zobrazí se upozornění Vybraná oddělení nevystavila žádnou fakturu. Po klepnutí do tlačítko OK se otevře formulář Oddělení_F. Doplníme v něm druhé oddělení DIS. Přejdeme na další řádek, aby se druhá věta uložila. Klepneme do tlačítka Formulář licencí. Zobrazí se formulář P72 Licence, kurzor v něm je na větě s druhým výskytem programu FIN. Klepneme do tlačítka Výběr oddělení. Zavře se formulář P72 Licence a otevře se formulář P72 Oddělení.

157 Kapitola 7: Makra 157 P72 Sestava Akce Zrušit Událost Akce Otevřít Sestavu Krokování Doplníme do naší soustavy ještě sestavu vypisující přehled prodaných licencí: V navigačním podokně označíme dotaz P72 Dotaz. V kartě VYTVOŘIT ve skupině Sestavy klepneme do tlačítka Sestava. V zobrazení rozložení vytvořené sestavy zúžíme šířku sloupců. Upravíme popisek v záhlaví sestavy na Licence. Upravíme popisek posledního sloupce na Sériové číslo. V případě, že sestava neobsahuje žádnou větu, zobrazíme místo sestavy upozornění. V návrhovém zobrazení změníme vlastnost sestavy Při nepřítomnosti dat. Vložíme do ní vnořené makro se dvěma akcemi: OknoSeZprávou s argumenty:» Zpráva: V sestavě licencí nejsou žádná data.» Typ: kritický stav» Titulek: Upozornění ZrušitUdálost bez argumentů. Sestavu uložíme pod názvem P72 Sestava. Do formuláře P72 Oddělení doplníme pod tlačítko Formulář licencí nové tlačítko Sestava licencí, které bude obsahovat vnořené makro s jedinou akcí: OtevřítSestavu s argumenty:» Název sestavy: P72 Sestava» Zobrazit: sestava Formulář uložíme. Vyzkoušíme sestavu pro jediné oddělení ANA. Zobrazí se dialogové okno Upozornění. Po klepnutí do tlačítka OK se nezobrazí sestava. V případě, že makro nefunguje dle našich představ, je vhodné zobrazit výsledky jednotlivých akcí makra kroků makra. Krokování můžeme spustit: před spuštěním makra, v průběhu makra jako samostatnou akci. Provedeme krokování makra P72 Makro: Otevřeme makro v návrhu. V kartě NÁVRH klepneme ve skupině Nástroje do tlačítka Krok. Nastavení zapnutí krokování se pamatuje pro další spouštění všech maker. Makro spustíme klepnutím do tlačítka Spustit. 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-3). OBR. 7-3: DIALOGOVÉ OKNO KROKOVAT MAKRO Akce Krok Tlačítkem Krok pokračujeme krokováním dalších akcí. Tlačítkem Pokračovat pokračujeme na další akci v provádění akcí makra bez krokování. Tlačítkem Zastavit všechna makra můžeme makro předčasně ukončit. Spuštění krokování z makra budeme demonstrovat na vnořeném makru ve formuláři P72 Licence. Na začátek makra spouštěného tlačítkem Výběr oddělení doplníme akci Krok. Při spuštění makra klepnutím do tlačítka se spustí krokování. Akci z makra odstraníme. Dialogové okno Krokovat makro se zobrazuje také, když v průběhu provádění makra zastavíme makro kombinací kláves Ctrl Pause.

158 Kapitola 7: Makra 158 P73a Makro s podmínkou Where Podmínka Where P73b Makro s podmínkou Where P73b Karta Personal 7.3 Makro filtrující sestavu Úkolem druhého makra bude zobrazit v sestavě S65 Hlavní sestava pouze vybraného zaměstnance: Otevřeme návrh nového makra a do prvního řádku makra přesuneme z navigačního podokna sestavu P65 Hlavní sestava. V návrhu makra se vytvořila první akce OtevřítSestavu. Upravíme argumenty akce: Název sestavy: Ponecháme Accessem doplněnou hodnotu P65 Hlavní sestava. Zobrazit: Ponecháme hodnotu sestava, aby se sestava zobrazila v zobrazení sestavy. Název filtru: Zde bychom mohli zapsat název dříve připraveného dotazu, kterým se připravují data pro sestavu. Řádek ponecháme prázdný. 177 Podmínka Where: Můžeme omezit věty vypisované v sestavě, v našem případě zadáme: E_mail="Novak.Petr" Makro uložíme pod názvem P73a Makro s podmínkou Where. Po spuštění makra se zobrazí sestava P65 Hlavní sestava pouze s větou Petra Nováka. Chceme makro přiblížit uživateli: zobecněním zaměstnance vybíraného do sestavy, jednodušším spuštěním makra. Předpokládejme, že uživatel bude prohlížet zaměstnance ve formuláři P58e Karta Personal. Chceme v sestavě zobrazit zaměstnance právě zobrazeného ve formuláři: Vzhledem k očekávaným úpravám formuláře vytvoříme jeho kopii P73b Karta Personal. Nové makro bude velmi podobné předchozímu, vytvoříme proto kopii makra P73a Makro s podmínkou Where pod názvem P73b Makro s podmínkou Where. V makru P73b Makro s podmínkou Where upravíme pouze argument Podmínka Where jediné akce: [E_mail]=[Formuláře]![P73b Karta - Personal]![E_mail] Obecný odkaz na název ovládacího prvku formuláře má syntaxi: [Formuláře]![název formuláře]![název ovládacího prvku] Podmínkou zobrazujeme pouze věty sestavy, jejichž pole E_mail má hodnotu shodnou s hodnotou ovládacího prvku E_mail ve formuláři P73b Karta Personal, který musí být otevřený: Před testováním musíme proto otevřít formulář P73b Karta Personal. Zobrazíme v něm např. třetí větu Evy Benešové a spustíme makro. Zobrazí se sestava s daty o Evě Benešové. Aby uživatel nemusel otevírat formulář a potom hledat v okně databáze makro, spustíme makro ve formuláři. Impulsem ke spuštění makra nebude jeho spuštění v navigačním podokně, ale událost ve formuláři. Událostí bude v našem případě poklepání do těla formuláře: Ve vlastnostech těla formuláře P73b Karta Personal proto upravíme vlastnost Při poklepnutí. Na konci řádku klepneme do rozbalovacího tlačítka. Vybereme makro P73b Makro s podmínkou Where. Když nyní otevřeme formulář S73b Karta Personal, zobrazíme libovolnou větu a poklepeme na tělo formuláře, tj. do šedého podkladu formuláře, nikoliv karet ani řádku záložek karet, zobrazí se sestava se zaměstnancem právě zobrazeným ve formuláři. Po prohlédnutí či vytištění sestavy okno sestavy zavřeme. Ve formuláři můžeme nastavit jinou větu a opět poklepáním zobrazit její sestavu. Spouštění je natolik nenápadné, že by si uživatel nemusel možnosti zobrazit sestavu všimnout. Vložíme proto do formuláře tlačítko. V návrhu formuláře klepneme v kartě NÁVRH ve skupině Ovládací prvky do tlačítka Tlačítko. Tlačítko vymezíme napravo od pole E_mail v šířce 6 9 cm. Titulek tlačítka změníme na Sestava. Text tlačítka je vzhledem k dřívějšímu vytvoření sestavy průvodcem světle modrou barvou. V kartě NÁVRH ve skupině Písmo klepneme do tlačítka Barva písma a vybereme Automaticky. Do událostní vlastnosti tlačítka Při klepnutí vybereme P73b Makro s podmínkou Where. 177 Mohli bychom připravit dotaz vycházející z tabulky Personal, v němž vybereme pole Oddělení s kritériem ANA.

159 Kapitola 7: Makra 159 Makro ve formuláři 7.4 Makro ve formuláři Makro může upravovat vlastnosti ovládacích prvků ve formulářích či sestavách. Před dalšími úpravami zkopírujeme formulář P53 Podniky Identifikace jako nový P74a Podniky Identifikace. Připravíme makro, které v nově vytvořeném formuláři zobrazí pole pro zobrazení druhého (popř. třetího,, šestého) NACE jen v případě, že je již vyplněn první (popř. druhý,, pátý) NACE (viz obr. 7-4). OBR. 7-4: MAKRO P74A MAKRO VE FORMULÁŘI P74a Makro ve formuláři Akce Nastavit Vlastnost Nejprve vytvoříme makro: V kartě VYTVOŘIT ve skupině Jiné klepneme do tlačítka Makro. Zobrazíme sloupec Podmínka klepnutím do tlačítka Podmínky ve skupině Zobrazit či skrýt v kartě NÁVRH. Zapíšeme první operaci v makru, která v případě, že je nevyplněné pole NACE1 nezobrazí pole NACE2 ve formuláři. V podmínce nemusíme zapisovat název pole do hranatých závorek. Akce NastavitVlastnost umožňuje změnit hodnotu vlastnosti vybraného ovládacího prvku. Do argumentu Název ovládacího prvku zapíšeme název prvku, jehož vlastnost budeme měnit. Do argumentu Vlastnost vybereme měněnou vlastnost. Nabízí se 10 vlastností:» Povoleno: nastavení vlastnosti Zpřístupnit (možné hodnoty 0 = ne, -1 = ano),» Viditelné: nastavení vlastnosti Zobrazit (možné hodnoty 0, -1),» Uzamčeno: nastavení vlastnosti Uzamknout (možné hodnoty 0, - 1),» Vlevo: nastavení vlastnosti Vlevo, tj. vzdálenost ovládacího prvku od levého kraje (do hodnoty se zadává číslo),» Nahoře: nastavení vlastnosti Nahoře, tj. vzdálenost ovládacího prvku od horního kraje (do hodnoty se zadává číslo),» Šířka: nastavení vlastnosti Šířka, tj. šířka ovládacího prvku (do hodnoty se zadává číslo),» Výška: nastavení vlastnosti Výška, tj. výška ovládacího prvku (do hodnoty se zadává číslo),» Barva popředí: nastavení vlastnosti Barva popředí (do hodnoty se zadává číslo barvy v desítkové soustavě),» Barva pozadí: nastavení vlastnosti Barva pozadí (do hodnoty se zadává číslo barvy v desítkové soustavě),» Titulek: nastavení vlastnosti Titulek možné pouze pro popisky (do hodnoty se zadává libovolný text). V našem případě vybereme vlastnost Viditelné, neboť chceme ovlivnit zobrazování vybraného pole. Do argumentu Hodnota zapíšeme 0, která zastupuje hodnotu Ne (False). Komentář nemusíme vyplňovat. V prvním řádku makra jsme řešili větu, v níž NACE1 je prázdné. Přechodem na větu s vyplněným NACE1 by však zůstal nezobrazen ovládací prvek NACE2. Musíme proto doplnit opačný případ:

160 Kapitola 7: Makra 160 P74a Podniky Identifikace Událostní vlastnosti Vlastnost Při události Current Vlastnost Při ztrátě fokusu P74b Personal Identifikace Klepnutím do voliče řádku označíme první řádek. Kombinací kláves Ctrl C zkopírujeme řádek do schránky. Klepneme kamkoliv do druhého řádku a kombinací Ctrl V vložíme obsah schránky. Upravíme podmínku, argument akce Hodnota a komentář. Další dvojice operací budou analogické pro nezobrazení či zobrazení NACE3, NACE4, NACE5, NACE6. Zkopírujeme pod sebe čtyřikrát dvojici prvních dvou řádků a upravíme je dle obr Makro uložíme pod názvem P74a Makro ve formuláři a zavřeme jeho návrh. Makro chceme spustit: při otevírání formuláře, při přechodu na jinou větu. Spuštění makra v průběhu práce s formulářem zajišťují tzv. událostní vlastnosti. S vlastnostmi Při poklepnutí a Při klepnutí už jsme se setkali v kap Událostní vlastnosti se vztahují k jednotlivým objektům (např. můžeme makro spustit při změně hodnoty zadávané v některém poli) nebo k celému formuláři. Zobrazíme vlastnosti formuláře. Klepneme do záložky Událostní. Základní událostní vlastností formuláře je vlastnost Při události Current. Zde zadaná událost se provede, když otevřeme formulář nebo přejdeme na novou větu. Událostí může být makro nebo modul 178. V našem případě chceme připojit jako událost makro. Klepneme do rozbalovacího tlačítka na konci řádku vlastnosti Při události Current a ze seznamu vybereme makro P74a Makro ve formuláři. Ve formulářovém zobrazení nebo zobrazení rozložení zkontrolujeme fungování makra. Pro NACE se nabízí možnost doplnit vždy jen jednu NACE tak, abychom nevynechali např. prázdnou NACE3 a nezadali NACE4. Access nyní zobrazuje pouze jedno volné pole NACE. Když je však vyplníme, další volné pole se zobrazí až při přechodu na další větu a po přechodu zpět na původní větu. V druhé větě přidáme NACE4 o hodnotě V rámci stejné věty se nezobrazí NACE5. V návrhu formuláře vyplníme pro pole NACE2, NACE3,, NACE6 vlastnost Při ztrátě fokusu výběrem makra P74a Makro ve formuláři. Vždy, když opustíme pole NACE2 a další přesunem kurzoru do jiného pole (klávesou Enter, Tab či myší), spustí se makro. Nyní již při přidání dalšího NACE se i v rámci stejné věty zobrazí pole pro další NACE. Obdobně se potlačí zobrazení prázdného NACE při smazání obsahu předchozího NACE. Do formuláře pro editaci dat o zaměstnanci doplníme popisek, který bude textově vyjadřovat výši úvazku zaměstnance: Formulář P52a Personal Identifikace zkopírujeme pod názvem P74b Personal Identifikace. Do formuláře doplníme kopií popisku Úvazek nový popisek, do nějž vložíme text Rozsah. Popisek umístíme napravo od svázaného ovládacího prvku Úvazek. Do jiné vlastnosti Název nového popisku zadáme hodnotu Rozsah_úvazku. Pro vlastnost formuláře Při události Current vytvoříme vnořené makro klepnutím do tlačítka Tvůrce a výběrem Tvůrce maker. V novém makru zobrazíme sloupec Podmínka. Do makra doplníme operace dle obr OBR. 7-5: VNOŘENÉ MAKRO VE FORMULÁŘI Popisek Rozsah_úvazku je pro všechny úvazky vyplněn hodnotou jiný černě. Pro poloviční a plné úvazky je potom změněn text (poloviční či plný) a barva (pro poloviční úvazek červená, pro plný úvazek modrá barva). 178 Výklad modulů je zařazen do kap. 8.

161 Kapitola 7: Makra 161 Makro v sestavě P75a Makro v těle sestavy 7.5 Makro v sestavě Makro můžeme spouštět i v sestavě. Můžeme tak při tisku modifikovat vlastnosti některých objektů (nejčastěji barvu popředí) vybrané sekce (nejčastěji těla sestavy). Vrátíme se k sestavě P66 Telefonní seznam, kterou zkopírujeme do sestavy P75a Makro v těle sestavy. Připravíme makro, které vypíše příjmení mužů modře, příjmení žen červeně: Otevřeme sestavu P75a Makro v těle sestavy v návrhovém zobrazení a přidáme nové pole Pohlaví, které využijeme v podmínce, avšak nechceme je zobrazovat v sestavě: Ze seznamu polí všech tabulek přesuneme z tabulky Personal pole Pohlaví do tabulkového rozložení v těle. Pole Pohlaví přesuneme na konec, snížíme jeho výšku a výšku celého těla sestavy. Zúžíme šířku pole Pohlaví na 1 cm a v jeho formátové vlastnosti Zobrazit zadáme hodnotu ne. Minimalizujeme šířku sestavy. Také pro popisek Pohlaví v záhlaví stránky zadáme do formátové vlastnosti Zobrazit hodnotu ne. V kartě VZHLED STRÁNKY klepneme ve skupině Rozložení strá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 vnořené makro dle obr Druhý řádek makra zkopírujeme z prvního řádku a upravíme podmínku a barvu. OBR. 7-6: MAKRO VNOŘENÉ V SESTAVĚ P75A MAKRO V TĚLE SESTAVY P75b Makro v záhlaví skupiny Makro se projevuje pouze v náhledu, nikoliv v zobrazení sestavy či zobrazení rozložení. Příjmení mužů se v náhledu vypisují modře, příjmení žen se vypisují červeně. V návrhu sestavy ještě změníme formátovou vlastnost sestavy Výchozí zobrazení na hodnotu Náhled tisku, aby se makro projevovalo i při poklepání na název sestavy v navigačním podokně. Makro spouštěné při formátování můžeme aplikovat i v jiné sekci sestavy, např. v záhlaví skupiny. Vrátíme se k sestavě P68 Podíly, kterou zkopírujeme do sestavy P75b Makro v záhlaví skupiny. Připravíme makro, které vypíše názvy sekcí NACE červeně v případě, že odběratele ze sekce tvoří více než 10 % celkových tržeb firmy: Otevřeme sestavu P75b Makro v záhlaví skupiny v návrhovém zobrazení. V sekci Zápatí Sekce_s upravíme jinou vlastnost Název součtu v posledním sloupci na hodnotu Součet_sekce. Do událostní vlastnosti Při formátování sekce Záhlaví Sekce_s vložíme pomocí tvůrce maker vnořené makro dle obr Druhý řádek makra zkopírujeme z prvního řádku a upravíme podmínku a barvu. Druhý řádek je nutný, aby se po prvním splnění podmínky nevypisovaly červeně názvy všech sekcí. OBR. 7-7: MAKRO VNOŘENÉ V SESTAVĚ P75B MAKRO V ZÁHLAVÍ SKUPINY V sekci Záhlaví_Sekce se odkazujeme v podmínce makra spouštěného při formátování na hodnotu ovládacího prvku z jiné sekce Zápatí Sekce_s. Názvy významných sekcí s tržbami zastoupenými více než 10 % vypisujeme červeně. V návrhu sestavy ještě změníme formátovou vlastnost sestavy Výchozí zobrazení na hodnotu Náhled tisku, aby se makro projevovalo i při poklepání na název sestavy v navigačním podokně.

162 Kapitola 7: Makra 162 Skupina maker P76 Menu 7.6 Skupina maker I velmi stručné makro může uživateli usnadnit práci. Za účelem přehlednosti seznamu maker je někdy vhodné makra vnořovat do jiných objektů nebo seskupit několik vzájemně souvisejících maker do jednoho makra ve formě skupiny maker. Skupinu maker vytvoříme pro otevírání formulářů a sestav z kap. 5 a 6: Otevřeme nové makro klepnutím do tlačítka Makro ve skupině Jiné v kartě VYTVOŘIT. Zobrazíme sloupec s názvy maker klepnutím do tlačítka Názvy maker ve skupině Zobrazit či skrýt v kartě NÁVRH. Vytvoříme makro dle obr Práci si usnadňujeme tažením objektů z navigačního podokna do makra. V našem případě jsou všechna dílčí makra jednořádková. Makro uložíme pod názvem P76 Menu. OBR. 7-8: MAKRO FORMULÁŘ P76 MENU P76 Menu Makra budeme spouštět z jednoduchého formuláře, pro každé dílčí makro je v něm samostatné tlačítko (viz obr. 7-9): OBR. 7-9: FORMULÁŘ P76 MENU Klepneme do tlačítka Prázdný formulář ve skupině Formuláře v kartě VYTVOŘIT. V návrhovém zobrazení vložíme klepnutím do tlačítka Tlačítko ve skupině Ovládací prvky v kartě NÁVRH první tlačítko dle obr Poklepáním na tlačítko upravíme formátovou vlastnost Titulek na hodnotu Personal karta. Označíme tlačítko. Zkopírujeme je kombinací kláves Ctrl C do schránky a vložíme do formuláře kombinací Ctrl V. Vhodně upravíme polohu tlačítka. Opakovaným stisknutím kombinací kláves Ctrl V vložíme ještě dvakrát tlačítko. Umístí se na vhodné místo. Obdobně přichystáme druhý sloupec tlačítek a změníme titulky tlačítek. V událostní vlastnosti Při klepnutí přiřadíme jednotlivým tlačítkům makro. V seznamu maker jsou dílčí makra ve tvaru název_skupiny.název_dílčího_makra. Zmenšíme výšku těla a šířku formuláře. Formulář uložíme pod názvem P76 Menu. Pokud formulář P76 Menu otevřeme makrem s názvem Autoexec, formulář se automaticky otevře po otevření databáze. Shrnutí 1. Makro automaticky provádí zadané akce. Akce jsou upřesňovány argumenty. Provedení akce může být podmíněno podmínkou. 2. Stručná makra můžeme pro přehlednost spojit do skupiny maker. 3. Akce vybíráme z nabídky akcí. Některé akce můžeme vkládat do makra tažením objektu (formuláře, sestavy) z navigačního podokna. 4. Akce můžeme doplnit slovním komentářem. 5. Před spuštěním musíme makro uložit. 6. Ladění maker usnadňuje krokování postupu makra. 7. Makro lze spustit ze seznamu maker, z formuláře (např. automaticky při otevření formuláře či přechodu na jinou větu) nebo sestavy (např. před tiskem každé věty). 8. Makra mohou měnit vlastnosti ovládacích prvků ve formulářích a v sestavách.

163 Kapitola 8: Moduly Moduly Visual Basic for Applications Moduly Procedury Deklarace Příklady použití VBA 8.1 Druhy modulů Pro řešení složitějších aplikací nabízí Access programovací jazyk Visual Basic for Applications (VBA). VBA je strukturovaný programovací jazyk pro tvorbu aplikací v prostředí všech programů kancelářského balíku Microsoft Office. VBA je zjednodušenou verzí samostatného programovacího jazyka Visual Basic. Text programu (kód) se ukládá v modulech. Moduly mohou být součástí formulářů či sestav (lokální moduly), mohou být uloženy také samostatně (globální moduly), aby byly využitelné ve více objektech (formulářích, sestavách, makrech, jiných modulech apod.). Zápis kódů v modulech je členěn do procedur. Existují dva druhy procedur: funkce (Function): Navrací výstupní hodnoty vypočítané na základě vstupních hodnot (argumentů). podprogramy (Sub): Provádí opakované činnosti na základě vstupních argumentů. Na rozdíl od funkcí nemohou být použity ve výrazech, protože nevrací výstupní hodnotu. V kódu je volání podprogramu zastoupeno samostatným příkazem. Kromě procedur obsahuje modul v úvodu deklarace. Deklarace obsahují nastavení platná pro modul a případně deklarace jednotlivých proměnných používaných v modulu. V proměnné je pod jejím názvem uložena hodnota, která se může měnit. Typ proměnné může být v modulu specifikován dvěma způsoby: deklarací proměnné V případě, že použijeme nedeklarovanou proměnnou, Access ohlásí chybu. Vyhneme se tak překlepům v názvech proměnných. Nutnost deklarovat proměnné zajistíme v úvodu modulu příkazem Option Explicit. prvním použitím proměnné Nemusíme deklarovat proměnné. V úvodu modulu neuvedeme příkaz Option Explicit. VBA se používá pro: Tvorbu uživatelských funkcí, které lze využívat ve všech objektech Accessu, tj. také v dotazech, formulářích a sestavách. V našem případě připravíme funkce: pro výpis celého jména z titulů, křestního jména a příjmení (viz kap. 8.2), pro konverzi textu s diakritikou na text bez háčků a čárek (viz kap. 8.3), pro kontrolu správnosti rodného čísla (viz kap. 8.4), pro kontrolu správnosti čísla účtu (viz kap. 8.5). Lepší ošetření možných chybových stavů a přesnější definování chybových zpráv. Programování složitějších postupů, které již nelze zapsat pomocí maker. V makrech není možné nebo velmi těžkopádné zejména provádění opakovaných činností. Práci s jednotlivými větami. VBA umožňuje procházet jednotlivé věty a zpracovávat je či provádět operace s daty z různých vět. V našem případě vytvoříme podprogram: pro výpočet odstupu jednotlivých služebních cest stejného zaměstnance (viz kap. 8.7). Vytváření uživatelsky přívětivých aplikací, kdy složitější postupy mohou být naprogramovány a realizovány klepnutím do tlačítka či jinou událostí, např. otevřením formuláře či sestavy. V našem případě vytvoříme globální podprogram: pro formátování čísla účtu dle výsledku kontroly jeho správnosti ve formuláři i v sestavě (viz kap. 8.8). 8.2 Funkce výpisu celého jména Připravme svou první proceduru. Access nabízí širokou nabídku vestavěných funkcí, kterou můžeme doplnit vlastními funkcemi. Připravíme funkci, jejímiž vstupními argumenty jsou titul před jménem, křestní jméno, příjmení, titul za jménem. Funkce bude vracet celé jméno včetně titulů: V kartě VYTVOŘIT ve skupině Jiné klepneme do spodní části tlačítka Makro a vybereme MODUL. V novém okně se otevře samostatná aplikace Microsoft Visual Basic.

164 Kapitola 8: Moduly 164 Aplikace VBA nevyužívá uživatelské rozhraní Microsoft Office Fluent. Editor Visual Basicu se skládá z několika částí zobrazovaných v samostatných oknech 179 (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 připravil Access příkaz Visual Basicu Option Compare, který upřesňuje způsob porovnávání řetězců. 180 V případě, že bychom chtěli vyžadovat deklarování proměnných před jejich použitím, dopsali bychom příkaz Option Explicit. 181 Doplníme další text kódu: Zadáme z menu VBA příkaz INSERT, PROCEDURE nebo klepneme do tlačítka Insert Procedure (vybereme z nabídky tří tlačítek, která se nabízí při klepnutí do šipky napravo od druhého tlačítka panelu nástrojů). V dialogovém okně Add Procedure (viz obr. 8-2) zadáme název funkce CeléJméno 182, v poli Type vybereme Function, zbývající pole ponecháme beze změny. 179 Zobrazování oken lze zadat příkazy: VIEW, PROJECT EXPLORER (prohlížeč projektu), VIEW, PROPERTIES WINDOW (okno vlastností), VIEW, CODE (okno kódu), VIEW, IMMEDIATE WINDOW (okamžité okno), VIEW, LOCALS WINDOW (okno místních položek), VIEW, WATCH WINDOW (okno kukátek). 180 Příkaz upřesňuje, kdy je jeden řetězec větší nebo roven jinému řetězci: Option Compare Text: při porovnání nejsou rozlišována velká a malá písmena, Option Compare Binary: při porovnání jsou rozlišována velká a malá písmena, Option Compare Database: metoda porovnávání je nastavena aktuální databází. 181 Příkazem z menu editoru VBA Tools, Options můžeme v kartě Editor zaškrtnutím pole Require Variable Declaration zajistit, aby VBA při vytvoření nového modul vložil také příkaz Option Explicit. 182 V ukázkové databázi Encian již je funkce přichystána, proto ji nazveme PokusCeléJméno.

165 Kapitola 8: Moduly 165 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(Trim(Titul_před & " " & Jméno) & " " & Příjmení) & Titul_za Přiřazení hodnoty jsme provedli příkazem, který proměnné přiřazuje hodnotu danou výrazem. Funkce Trim zajišťuje, aby se mezera mezi titulem a jménem či jménem a příjmením nevypisovala, když jsou titul či jméno nevyplněné. Při psaní funkce Trim si všimneme, že se pod kurzorem objeví nápověda syntaxe funkce Trim(String). Před a za operátorem & musíme zapsat mezeru. Příkazy procedury začínáme mezerou, abychom naznačili strukturu procedury. (Všechny příkazy mezi Public Function a End Function jsou odraženy mezerou od kraje.) Za deklarační příkaz doplníme komentář 'Pro řetězce se použije porovnávání nastavené v databázi. Komentáře se od příkazu oddělují apostrofem. Komentáře mohou tvořit samostatný řádek, který dokumentuje proceduru. V kódu procedury můžeme zařadit pro přehlednost volné řádky. Visual Basic doplňuje do příkazů vhodně mezery, popř. odstraňuje zbytečné. Modře zvýrazňuje klíčová slova, zeleně zobrazuje komentáře. 183 Pro přehlednost Visual Basic zobrazuje před začátkem procedury vodorovnou čáru 184. Uložíme vytvořený modul (či všechny moduly) příkazem FILE, SAVE ENCIAN nebo klávesami Ctrl S nebo klepnutím do tlačítka Save. Zobrazí se dialogové okno pro zadání názvu modulu s připraveným názvem Module1. Název přepíšeme na P81 Vlastní funkce. 185 Při pozdějších úpravách se již nebude Access na název modulu ptát a bude přepisovat původní modul. Kombinací kláves levý Alt F11 se vrátíme do Accessu. Stejnou kombinací se později můžeme vrátit do okna Visual Basicu. Moduly můžeme zaznamenat kdykoliv při jejich tvorbě příkazem z menu FILE, SAVE nebo kombinací kláves Ctrl S nebo klepnutím do tlačítka Save. 186 Moduly na rozdíl od jiných objektů nemůžeme uložit pod jiným názvem. Můžeme je však přejmenovat stejným způsobem jako ostatní objekty. 183 Zadáme-li z menu příkaz TOOL, OPTIONS, můžeme v kartě Editor Format upravit řadu parametrů zobrazování kódu procedur v modulech. 184 Příkazem z menu TOOLS, OPTIONS můžeme v kartě Editor zrušením zaškrtnutí pole Procedure Separator potlačit zobrazování čar před začátky procedur. 185 Modul P81 Vlastní funkce je v ukázkové databázi Encian připraven. Připravujte proto svůj modul 81 Vlastní funkce. Funkce se nesmí ve dvou modulech jmenovat stejně. Upravujte proto i názvy funkcí, např. PokusCeléJméno. Název funkce i procedury se nesmí shodovat s názvem modulu. 186 Aby se nově editovaná verze procedur promítla do práce Accessu, nemusíme moduly ukládat. Uložení je však nutné před ukončení práce s databází, neboť moduly se ukládají do souboru databáze.

166 Kapitola 8: Moduly 166 P82 CeléJméno Ověříme fungování připravené funkce: Připravíme jednoduchý dotaz vycházející z tabulky Personal. Vypíšeme příjmení, jméno a výraz: 187 Celé jméno: CeléJméno(Titul1; Jméno; Příjmení; Titul2) Ve Visual Basicu jsme argumenty funkce oddělovali čárkou, v aplikaci funkce v dotazu, formuláři či sestavě se argumenty oddělují středníkem. Spuštěním dotazu ověříme fungování funkce. Dotaz uložíme pod názvem P82 CeléJméno. Obdobně lze funkci použít ve formulářích a sestavách. 8.3 Funkce konverze textu do textu bez háčků a čárek Dále připravíme funkci, která zbaví řetězec háčků a čárek a první písmeno povýší na velké: V navigačním podokně poklepeme na modul P81 Vlastní funkce. 188 Klepnutím do tlačítka Insert Procedure vložíme další funkci tentokrát s názvem BezDiakritiky 189. Názvy funkcí nesmí obsahovat mezery. Funkce má jediný argument Vstup. Výsledný tvar modulu je uveden v obr Funkce CeléJméno Funkce BezDiakritiky OBR. 8-3: MODUL P81 VLASTNÍ FUNKCE Option Compare Database 'Pro řetězce se použije porovnávání nastavené v databázi 'Výpis celého jména Public Function CeléJméno(Titul_před, Jméno, Příjmení, Titul_za) CeléJméno = Trim(Trim([Titul_před] & " " & [Jméno]) & " " & [Příjmení]) & [Titul_za] End Function 'Konverze textu do textu bez háčků a čárek Public Function BezDiakritiky(Vstup) Cesky = "áčďéěíĺľňóřšťúůýžäëöü" ASCII = "acdeeillnorstuuyzaeou" Vystup = Vstup For K = 1 To Len(Vystup) For J = 1 To Len(Cesky) If Mid(Vystup, K, 1) = Mid(Cesky, J, 1) Then P = Mid(ASCII, J, 1) If K = 1 Then P = UCase(P) Vystup = Left(Vystup, K - 1) & P & Right(Vystup, Len(Vystup) - K) End If Next Next BezDiakritiky = Vystup End Function Nejprve si vyložme způsob odstranění háčků a čárek: Vstupní argument funkce je nazván Vstup. V pomocné proměnné Cesky připravíme formou řetězce všechna písmena s háčky a čárkami. V pomocné proměnné ASCII budou stejná písmena ve stejném pořadí bez háčků a čárek. Do proměnné Vystup zkopírujeme hodnotu proměnné Vstup. Po jednotlivých znacích procházíme proměnnou Vystup. Každý jednotlivý znak hledáme v proměnné Cesky. Když se shoduje znak z proměnné Vystup se znakem v proměnné Cesky, nahradíme znak z proměnné Vystup znakem z proměnné ASCII ze stejné pozice, na níž jsme jej našli v proměnné Cesky. 187 Funkci ve výrazu můžeme připravit Tvůrcem výrazů. V levém dolní části okna poklepeme na řádek Funkce a v rámci funkcí klepneme na řádek Encian. V prostřední části okna se zobrazí seznam modulů obsahujících funkce. Klepneme na název modulu P81 Vlastní funkce. V pravé části okna se zobrazí seznam funkcí modulu, tj. zatím pouze funkce CeléJméno. Poklepáním funkci vložíme do výrazu včetně seznamu argumentů. 188 Modul můžeme v rámci zobrazení kategorie Struktura publikace tažením přesunout ze skupiny Nepřiřazené objekty do skupiny 8 Moduly. 189 V ukázkové databázi Encian již je funkce přichystána, proto ji nazveme PokusBezDiakritiky.

167 Kapitola 8: Moduly 167 For Next If Then Else P83 BezDiakritiky DUV Na závěr proměnnou Vystup uložíme do proměnné s názvem funkce, tj. BezDiakritiky. Před začátek procedury doplníme komentář s popisem funkce. Obdobně doplníme komentář pro funkci CeléJméno. Písmeno ĺ se zapisuje jako l s čárkou, ľ se zapisuje jako písmeno l s háčkem. 190 V proceduře jsou použity některé funkce Accessu: Len(proměnná): vrací délku textového řetězce. Mid(proměnná;začátek;délka): vrací část řetězce od zadané pozice o zadaném počtu znaků. Ucase(proměnná): vrací proměnnou po transformaci jejich písmen na velká. Left(proměnná;délka): vrací levou část řetězce o zadaném počtu znaků. Right(proměnná;délka): vrací pravou část řetězce o zadaném počtu znaků. V proceduře jsou použity dva příkazy pro řízení běhu programu. Příkaz For je příkazem cyklu 191, umožňuje opakovat skupinu příkazů. Cyklus For je cyklus s čítačem. Začíná klíčovým slovem For a provádí pro stanovený počet opakování skupinu příkazů ukončených klíčovým slovem Next. Počet provedených opakování je zaznamenáván v čítači. Obecný zápis příkazu (syntaxe) 192 : For čítač = začátek To konec [Step krok] [příkazy] [Exit For] [příkazy] Next [čítač] Za klíčovým slovem Step můžeme uvést krok zvyšování čítače. Neuvedeme-li krok, bude roven jedné. Příkaz Exit For umožňuje předčasně ukončit cyklus, i když nebyla dosažena koncová hodnota čítače. Použití proměnné čítač v příkazu Next není povinné, pouze může zpřehlednit program, zejména v případě vnořených cyklů. Podmíněný příkaz If umožňuje provést některý příkaz (popř. skupiny příkazů) jen při splnění (popř. nesplnění) podmínky. Syntaxe: jednořádková verze 193 : If podmínka Then [příkaz] [Else příkaz] víceřádková verze: If podmínka Then [příkazy] [ElseIf podmínka Then [elseifpříkazy]] [Else [elsepříkazy]] End If Část ElseIf se používá zřídka, umožňuje zadat alternativní příkazy. Ověříme fungování připravené funkce: Připravíme jednoduchý dotaz vycházející z tabulky Personal. Vypíšeme pole Příjmení, Jméno, E_mail a výraz: E_mail2: BezDiakritiky([Příjmení]) & "." & BezDiakritiky([Jméno]) Spuštěním dotazu ověříme fungování funkce. Dotaz uložíme pod názvem P83 BezDiakritiky. Funkcí jsme schopni automaticky vytvořit pole E_mail v tabulce Personal. Funkci použijeme ve formuláři s lokálním procedurou výpočtu ve větě (viz kap. 8.6). 8.4 Funkce kontroly rodného čísla V databázi Důvěrné (DUV), kterou jsme vytvořili v kap. 3.2, doplníme do tabulky Děti další pole Rc s rodným číslem (pole typu Číslo s velikostí pole dvojitá přesnost) a zapíšeme hodnoty: 190 Abychom nemuseli přepínat jazyk klávesnice, je vhodné užívat kombinace pravé klávesy Alt a dalších kláves pro psaní některých znaků: 1/~, q/\, f/[, g/], :/$, x/#, c/&, b/{, n/}, </<, >/>,?/*. 191 Příkaz cyklu obsahuje několik dílčích příkazů řádků. 192 V syntaxi budeme klíčová slova zvýrazňovat tučným písmem, proměnné části kurzívou. Nepovinné části budou uvedeny v hranatých závorkách. 193 Na jeden řádek můžeme napsat více příkazů oddělených dvojtečkou.

168 Kapitola 8: Moduly 168 Funkce KontrolaRc P84 KontrolaRc Erika: , Lukáš: Rodné číslo je správné, když je dělitelné Do modulu Vlastní funkce připravíme funkci KontrolaRc (viz obr. 8-4): OBR. 8-4: FUNKCE KONTROLARC V DATABÁZI DUV Option Compare Database 'Kontrola rodného čísla na dělitelnost 11 Public Function KontrolaRc(Rc) KontrolaRc = IIf(Rc = Int(Rc / 11) * 11, "ano", "ne") End Function Funkce má jediný vstupní argument Rc. Funkce Int vypočte celou část z jedné jedenáctiny Rc. Pokud je rodné číslo dělitelné jedenácti, potom je rovno celé části jeho jedenáctiny vynásobené jedenácti. Ověříme fungování připravené funkce: Připravíme jednoduchý dotaz vycházející z tabulky Děti. Vypíšeme pole Jméno, Rc a výraz Kontrola: KontrolaRc([Rc]) Spuštěním dotazu ověříme fungování funkce. Výsledkem je dynamická sada, můžeme proto vyzkoušet zadání špatného rodného čísla např. snížením hodnoty o 1. Dotaz uložíme pod názvem P84 KontrolaRc. 8.5 Funkce kontroly čísla účtu V databázi Encian chceme provést kontrolu čísel účtů odběratelů. Pravidla pro kontrolu čísla bankovního účtu: První a druhá část čísla účtu jsou zajištěny algoritmem modulo 11. Váhy jednotlivých číslic účtu jsou (v případě kratšího čísla zprava): pro první část čísla účtu (předčíslí účtu): 10, 5, 8, 4, 2, 1, pro druhou část čísla účtu (číslo účtu): 6, 3, 7, 9, 10, 5, 8, 4, 2, 1. Kontrola platnosti první a druhé části čísla účtu se provede tak, že jednotlivé číslice se vynásobí příslušnou váhou, výsledky násobení se sečtou a podělí 11. Zbytek po dělení musí být roven 0. Příklad kontroly: /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= =176, 11*16 = 176 Všichni odběratelé mají účet bez předčíslí. Vytvoříme tedy kontrolu pro druhou část čísla účtu (viz obr. 8-5): OBR. 8-5: FUNKCE KONTROLAUCTU V DATABÁZI ENCIAN Funkce KontrolaUctu Public Function KontrolaUctu(Ucet) 'Výpočet váženého součtu číslic účtu a dělitelnosti jedenácti Soucet = 0 Soucet = Soucet + Val(Mid(Ucet, 10, 1)) * 1 Soucet = Soucet + Val(Mid(Ucet, 9, 1)) * 2 Soucet = Soucet + Val(Mid(Ucet, 8, 1)) * 4 Soucet = Soucet + Val(Mid(Ucet, 7, 1)) * 8 Soucet = Soucet + Val(Mid(Ucet, 6, 1)) * 5 Soucet = Soucet + Val(Mid(Ucet, 5, 1)) * 10 Soucet = Soucet + Val(Mid(Ucet, 4, 1)) * 9 Soucet = Soucet + Val(Mid(Ucet, 3, 1)) * Platí pro rodná čísla přidělovaná po Dřívější rodná čísla nemají doplněnu poslední kontrolní číslici.

169 Kapitola 8: Moduly 169 Soucet = Soucet + Val(Mid(Ucet, 2, 1)) * 3 Soucet = Soucet + Val(Mid(Ucet, 1, 1)) * 6 KontrolaUctu = IIf(Soucet = Int(Soucet / 11) * 11, "ano", "ne") End Function P85 KontrolaUctu Funkce má jediný vstupní argument Ucet. Funkce Mid vybírá část textu. Funkce Val převede text na číslo. Číslo účtu bude vždy deseticiferné bez předčíslí. Ověříme fungování připravené funkce: Připravíme jednoduchý dotaz vycházející z tabulky Podniky. Vypíšeme pole Název_podniku, Bankovní_účet a výraz Kontrola: KontrolaUctu([Bankovní_účet]) Spuštěním dotazu ověříme fungování funkce. Výsledkem je dynamická sada, můžeme proto vyzkoušet zadání špatného čísla účtu např. snížením hodnoty o 1. Dotaz uložíme pod názvem P85 KontrolaUctu. V databázi Banka bude kontrola komplikovanější. Pole Účet je někdy prázdné, někdy v něm není uvedeno číslo účtu. Čísla účtu obsahují vždy pomlčku, v případě nepoužití předčíslí je místo něj před pomlčkou uvedena nula. V databázi Banka připravíme v modulu R85 Funkce několik funkcí (viz obr. 8-6). OBR. 8-6: FUNKCE V DATABÁZI BANKA Funkce KontrolaPole Funkce Kontrola Predcisli Funkce Kontrola HlavnihoCisla Funkce KontrolaUctu Public Function KontrolaPole(Pole) 'Kontrola, zda se jedná o číslo účtu (zda je vyplněno a zda obsahuje pomlčku) KontrolaPole = "je účet" If InStr(Pole, "-") & "x" = "x" Or InStr(Pole, "-") = 0 Then KontrolaPole = "není účet" End If End Function Public Function KontrolaPredcisli(Pole) 'Kontrola předčísla čísla účtu, tj. části před pomlčkou If KontrolaPole(Pole) = "je účet" Then Predcisli = Left(Pole, InStr(Pole, "-") - 1) KontrolaPredcisli = KontrolaUctu(Predcisli) End If End Function Public Function KontrolaHlavnihoCisla(Pole) 'Kontrola hlavního čísla účtu, tj. části po pomlčce If KontrolaPole(Pole) = "je účet" Then HlavniCislo = Mid(Pole, InStr(Pole, "-") + 1, Len(Pole) - InStr(Pole, "-") - 5) KontrolaHlavnihoCisla = KontrolaUctu(HlavniCislo) End If End Function Public Function KontrolaUctu(Ucet) 'Výpočet váženého součtu číslic účtu a dělitelnosti jedenácti Soucet = 0 If Len(Ucet) >= 10 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 9, 1)) * 6 If Len(Ucet) >= 9 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 8, 1)) * 3 If Len(Ucet) >= 8 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 7, 1)) * 7 If Len(Ucet) >= 7 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 6, 1)) * 9 If Len(Ucet) >= 6 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 5, 1)) * 10 If Len(Ucet) >= 5 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 4, 1)) * 5 If Len(Ucet) >= 4 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 3, 1)) * 8 If Len(Ucet) >= 3 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 2, 1)) * 4 If Len(Ucet) >= 2 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet) - 1, 1)) * 2 If Len(Ucet) >= 1 Then Soucet = Soucet + Val(Mid(Ucet, Len(Ucet), 1)) * 1 KontrolaUctu = IIf(Soucet = Int(Soucet / 11) * 11, "ano", "ne") End Function

170 Kapitola 8: Moduly 170 R85 KontrolaPole P86 Aktualizace E_mail 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ězec 195 ) nebo neobsahuje pomlčku (výsledkem funkce InStr je nula), uložíme do výsledku funkce text není účet. Jinak ve výsledku funkce ponecháme prvotně vloženou hodnotu je účet. V případě, že se jedná o číslo účtu, druhá funkce KontrolaPredcisli provede kontrolu části čísla před pomlčkou, tj. předčíslí pomocí racionalizované funkce KontrolaUctu. Výsledkem je: prázdná hodnota (nejednalo se o číslo účtu) nebo ano (správné předčíslí) nebo ne (špatné předčíslí). V případě, že se jedná o číslo účtu, třetí funkce KontrolaHlavnihoCisla provede kontrolu části čísla po pomlčce, tj. hlavního čísla pomocí racionalizované funkce KontrolaUctu. Výsledkem je prázdná hodnota, ano nebo ne. Racionalizovaná funkce KontrolaUctu umí kontrolovat i čísla s menší délkou než 10 znaků. Podle délky čísla kontrolovaného účtu, jsou kontrolovány číslice s příslušnými vahami, např. při předčíslí 27 proběhne přičítání jen v posledních dvou podmíněných příkazech, tj. 2*2 + 7*1 = = 11. Ověříme fungování připravených funkcí: Připravíme jednoduchý dotaz vycházející z tabulky Pohyby. Vypíšeme pole Účet a výrazy: Kontrola pole: KontrolaPole([Účet]) Kontrola předčíslí: KontrolaPredcisli([Účet]) Kontrola hlavního čísla: KontrolaHlavnihoCisla([Účet]) Spuštěním dotazu ověříme fungování funkce. Výsledkem je dynamická sada, můžeme proto vyzkoušet zadání špatného předčíslí či hlavního čísla účtu např. snížením hodnoty o 1. Dotaz uložíme pod názvem R85 KontrolaPole. 8.6 Lokální podprogram výpočtu ve větě Funkci BezDiakritiky budeme aplikovat na tabulku Personal. Pole E_mail je zde dáno příjmením bez háčků a čárek odděleným tečkou od křestního jména bez háčků a čárek. Abychom odstranili případné překlepy v poli E_mail, vytvoříme obsah pole E_mail znovu aktualizačním dotazem (viz obr. 8-7). Dotaz bude čerpat z tabulky Personal, pomocí výrazu s využitím dříve připravené funkce sestavíme obsah pole E_mail. 196 OBR. 8-7: DOTAZ P86 AKTUALIZACE E_MAIL P86 Personal Identifikace Chceme uživateli usnadnit vkládání nových zaměstnanců, při němž musí vložit pole E_mail, neboť je primárním klíčem. Do formuláře P52a Personal Identifikace chceme vložit tlačítko, které v aktuální větě sestaví E_mail z polí Příjmení a Jméno. Nejprve vytvoříme kopii formuláře P52a Personal Identifikace pod názvem P86 Personal Identifikace 197. 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 klepneme do tlačítka Tlačítko. Tlačítko umístíme do formuláře dle obr Testování na rovnost řetězci Null nelze použít, proto formálně k výsledku funkce InStr přičteme textově x a porovnáme s řetězcem x. 196 Aktualizaci pole, které je součástí referenční integrity, si můžeme dovolit jen díky aktivní vlastnosti Aktualizace souvisejících polí v kaskádě relací Personal Faktury a Personal Výjezdy. 197 Klepnutím označíme název formuláře v navigačním podokně a stiskneme kombinaci kláves Ctrl C. Vložíme formulář ze schránky kombinací kláves Ctrl V a přejmenujeme jej. Nově vzniklý formulář přesuneme v navigačním podokně do skupiny 8 Moduly.

171 Kapitola 8: Moduly 171 OBR. 8-8: TLAČÍTKO TVORBA VE FORMULÁŘI P86 PERSONAL IDENTIFIKACE Vlastnosti Název a Titulek tlačítka změníme na Tvorba. Tlačítko s textem by muselo být vyšší a širší, aby text byl dobře vidět. Raději zobrazíme na tlačítku obrázek. Klepneme do tlačítka se třemi tečkami na konci řádku vlastnosti Obrázek. Zobrazí se dialogové okno Tvůrce obrázku (viz obr. 8-9). OBR. 8-9: 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). Klepnutím do tlačítka OK se obrázek přiřadí tlačítku. Chceme, aby se při klepnutí na tlačítko provedl programový kód sestavující z polí Příjmení a Jméno pole E_mail: V řádku událostní vlastnosti Při klepnutí tlačítka Tvorba klepneme do tlačítka se třemi tečkami. V dialogovém okně Vybrat tvůrce zvolíme Tvůrce kódu. Otevře se editor Visual Basicu. V projektu (okno vlevo nahoře) přibyl modul ve skupině Microsoft Access Class Objects s názvem podle názvu formuláře. V modulu se založila nová procedura (přesněji podprogram) s názvem Tvorba_Click(). Název procedury obsahuje název objektu (Tvorba) a událost objektu, při níž se procedura provádí (při klepnutí Click). 198 Mezi příkazy začátku a konce procedury dopíšeme jediný příkaz, kterým do pole E_mail vložíme spojení textových polí Příjmení a Jméno bez diakritiky oddělených tečkou (obr. 8-10). OBR. 8-10: PROCEDURA TVORBA_CLICK Podprogram Tvorba_Click Option Compare Database 'Pro řetězce se použije porovnávání nastavené v databázi Private Sub Tvorba_Click() E_mail = BezDiakritiky(Příjmení) & "." & BezDiakritiky(Jméno) End Sub Všimněme si, že procedura nemá žádný vstupní argument. Kombinací Alt F11 se vrátíme do Accessu a vyzkoušíme funkci tlačítka. Ve formulářovém zobrazení změníme křestní jméno prvního zaměstnance z Miloše na Františka a klepneme do tlačítka Tvorba. se upravil. Chceme, aby se pole E_mail upravilo vždy, když upravíme pole Jméno nebo Příjmení a přejdeme na jiné pole (klávesou Enter, tabulátorem nebo klepnutím myši). Do událostní vlastnosti Při výstupu (Exit) polí Jméno i Příjmení vložíme kód shodný s předchozí procedurou (viz obr. 8-11). 198 Když změníme název tlačítka, nezmění se bohužel automaticky název procedury.

172 Kapitola 8: Moduly 172 OBR. 8-11: PROCEDURY JMÉNO_EXIT A PŘÍJMENÍ_EXIT Podprogram Jméno_Exit Podprogram Příjmení_Exit Private Sub Jméno_Exit(Cancel As Integer) E_mail = BezDiakritiky(Příjmení) & "." & BezDiakritiky(Jméno) End Sub Private Sub Příjmení_Exit(Cancel As Integer) E_mail = BezDiakritiky(Příjmení) & "." & BezDiakritiky(Jméno) End Sub Aby stejný kód nebyl obsažen ve třech procedurách, připravíme společný podprogram: Zůstaneme stále v modulu Form_P86 Personal Identifikace. Klepneme do tlačítka Insert Procedure a vytvoříme podprogram s názvem Tvorba s jediným příkazem dle předchozích procedur. V předchozích procedurách potom upravíme jediný příkaz, který nahradíme voláním společné procedury (viz obr. 8-12). OBR. 8-12: ZAVEDENÍ SPOLEČNÉ PROCEDURY Option Compare Database Private Sub Jméno_Exit(Cancel As Integer) Tvorba End Sub Private Sub Příjmení_Exit(Cancel As Integer) Tvorba End Sub Private Sub Tvorba_Click (Cancel As Integer) Tvorba End Sub Public Sub Tvorba () E_mail = BezDiakritiky(Příjmení) & "." & BezDiakritiky(Jméno) End Sub Kombinací Alt F11 se vrátíme do Accessu a vyzkoušíme podprogramy. Ve formulářovém zobrazení změníme křestní jméno prvního zaměstnance z Františka na Miloše a klávesou tabulátoru přejdeme na příjmení. se upravil. Accessem vkládané událostní procedury jsou seřazeny dle abecedy. V okně kódu jsou zobrazeny všechny procedury. Klepnutím do tlačítka Procedure View v levém dolním rohu okna kódu můžeme zobrazit jen proceduru, v níž byl kurzor. Mezi procedurami se potom můžeme pohybovat klávesami Ctrl PageDown a Ctrl PageUp nebo výběrem objektu (názvu pole) v horní levé nabídce. Tlačítkem Full Module View zobrazíme opět celý modul se všemi procedurami. Na příkladu jednoduchého podprogramu Tvorba budeme demonstrovat nástroje pro ladění průběhu procedur: Nejprve rozdělíme jediný příkaz podprogramu na dva dle obr OBR. 8-13: LADÍCÍ OKNA VBA

173 Kapitola 8: Moduly 173 Změnu proměnné E chceme sledovat v kukátku: V kódu procedury označíme název proměnné E. Zadáme příkaz DEBUG, ADD WATCH. V spodní části dialogového okna Add Watch vybereme Break When Value Changes (zastavit běh aplikace, když se hodnota proměnné změní viz obr. 8-14). OBR. 8-14: DIALOGOVÉ OKNO ADD WATCH Obdobně přidáme do kukátek proměnnou E_mail, pro níž ponecháme ve spodní části dialogového okna Add Watch vybránu možnost Watch Expression. Po změně jména či příjmení se spustí podprogram Tvorba . Podprogram se zastaví po provedení prvního řádku, tj. naplnění proměnné E 199 (viz obr. 8-13): Další řádek je vyznačen žlutým pozadím a žlutou šipkou na začátku řádku. V okně Watches je seznam proměnných a jejich hodnot, např. v obr je stav, kdy měníme hodnotu pole E_mail v první větě z Adamec.Milos na Adamec.Frantisek. Všechny lokální proměnné jsou vypsány v okně Locals včetně vlastností objektů formuláře (objekt Me lze klepnutím do tlačítka na začátku jeho řádku rozbalit). V okně Immediate bychom mohli napsat přímý příkaz VBA, který by se realizoval, např. bychom mohli do proměnné E uložit hodnotu Adamec.Ales a ručně tak nastavit hodnotu ukládanou do pole E_mail. Další pokračování běhu aplikace VBA spustíme příkazem RUN, CONTINUE nebo klepnutím do tlačítka Continue nebo stisknutím klávesy F5. Po skončení běhu aplikace zobrazíme okno Aplikace Access kombinací kláves Alt F11. Okamžité ukončení běhu aplikace VBA můžeme kdykoliv provést příkazem RUN, RESET nebo klepnutím do tlačítka Reset (Nulování). V okně Watches klepneme pravým tlačítkem myši na proměnnou E a volbou DELETE WATCH ji odstraníme z okna. P87 Kontrola cest Kontrola_cest 8.7 Lokální podprogram výpočtu mezi větami Chceme nyní provést kontrolu vykazování služebních cest. Prověříme, zda se u jednotlivých zaměstnanců nepřekrývaly vykázané služební cesty, tj. když seřadíme služební cesty podle pracovníků a podle zahájení, služební cesta nesmí začínat dříve, než skončila předchozí cesta stejného pracovníka. Vytvářecím dotazem nejprve připravíme pomocnou tabulku, v níž budou služební cesty seřazeny podle zaměstnanců a podle doby zahájení a v níž bude doplněno nové pole Odstup zatím vyplněné nulami. Vytvářecí dotaz (viz obr. 8-15) bude vycházet z tabulky Cesty, z níž převezme všechna pole, a z tabulky Výjezdy, z níž převezme zaměstnance. Navíc doplní pole Odstup. Dotaz vytvoří tabulku Kontrola_cest. OBR. 8-15: DOTAZ P87 KONTROLA CEST Cesty Výjezdy (30 vět) 199 Zastavení nastane jen po změně proměnné, nikoliv naplnění pole věty, proto jsme hodnotu vkládali nejprve do proměnné E.

174 Kapitola 8: Moduly 174 P87 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ŘIT ve skupině Formuláře klepneme do tlačítka Více položek. Snížíme výšku řádku věty a zúžíme dle obsahu šířku jednotlivých sloupců. Formulář uložíme pod názvem P87 Kontrola cest. Do zápatí formuláře umístíme příkazové tlačítko s názvem i titulkem Kontrola1 (na konci názvu tlačítka je číslice 1) viz obr OBR. 8-16: FORMULÁŘ P87 KONTROLA CEST Vlastnosti Při klepnutí tlačítka Kontrola1 přiřadíme programový kód. V proceduře budeme postupně procházet věty tabulky Kontrola_cest a do pole Odstup budeme počítat rozdíl hodnoty pole Zahájení a hodnoty pole Dokončení zapamatované z předchozí věty (v proměnné Konec_predchozi, viz obr. 8-17). OBR. 8-17: PROCEDURA KONTROLA1_CLICK Podprogram Kontrola1 _Click Objekty, metody, vlastnosti Option Compare Database Private Sub Kontrola1_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") Konec_predchozi = 0 Do Until Kontrola.EOF Kontrola.Edit Kontrola!Odstup = Kontrola!Zahájení - Konec_predchozi Konec_predchozi = Kontrola!Dokončení Kontrola.Update Kontrola.MoveNext Loop MsgBox "Hotovo!" End Sub Access obsahuje řadu objektů. Objektem je např. formulář, který obsahuje objekty ovládacích prvků. 200 Některé objekty mají svou vizuální reprezentaci (např. formulář), jiné jsou přístupné jen v kódu Visual Basicu. Objekty mají vlastnosti, které popisují objekt, např. formulář má vlastnost Výchozí zobrazení, v níž můžeme zadat Nekonečné formuláře. Metody jsou akce, které můžeme zadat objektu k provedení. Poznali jsme již funkce, jejichž výsledkem byla hodnota (celé jméno či vstup bez háčků a čárek). Kromě těchto obvyklých funkcí existují objektové funkce, jejichž výsledkem je 200 Mnoho objektů má kolekce, které definují nastavení několika objektů v daném objektu, např. objekt formuláře má kolekci Controls, která nastavuje všechny objekty definované ve formuláři.

175 Kapitola 8: Moduly 175 Objektová funkce CurrentDb Do Loop objekt. Objekt můžeme také přiřadit proměnné, musíme tak však učinit příkazem Set. Přiřazením objektu proměnné můžeme zpřehlednit programový kód. Objektová funkce CurrentDb vrací objektovou proměnnou typu Database, která představuje aktuálně otevřenou databázi v okně programu Microsoft Access. Když zapíšeme název funkce do kódu a tečku, Access nám nabízí vlastnosti (např. Name) a metody (např. OpenRecordset), které přísluší k objektu. Vlastnosti a metody jsou odlišeny ikonkami 201. Vybereme (vyhledáním v seznamu a poklepáním myší či stisknutím klávesy Tab) metodu OpenRecordset, která vytvoří nový objekt Recordset sadu záznamů z tabulky Kontrola_cest do proměnné Kontrola. 202 Nyní se můžeme na objekt datové sady odkazovat názvem Kontrola. S objektem provádíme akce metody (Edit, Update, MoveNext) a využíváme jeho vlastnosti (EOF). Před zpracováním jednotlivých vět datové sady (tabulky) Kontrola_cest uložíme do pomocné proměnné Konec_predchozi hodnotu 0, kterou využijeme při zpracování první věty datové sady. Proměnná bude vždy obsahovat konec předchozí služební cesty, abychom jej mohli porovnávat se začátkem následující cesty. Zpočátku bude proměnná vynulována, teprve po zpracování první věty jí přiřadíme dokončení první cesty. Ve funkci BezDiakritiky jsme se seznámili s cyklem For Next s počítadlem. Zde použijeme příkaz cyklu Do Loop. Provádí příkazy, které jsou zapsány mezi řádky Do a Loop, dokud není splněna podmínka zapsaná v řádku Do nebo v řádku Loop. Syntaxe: 203 verze s podmínkou na začátku: Do [{While Until}podmínka] [příkazy] [Exit Do] [příkazy] Loop verze s podmínkou na konci: Do [příkazy] [Exit Do] [příkazy] Loop [{While Until}podmínka] Operace provedené pro větu z datové sady: Metoda Edit zkopíruje aktuální záznam z aktualizovatelného objektu Recordset do vyrovnávací paměti pro další úpravu. Tuto metodu je nutné provést vždy před programovou aktualizací jednotlivé věty datové sady. Do pole Odstup spočteme rozdíl zahájení cesty a dokončení předchozí cesty (v proměnné Konec_predchozi). Při zpracování první věty výsledkem bude sériové číslo data zahájení cesty (pořadí od roku 1900), neboť v proměnné Konec_predchozi byla uložena nula. Pro zpracování další věty si do proměnné Konec_predchozi zapamatujeme dokončení zpracovávané služební cesty. Metoda Update uloží obsah vyrovnávací paměti do aktualizovatelného objektu Recordset a ukončí tak aktualizaci věty datové sady. Metoda MoveNext posune ukazovátko zpracování na další větu datové sady. Řádek Loop vrátí program na předchozí řádek Do. Vlastnost datové sady EOF (end of file) má hodnotu False (nepravda), dokud jsme nevyčerpali všechny věty datové sady. Až je ukazovátko datové sady za poslední větou, vrací funkce EOF hodnotu True (pravda) a program pokračuje příkazy za řádkem Loop. 204 Po zpracování všech vět zobrazíme hlášení Hotovo! v okně s titulkem Microsoft Access Access pomáhá i s laděním programů. Po odeslání špatně zapsaného příkazu je takový příkaz zobrazen červeně. Další chyby můžeme odhalit příkazem DEBUG, COMPILE ENCIAN. Zbývající formální chyby jsou odhaleny až při provozu modulu. Access při chybě automaticky zobrazí modul a zvýrazní řádek, v němž došlo k chybě. 202 Tento objekt připojí do kolekce Recordsets. 203 Závorky {} značí, že vybíráme některou z položek uvedených v seznamu a oddělených od sebe znakem. 204 Podobně existuje vlastnost BOF (bottom of file), která má hodnotu False, pokud není ukazovátko před první větou. 205 Příkaz MsgBox je analogií akce OknoSeZprávou v makrech.

176 Kapitola 8: Moduly 176 Podprogram Kontrola2 _Click With Překreslení formuláře Po zapsání programového kódu se vrátíme do Accessu, kde po vytvoření tabulky Kontrola_cest zobrazíme formulář a klepnutím do tlačítka Kontrola1 otestujeme náš programový kód. Po skončení připravené procedury se objeví hlášení Hotovo!, pole Odstup však je pro všechna pole formuláře nulové. Jakmile klepneme do jednotlivých hodnot pole Odstup, aktualizují se. Program funguje, pouze se neaktualizovalo zobrazení ve formuláři. Ve formuláři připravíme napravo od prvního tlačítka nové tlačítko s názvem a titulkem Kontrola2, kterému přiřadíme zdokonalenou proceduru. K němu připojíme při klepnutí programový kód dle obr Programový kód je v mnohém podobný předchozímu kódu, proto jej v editoru VBA zkopírujeme pomocí schránky z procedury Kontrola1_Click() do procedury Kontrola2_Click(). OBR. 8-18: PROCEDURA KONTROLA2_CLICK 206 Private Sub Kontrola2_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") Konec_predchozi = 0 With Kontrola Do Until.EOF.Edit!Odstup =!Zahájení - Konec_predchozi Konec_predchozi =!Dokončení.Update.MoveNext Loop End With Repaint MsgBox "Hotovo!" End Sub V proceduře jsme použili příkaz With, kterým můžeme zjednodušit odkazy na složité objekty. Syntaxe: With odkaz na objekt [příkazy procedury] End With Díky příkazu With nemusíme opakovaně specifikovat objekt Kontrola, pouze tečkou (při oddělování vlastností a metod) a vykřičníkem (při oddělování dílčích objektů) signalizujeme návaznost na objekt. Názvy proměnných (Konec_predchozi) zůstávají nedotknuty. Na závěr procedury jsme doplnili spuštění metody Repaint objektu formuláře. Objekt formuláře bychom mohli zapsat Forms![P87 Kontrola cest] 207, pro aktuálně otevřený objekt můžeme použít zjednodušeného tvaru Me nebo použít neupřesněný název metody. Metoda Repaint překreslí formulář a zobrazí v něm tak aktuální hodnoty tabulky Kontrola_cest. V první větě zatím uvádíme nesmyslné sériové číslo data zahájení první služební cesty. V prvních větách každého zaměstnance je nesmyslné (většinou záporné) číslo dané rozdílem zahájení první cesty zaměstnance a dokončení poslední cesty předchozího zaměstnance. Tyto nepřesnosti nyní opravíme. Do nevyhodnotitelných polí Odstup v první větě každého zaměstnance vložíme prázdnou hodnotu (obr. 8-19). Procedura bude spouštěna klepnutím do nového tlačítka. Poznámky k proceduře: Před cyklem zpracování vět datové sady připravíme zpracování první věty. Do proměnné E_mail_predchozi zapíšeme hodnotu žádný tak, aby byla první věta vyhodnocena jako věta zaměstnance různého od předchozí věty, tj. aby pro ni nebyla vypsána hodnota pole Odstup. V cyklu jednotlivých vět potom diferencujeme mezi dvěma případy: Jestliže dále zpracováváme stejného zaměstnance (E_mail zůstává stejný), vypočteme pro něj pole Odstup. Jestliže jsme přešli na dalšího zaměstnance, vložíme do pole Odstup prázdnou hodnotu a zapamatujeme si E_mail zaměstnance (E_mail_predchozi). 206 Příkazy shodné s předchozí procedurou jsou vypisovány kurzívou. 207 Hranaté závorky jsou nutné v případě, že se název objektu skládá z více slov.

177 Kapitola 8: Moduly 177 OBR. 8-19: PROCEDURA KONTROLA3_CLICK Podprogram Kontrola3 _Click Private Sub Kontrola3_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") With Kontrola E_mail_predchozi = "žádný" Do Until.EOF.Edit If!E_mail = E_mail_predchozi Then!Odstup =!Zahájení - Konec_predchozi Else!Odstup = Null E_mail_predchozi =!E_mail End If Konec_predchozi =!Dokončení.Update.MoveNext Loop End With Repaint MsgBox "Hotovo!" End Sub Do formuláře přidáme ještě jedno tlačítko s názvem a titulkem Kontrola4. Proceduru doplníme o vypisování mezivýsledků formou dialogového okna se zprávou (viz horní část obr. 8-22). OBR. 8-20: PROCEDURA KONTROLA4_CLICK Podprogram Kontrola4 _Click Private Sub Kontrola4_Click() Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") With Kontrola K = 1 E_mail_predchozi = "žádný" Konec_predchozi = "žádný" Do Until.EOF.Edit T = K & ". věta" & Chr(13) T = T & " předchozí: " & E_mail_predchozi & Chr(13) T = T & "Konec předchozí: " & Konec_predchozi & Chr(13) T = T & " aktuální: " &!E_mail & Chr(13) T = T & "Začátek aktuální: " &!Zahájení & Chr(13) If!E_mail = E_mail_predchozi Then!Odstup =!Zahájení - Konec_predchozi Else!Odstup = Null E_mail_predchozi =!E_mail End If Konec_predchozi =!Dokončení T = T & "Odstup začátku od konce: " &!Odstup MsgBox (T).Update.MoveNext K = K + 1 Loop End With Repaint MsgBox "Hotovo!" End Sub

178 Kapitola 8: Moduly 178 Poznámky k proceduře: V počítadle K počítáme pořadí věty, abychom ho mohli zobrazit v dialogovém okně mezivýsledků. Text zobrazený v dialogovém okně připravujeme do proměnné T. Funkce Chr(13) odřádkuje. Po každé větě se zobrazuje dialogové okno mezivýsledků. Program pokračuje v provádění příkazů po klepnutí do tlačítka OK. Proceduru můžeme předčasně ukončit stisknutím kombinace kláves Ctrl Break a klepnutím do tlačítka End v dialogovém okně 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 klepnutím do tlačítka, nikoliv jen kombinací kláves Ctrl Break. OBR. 8-21: PROCEDURY KONTROLA5, KONTROLA5A_CLICK A KONTROLA5B_CLICK Podprogramy Kontrola5 Kontrola5a _Click Kontrola5b _Click Private Sub Kontrola5(Prepinac) Set Kontrola = CurrentDb.OpenRecordset("Kontrola_cest") With Kontrola K = 1 E_mail_predchozi = "žádný" Konec_predchozi = "žádný" Do Until.EOF.Edit T = " předchozí: " & E_mail_predchozi & Chr(13) T = T & "Konec předchozí: " & Konec_predchozi & Chr(13) T = T & " aktuální: " &!E_mail & Chr(13) T = T & "Začátek aktuální: " &!Zahájení & Chr(13) If!E_mail = E_mail_predchozi Then!Odstup =!Zahájení - Konec_predchozi Else!Odstup = Null E_mail_predchozi =!E_mail End If Konec_predchozi =!Dokončení T = T & "Odstup začátku od konce: " &!Odstup & Chr(13) & Chr(13) T = T & "Chcete pokračovat ve vypisování mezivýsledků?" If Prepinac = "ano" Then V = MsgBox(T, vbyesno, K & ". věta") If V = vbno Then Prepinac = "ne" End If.Update.MoveNext K = K + 1 Loop End With Repaint MsgBox "Hotovo!" End Sub Private Sub Kontrola5a_Click() Kontrola5 ("ano") End Sub Private Sub Kontrola5b_Click() Kontrola5 ("ne") End Sub Nejprve připravíme proceduru Kontrola5, která není událostní. Proceduru potom budou využívat dvě událostní procedury pro dvě tlačítka Kontrola5a a Kontrola5b. Událostní

179 Kapitola 8: Moduly 179 Dialogové okno se zprávou P88 Formulář procedury by mohly být řešeny samostatně, byly by však velmi podobné, proto je budeme diferencovat vstupním parametrem Prepinac. Z formuláře se kombinací kláves Alt F11 přesuneme do editoru VBA, kde příkazem INSERT, PROCEDURE či klepnutím do tlačítka Insert Procedure založíme novou proceduru Kontrola5. Procedura může být soukromá (Private) na rozdíl od dříve připravovaných funkcí, které byly veřejné (Public). 208 Do procedury Kontrola5 zkopírujeme kód z procedury Kontrola4_Click a upravíme jej dle obr Poznámky k proceduře: Procedura bude spouštěna z procedury tlačítka Kontrola5a (se vstupní proměnnou Prepinac o hodnotě ano, tj. uživatel chce zobrazit mezivýsledky) nebo z procedury tlačítka Kontrola5b (se vstupní proměnnou Prepinac o hodnotě ne, tj. uživatel nechce zobrazit mezivýsledky). Dialogové okno zobrazí mezivýsledky po jednotlivých větách jen, když Prepinac nabývá hodnoty ano. Příkaz MsgBox je nahrazen funkcí MsgBox. Funkce MsgBox také zobrazuje dialogové okno se zprávou, avšak okno může obsahovat více tlačítek. Počet, uspořádání a názvy tlačítek určuje druhý argument funkce. Jako argument můžeme zadat číslo nebo použít systémovou (předem definovanou) hodnotu Visual Basicu, např. vbyesno. Nabývá-li druhý argument hodnotu vbyesno (tj. 4) 209, zobrazuje se dialogové okno s tlačítky Ano a Ne (viz obr. 8-22). Po klepnutí do tlačítka Ano funkce MsgBox vrací hodnotu 6 (tj. vbyes), po klepnutí do tlačítka Ne funkce vrací hodnotu 7 (tj. vbno) 210. Jestliže uživatel klepne v dialogovém okně se zprávou do tlačítka Ne, uložíme do proměnné Prepinac hodnotu ne, čímž předčasně ukončíme vypisování mezivýsledků. (Zde je aplikována jednořádková verze příkazu If Then.) Třetí argument funkce MsgBox je zobrazen v titulku dialogového okna se zprávou. Do titulku zobrazujeme pořadí věty. Do formuláře doplníme další dvě tlačítka s názvy a titulky Kontrola5a a Kontrola5b. Po klepnutí do tlačítka Kontrola5a se spustí procedura Kontrola5 s argumentem ano. Po klepnutí do tlačítka Kontrola5b se spustí procedura Kontrola5 s argumentem ne. Závěrem uložíme formulář P87 Kontrola cest, čímž uložíme také lokální procedury. 8.8 Globální podprogram formátování čísla účtu OBR. 8-22: MEZIVÝSLEDKY Dosud byly podprogramy vytvářeny v rámci jednoho objektu. V obou případech formuláře měly lokální platnost v rámci formuláře. Nyní vytvoříme globální podprogram pro více objektů. Podprogram vypíše číslo bankovního účtu tmavě zelenou barvou, je-li správné, červenou barvou, je-li špatné. Podprogram využijeme ve formuláři i v sestavě. Nejprve připravíme barevné odlišení ve formuláři: Zkopírujeme formulář P53 Podniky Identifikace jako formulář P88 Formulář. V kartě VYTVOŘIT ve skupině Jiné klepneme do spodní části tlačítka Makro a vybereme MODUL. 208 U veřejných procedur se předpokládá jejich využití i v jiných modulech. 209 Při hodnotě 0 (vbokonly) by se zobrazilo pouze tlačítko OK. Při hodnotě 1 (vbokcancel) by se zobrazila tlačítka OK a Storno. Při hodnotě 2 (vbabortretryignore) by se zobrazila tlačítka Přerušit, Opakovat, Přeskočit. Při hodnotě 3 (vbyesnocancel) by se zobrazila tlačítka Ano, Ne, Storno. Při hodnotě 5 (vbretrycancel) by se zobrazovala tlačítka Opakovat, Storno. Při přičtení hodnoty 16 (např. 16+4=20) by se zobrazil v dialogovém okně výstražný křížek. Při přičtení hodnoty 32 by se zobrazil v dialogovém okně otazník, což by pro náš případ (32+4=36) bylo vhodné. Při přičtení hodnoty 48 by se zobrazil v dialogovém okně výstražný vykřičník. Při přičtení hodnoty 64 by se zobrazil v dialogovém okně informační znak i. Při přičtení hodnoty 256 by bylo výchozím aktivním tlačítkem druhé tlačítko (Ne). Sečítané hodnoty lze zapisovat jako výraz, např 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).

180 Kapitola 8: Moduly 180 P88 Modul Vytvořený modul v okně Properties v poli Name přejmenujeme na P88 Modul. Do modulu zapíšeme kód dle obr OBR. 8-23: PROCEDURA KONTROLA1_CLICK Podprogram Barvy Select Case P88 Sestava Option Compare Database Public Sub Barvy(Objekt) Select Case KontrolaUctu(Objekt("Bankovní_účet")) Case "ano": Objekt("Bankovní_účet").ForeColor = 'zelená Case "ne": Objekt("Bankovní_účet").ForeColor = vbred End Select End Sub Poznámky k proceduře: Do argumentu Objekt budeme dosazovat odkaz na objekt (formulář nebo sestava). Na prvek formuláře se můžeme odkazovat: Forms![P88 Formulář]("Bankovní_účet") Forms![P88 Formulář](14), kde 14 je převzato z jiné vlastnosti Pořadové číslo prvku Objekt("Bankovní_účet"), kde Objekt je předán jiným podprogramem. Prvku Bankovní_účet přiřazujeme barvu diferencovaně dle výsledku kontroly čísla účtu. K větvení použijeme příkaz Case se syntaxí: Select testovaný příkaz [Case seznam hodnot-n [příkazy-n]] [Case Else příkazy]] End Select Barvu můžeme zadat konstantou Visual Basicu (např. vbgreen, vbblue) nebo číslem. Na jeden řádek můžeme psát více příkazů oddělených dvojtečkou. Další postup: Vytvoříme nad tabulkou Podniky sestavu P88 Sestava, v níž ponecháme pouze sloupce IČ, Název_podniku, Bankovní_účet, Bankovní_kód. Globální podprogram spouštíme příkazem Barvy(Me) z událostí: z formuláře P88 Formulář pro událostní vlastnost formuláře Při události Current, z formuláře P88 Formulář pro událostní vlastnost Při ztrátě fokusu pole Bankovní_účet, ze sestavy P88 Sestava pro událostní vlastnost těla Při formátování. V sestavě P88 Sestava upravíme formátovou vlastnost Výchozí zobrazení sestavy na hodnotu Náhled tisku (jen v náhledu se aplikují událostní procedury). Shrnutí 1. Moduly obsahují procedury (funkce a podprogramy), které jsou vyšší formou automatizace operací Accessu než makra. 2. Moduly mohou být globální nebo lokální. Seznam globálních modulů je uveden v navigačním podokně. Funkce a procedury z globálních modulů můžeme použít kdekoliv v databázi. Lokální moduly jsou součástí jiných objektů (formulářů, sestav). Vztahují se k událostním vlastnostem formulářů (např. Při otevření) či sestav (např. Při formátování) nebo k jednotlivým ovládacím prvkům (např. Při klepnutí do tlačítka). 3. Funkce i procedury mohou obsahovat argumenty, kterými modifikujeme jejich fungování. Argumenty jsou v modulu odděleny čárkami, ve výrazech v jiných objektech (dotazech, formulářích, sestavách) jsou odděleny středníky. 4. Deklarace modulu obsahují nastavení modulu a případně deklarace proměnných. 5. Objekty mají vlastnosti, které popisují objekt. Metody jsou akce, které můžeme zadat objektu k provedení. 6. V modulech lze používat řadu příkazů. Mezi základní patří přiřazovací příkaz =, objektový příkaz Set, příkaz If Then Else, příkazy cyklu For Next, Do Loop, příkaz pro práci s objektem With, příkaz větvení Select Case.

181 Kapitola 9: Externí data Externí data Směry komunikace Word Access 9.1 Možnosti exportu a importu Existují četné možnosti komunikace Accessu s jinými aplikacemi. Komunikace má dva směry: Data z jiné aplikace jsou využívána v Accessu (aplikace Access). Access umí pracovat s formáty některých aplikací (např. s formáty Excelu xlsx, xls nebo s formátem pst Outlooku), některé aplikace musí data uložit ve vhodném formátu, aby je Access mohl načíst (např. uložit je ve formátu txt či mdb). Data z Accessu jsou využívána v jiné aplikaci (Access aplikace). Některé aplikace umí pracovat přímo s formátem Accessu accdb (např. Word nebo Publisher v hromadné korespondenci), pro jiné aplikace musí Access uložit data ve vhodném formátu (např. ve formátu rtf pro Word či ve formátu xlsx pro Excel). V následující tabulce je seznam aplikací, pro něž bude dále demonstrována vzájemná komunikace: kapitola typ aplikace aplikace aplikace Access Access aplikace 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 formát html, xml formát html, xml SharePoint seznam seznam 9.2 Word Word na rozdíl od Excelu či Accessu nemá data strukturována. Příprava dat pro Access prostřednictvím aplikace Word vyžaduje proto vymezení, kde se data v dokumentu Wordu nalézají. Předání dat z Wordu do Accessu umožňují formuláře. Formuláře se využívají v případech: Uživatel připravující data nemá na počítači nainstalován Access. Uživatel připravující data neumí pracovat s Accessem. Chceme shromažďovat data od jednotlivých uživatelů souběžně a nemáme možnost jejich připojení k jedné databázi Accessu. Předpokládejme, že někteří noví zaměstnanci, kteří poskytují základní data o sobě, neumí pracovat s Accessem, ovládají však Word. Připravíme tzv. formulář, do něhož nový zaměstnanec zapíše o sobě základní údaje (dané strukturou věty v tabulce Personal 211 ). Nejprve parametrizujeme Word 2007 pro přípravu formuláře: Spustíme Word Klepneme do tlačítka Office a v dolní části okna do tlačítka Možnosti aplikace Word. V kartě Oblíbené v sekci Nejpoužívanější možnosti pro práci s aplikací Word zaškrtneme pole Zobrazit na pásu kartu Vývojář, čímž zpřístupníme kartu potřebnou pro práci s formuláři. 211 S výjimkou polí Foto a Přílohy, které by nebylo možné vložit do formuláře Wordu.

182 Kapitola 9: Externí data 182 Enc docx Do nového prázdného dokumentu připravíme formulář: V kartě ROZLOŽENÍ STRÁNKY ve skupině Vzhled stránky klepneme do tlačítka Okraje a vybereme ÚZKÝ, abychom mohli v dokumentu využít širší tabulky. Zapíšeme nejprve nadpis Formulář základních údajů o zaměstnanci a v kartě DOMŮ ve skupině Styly klepnutím do tlačítka Nadpis 1 změníme jeho styl na Nadpis 1. Po odeslání na konci řádku nadpisu přejde Word do stylu Normální. Vložíme tabulku o 5 sloupcích a 2 řádcích: V kartě VLOŽENÍ klepneme ve skupině 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 Druhý řádek zatím nevyplníme. Za tabulkou vynecháme volný řádek. Obdobně vložíme druhou tabulku o 7 sloupcích a 2 řádcích a příslušné popisky. Upravíme poklepáním na hranice mezi sloupci Titul před jménem a Křestní jméno šířky sloupců. OBR. 9-1: FORMULÁŘ VE WORDU S ÚDAJI O ZAMĚSTNANCI Do druhých řádků tabulek doplníme pole formuláře: Umístíme kurzor do buňky první tabulky pod popisek . V kartě VÝVOJÁŘ ve skupině Ovládací prvky klepneme do tlačítka Nástroje starší verze 212. Dále budeme používat tlačítka ze sekce Starší formuláře. Klepneme do tlačítka Textové pole. (Tlačítko je vzhledem i názvem totožné s tlačítkem v Accessu.) Umístili jsme tak do formuláře pole, z něhož budeme exportovat později vložená data. Délka pole 5 znaků není limitující pro vkládání dat. V kartě VÝVOJÁŘ ve skupině Ovládací prvky klepneme do tlačítka Vlastnosti nebo poklepáme 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 212 Ve Wordu 2007 bohužel nelze exportovat do textového souboru data z formulářů využívající pole formulářů Wordu 2007.

183 Kapitola 9: Externí data 183 Vlastnosti textového pole Nápověda ve formuláři 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 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á. se skládá z příjmení a jména bez háčků a čárek. Příjmení i jméno jsme psali s velkým počátečním písmenem. Vybereme proto pro E_mail volbu Všechna první velká. Word bude při vyplňování zvětšovat písmena na začátku vět. Za začátek věty považuje slovo po tečce, což našemu případu vyhovuje. Spustit makro: Při vyplňování formuláře při přesunu kurzoru na pole a při ukončení vyplňování pole odesláním můžeme požadovat provedení makra Wordu. Záložka: Pole formuláře můžeme pojmenovat, abychom se na něj mohli později odkazovat. Např. v případě dlouhého formuláře můžeme do formuláře zapsat na konci seznam hlavních zadávaných polí. K položkám seznamu můžeme přiřadit hypertextového odkazy (označením a klepnutím do tlačítka Hypertextový odkaz ve skupině Odkazy v kartě VLOŽENÍ) na záložky. Uživatel se pak klepnutím do záložky snadno přemístí na vkládání příslušného pole. Přepočítat při výstupu: Zaškrtnutím přepočteme všechny případné výrazy ve formuláři po vložení či úpravě hodnoty v daném poli. Vyplnění povoleno: Zrušením zatržení můžeme zamezit uživateli vyplňovat pole. Tato vlastnost je nedostupná pro vypočtená pole a aktuální datum či čas. Klepnutím do tlačítka Nápovědný text zobrazíme dialogové okno 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 e- mail zadáme zapisujeme zkrácený, např. Novak.Petr), text, který se zobrazí při vyplňování pole po stisknutí klávesy F1 (pro 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é autotexty 213. Obdobně vložíme pole: Titul před jménem (Maximální délka: 10, Záložka: Titul1), Křestní jméno (Maximální délka: 10, Formát textu: První velké, Záložka: Jméno), 213 Autotexty jsou ve Wordu 2007 jedním z tzv. stavebních bloků. Autotext lze do šablony vložit v kartě TEXT, ve skupině Text klepnutím do tlačítka Rychlé části a výběrem ULOŽIT DO GALERIE RYCHLÝCH ČÁSTÍ.

184 Kapitola 9: Externí data 184 Rozevírací pole Příjmení (Maximální délka: 15, Formát textu: První velké, Záložka: Příjmení), Titul za jménem (Maximální délka: 7, Záložka: Titul2), Pro pohlaví lze zadat jen dvě možnosti (M muž, Z žena). Tentokrát klepneme v sekci 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). 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 Vložíme další pole: Místnost (Typ: číslo, Maximální délka: 2, Záložka: Místnost), Oddělení (Pole se seznamem, Rozevírací seznam: ANA, DIS, KON, PRG, RED, REK, Záložka: Oddělení), Charakteristika (Záložka: Charakteristika), Úvazek (Typ: číslo, Formát čísla: 0,00, Záložka: Úvazek), Web (Záložka: Web). Oprávnění fakturovat nabývá hodnotu ano či ne. Pro jeho zadávání použijeme zaškrtávací políčko. Klepneme do tlačítka Zaškrtávací políčko formuláře a zobrazíme dialogové okno Možnosti zaškrtávacího políčka formuláře (viz obr. 9-5) např. poklepáním na zaškrtávací pole. OBR. 9-5: DIALOGOVÉ OKNO MOŽNOSTI ZAŠKRTÁVACÍHO POLÍČKA

185 Kapitola 9: Externí data 185 Zámek dokumentu Enc-09-02a.docx 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 klepneme do tlačítka Zamknout dokument a z nabídky vybereme OMEZIT FORMÁTOVÁNÍ A ÚPRAVY. V okně Omezit formátování a úpravy zaškrtneme pole Povolit v dokumentu pouze tento typ úprav a vybereme VYPLŇOVACÍ FORMULÁŘE. Klepneme do tlačítka Použít zámek. V dialogovém okně Použít zámek nevyplňujeme heslo a klepneme do tlačítka OK. Připravený formulář uložíme pod názvem Enc 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 klepneme do tlačítka Odemknout. Práci s formulářem můžeme při dobré znalosti Wordu usnadnit tím, že formulář uložíme jako šablonu. Ponecháme formulář zamknutý a uložený jako běžný dokument. Uložíme jej ještě jednou pod názvem Enc-09-02a.docx. Předveďme si nyní vyplnění formuláře uživatelem (viz obr. 9-6): OBR. 9-6: VYPLNĚNÝ FORMULÁŘ S ÚDAJI O PRVNÍM ZAMĚSTNANCI Ponecháme otevřený dokument Enc docx. Díky ochraně formuláře můžeme ve formuláři vyplňovat pouze hodnoty polí formuláře. Vyplníme údaje o zaměstnanci Miloši Adamcovi. Po vyplnění pole se přesuneme na další pole klávesou Tab (popř. nazpět kombinací Shift Tab). Pokud omylem vložíme řádek klávesou Enter, opravíme chybu stisknutím klávesy BackSpace. vyplňujeme malými písmeny. Díky vlastnostem pole Word po přechodu na další pole automaticky transformuje počáteční písmena na velká. Obdobně vyplňujeme malými písmeny pole Křestní jméno a Příjmení. Není problém zapsat do polí formuláře obsah širší, než byla vystínovaná část pole. V případě Charakteristiky by se delší text zobrazoval na více řádcích, zvýšení políčka tabulky by bylo automatické. (Konce řádků nesmíme ukončovat klávesou Enter. 214 ) Hodnotu v poli Oddělení musíme vybrat z pole se seznamem, není možné ji zapsat. Do pole Úvazek vložíme hodnotu ve tvaru 1, Word ji transformuje podle formátu na tvar 1,00. Do pole Web zapíšeme adresu včetně úvodních mřížek tak, aby v Accessu byla chápána jako druhý argument hypertextového odkazu. (První argument je nepovinný, pouze se zobrazuje, není odkazem. V případě vyplnění až druhého argumenty se zobrazuje odkaz.) Pole Oprávnění můžeme z klávesnice zaškrtnout stisknutím mezerníku. Stiskneme-li klávesu Tab na posledním poli formuláře, kurzor se vrátí do prvního pole formuláře. 214 V budoucím exportu ukončení řádku klávesou Enter značí přechod na další větu, my však zapisujeme jedinou.

186 Kapitola 9: Externí data 186 Tisk formuláře Ukládání dat z formuláře Vyplněný formulář může uživatel vytisknout jako běžný dokument Wordu. Bude se tisknout mřížka a popisky formuláře i obsah. Pokud tiskneme do předtištěného formuláře, omezíme tisk pouze na pole formuláře: Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Word. V kartě Upřesnit v sekci Při tisku tohoto dokumentu zaškrtneme pole Tisknout pouze data z formuláře. 215 Obdobně jako při tisku lze uložit formulář jako dokument nebo pouze jeho data jako textový soubor: Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Word. V kartě Upřesnit v sekci Při sdílení tohoto dokumentu zachovat věrnost zaškrtneme pole Ukládat data formulářů jako textový soubor s oddělovači. Při uložení souboru potvrdíme název souboru Enc-09-02a.txt ukládaný jako prostý text. V dialogovém okně 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";"Bc.";"Miloš";"Adamec";"";"M";"12";"DIS"; "vzpěrač";"1,00";"#http://min.vse.cz/encian/adamec";1 V textovém souboru jsou hodnoty polí s výjimkou zaškrtávacích políček uvedeny v uvozovkách, aby nedošlo k záměně vymezení polí při užití středníku v textu polí. Navzájem jsou odděleny středníky. Při vyplňování formuláře nesmí uživatel používat uvozovky a nesmí používat klávesu Enter. Vyplníme formulář ještě pro zaměstnance Pavla Beneše (viz obr. 9-8). 216 Data formuláře uložíme jako soubor Enc-09-02b.txt. OBR. 9-8: VYPLNĚNÝ FORMULÁŘ S ÚDAJI O DRUHÉM ZAMĚSTNANCI 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ě Import klepneme 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-02a.txt a ponecháme vybranou volbu Importovat data do nové tabulky v aktuální databázi. Access spustí Průvodce importem textu, který se skládá z několika dialogových oken: V prvním okně potvrdíme, že údajům odpovídá nejlépe formát s oddělovači. Ve druhém okně potvrdíme, že oddělovačem polí je středník, první řádek textového souboru neobsahuje názvy polí a text je ohraničen uvozovkami. (Textový soubor obecně může obsahovat více než jednu větu. Každá věta je pak na samostatném řádku. Na prvním řádku mohou být uvedeny názvy polí. Soubor dat z formuláře Wordu však obsahuje vždy jen jednu větu bez názvů polí.) Ve třetím okně (viz obr. 9-9) upřesníme názvy a typ dat polí importované věty dle struktury tabulky Personal uvedené v obr. 3 3 (v kap. 3 na str. 42). Žádné pole neindexujeme. Volby v horní části okna zadáváme pro pole, které jsme klepnutím do nadpisu sloupce označili v dolní části. Nezapomeneme kromě názvů polí upravit typy polí 215 V náhledu se však bude zobrazovat vždy formulář včetně mřížky a popisků. 216 Znovu otevřeme dokument Enc docx nebo pokračujeme z formuláře prvního zaměstnance, který odemkneme a smažeme jeho obsah klepnutím do tlačítka Obnovit pole formuláře v sekci Starší formuláře.

187 Kapitola 9: Externí data 187 (Charakteristika: memo, Úvazek: jednoduchá přesnost, Web: hypertextový odkaz, Oprávnění: ano/ne). OBR. 9-9: PRŮVODCE IMPORTEM TEXTU ČTVRTÉ DIALOGOVÉ OKNO Specifikace importu Ve čtvrtém okně můžeme vybrat pole primárního klíče nebo zadat, aby Access přidal primární klíč sám. Vybereme možnost Vlastní primární klíč pro pole E_mail. (Zajistíme tak v nové tabulce, abychom omylem dvakrát neimportovali stejnou větu.) V pátém okně nejprve klepneme do tlačítka Upřesnit. (Tlačítko bylo přístupné i v předcházejících oknech Průvodce.) Zobrazí se dialogové okno s rekapitulací specifikace importu (viz obr. 9-10). OBR. 9-10: SPECIFIKACE IMPORTU

188 Kapitola 9: Externí data 188 P92a Adamec P92b Beneš Přidání obsahu tabulky do jiné tabulky P92 Personal Stejnou specifikaci chceme použít i později, proto klepneme do tlačítka Uložit jako a uložíme specifikaci pod názvem P92 Specifikace importu z formuláře Wordu. Specifikace jsou zvláštním druhem objektů Accessu. Nejsou sice uvedeny v databázovém okně, ukládají se však s databází. Tlačítkem Podrobnosti můžeme zobrazit seznam specifikací, popř. vybranou specifikaci odstranit či otevřít. Klepnutím do tlačítka OK ukončíme práci se specifikací importu. V pátém okně importu upravíme název vznikající tabulky na P92a Adamec a klepneme do tlačítka Dokončit. Access nabídne uložení kroků importu, které nevyužijeme. Klepneme do tlačítka Zavřít. V databázi vznikla nová tabulka s námi zadaným názvem P92a Adamec. Obdobně importujeme druhou větu: V kartě EXTERNÍ DATA ve skupině Import klepneme 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 klepneme do tlačítka Upřesnit. V dialogovém okně Specifikace importu klepneme do tlačítka Podrobnosti a vybereme P92 Specifikace importu z formuláře Wordu. Klepnutím do tlačítka OK uzavřeme okno Specifikace importu. Klepnutím do tlačítka Další postupně projdeme průvodce, jako vlastní primární klíč vybereme opět pole E_mail. V posledním okně změníme název tabulky na P92b Beneš. Vytvoříme tabulku P92 Personal, do níž zkopírujeme obsahu dvou vytvořených tabulek: V navigačním podokně označíme tabulku P92a Adamec. Zkopírujeme ji do schránky kombinací kláves Ctrl C. Tabulku ze schránky zkopírujeme kombinací kláves Ctrl V. V dialogovém okně Vložit tabulku jako (viz obr. 9-11) vybereme volbu Strukturu a data a tabulku nazveme P92 Personal. OBR. 9-11: DIALOGOVÉ OKNO VLOŽIT TABULKU JAKO Pro přidání obsahu druhé tabulky P92b Beneš bychom mohli připravit přidávací dotaz, jehož zdrojem by byla všechna pole tabulky P92b Beneš a cílovou tabulkou by byla tabulka P92 Personal. Naučíme se jednodušší postup. V navigačním podokně označíme tabulku P92b Beneš. Zkopírujeme ji do schránky kombinací kláves Ctrl C. Tabulku ze schránky zkopírujeme kombinací kláves Ctrl V. V dialogovém okně Vložit tabulku jako vybereme volbu Připojit data k existující tabulce a do pole Název tabulky zapíšeme opět P92 Personal. 217 Prohlédneme si obsah tabulky P92 Personal. Tabulka obsahuje dvě věty. Věty nové tabulky se pokusíme přidat do tabulky Personal: V navigačním podokně klepneme do tabulky P92 Personal a stiskneme kombinaci kláves Ctrl C. 217 Mohli jsme také první větu importovat přímo do nové tabulky P92 Personal a na začátku importu druhé věty vybrat v průvodci volbu Připojit kopii záznamů k tabulce P92 Personal. V tom případě bychom však nevyzkoušeli aplikaci uložené specifikace importu.

189 Kapitola 9: Externí data 189 Access Word Export datové sady Export sestavy Export části datové sady Data z Accessu jako zdroj dat hromadné korespondence Wordu Potom stiskneme kombinaci kláves Ctrl V. V dialogovém okně Vložit tabulku jako zadáme název tabulky Personal a vybereme poslední nabízenou možnost, abychom neodstranili stávající obsah tabulky Personal. Po klepnutí do tlačítka OK Access vypíše chybové hlášení. Nové věty nelze přidat pro porušení pravidel klíčů. E_mail je totiž klíčovým polem tabulky Personal a y Adamec.Milos a Benes.Pavel se již v tabulce Personal vyskytují. Nové věty by se podařilo přidat jen při opravě ů v tabulce P92 Personal např. na Adamec.Milos2 a Benes.Pavel2. Podstatně jednodušší je komunikace z Accessu do Wordu. Existuje několik způsobů komunikace: Export datové sady (tabulky či výsledku dotazu): V navigačním podokně označíme klepnutím tabulku či dotaz, např. tabulku Oddělení. V kartě EXTERNÍ DATA klepneme ve skupině Export do tlačítka Export do souboru ve formátu RTF. Nabídne se název souboru dle názvu tabulky či dotazu s příponou rtf. Můžeme upravit složku, do níž bude soubor uložen. Za účelem rychlého předvedení výsledku zaškrtneme pole Po dokončení operace exportu otevřít cílový soubor. Po klepnutí do tlačítka OK se vytvoří soubor s příponou rtf (rich text format), který se načte do Wordu. Tabulka či výsledek dotazu (v případě nevýběrových dotazů tvar, který se zobrazuje v zobrazení datového listu) jsou v dokumentu Wordu zaznamenány v tabulce nadepsané názvy polí. Po všech exportech i importech se nabízí uložení kroků exportu či importu tak, abychom mohli tlačítkem Uložené exporty ve skupině Export nebo tlačítkem Uložené importy ve skupině Import snadno provést export či import znovu bez zadávání parametrů. V případě, že takto exportujeme formulář, exportují se pole obsažená ve formuláři formou tabulky včetně polí daných výrazem (viz např. export formuláře P52a Personal Identifikace). Export sestavy: Když exportujeme sestavu, jsou do Wordu exportována data v uspořádání velmi podobném sestavě. Jednotlivé sloupce sestavy jsou nasimulovány vložením tabulátorů. Export sestavy můžeme vyzkoušet např. na sestavě P66 Telefonní seznam. Bohužel dojde k částečné ztrátě formátování. Export části datové sady: V zobrazení datového listu můžeme označit vybrané řádky (označením ve voličích záznamů) nebo vybrané sloupce (označením v řádku názvů polí). Při zadání exportu můžeme v dialogovém okně Export pod názvem souboru zaškrtnout pole Exportovat pouze vybrané záznamy. Exportují se potom pouze vybrané řádky či sloupce. Export datové sady jako zdroje dat hromadné korespondence ve Wordu: Chceme napsat dopis odběratelům firmy Encián. V navigačním podokně klepneme do tabulky Podniky. V kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Další a vybereme volbu SLOUČIT S DOKUMENTEM MICROSOFT OFFICE WORD. V jediném okně průvodce hromadnou korespondencí ponecháme zaškrtnuté pole Vytvořit nový dokument a propojit s ním data. Dále nás vede v okně Hromadná korespondence Word:» V prvním kroku ponecháme vybrané pole Dopisy. Klepneme do spodní volby Další.» Ve druhém kroku ponecháme vybrané pole Použít aktuální dokument.» Ve třetím kroku ponecháme vybrané pole Použít existující seznam a ve spodní části ponecháme vybraný seznam Podniky v databázi Encian.accdb.» Ve čtvrtém okně nevyužijeme žádný nabízený prvek dopisu. V kartě KORESPONDENCE ve skupině Zapsat a vložit pole klepneme do tlačítka Vložit slučovací pole. Vybereme postupně pole adresy (Název_podniku, Ulice, PSČ, Obec) a tlačítkem Vložit nebo poklepáním na název pole je vložíme do adresy na úvod dopisu.

190 Kapitola 9: Externí data 190 Access textový soubor Textový soubor Access 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.» 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 klepneme do tlačítka Vybrat příjemce a vybereme volbu POUŽÍT EXISTUJÍCÍ SEZNAM. Vyhledáme umístění databáze Encian.accdb a vybereme tabulku Podniky. (Nejdříve jsou v seznamu uvedeny dotazy, potom tabulky.) V kartě KORESPONDENCE ve skupině Zapsat a vložit pole klepneme do tlačítka Vložit slučovací pole. Vybereme postupně pole adresy (Název_podniku, Ulice, PSČ, Obec) a tlačítkem Vložit nebo poklepáním na název pole je vložíme do adresy na úvod dopisu. Průvodce hromadnou korespondencí můžeme spustit klepnutím do tlačítka Spustit hromadnou korespondenci ve skupině Spustit hromadnou korespondenci v kartě KORESPONDENCE a výběrem volby PODROBNÝ PRŮVODCE HROMADNOU KORESPONDENCÍ. Vložená pole můžeme doprovodit konstantním textem. Data z Accessu je možné uložit do textového souboru, který může načíst řada programů. Provedeme uložení obsahu tabulky Oddělení do textového souboru dvěma způsoby: s oddělovači V kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Export do textového souboru. V dialogovém okně Export upřesníme soubor, do něhož obsah uložíme. Data uložíme do souboru Oddělení1.txt. Ponecháme nezaškrtnuté pole Exportovat data s formátováním a rozložením. V prvním okně průvodce exportem textu ponecháme zvolenu možnost S oddělovači. V druhém okně průvodce ponecháme vybraný oddělovač středník a zaškrtneme pole Zahrnout názvy sloupců na prvním řádku. V třetím okně průvodce potvrdíme umístění a název souboru. Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu. s pevnou délkou V kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Export do textového souboru. V dialogovém okně Export upřesníme soubor, do něhož obsah uložíme. Data uložíme do souboru Oddělení2.txt. Ponecháme nezaškrtnuté pole Exportovat data s formátováním a rozložením. V prvním okně průvodce exportem textu vybereme druhou možnost S pevnou délkou. V druhém okně průvodce ponecháme čáry oddělující jednotlivá pole. Čáry bychom mohli tažením přemístit. V třetím okně průvodce potvrdíme umístění a název souboru. Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu. Vznikly dva textové soubory: Každá věta tvoří ve výsledném souboru samostatný odstavec. V prvním případě jsou pole oddělena vybraným znakem, např. středníkem. V druhém případě je každé pole stejně dlouhé i za cenu doplnění mezer. V obou případech můžeme v jakémkoliv okně průvodce klepnout do tlačítka Upřesnit a obdobně jako při importu z formulářů Wordu uložit nastavené parametry exportu ve formě specifikace. Na připravených textových souborech budeme demonstrovat import textových souborů do Accessu: import souboru Oddělení1.txt

191 Kapitola 9: Externí data 191 V kartě EXTERNÍ DATA ve skupině Import klepneme do tlačítka Import textového souboru. V dialogovém okně Načíst externí data upřesníme umístění souboru, ponecháme vybranou volbu Importovat zdrojová data do nové tabulky v aktuální databázi. V prvním okně průvodce ponecháme vybranou volbu S oddělovači. Ve druhém okně průvodce ponecháme jako oddělovač vybraný středník a zaškrtneme pole První řádek obsahuje názvy polí. V třetím okně potvrdíme názvy polí. Ve čtvrtém okně vybereme vlastní primární klíč Oddělení. V pátém okně potvrdíme název tabulky Oddělení1. Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů importu. import souboru Oddělení2.txt Postup je obdobný jako při importu souboru Oddělení1.txt s následující rozdíly: V prvním okně průvodce ponecháme vybranou volbu S pevnou délkou. Ve druhém okně klepnutím do měřítka umístíme dvě čáry oddělující pole. V třetím okně nazveme pole Oddělení, Oddělení_v, Vedoucí. V pátém okně potvrdíme název tabulky Oddělení2. odkaz Oddělení3 na zdroj Oddělení1.txt Postup je obdobný jako při importu souboru Oddělení1.txt s následující rozdíly: V dialogovém okně 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í ZAH, zahraničí, Petr.Novak změnil by se obsah tabulky Oddělení3, tabulka Oddělení1 by zůstala s původním počtem vět. Excel Access Access Excel 9.3 Excel Import dat z Excelu do Accessu byl vyložen již v souvislosti s načítáním dat do databáze v kap. 2. Import zahajujeme v kartě EXTERNÍ DATA ve skupině Import klepnutím do tlačítka Excel. Importovaná data upřesňujeme výběrem ze seznamu tabulek nebo ze seznamu oblastí. Export z Accessu do Excelu předvedeme na exportu dvou datových sad tabulky Oddělení a dotazu NACE_Oddíly: export tabulky V navigačním podokně klepneme do tabulky Oddělení. V kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Excel. V dialogovém okně Export upřesníme umístění a název souboru. Soubor nazveme Export. V poli Formát souborů ponecháme vybraný formát xlsx. V možnostech exportu zaškrtneme pole Exportovat data s formátováním a rozložením a Po dokončení operace exportu otevřít cílový soubor. Otevře se Excel v něm sešit Export.xlsx s listem Oddělení. Soubor zavřeme. Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu. export dotazu V navigačním podokně klepneme do dotazu NACE_Oddíly. V kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Excel. V dialogovém okně Export upřesníme umístění a název souboru. Soubor opět nazveme Export. V poli Formát souborů ponecháme vybraný formát xlsx. Chceme, aby se vytvořil další list v sešitu Excelu. Nezaškrtneme proto žádnou z nabízených možností exportu. Klepneme do tlačítka OK. V Excelu otevřeme sešit Export.xlsx. Data z dotazu jsou uložena do dalšího listu NACE_Oddíly. Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu.

192 Kapitola 9: Externí data 192 P94 Export PowerPoint Access PowerPoint 9.4 PowerPoint Access nenabízí export či import do či z PowerPointu. Export provedeme modulem, který budeme spouštět pomocí tlačítka Export v samostatném formuláři P94 ExportPowerPoint. Spustíme tak proceduru Export z globálního modulu P94 ExportPowerPoint, který využívá funkci v modulu P94 Ident. Vytvoříme prezentaci s přehledem zaměstnanců. Na každém snímku bude celé jméno zaměstnance, jeho fotografie a charakteristika. Protože využijeme i metody PowerPointu, musíme nejprve v editoru Visual Basicu zadat příkaz TOOLS, REFERENCES a přidat k dostupným knihovnám Microsoft PowerPoint 12.0 Object Library. Procedura exportu je uvedena v obr včetně základního vysvětlujícího komentáře (který je kurzívou). OBR. 9-12: PROCEDURA EXPORT_PP Z MODULU P94 EXPORT POWERPOINT P94 Export PowerPoint Public Sub Export_PP() ' 'přiřazení hodnot Set Zam = CurrentDb.OpenRecordset("Personal") 'data čerpáme z tabulky Personal Dim PP As New PowerPoint.Application 'PP je nově otevřená aplikace PowerPointu Dim System_souboru 'objekt systému souborů Set Prezentace = PP.Presentations.Add 'prezentace je nově přidaná prezentace Set System_souboru = CreateObject("Scripting.FileSystemObject") ' 'příprava PowerPointu před samotným cyklem zpracování jednotlivých vět With PP.Visible = True 'zviditelnění PowerPointu.Activate 'zaktivnění PowerPointu End With K = 1 'výchozí nastavení počítadla zaměstnanců ' 'cyklus zpracování jednotlivých vět z tabulky Do Until Zam.EOF 'popř. Do Until Zam.EOF Or K = 5 'cyklus se provádí až do poslední věty, popř. pro ladění do čtvrté věty Set Snímek = Prezentace.Slides.Add(K, 11) 'přidání nového snímku s rozvržením číslo 11 (prázdný snímek pouze s objektem titulku) ' 'TITULEK SNÍMKU PREZENTACE (= NEVIDITELNÝ KOMENTÁŘ) With Snímek.Shapes.Placeholders(1) 'začátek operací s titulkem, tj. prvním a zatím jediným objektem snímku.visible = False 'zneviditelnění (titulek není zobrazován, pouze definován kvůli navigaci mezi snímky) With.TextFrame.TextRange.Text = Zam!Příjmení & " " & Zam!Jméno 'text titulku je převzat z polí Příjmení a Jméno End With End With ' 'CELÉ JMÉNO (NAHOŘE) With Snímek.Shapes.AddShape(5, 220, 50, 280, 40) 'začátek operací s nově přidaným automatickým tvarem formátu č. 5 's definovanými protilehlými rohy.fill.visible = False 'objekt nemá pozadí (je průhledný, aby převzal případné pozadí prezentace z předlohy).line.visible = False 'objekt nemá okraj With.TextFrame.TextRange.Text = CeléJméno(Zam!Titul1, Zam!Jméno, Zam!Příjmení, Zam!Titul2) 'nad budoucí fotografii jsou z tabulky převzata pole Příjmení a Jméno.Font.Size = 36 'velikost písma nadpisu End With End With

193 Kapitola 9: Externí data 193 ' 'KOMENTÁŘ (DOLE): v dolní části snímku zobrazíme Charakteristiku zaměstnance With Snímek.Shapes.AddShape(5, 20, 450, 680, 40).Fill.Visible = False.Line.Visible = False With.TextFrame.TextRange.Text = Zam!Charakteristika.Font.Size = 36 End With End With ' 'FOTOGRAFIE (UPROSTŘED) Soubor = Application.CurrentProject.Path & "/web/" & Ident(Zam!Příjmení, Zam!Jméno) _ & "/" & Ident(Zam!Příjmení, Zam!Jméno) & ".gif" If System_souboru.FileExists(Soubor) Then Snímek.Shapes.AddPicture Soubor, False, True, 275, 200 'delší příkaz je možné rozdělit na více řádků, dílčí řádky končí mezerou a podtržítkem 'přidání obrázku - fotografie z příslušného adresáře z příslušného souboru s příponou gif 'fotografie je vložena (nikoliv propojena - parametr False) a uložena do souboru (True) 'poslední parametry: levý horní roh - x a y, popř. šírka, výška End If K = K + 1 'zvýšení počítadla zaměstnanců pro příkaz přidávání zaměstnanců Zam.MoveNext 'přechod na další větu tabulky Loop 'ukončení cyklu opakování End Sub OBR. 9-13: FUNKCE IDENT Z MODULU P94 IDENT P94 Ident Public Function Ident(Příjmení, Jméno) Ident = BezDiakritiky(Left(Příjmení, 8)) If Příjmení = "Škoda" Then Ident = Ident & BezDiakritiky(Left(Jméno, 1)) End Function Aby se importovaly do prezentace PowerPointu obrázky zaměstnanců, je nutné, aby byly obrázky umístěny ve složce s databází Encian.accdb v podsložce web, v níž má každý zaměstnanec svou podsložku, např.: C:\prac Encian.accdb web Adamec Adamec.gif index.htm Benes Benes.gif index.htm V případě, že obrázek není dostupný, procedura jeho načtení bez chyby přeskočí. Access Access 9.5 Access Objekty připravené v jedné databázi lze často použít v další nové databázi. Do databáze Accessu lze importovat objekty z jiné databáze: Vytvoříme novou databázi klepnutím do tlačítka Office a příkazem NOVÁ DATABÁZE. Novou prázdnou databázi nazveme Encian2. Zavřeme nabízenou prázdnou tabulku. V kartě EXTERNÍ DATA ve skupině Import klepneme 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.

194 Kapitola 9: Externí data 194 OBR. 9-14: DIALOGOVÉ OKNO IMPORT OBJEKTŮ Propojení Vybereme objekty pro import: Klepnutím do názvu objektu objekt vybereme. Klepnutím do označeného objektu zrušíme výběr objektu. Klepnutím do tlačítka Vybrat vše vybereme všechny objekty jednoho typu, např. tabulky. Klepnutím do tlačítka Zrušit výběr zrušíme označení všech objektů jednoho typu. Klepnutím do záložky zobrazíme objekty jiného typu. Současně můžeme označit objekty různých typů. Klepnutím do tlačítka Možnosti zobrazíme speciální parametry importu. Ve speciálních parametrech importu v spodní části okna upřesňujeme import: Současně s objekty vybranými v horní části můžeme ze zdrojové databáze importovat také: relace, nabídky a panely nástrojů 218 (všechny, nelze vybrat jednotlivé), specifikace pro import/export (všechny, nelze vybrat jednotlivé), skupiny navigačního podokna (všechny, nelze vybrat jednotlivé). Pro tabulky vybrané v horní části můžeme omezit import na import prázdných tabulek (jen definice struktury tabulek). Místo návrhů dotazů můžeme importovat jejich výsledky ve formě stejnojmenných tabulek. Jiným způsobem čerpání dat z jiné databáze je propojení tabulek. Propojením na jiné databáze se databáze nezvětšuje, čerpá aktuální údaje ze zdrojové databáze. Takto lze čerpat pouze z tabulek, nikoliv návrhy dotazů, formulářů, sestav či jiných objektů databáze. Databáze, z níž se čerpá, musí být k dispozici. V našem případě provedeme import objektů: tabulky Personal, Oddělení a Místnosti, formulář P52a Personal Identifikace, relací. Tabulky importujeme jako definice a data, dotazy jako dotazy. Tímto způsobem je možné importovat objekty i ze starších verzí Accessu (formát mdb verzí 2, 97, 2002, 2003). Data lze exportovat, importovat i propojit s daty jiných aplikací: databázové programy dbase (formát dbf), Paradox (formát db), soubor xml (formát html ve struktuře xml), tabulkový program Lotus (formát wk3). 218 Úprava nabídek (menu) a panelu nástrojů Accessu není v této publikaci vysvětlována.

195 Kapitola 9: Externí data 195 Access Visio 9.6 Visio Četné možnosti využití dat z Accessu nabízí Visio. Visio je prostředkem vizualizace dat z Accessu či seznamů z Excelu. V diagramu Visia máme připraven diagram modelu životního cyklu našich odběratelů. Na základě dotazníkového průzkumu jsme rozdělili odběratele do 8 stadií (viz obr. 9-15). OBR. 9-15: DIAGRAM MODEL ŽIVOTNÍHO CYKLU BEZ TEPLOMĚRŮ Stadium je pro jednotlivé odběratele uvedeno v tabulce Podniky. Parametry stadia (Stupeň, Charakteristika, Dynamika_stadia) jsou upřesněny v tabulce Stadia. V dotazu Visio Stadia jsou spočteny s využitím souhrnu počty odběratelů v jednotlivých stadiích (viz obr. 9-16). OBR. 9-16: DOTAZ VISIO STADIA Enc-09-06a.vsd Data načteme do výkresu Visia: Ve Visiu otevřeme výchozí diagram Enc-09-06a.vsd. Zadáme příkaz Visia DATA, PROPOJIT DATA S OBRAZCI. V prvním okně průvodce Výběr dat vybereme možnost Databáze aplikace Microsoft Office Access. V druhém okně procházením dohledáme databázi Encian.accdb a ve spodní části upřesníme datovou sadu Visio Stadia. Ve třetím okně ponecháme vybrány všechny sloupce (pole) a všechny řádky (věty). V čtvrtém okně vybereme jako identifikační pole Stadium. V posledním okně klepneme do tlačítka Dokončit. Výsledek dotazu se načte do diagramu Visia jako externí data s názvem Visio Stadia, která se zobrazí v samostatném okně 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: Zadáme příkaz Visia DATA, AUTOMATICKY PROPOJIT. V prvním okně průvodce ponecháme zaškrtnutu volbu Všechny obrazce na této stránce. V druhém okně vybereme k propojení sloupec Stadium a pole obrazce Text obrazce. Ve třetím okně potvrdíme propojení tlačítkem Dokončit. S externími daty se propojily všechny elipsy s výjimkou elipsy koncepce, v tomto stadiu žádný odběratel není. U každé propojené elipsy je zobrazen název stadia počet podniků formou tzv. datového symbolu.

196 Kapitola 9: Externí data 196 Enc-09-06b.vsd Datový symbol upravíme: Zadáme příkaz Visia DATA, ZOBRAZIT DATA OBRAZCŮ. V podokně úloh Datové symboly klepneme pravým tlačítkem do datového symbolu Visio Stadia a z místní nabídky vybereme UPRAVIT DATOVÝ SYMBOL. V dialogovém okně Upravit datový symbol klepneme do obou položek Stadium a Počet podniků a odstraníme je klepnutím do tlačítka Odstranit. Klepneme do tlačítka Nová položka a vybereme typ Datová čára. V dialogovém okně Nová datová čára vybereme do Datového pole položku Počet podniků. Jako Popisek ponecháme Teploměr. Upravíme Podrobnosti: Maximální hodnota: 18 Umístění popisků: Nezobrazeno Zrušíme zaškrtnutí pole Použít výchozí pozici. Do pole Vodorovně zadáme Pravá hrana. Do pole Svisle zadáme Doprostřed. Klepnutím do tlačítka OK ukončíme práci s dialogovým oknem Upravit datovou čáru. Klepnutím do tlačítka OK ukončíme práci s dialogovým oknem Upravit datový symbol. Nyní je pro každé stadium znázorněn počet odběratelů ve stadiu výší rtuti v teploměru (viz obr. 9-17). OBR. 9-17: DIAGRAM MODEL ŽIVOTNÍHO CYKLU S TEPLOMĚRY Organizační diagram Data jsou nakopírována do diagramu a jsou nezávislá na databázi. Můžeme je však aktualizovat příkazem DATA, AKTUALIZOVAT DATA, kterým se zobrazí dialogové okno Aktualizovat data, nastavit zobrazení okna pro aktualizaci vždy při otevření diagramu, konfigurovat automatickou aktualizaci v pravidelných časových intervalech. Můžeme také změnit zdroj dat nebo jeho umístění. Diagram můžeme vytvořit také automaticky, např. organizační diagram firmy: Ve Visiu otevřeme nový výkres příkazem SOUBOR, NOVÝ, ZAČÍNÁME. V kategorii Obchodní vybereme poklepáním šablonu Organizační diagram. Otevře se nový výkres s vhodným vzhledem stránky včetně nastavení vhodného rozložení a směrování. Zadáme příkaz DATA, VLOŽIT DATOVÁ ŘEŠENÍ, ORGANIZAČNÍ DIAGRAM. V prvním okně průvodce organizačním diagramem ponecháme vybránu volbu Informace již uložené v souboru nebo databázi. V druhém vybereme možnost Zdroj dat kompatibilní se standardem ODBC. Ve třetím okně vybereme zdroje dat v MS Access Database a dohledáme umístění databáze Encian.accdb. Ve čtvrtém okně vybereme tabulku Personal. (Za tabulkami se nabízí dotazy.) V pátém okně do pole Jméno vybereme pole Příjmení, v poli Nadřízený ponecháme vybrané pole Nadřízený a pole První jméno nevyužijeme. V šestém okně vybereme jako zobrazená pole Příjmení, Oddělení, Místnost. V sedmém okně ponecháme vybrány jako datová pole obrazců všechna pole s výjimkou polí Web, Foto a Přílohy. V osmém okně ponecháme zaškrtnuté pole Propojit záznamy databáze s obrazci. V devátém okně klepneme do tlačítka Dokončit.

197 Kapitola 9: Externí data 197 Enc-09-06c.vsd Automaticky se vytvořil diagram, který zřetězil zaměstnance dle pole Nadřízený. V diagramu provedeme některé úpravy: Z místní nabídky Sladké vybereme ZMĚNIT TYP POZICE a zvolíme ASISTENT. Diagram překreslíme příkazem ORGANIZAČNÍ DIAGRAM, ZNOVU ROZLOŽIT. Klepneme na uzel Dvořák (KON) a v panelu nástrojů Organizační diagram klepneme do tlačítka Přesunout doleva. Obdobně změníme pořadí dalších oddělení tak, aby oddělení byla v pořadí KON, ANA, REK, DIS, PRG. Klepneme na uzel Kolínská (PRG) a v panelu nástrojů Organizační diagram klepneme do tlačítka Vedle sebe, Jeden nahoře. Diagram překreslíme příkazem ORGANIZAČNÍ DIAGRAM, ZNOVU ROZLOŽIT. Příkazem ZOBRAZIT, MŘÍŽKA a ZOBRAZIT, SPOJOVACÍ BODY potlačíme zobrazování pomocných objektů Visia. Příkazem ZOBRAZIT, OKNO DAT OBRAZCE můžeme k jednotlivým uzlům zobrazit podrobná data (Oddělení, Telefon, Jméno, E_mail, Titul1, Příjmení atd.). OBR. 9-18: ORGANIZAČNÍ DIAGRAM Visio Access Kontingenční diagram Project Access V případě organizačního diagramu je možné data aktualizovat ve směru z Accessu i do Accessu. Organizační diagram můžeme dále formátovat např. využitím datových symbolů (viz obr. 1-2 v kap. 1). Můžeme tak vizualizovat např. pole Oprávnění, Pohlaví (ikonami) a Oddělení (barva výplně). Můžeme také doplnit zobrazení dalších polí (Telefon) a fotografie zaměstnanců. Visio může také automaticky sestavit kontingenční diagram (příkaz Data, Kontingenční diagram), který vychází z dat Acccessu. Můžeme tak např. vytvořit: kontingenční diagram tržeb za prodané programy dle stadií a odběratelů, kontingenční diagram tržeb a počtu prodaných programů dle programů a měsíců, kontingenční diagram tržeb a počtu prodaných programů dle oddělení a zaměstnanců, kontingenční diagram tržeb a počtu prodaných programů dle stadií a programů, kontingenční diagram celkové délky služebních cest dle místa cest Další aplikace Data lze importovat z či exportovat do dalších aplikací Microsoftu. Aplikace Project je program, který se používá pro zpracování projektů. Projekt lze chápat jako plán práce, který má na konci výsledek. Aplikace Project eviduje jednotlivé úkoly včetně jejich návazností, dále eviduje zdroje využité pro realizaci úkolů včetně zamezení jejich přetížení, zaznamenává náklady na realizaci projektu. Umí také sledovat průběh projektu, konfrontovat plán a skutečnost. 219 Podrobný výklad práce s daty v aplikaci Visio je uveden v kap. 10 v publikaci KUBÁLEK, Tomáš, KUBÁLKOVÁ, Markéta. Microsoft Office Visio 2007 jednoduše. Brno: ComputerPress, s. ISBN

198 Kapitola 9: Externí data 198 Enc-09-07a.mpp Outlook Access Access Outlook Project ukládá data do své interní databáze. Ta obsahuje četné tabulky, jejichž struktura je dána nebo ji mírně může ovlivnit uživatel definováním vlastních polí. Project s daty provádí četné výpočty a optimalizace. Data shromážděná v Projectu lze exportovat pro podrobnější analýzy a návaznosti v Accessu. Firma Encián připravila a realizovala projekt přestavby zasedací místnosti na školící počítačovou místnost. Data lze exportovat z projektu v aplikaci Project: V Projectu zadáme příkaz SESTAVA, VIZUÁLNÍ SESTAVY. V dialogovém okně Vizuální sestavy Vytvořit sestavu klepneme do tlačítka Uložit data. V dialogovém okně Vizuální sestavy Uložit data sestav klepneme do tlačítka Uložit databázi. Upřesníme název databáze a adresář jejího uložení. Vytvoří se databáze ve formátu mdb, kterou můžeme otevřít v Accessu Databáze obsahuje řadu tabulek a několik dotazů, mezi hlavní tabulky patří: MSP_EpmTask: Úkoly (identifikátorem věty je pole TaskUID), MSP_EpmResource: Zdroje (identifikátorem věty je pole ResourceUID), MSP_Assignment: Používání zdrojů úkoly. 220 Aplikace Outlook je organizátor osobních informací. Eviduje osobní kontakty, plní funkci poštovního klienta, eviduje plánované akce či celodenní události, eviduje úkoly, formou poznámek je možné v aplikaci zapsat nestrukturovaný text. Data ukládá aplikace do jediného souboru formátu pst. Soubor pst obsahuje jednotlivé složky (např. Kontakty, Doručená pošta). Outlook může pracovat současně s více soubory pst. Data z libovolné složky můžeme importovat do Accessu, např. můžeme načíst kontakty na zaměstnance ze složky asistentky ředitele Marie Sladké: V kartě EXTERNÍ DATA ve skupině Import klepneme 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. 221 V prvním okně průvodce importem vybereme soubor osobních složek (pst) a v něm složku, např. soubor Marie Sladká a v něm složku Kontakty. V druhém okně můžeme změnit názvy některých importovaných polí. Název musíme změnit u polí, které obsahují tečku, tj. Ulice (dom.) přejmenujeme na Ulice (domů), Město (dom.) na Město (domů), Okres (dom.) na Okres (domů), PSČ (dom.) na PSČ (domů), Země (dom.) na Země (domů), Telefon (zam. 2) na Telefon (zam 2), 2. křestní jméno na Druhé křestní jméno. 222 Ve třetím okně neurčíme primární klíč. Ve čtvrtém okně potvrdíme název tabulky Kontakty. V dialogovém okně Načíst externí data vzhledem k četným změnám názvů polí uložíme kroky importu pro případné opakování importu. Vytvořili jsme tabulku Kontakty. Access nepodporuje export do Outlooku. Výstup dat z Accessu můžeme řešit propojením se složkou Outlooku nebo importem ze strany Outlooku z formátu mdb (starší verze Accessu). Před importem si připravíme v Outlooku vhodnou dílčí složku příkazem SOUBOR, SLOŽKA, NOVÁ SLOŽKA, např. Importované kontakty typu Kontakt. Zadáme příkaz SOUBOR, IMPORT A EXPORT. Dále nám pomáhá Průvodce importem a exportem: V prvním okně zadáme Importovat z jiného programu nebo souboru. V druhém okně vybereme Microsoft Access Ve třetím okně upřesníme název databáze, z níž budeme importovat. Databáze nesmí být otevřena. Dále upřesníme, zda: zdvojené položky přepíšeme importovanými nebo 220 Podrobnější výklad sestav v aplikaci Project je uveden v kap. 8 v publikaci KUBÁLEK, Tomáš, KUBÁLKOVÁ, Markéta. Řízení projektů v Microsoft Office Project: Učebnice pro vysoké školy. Brno: Computer Press, s. ISBN Pokud bychom vybrali volbu Vytvořit odkaz na zdroj dat vytvořením propojené tabulky, data v Accessu by se automaticky aktualizovala při změně dat v Outlooku. Soubor pst by však musel být dostupný v původním umístění. 222 Můžeme také obejít změnu názvu přeskočením importu těchto nevyplněných polí zaškrtnutím pole Neimportovat pole (přeskočit).

199 Kapitola 9: Externí data 199 Shromáždění dat Access OneNote umožníme tvorbu zdvojených položek nebo neimportujeme duplicitní položky. V případě, že import provádíme do prázdné podsložky, je upřesnění zbytečné. Ve čtvrtém okně vybereme složku, do níž provádíme import, např. Importované kontakty. V pátém okně, pokud databáze obsahuje více tabulek, musíme vybrat tabulku (popř. tabulky), z nichž importujeme. Potom můžeme klepnutím do tlačítka Připojit vlastní pole zobrazit okno Připojit vlastní pole, v němž můžeme upřesnit, která pole databázové tabulky Accessu budou importována a do kterých polí Outlooku budou importována. (V případě databáze Encian bychom mohli vybrat tabulku Podniky a z ní provést následující přiřazení polí Accessu polím Outlooku: IČ IČO, NACE1 Kategorie, Název_podniku Společnost, Obec Město zam., Ulice Ulice zam., PSČ PSČ zam., Telefon Telefon zam., Bankovní_účet Účet, Bankovní_kód Umístění). Outlook může být využit také jako prostředek shromažďování dat v Accessu. Např. chceme, aby budoucí odběratel vyplnil o sobě data do formuláře a odeslal Outlookem: V navigačním podokně klepneme na tabulku Podniky. V kartě EXTERNÍ DATA ve skupině Shromáždit data klepneme do tlačítka Vytvořit . První okno průvodce je informativní. Klepneme do tlačítka Další. V druhém okně potvrdíme shromažďování pomocí formuláře ve formátu HTML 223. Ve třetím okně ponecháme vybranou volbu Pouze sběr nových informací. 224 Ve čtvrtém okně přidáme všechna pole do formuláře. V pravé části můžeme upřesnit popisky polí ve formuláři. V pátém okně můžeme upřesnit složky aplikace Outlook, kam přijdou odpovědi. Dále zde můžeme zaškrtnout, aby se odpovědi automaticky zpracovaly (přidaly nové věty) do příslušné tabulky Accessu, popř. nastavit podrobnosti automatického zpracování. V šestém okně vybereme, odkud budeme čerpat adresy uživatelů vyzvaných k vyplnění formuláře: Adresy můžeme zadat až v Outlooku před odesláním zprávy. Adresy můžeme čerpat z některého pole tabulky. (Tato možnost se využívá při aktualizaci dat.) Ponecháme vybranou volbu Zadat ové adresy v aplikaci Microsoft Office Outlook. V sedmém okně můžeme upřesnit název a text zprávy. V osmém informačním okně klepneme do tlačítka Vytvořit. Vytvoří se ová zpráva. Doplníme příjemce, můžeme upravit předmět a text zprávy. Součástí textu je formulář k vyplnění. Některé kontroly jsou zapsány alespoň formou upozornění pod polem pro vložení dat (např. číselný charakter pole, délka textového pole). Zprávu odešleme. Příjemce musí k přijetí zprávy použít aplikaci Outlook. Odpoví na naši výzvu tlačítkem Odpovědět. Vyplní formulář a odešle jej tlačítkem Odeslat. Data se po přijetí Outlookem automaticky doplní do tabulky v Accessu. 225 Pokud v kartě EXTERNÍ DATA ve skupině Shromáždit data klepneme do tlačítka Správa odpovědí, zobrazí se přehled odeslaných zpráv. Můžeme modifikovat jejich možnosti, poslat je znovu nebo zprávu ze seznamu odstranit. Aplikace OneNote je prostředek pro shromažďování, třídění, vyhledávání a sdílení informací. Access nenabízí export do ani import z OneNote. K přenosu dat lze využít schránku. V tabulce či ve výsledku dotazu označíme celou datovou sadu či vybrané řádky nebo sloupce. Kombinací kláves Ctrl C v Accessu zkopírujeme označenou část do schránky. Kombinací kláves Ctrl V ve OneNote vložíme obsah schránky do vhodné stránky ve OneNote ve formě tabulky. Sloupce jsou nazvány názvy polí. Pod tabulkou se tučně vypíše název zdrojové tabulky či dotazu. 223 Aplikace InfoPath, která je nabízena jako druhá varianta typu formuláře, přináší větší možnosti návrhu formuláře po sběr dat, pohodlnější vyplňování. Vyplňující však musí mít aplikaci nainstalovánu. 224 V případě aktualizace stávajících informací by bylo nutné, aby v každé větě bylo uvedeno s em uživatele, kterého opravňujeme aktualizovat větu. 225 Pokud bychom dříve nezvolili automatické zpracování, museli bychom jednotlivé odpovědi v Outlooku akceptovat, tj. na odpověď ve složce odpovědí klepnout pravým tlačítkem a vybrat volbu EXPORTOVAT DATA DO APLIKACE MICROSOFT OFFICE ACCESS.

200 Kapitola 9: Externí data 200 Access Publisher P97 Publisher Podniky Faktury Licence Programy Personal (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í. 226 Obdobně jako Word nabízí Publisher hromadnou korespondenci pro tvorbu publikací s poli slučovanými z datového zdroje. Ve firmě Encián připravíme potisk CD, na nichž poskytujeme software. Na CD má být uveden název a zkratka programu, číslo licence, její cena, IČ vlastníka (odběratele), název firmy vlastníka a datum prodeje licence. Nejprve v Accessu připravíme dotaz, který shromáždí uvedená data. OBR. 9-19: DOTAZ P97 PUBLISHER Enc-09-07b.pub V aplikaci Publisher připravíme potisk CD: Po příkazu SOUBOR, NOVÝ vybereme v kategorii Štítky šablonu Prázdný a klepneme do tlačítka Vytvořit. Tažením za vodorovné a svislé pravítko umístíme do návrhu potisku vodorovné a svislé vodítko na pozici 6,2 cm (doprostřed). Obdobně umístíme svislá vodítka doprostřed levé a pravé části potisku, tj. na pozice 2,2 cm a 10,2 cm. Příkazem VLOŽIT, TEXTOVÉ POLE vložíme (dle obr. 9-20) textové pole do horní, pravé a dolní části potisku. OBR. 9-20: POTISK CD V APLIKACI PUBLISHER 226 Publisher nabízí šablony pro typy publikací: Brožury, Bulletiny, Dárkové poukázky, Diplomy, , Formuláře, Hlavičkový papír, Kalendáře, Karty s pozdravem, Katalogy, Menu, Nápisy a výstrahy, Obálky, Oznámení, Papírové skládanky, Pohlednice, Pozvánky, Programy, Přání, Reklamy, Stručné publikace, Štítky, Vizitky, Webové servery, Životopisy.

201 Kapitola 9: Externí data 201 Z menu zadáme příkaz NÁSTROJE, HROMADNÉ KORESPONDENCE A KATALOGY, HROMADNÁ KORESPONDENCE. V prvním kroku průvodce hromadnou korespondencí ponecháme vybranou volbu Použít existující seznam. Ve druhém kroku průvodce dohledáme datový zdroj Encian.accdb a v něm vybereme dotaz P97 Publisher. V seznamu záznamů datové sady ponecháme vybrány všechny záznamy. Klepneme do tlačítka OK. Ze seznamu polí přetáhneme do horního pole potisku pole Program. Stisknutím klávesy Enter vložíme nový řádek. Vložíme pole Program_v. Označíme text horního pole a změníme v panelu nástrojů Formát formátování. Zadáme tučné písmo velikosti 18 vyrovnané na střed. Obdobně vložíme text do pravého pole: Na začátku je volný řádek. Na druhém řádku je text Licence, po mezeře pole Sériové_číslo. Po dvou volných řádcích je vloženo pole Cena. Z nabídky vyvolané klepnutím do inteligentního tlačítka Pole hromadné korespondence vybereme FORMÁTOVAT MĚNU a upřesníme počet desetinných míst na 0. Označíme text pravého pole a změníme v panelu nástrojů Formát formátování. Zadáme písmo velikosti 14 vyrovnané na střed. Obdobně vložíme text do dolního pole: V prvním řádku je text IČ vlastníka:, za ním vloženo pole IČ. V druhém řádku je vloženo pole Název_podniku. Ve čtvrtém řádku je vloženo pole Datum. Z nabídky vyvolané klepnutím do inteligentního tlačítka Pole hromadné korespondence vybereme FORMÁTOVAT DATUM A ČAS a upřesníme formát na Označíme text dolního pole a změníme v panelu nástrojů Formát formátování. Zadáme písmo velikosti 14 vyrovnané na střed. Příkazem VLOŽIT, OBRÁZEK, ZE SOUBORU vložíme obrázek Encian_logo.png nad horní pole a upravíme jeho velikost. Příkazem VLOŽIT, OBRÁZEK, ZE SOUBORU vložíme obrázek Encian_uzivatel.png do levé části potisku a upravíme jeho velikost. Klepnutím mimo pole se vždy zobrazí hodnota polí z první věty dotazu. V podokně úloh Hromadná korespondence v poli Náhled příjemce můžeme nastavit zobrazení dat z jiné věty. Ve třetím okně průvodce můžeme publikaci vytisknout, sloučit do nové publikace nebo zobrazit její náhled. Zobrazíme náhled. Cíl odkazů Vazba odkazů Nesvázané odkazy P98d Odkazy 9.8 Hypertextové odkazy Hypertextové odkazy mohou být z databáze Accessu směrovány: na lokální soubory, na soubory umístěné na webu, především na webové stránky. Hypertextové odkazy mohou být: nesvázané s obsahem databáze, potom jsou součástí formulářů 227, svázané s obsahem databáze, jejich obsah je potom diferencován pro jednotlivé věty dle obsahu pole typu Hypertextový odkaz. Svázaný hypertextový odkaz může být součástí tabulky, výsledků dotazu, formuláře. Nesvázané hypertextové odkazy budeme demonstrovat v novém formuláři: V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka Prázdný formulář. V návrhovém zobrazení v kartě NÁVRH ve skupině Ovládací prvky klepneme 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 tří možností: 227 Hypertextový odkaz může být také součástí také sestavy, zde by však nebyl využitelný.

202 Kapitola 9: Externí data 202 OBR. 9-21: DIALOGOVÉ OKNO VLOŽIT HYPERTEXTOVÝ ODKAZ Enc-09-08a.docx Enc-09-08b.xlsx Existující soubor nebo webová stránka:» Tlačítkem Procházet můžeme vybrat dostupný soubor (na lokálním či dostupném síťovém disku).» Tlačítkem Procházet web spustíme webový prohlížeč, v němž dohledáme stránku, klepnutím zpět na okno Vložit hypertextový odkaz se adresa stránky vloží do pole Adresa. Objekt v této databázi:» Vybereme typ objektu (tabulky, dotazy, formuláře, sestavy, makra, moduly) a konkrétní objekt, na nějž se chceme odkázat. ová adresa:» Můžeme zadat ovou adresu a Předmět, které budou použity pro odeslání u z databáze poštovním programem nastaveným na počítači. V našem případě využijeme objekt v této databázi, vybereme tabulku Personal. Upřesníme odkaz: Do pole Zobrazený text zapíšeme Tabulka Personal. Tento text se bude zobrazovat ve formuláři. Klepneme do tlačítka Komentář a v dialogovém okně Nastavit komentář hypertextového odkazu zapíšeme text Otevření tabulky Personal. Tento text se zobrazí v samostatném rámečku, když se přiblížíme kurzorem k odkazu ve formuláři. Obdobně doplníme do formuláře další odkazy, vždy klepnutím v návrhu označíme předchozí odkaz, aby se další umístil pod něj: na dotaz P42a Křestní jména na formulář P52a Personal Identifikace na sestavu P66 Telefonní seznam Obdobně nachystáme odkazy na lokální soubory: První odkaz bude na dokument Wordu 2007 Enc-09-08a.docx, který obsahuje tabulku cen programů. Každý program má v dokumentu svou záložku 228 : Klepneme na odkaz na sestavu. Stiskneme kombinaci kláves Ctrl K. Vybereme odkaz na Existující soubor nebo webovou stránku. Dohledáme soubor Enc-09-08a.docx. Do pole Zobrazený text zapíšeme Word záložka FIN. Do pole Adresa doplníme za odkaz #FIN, což upřesní odkaz na záložku. Odkaz přemístíme do druhého sloupce odkazů (8 cm od levého okraje). Druhý odkaz je na sešit Excelu 2007 Enc-09-08b.xlsx, který obsahuje v prvním listě List1 tabulku cen programů a ve druhém listě Graf graf cen programů. Upřesníme skok na záložku (název) FIN Ve Wordu 2007 jsme v přehledu programů označili tažením zkratku názvu jednotlivého programu a v kartě VLOŽENÍ ve skupině Odkazy jsme klepnuli do tlačítka Záložka. V dialogovém okně Záložka jsme záložku přidali tlačítkem Přidat.

203 Kapitola 9: Externí data 203 Enc-09-08c.pptx Třetí odkaz je na buňku A1 listu Graf sešitu Enc-09-08b.xlsx. Upřesníme skok na záložku (buňku) Graf!A1. Čtvrtý odkaz je na prezentaci PowerPointu 2007 Enc-09-08c.pptx, která obsahuje na jednotlivých snímcích ceny programů. Upřesníme skok na záložku (snímek) 2. V návrhu formuláře zobrazíme seznam vlastností. Vidíme, že adresu odkazu umisťuje Access do dvou formátových vlastností: Adresa odkazu: soubor, popř. webová adresa, v případě objektu ve stejné databázi nevyplněn, 230 Podadresa odkazu: záložka, název, snímek, popř. záložka na webové stránce, v případě objektu ve stejné databázi je zde anglický název typu objektu (např. Table) a po mezeře název konkrétního objektu (např. Personal). Obdobně můžeme vlastnosti doplnit k tlačítku: V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Tlačítko. Vymezíme tlačítko v prvním sloupci odkazů. Upravíme formátové vlastnosti tlačítka: Titulek: Makro P72 Makro, Podadresa odkazu: Macro P72 Makro 231. Výsledný stav formuláře je uveden v obr OBR. 9-22: FORMULÁŘ P98D ODKAZY Svázané odkazy P98e Webové adresy V tabulce Personal jsou odkazy na webové stránky jednotlivých zaměstnanců uvedeny formou svázaného hypertextového odkazu. Pole Web můžeme naplnit automaticky aktualizačním dotazem. Vytvoříme dvě jeho verze: webové adresy čerpání stránek zaměstnanců z webu (viz obr. 9-23) V aktualizačním dotazu naplníme první dvě složky hypertextového odkazu: Do zobrazovaného textu naplníme konstantní text Internet a po pomlčce doplníme jméno a příjmení. Do adresy odkazu vygenerujeme adresu na webu. Funkci Ident jsme definovali v modulu P94 Ident (viz kap. 9.4), vrací prvních 8 znaků příjmení bez háčků a čárek, v případě Škody doplní první písmeno křestního jména, neboť zaměstnanci s příjmením Škoda jsou ve firmě dva. OBR. 9-23: AKTUALIZAČNÍ DOTAZ P98E WEBOVÉ ADRESY 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. 229 V Excelu 2007 jsme v tabulce cen označili první dva sloupce a v kartě VZORCE jsme ve skupině Definovat názvy klepnuli do tlačítka Vytvořit z výběru a vybrali jsme Levý sloupec. 230 Cesta se ukládá celá, pro univerzální použití je vhodné zkrátit ji na pouhý název souboru a předpokládat umístění souboru ve stejné složce jako databáze. 231 Odkaz by nebyl funkční, pokud bychom vyplnili pro databázi vlastnost Základ hypertextového odkazu (tlačítko Office, SPRAVOVAT, VLASTNOSTI DATABÁZE, karta Souhrnné informace).

204 Kapitola 9: Externí data 204 OBR. 9-24: AKTUALIZAČNÍ DOTAZ P98F LOKÁLNÍ ADRESY P98g Web stránka a foto Svázaný hypertextový odkaz zobrazíme v speciálním poli prohlížeče ve formuláři (cílový stav formuláře je uveden v obr. 9-25): OBR. 9-25: FORMULÁŘ P98G WEB STRÁNKA A FOTO ZOBRAZENÍ V kartě VYTVOŘIT ve skupině Formuláře klepneme do tlačítka Návrh formuláře. V datové vlastnosti formuláře Zdroj záznamů vybereme tabulku Personal. Do formátových vlastností formuláře Dělení osy x mřížky a Dělení osy y mřížky vložíme hodnotu 5. Do formátové vlastnosti těla Barva pozadí vybereme Formulář pozadí. Do formuláře umístíme textové pole E_mail a tři textová pole daná výrazy (viz obr. 9-26): OBR. 9-26: FORMULÁŘ P98G WEB STRÁNKA A FOTO HORNÍ ČÁST NÁVRHU Ovládací prvek ActiveX WWW_text: =HyperlinkPart([WWW];1) WWW_odkaz: =HyperlinkPart([WWW];2) Foto_odkaz: ="web/" & Ident([Příjmení];[Jméno]) & "/" & Ident([Příjmení];[Jméno]) & ".gif" Textová pole s výrazy rekapitulují, které odkazy budeme zobrazovat ve spodní části formuláře. Kromě webové stránky zobrazujeme také fotografii zaměstnance ze souboru v jeho složce (lokální odkaz do složky databáze např. web/adamec/ Adamec.gif). Zobrazování obsahu odkazu probíhá ve speciálním ovládacím prvku. V kartě NÁVRH ve skupině Ovládací prvky klepneme do tlačítka Vložit ovládací prvek ActiveX a vybereme volbu MICROSOFT WEB BROWSER. Ovládací prvek umístíme pod textová pole a upravíme jeho parametry: formátová vlastnost Šířka: 7,6 cm formátová vlastnost Výška: 6 cm

205 Kapitola 9: Externí data 205 jiná vlastnost Název: Web_p. Analogicky vytvoříme napravo druhý objekt s názvem Foto_p. V zobrazení formuláře se na místě ovládacího prvku Prohlížeč zobrazuje zatím bílý obdélník. Musíme ještě určit, jaký odkaz se má v prvku realizovat, a to metodou Navigate. Úpravu zapíšeme do procedury, která se bude spouštět při přechodu na další větu. V řádku vlastnosti Při události Current formuláře klepneme na konci do tlačítka se třemi tečkami. Nejprve zapíšeme redukovaný obsah procedury, která bude funkční pouze pro webové stránky zobrazované z Internetu (viz obr. 9-27). OBR. 9-27: REDUKOVANÁ LOKÁLNÍ PROCEDURA FORMULÁŘE P98G STRÁNKA A FOTO Private Sub Form_Current() Web_p.Navigate Form("Web_odkaz") End Sub Pro obrázky a pro webové stránky čerpané z lokálního adresáře proceduru doplníme o další příkazy (viz obr. 9-28). OBR. 9-28: ROZŠÍŘENÁ LOKÁLNÍ PROCEDURA FORMULÁŘE P98G STRÁNKA A FOTO Private Sub Form_Current() Dim System_souboru 'Webová stránka Web_a = Form("Web_odkaz") If Left(Web_odkaz, 4) = "web/" Then Web_a = "file://" & Application.CurrentProject.Path & "/" & Web_a End If Web_p.Navigate Web_a 'Fotografie Foto_a = Application.CurrentProject.Path & "/" & Form("Foto_odkaz") Foto_p.Navigate "file://" & Foto_a Set System_souboru = CreateObject("Scripting.FileSystemObject") If System_souboru.FileExists(Foto_a) Then Foto_p.Visible = True Else Foto_p.Visible = False End If End Sub Navigate Metoda Navigate zobrazí do ovládacího prvku typu prohlížeč s názvem Web_p stránku z adresy, která je dána odkazem v zobrazeném poli formuláře Web. V případě odkazu na soubor (začíná textem web/) v poli Web, doplní modul na začátek odkazu počáteční specifikaci file:// a odkaz na složku, v níž je uložena databáze. Metoda Navigate zobrazí do ovládacího prvku typu prohlížeč s názvem Foto_p stránku ze souboru, jehož adresa je dána složkou uložení webových stránek, podsložku dle identu a názvem souboru dle identu s příponou gif, tj. fotografie ve formátu gif. 232 V proceduře je ošetřen případ, kdyby fotografie zaměstnance nebyla dostupná. V tom případě by ovládací prvek prohlížeče nebyl viditelný. Ve formuláři provedeme úpravy vlastností: formátová vlastnost Volič záznamů: ne, datová vlastnost Povolit přidávání: ne, datová vlastnost Povolit odstranění: ne, datová vlastnost Povolit úpravy: ne. Ve formuláři tak máme zobrazeny příslušné webové stránky a fotografie. Díky vhodně nastaveným vlastnostem formulář slouží pouze k prohlížení, nemůžeme zde omylem provést žádné úpravy obsahu v tabulce Personal. 232 Fotografie by byly pravděpodobně uloženy ve formátu jpg. Formát gif je vhodnější pro kreslené obrázky, kterými fotografie v ilustrativní databázi jsou. Obrázky ve formátu wmf z galerie klipartů byly v aplikaci Visio zmenšeny tak, aby žádný z jejich rozměrů nebyl větší než 200 bodů, a byly exportovány do formátu gif.

206 Kapitola 9: Externí data 206 Statické stránky Access web 9.9 Web a SharePoint Data z Accessu lze publikovat na webu. Vytvořené webové stránky mohou být: statické: jednorázový export do formátu html, který lze aktualizovat jen dalším exportem, tj. dalším generováním stránky, dynamické: stránka je generována vždy při jejím prohlížení na základě aktualizovaných dat z databáze. Některé objekty Accessu lze exportovat do dokumentu ve formátu html a publikovat na webu. Jedná se především o tabulky. Budeme exportovat tabulku Oddělení: V navigačním podokně klepneme do tabulky Oddělení. V kartě EXTERNÍ DATA ve skupině Export klepneme do tlačítka Další a vybereme DOKUMENT HTML. V dialogovém okně Export upřesníme název Odd a umístění souboru, zaškrtneme možnosti: Exportovat data s formátováním a rozložením Po dokončení operace exportu otevřít cílový soubor V dialogovém okně Možnosti výstupu HTML nevybereme šablonu 233 a ponecháme Výchozí kódování. Access vygeneruje soubor ve formátu html a zobrazí jej ve webovém prohlížeči. Data jsou zobrazena ve formě tabulky (viz obr. 9-29). Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů exportu. OBR. 9-29: TABULKA ODDĚLENÍ VE FORMÁTU HTML Web Access Import tabulky z webu Oddělení importovaná z webu Obdobně můžeme ukládat další objekty: Exportem dotazu se uloží výsledná datová sada ve formě tabulky. Exportem formuláře se uloží podkladová data z formuláře ve formě tabulky bez ohledu na uspořádání dat ve formuláři. Exportem sestavy se uloží jednotlivé stránky sestavy do samostatných souborů v podobném uspořádání jako v sestavě. Nejsou exportována případná ohraničení ovládacích prvků. Access může také čerpat data z webových stránek. Využijme k tomu, tabulku Oddělení exportovanou do souboru Odd ve formátu html: V kartě EXTERNÍ DATA ve skupině Import klepneme do tlačítka Další a vybereme DOKUMENT HTML. V dialogovém okně Načíst externí data upřesníme umístění a soubor zdroje importu. Dále upřesníme, jak a kam data uložíme. Data můžeme importovat do nové tabulky, připojit do stávající tabulky nebo propojit. Ponecháme vybranou volbu Importovat zdrojová data do nové tabulky v aktuální databázi. V prvním okně průvodce zaškrtneme pole První řádek obsahuje hlavičky sloupců 234. V druhém okně ponecháme nabízené názvy a typy importovaných polí. Ve třetím okně vybereme primární klíč Oddělení. V čtvrtém okně zadáme název nové tabulky Oddělení importovaná z webu. Tlačítkem Upřesnit lze zadat speciální parametry importu a tyto parametry importu lze uložit do databáze ve formě specifikace Šablona ovlivňuje formátování výsledné stránky, např. barvu pozadí. 234 První řádek obsahuje hlavičky sloupců jen tehdy, když jsme při exportu použili volbu Exportovat data s formátováním a rozložením v dialogovém okně Export. 235 Pokud se před dokončením importu zobrazí chybové hlášení Oddělovač polí textového souboru je shodný s oddělovačem desetinných míst nebo s oddělovačem textu, upravíme pole Desetinný symbol ve specifikaci na tečku.

207 Kapitola 9: Externí data 207 Připojení tabulky z webu Dynamické stránky SharePoint Přesun na server SharePoint Tlačítkem Dokončit importujeme tabulku. 236 Klepnutím do tlačítka Zavřít zavřeme okno pro uložení parametrů importu. Importovaná tabulka je okamžitým snímkem dat z webu. Automatickou aktualizaci můžeme zajistit připojením tabulky z webu: V kartě EXTERNÍ DATA ve skupině Import klepneme do tlačítka Další a vybereme DOKUMENT HTML. V dialogovém okně Načíst externí data upřesníme umístění a soubor zdroje importu. Dále vybereme volbu Vytvořit odkaz na zdroj dat vytvořením propojené tabulky. V prvním okně zaškrtneme pole První řádek obsahuje hlavičky sloupců. V druhém okně ponecháme nabízené názvy a typy importovaných polí. Ve třetím okně zadáme název nové tabulky Oddělení propojená z webu. Tlačítkem Dokončit propojíme tabulku. Demonstrujme si nyní rozdíl mezi importem a propojením. V tabulce Oddělení přidáme novou větu smyšleného oddělení ZAH, zahraničí, Novak.Petr. Tabulku exportujeme do dokumentu html. Když si nyní zobrazíme importovanou a propojenou tabulku, vidíme, že nové oddělení je uvedeno pouze v propojené tabulce. V tabulce Oddělení potom větu smyšleného oddělení odstraníme. Odstraníme také tabulky Oddělení importovaná z webu a Oddělení propojená z webu. Pro úplnost dodejme, že při pokusu o import či propojení souboru, který obsahuje více tabulek, se v horní části prvního okna průvodce objeví seznam tabulek, z nichž vybereme tabulku určenou k importování či propojení. Dynamické stránky načítají data z databáze tak, aby byly aktuální a snadno generované. Jedním z prostředků publikace dynamických stránek je aplikace SharePoint. SharePoint je integrovaná platforma pro intranet i internet firmy. Předpokladem využití je instalace SharePointu na serveru 237. V kap. 3 jsme poznali, že v rámci SharePointu je možné snadno vytvářet seznamy (databázové tabulky) a aktualizovat je prostřednictvím webového rozhraní či prostřednictvím Accessu. Seznam SharePointu je možné také vytvořit z Accessu. Databázi firmy Encián uložíme na serveru SharePoint, kde nadále budeme aktualizovat data prostřednictvím Accessu. Data budou dostupná také dalším uživatelům serveru SharePoint podle přístupových práv. Postup přesunu databáze na server SharePoint: Na serveru SharePointu připravíme vhodný web Encián. 238 Na serveru SharePointu připravíme v rámci založeného webu knihovnu dokumentů Objekty Accessu. 239 V databázi v tabulce Personal nejprve nastavíme webové odkazy místo lokálních odkazů aktualizačním dotazem P98e Webové adresy. V kartě EXTERNÍ DATA ve skupině Seznamy serveru SharePoint klepneme do tlačítka Přesunout na server SharePoint. V prvním okně průvodce: Zapíšeme adresu nově vytvořeného webu např. Zaškrtneme pole Umožňuje uložit kopii databáze... Klepneme do tlačítka Procházet a po chvíli a po přihlášení se k serveru SharePointu vybereme knihovnu Objekty_Accessu v pracovním prostoru nového webu. Po výběru 236 Všechna textová pole importované tabulky mají ve struktuře tabulky definovánu velikost K dispozici je verze Windows SharePoint Services např. ve verzi 3, která je zdarma součástí Windows Serveru Větší rozsah funkcí nabízí SharePoint Server např. ve verzi Data ukládá SharePoint do vlastní databáze nebo do databáze Microsoft SQL serveru např. ve verzi V rámci vhodného webu po přihlášení zadáme příkaz AKCE WEBU, VYTVOŘIT. Na stránce Vytvořit v sekci Webové stránky vybereme volbu Weby a pracovní prostory. Na stránce Nový web v sekci Výběr šablony zadáme Prázdný web. Do pole Nadpis zapíšeme Encián, do pole Popis zapíšeme Data z databáze Encián, do pole URL dopíšeme encian. Použijeme jedinečná oprávnění a nepřevezmeme horní panel odkazů z nadřazeného webu. Práci se stránkou ukončíme tlačítkem Vytvořit. Po chvíli jsme dotázáni na nastavení skupin uživatelů pro tento web. Klepneme do tlačítka OK. 239 V nově vytvořeném webu zadáme příkaz AKCE WEBU, VYTVOŘIT. Na stránce Vytvořit v sekci Knihovny vybereme volbu Knihovna dokumentů. Na stránce Nová do pole Název zapíšeme Objekty_Accessu, do pole Popis zapíšeme Objekty Accessu, do pole Šablona dokumentu vybereme Žádný.

208 Kapitola 9: Externí data 208 Aktualizace dat na webu klepneme na stránce výběru do tlačítka Otevřít a po chvíli do tlačítka OK. Klepnutím do tlačítka Další přejdeme na další část průvodce. Průvodce postupně připravuje seznamy na serveru SharePoint a přesouvá do nich data z jednotlivých tabulek. Potom kopíruje na web databázi (s propojením na seznamy SharePointu) do vybrané knihovny. V posledním okně průvodce je informace o nastavení sdílení tabulek a upozornění, že při přesouvání tabulek došlo k problémům. Zaškrtneme pole Zobrazit podrobnosti a klepneme do tlačítka Dokončit. Po dokončení přesunu: Na webu Encian byly vytvořeny seznamy, které obsahují data jednotlivých tabulek. Access vytvořil záložní kopii databáze se stejným názvem rozšířeným o text _Záloha. Databáze byla zkopírována do knihovny Objekty_Accessu na webu Encián. Problémy při přesouvání tabulek souvisí s drobnými rozdíly uložení dat v Accessu a SharePointu. Seznam problémů je uložen v Accessu v tabulce Problémy s přesunutím na web služby SharePoint. Mezi základní důvody problémů patří:» SharePoint nepodporuje referenční integritu.» SharePoint nepodporuje kaskádové aktualizace souvisejících polí.» Nelze vynutit jedinečný index v jiných polích než ID.» Nelze uplatnit pravidla ověřování platnosti dat.» SharePoint nepodporuje typ dat Desetinné číslo, je nahrazen polem typu Číslo nebo Dvojitá přesnost.» SharePoint nepodporuje typ dat OLE Object. Do Accessu je propojen Seznam informací o uživatelích s nastavenými přístupovými právy. Data jsou nyní uložena na serveru SharePoint a je možné je upravovat: ve webovém prostředí SharePointu, které obsahuje seznamy, v prostředí Accessu, jehož databáze obsahuje tabulky propojené do webu Encián. Upravíme data seznamu Oddělení: Ve webovém prohlížeči zadáme adresu webu Encián, např. Přihlásíme se k serveru SharePointu. V levé navigaci Snadné spuštění klepneme do volby Seznamy. Zobrazí se přehled všech seznamů (tabulek). Pro každý seznam je uveden počet položek (vět) a čas poslední aktualizace. Klepneme do seznamu Oddělení. V rámci seznamu Oddělení klepneme do odkazu Všechny položky a vybereme UPRAVIT TOTO ZOBRAZENÍ. Na stránce Upravit zobrazení zaškrtneme sloupec Upravit (odkaz pro úpravu položky) a klepneme do tlačítka OK. Zobrazí se seznam Oddělení s doplněným sloupcem tlačítka pro úpravy jednotlivých vět (viz obr. 9-30). OBR. 9-30: SEZNAM ODDĚLENÍ Řádky (věty) jsou seřazeny dle zkratky oddělení, tj. dle sloupce (věty) Oddělení. Klepneme do tlačítka Upravit v řádku REK. Zobrazí se stránka s možností editace jednotlivých polí (viz obr. 9-31).

209 Kapitola 9: Externí data 209 OBR. 9-31: ÚPRAVA POLOŽKY (VĚTY) REK Aktualizace dat v Accessu Aktualizace databáze na webu Na stránce můžeme: upravit hodnoty jednotlivých polí a úpravy potvrdit tlačítkem OK, odstranit větu klepnutím do horního odkazu Odstranit položku, odstranění je nutno potvrdit v samostatném okně, stornovat provedenou editaci polí tlačítkem Storno, což provedeme v našem případě. Vrátili jsme se na seznam Oddělení. Volbou NOVÝ, NOVÁ POLOŽKA můžeme doplnit opět ve formuláři novou větu do tabulky. Pohodlnější práci s daty umožňuje Access. Databázi s propojením na seznamy serveru SharePoint můžeme stáhnout z webu Encián: V levé navigaci Snadné spuštění klepneme na odkaz Objekty_Accessu ve skupině Dokumenty. Zobrazí se seznam dokumentů knihovny Objekty_Accessu. Klepnutím do odkazu na databázi můžeme databázi stáhnout. Případné změny provedené v databázi Accessu se díky propojeným tabulkám automaticky promítnou na webu a také změny na webu se promítnou v databázi Accessu. V databázi Accessu nemůžeme již provádět změny struktury tabulek. Tabulky jsou propojeny do SharePointu, případné změny by bylo nutné provádět v seznamech na webu. V databázi Accessu můžeme provádět změny ostatních objektů (např. formulářů a sestav). Rychlejší publikaci na server SharePointu umožňuje tlačítko Publikovat na web služby SharePoint nad navigačním podoknem. Klepnutím do tlačítka jsme po chvíli dotázáni na objekt knihovny, který máme aktualizovat. Po klepnutí do tlačítka Publikovat provedeme aktualizaci databáze (všech objektů s výjimkou tabulek) na webu. Access je přichystán i na možnost, že nebudeme moci být neustále připojeni k Internetu. Můžeme provádět změny v režimu offline. Na služební cestě bez dosahu Internetu budeme postupovat následovně: V kartě EXTERNÍ DATA ve skupině Seznamy serveru SharePoint klepneme do tlačítka Pracovat offline. Změníme nyní: v Accessu název oddělení REK na propagace a vedoucího PRG na Klimova.Jana, na webu název oddělení KON na poradenství a vedoucího PRG na Sladkova.Alice. Po návratu ze služební cesty se připojíme k Internetu a zvolíme jednu z možností: klepnutím do tlačítka Zahodit změny a volbou Zahodit všechny změny naše změny zapomenout a nepřipojovat se k serveru SharePointu, klepnutím do tlačítka Zahodit změny a volbou Zrušit všechny změny a aktualizovat naše změny zapomenout, ale převzít změny ze serveru SharePointu, klepnutím do tlačítka Synchronizovat promítnout naše změny na server SharePointu a převzít změny ze serveru. V případě konfliktů, tj. změn v Accessu i na webu od poslední synchronizace se při synchronizaci zobrazí dialogové okno Vyřešit konflikty, v němž rozhodneme, která úprava se bude akceptovat (viz obr. 9-32).

210 Kapitola 9: Externí data 210 OBR. 9-32: DIALOGOVÉ OKNO VYŘEŠIT KONFLIKTY Shrnutí 1. Access nabízí četné možnosti využití jeho dat jinými aplikacemi či využití dat jiných aplikací v Accessu formou zpracování externích dat. 2. Ve Wordu je možné připravit formulář s poli podobnými svázaným ovládacím prvkům ve formuláři Accessu. Dokument formuláře je možné zamknout tak, aby bylo možné editovat jen obsah polí formuláře. Po vhodném uložení dat formuláře do textového souboru je možné data importovat do Accessu. 3. Data z Accessu je možné využít ve Wordu formou uložení datové sady či sestavy ve formátu rtf nebo vytvořením dokumentu hromadné korespondence (z Accessu či z Wordu) ve Wordu tak, aby dokument načítal data do dopisu, obálek a dalších dokumentů z datové sady Accessu. 4. Data z datových sad Accessu je možné exportovat do textových souborů, pole mohou být oddělena oddělovači či mohou mít pevnou délku. Access může také importovat nebo propojit data z textových souborů. 5. Data z datových sad Accessu je možné exportovat do jednotlivých listů sešitu Excelu. Naopak je možné vytvořit tabulku načtením z listů či nazvaných oblastí Excelu. 6. Access nenabízí možnost exportu do PowerPointu ani importu z PowerPointu. Data je možné exportovat využitím modulu. V modulu je možné přidat knihovnu příkazů PowerPointu a v modulu Accessu využívat příkazy Visual Basicu pro práci s PowerPointem. 7. Tabulky je možné načíst či propojit z jedné do druhé databáze Accessu. Mezi databázemi je možné také importování všech dalších objektů (tabulek, dotazů, formulářů, sestav, maker, modulů, relací, specifikací). 8. Visio umí data z Accessu vizualizovat v uživatelem vytvořených diagramech či automaticky generovaných diagramech (organizační struktura, kontingenční diagramy). 9. V Accessu je možné prohlédnout data z projektu Projectu a dále je analyzovat. 10. Access umí importovat či propojit data ze složek Outlooku, např. z kontaktů a úkolů. Data lze také exportovat z Outlooku do Accessu. Outlook může být prostředníkem shromažďování dat od uživatelů formou formulářů v html formátu. 11. Data je možné z Accessu přenést do OneNote, kde jsou zobrazena jako tabulky. 12. Publisher umí využít obdobně jako Word data z Accessu formou hromadné korespondence. 13. V objektech Accessu je možné se hypertextově odkazovat na další soubory či jejich části. Odkazy mohou být nesvázané (např. formou odkazu na firemní webovou stránku) nebo svázané, tj. vložené do pole tabulky. Svázané odkazy lze ve formuláři Accessu zobrazit v poli typu prohlížeč. Obdobně lze zobrazit fotografie či obrázky uložené mimo databázi Accessu. 14. Data z Accessu lze publikovat na webu. Na web lze formou statických stránek exportovat jednotlivé tabulky, které lze z webu také čerpat. 15. Dynamickou formou publikace i možnost aktualizace stránek nabízí SharePoint. Server SharePointu může být úložištěm dat Accessu (propojených tabulek formou seznamů). Data je možné také aktualizovat lokálně a později se seznamy SharePointu synchronizovat.

211 Kapitola 10: Databázové nástroje Databázové nástroje Databázové nástroje Převod makra do Visual Basicu Místní nabídka formuláře PA2a Personal Identifikace Globální místní nabídka 10.1 Přehled V poslední kapitole budou vyloženy: nástroje nabízené v kartě DATABÁZOVÉ NÁSTROJE, jsou rozděleny do pěti skupin: Makro, Zobrazit či skrýt, Analyzovat, Přesunout data, Databázové nástroje. nastavení, která je možné upřesnit po klepnutí do tlačítka Office a tlačítka Možnost aplikace Access, příkazy dostupné po klepnutí do tlačítka Office 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, tlačítkem Převést makra do jazyka Visual Basic můžeme makro převést do samostatného modulu: V navigačním podokně vybereme makro např. P72 Makro. Klepneme do tlačítka Převést makra do jazyka Visual Basic. V dialogovém okně Převést makro ponecháme zaškrtnuté obě volby a klepneme do tlačítka Převést. Vytvoří se samostatný modul Převedené makro-p72 Makro s uživatelskou funkcí P72_Makro. Funkci bychom mohli použít např. z prázdného formuláře klepnutím do tlačítka a příkazem X = P72_Makro(). Modul nám může sloužit jako inspirace využití příkazů Visual Basicu. Databázové nástroje umožňují upravit místní nabídku formuláře. Změníme místní nabídku formuláře pro vstup data o zaměstnancích, využijeme k tomu makro P76 Menu, které obsahuje skupinu dílčích maker: V navigačním podokně klepneme na makro P76 Menu. V kartě DATABÁZOVÉ NÁSTROJE ve skupině Makro klepneme do tlačítka Vytvořit místní nabídku z makra. Zkopírujeme formulář P52a Personal Identifikace pod názvem PA2a Personal Identifikace a otevřeme nový formulář v návrhovém zobrazení. Do jiné vlastnosti formuláře Řádek místní nabídky vybereme P76 Menu. Ve formulářovém zobrazení klepneme do pozadí formuláře pravým tlačítkem. Původní místní nabídka je nahrazena nabídkou dílčích maker makra P76 Menu. Možnost využití místní nabídky můžeme dočasně potlačit zadáním volby ne do jiné vlastnosti Místní nabídka. K původní místní nabídce se můžeme vrátit vymazáním hodnoty v jiné vlastnosti Řádek místní nabídky. Vytvořená místní nabídka může být výchozí pro všechny objekty databáze: Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Access. V kartě AKTUÁLNÍ DATABÁZE ve skupině Možnosti pásu a panelu nástrojů vybereme místní nabídku v poli Řádek místní nabídky. (Nabízí se pouze makra, z nichž jsme vytvořili místní nabídku.) Po zadání se zobrazí upozornění o nutnosti zavřít a znovu otevřít aktuální databázi. Databázi zavřeme klepnutím do tlačítka Office a výběrem příkazu ZAVŘÍT DATABÁZI. Databázi otevřeme výběrem ze seznamu naposledy otevřených databází v okně Začínáme.

212 Kapitola 10: Databázové nástroje 212 Karty Doplňky ve formuláři PA2b Užitečné akce Vztahy Sestava relací Seznam vlastností Po vyzkoušení fungování v jiném formuláři do pole Řádek místní nabídky vrátíme hodnotu výchozí, opět zavřeme a otevřeme databázi. Do formuláře můžeme doplnit samostatnou kartu DOPLŇKY: Nejdříve připravíme vhodné makro: V kartě VYTVOŘIT ve skupině Makro klepneme do tlačítka Makro. Makro bude obsahovat jedinou akci s parametry:» Název (dílčího) makra: Užitečné» Akce: PřidatNabídku» Název nabídky: Užitečné akce» Název makra nabídky: P76 Menu» Text na stavovém řádku: Nabídka užitečných akcí. Makro uložíme pod názvem PA2b Užitečné akce. Formulář PA2a Personal Identifikace otevřeme v návrhovém zobrazení. Do jiné vlastnosti formuláře Řádek nabídek zapíšeme (vybrat nelze) PA2b Užitečné akce. Ve formulářovém zobrazení se doplnila karta DOPLŇKY. Obsahuje jedinou skupinu Příkazy nabídky. Klepnutím do tlačítka Užitečné akce se otevře nabídka dílčích maker makra P76 Menu Skupina Zobrazit či skrýt Klepnutím do tlačítka Vztahy se zobrazí relace databáze (viz kap. 2). Zobrazí se také aplikační karta NÁVRH se skupinami Nástroje a Vztahy. Aplikační kartu i vztahy zavřeme klepnutím do tlačítka Zavřít ve skupině Vztahy. Klepnutím do tlačítka Sestava relací ve skupině Nástroje se vygeneruje účelová sestava s diagramem relací. Sestava nemá zdroj záznamů. Jedná se o statické zobrazení vztahů mezi tabulkami. Jednotlivé prvky jsou aplikací nesvázaných ovládacích prvků sestavy: Názvy tabulek jsou vloženy jako popisky s tmavě modrým pozadím. Pole tabulek jsou vloženy jako seznam, v jeho datové vlastnosti zdroj řádků je seznam názvů polí. Relace mezi tabulkami jsou vloženy jako čáry. Čísla u relací (1, ) jsou vloženy jako obrázky. V záhlaví sestavy je uveden nadpis a aktuální datum. V kartě VZHLED STRÁNKY je často vhodné upravit orientaci na šířku a zmenšit okraje. Tlačítkem Seznam vlastností nebo kombinací kláves Alt Enter zobrazíme vlastnosti objektu označeného v navigačním podokně. Úplné vlastnosti se zobrazují jen pro objekty, nikoliv pro jejich zástupce vzniklé zařazením do skupiny v rámci kategorie (např. do skupiny 10 Databázové nástroje v kategorii Struktura publikace). 240 V dialogovém okně Vlastnosti objektu (viz obr. 10-1) můžeme: OBR. 10-1: DIALOGOVÉ OKNO VLASTNOSTI OBJEKTU 240 Vyřazení ze skupiny lze provést označením zástupce ve skupině a stisknutím klávesy Delete. Objekt se neodstraní, pouze zařadí do skupiny Nepřiřazené objekty.

213 Kapitola 10: Databázové nástroje 213 Závislosti objektů doplnit popis objektu 241, skrýt objekt v navigačním podokně 242. Další databázový nástroj umí zobrazit závislosti objektů Accessu: V navigačním podokně klepneme na tabulku Oddělení. V kartě DATABÁZOVÉ NÁSTROJE ve skupině Zobrazit či skrýt klepneme do tlačítka Závislosti objektů. Zobrazí se upozornění, že aktualizace informací o závislostech může být časově náročná. Klepneme do tlačítka OK. V podokně Závislosti objektů se zobrazí pro jednotlivé typy objektů závislosti vybraného objektu (viz obr. 10-2). Můžeme skrýt či zobrazit závislosti jednotlivých typů objektů klepnutím do sbalovacího tlačítka před názvem typu objektu. V horní části můžeme vybírat ze dvou možností zobrazení: Objekty závislé na mně (např. na tabulce Oddělení), Objekty, na kterých závisím (např. objekty, na nichž je závislá tabulka Oddělení). OBR. 10-2: PODOKNO ZÁVISLOSTI OBJEKTŮ Panel zpráv Pole Panel zpráv je dostupné, jen když je zobrazen panel zpráv 243. Panel zpráv nabízí možnost povolit spuštění maker, modulů, akčních dotazů (viz obr. 10-3). OBR. 10-3: PANEL ZPRÁV Klepnutím do tlačítka Možnosti v panelu zpráv a zadáním volby Povolit tento obsah můžeme povolit spuštění maker, modulů a akčních dotazů Skupina Analyzovat Pod pojmem analýza shrnuje Access tři nástroje: analýzu tabulky, analýzu výkonu objektu, dokumentaci objektu. 241 Popis objektu se zobrazí v navigačním podokně, když v místní nabídce nadpisu navigačního podokna vybereme ZPŮSOB ZOBRAZENÍ a zadáme PODROBNOSTI. 242 Skryté objekty lze zobrazit, když klepneme z místní nabídky nadpisu navigačního podokna, vybereme MOŽNOSTI NAVIGACE a zaškrtneme pole Zobrazit skryté objekty. Skryté objekty jsou potom zobrazeny světle šedivým písmem a lze upravit jejich vlastnosti, tj. také zrušit skrytí objektu. 243 Zobrazení panelu zpráv souvisí s nastavením zabezpečení databáze. Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Office. V kartě Centrum zabezpečení klepneme do tlačítka Nastavení Centra zabezpečení. V kartě Nastavení maker se nastavuje stupeň zabezpečení. Aby se zobrazil panel zpráv, zadáme Zakázat makra s oznámením. V kartě Panel zpráv musí být vybrána volba Zobrazit panel zpráv ve všech aplikacích.

214 Kapitola 10: Databázové nástroje 214 Analýza tabulky PA4 Tvorba Personal_duplicity Analýza tabulky je určena ke zdokonalování návrhu tabulek. Cílem je snížit množství informací duplicitně uváděných v tabulce za účelem zmenšení databáze a prevence chyb při aktualizaci. Tabulky v databázi Encian jsou navrženy optimálně. Pro demonstraci analýzy tabulky proto připravíme tabulku s duplicitními informacemi: Připravíme vytvářecí dotaz PA4 Tvorba Personal_duplicity (viz obr. 10-4), který sloučí informace z tabulek Personal a Oddělení (všechna pole tabulky Personal s výjimkou pole Přílohy a pole Oddělení_v z tabulky Oddělení). Dotaz vytvoří novou tabulku Personal_duplicity. (V kartě NÁVRH ve skupině Typ dotazu klepneme do tlačítka Vytvořit tabulku a upřesníme název tabulky Personal_duplicity.) OBR. 10-4: VYTVÁŘECÍ DOTAZ PA4 TVORBA PERSONAL_DUPLICITY Po spuštění dotazu vznikne tabulka Personal_duplicity, kterou budeme analyzovat: V kartě DATABÁZOVÉ NÁSTROJE ve skupině Analyzovat klepneme do tlačítka Analýza tabulky. První dvě okna průvodce jsou pouze informativní, nezadáváme zde žádné parametry. Ve třetím okně zrušením zatržení pole Zobrazovat úvodní stránky potlačíme zobrazování první dvou oken průvodce při jeho dalším použití. Dále vybereme ze seznamu tabulek tabulku Personal_duplicity, kterou chceme dále analyzovat. Ve čtvrtém okně odpovídáme na dotaz, kdo bude rozdělovat pole analyzované tabulky. Ponecháme volbu Ano, nechám rozhodnutí na průvodci. V pátém okně průvodce navrhl rozdělení tabulky na čtyři tabulky. Vyčlenění polí Nadřízený a Úvazek do samostatných tabulek není vhodné: Tažením myší pole Nadřízený přesuneme z Tabulky3 do Tabulky1 za pole Telefon. Tažením myší pole Úvazek přesuneme z Tabulky3 do Tabulky1 za pole Charakteristika. Odstranili jsme tak z diagramu Tabulku3 a Tabulku4. Zbývající dvě tabulky přejmenujeme a to tak, že tabulku označíme a klepneme do tlačítka Přejmenovat tabulku nebo poklepeme na její název. Tabulky nazveme Personal2 a Oddělení2 (viz obr. 10-5). V šestém okně zkontrolujeme definice primárních klíčů. Access správně určil jako klíčové pole Oddělení v tabulce Oddělení2. Klepneme do pole E_mail v tabulce Personal2 a klepnutím do tlačítka Primární klíč vybereme klíčové pole také v tabulce Personal2. V posledním okně zadáme, že chceme vytvořit pomocný dotaz, který nahradí původní tabulku Personal_duplicity. Klepneme do tlačítka Dokončit. Access zobrazí nápovědu, jejíž okno zavřeme, a otevře výběrový dotaz Personal_duplicity, který nahradil tabulku Personal_duplicity. Dotaz spojuje nově vytvořené tabulky Personal2 a Pracoviště2 tak, aby byly i nadále funkční případné dotazy, formuláře, sestavy a jiné objekty založené na datové sadě Personal_duplicity. Původní tabulka Personal_duplicity je zálohována v tabulce Personal_duplicity_OLD. Access automaticky vytvořil relaci mezi tabulkami Personal2 a Pracoviště2. (V diagramu relací však není zobrazena. Stačí do diagramu doplnit jednu z tabulek a z místní nabídky zadat příkaz ZOBRAZIT PŘÍMÉ RELACE.)

215 Kapitola 10: Databázové nástroje 215 OBR. 10-5: PÁTÉ OKNO PRŮVODCE ANALÝZOU TABULKY V tabulce Personal2 si všimněme, jak Access vyřešil pole Oddělení. Pole je na konci struktury tabulky, má titulek Vyhledávání Oddělení2. Ve struktuře tabulky jsou upraveny vlastnosti v kartě Vyhledávání: Zobrazit ovládací prvek: Pole se seznamem, Zdroj řádků: SELECT [Oddělení] AS xyz_id_xyz, [Oddělení] & ', ' & [Oddělení_v] AS xyz_dispexpr_xyz, [Oddělení], [Oddělení_v] FROM [Oddělení2] ORDER BY [Oddělení], tj. dotaz dle obr. 10-6, OBR. 10-6: DOTAZ ZE ZDROJE ŘÁDKŮ VYHLEDÁVÁNÍ POLE PRACOVIŠTĚ Analýza výkonu Počet sloupců: 4, Šířky sloupců: 0cm;0,002cm;1,685cm;2,426cm, Šířka seznamu: 4,617cm. Vlastnost Šířky sloupců ovlivňuje nejen rozbalovaný seznam (v němž sloupce s nulovou šířkou nejsou zobrazeny), ale také text zobrazený ve sloupci, když není seznam rozbalen. Ve sloupci je zobrazen text z prvního sloupce rozbalovaného seznamu s nenulovou šířkou. V našem případě je to druhý sloupec, v němž jsou textově sloučeny pole Oddělení a Oddělení_v. V rozbalovaném seznamu však vidíme až třetí a čtvrtý sloupec, neboť šířka druhého sloupce je minimální. Uživatel tak vybírá ze seznamu, v tabulce se zobrazí sloučený řetězec, do tabulky se ukládá nezobrazená hodnota z prvního sloupce seznamu. Access také nabízí kontrolu výkonu jednotlivých objektů. Před aplikací na databázi Encian zrušíme relaci mezi tabulkami Personal a Oddělení. 244 Provedeme analýzu výkonu: V kartě DATABÁZOVÉ NÁSTROJE ve skupině Analyzovat klepneme do tlačítka Analýza výkonu. V prvním okně průvodce vybereme analyzované objekty. Pro ilustraci vybereme v kartě Formuláře objekt P53 Podniky Identifikace. Po klepnutí do tlačítka OK se ve druhém okně zobrazí návrhy Accessu na zvýšení výkonu. 245 Návrhy jsou rozděleny do kategorií (viz obr. 10-7). 244 V kartě DATABÁZOVÉ NÁSTROJE ve skupině Zobrazit či skrýt klepneme do tlačítka Vztahy. Klepnutím označíme relaci mezi tabulkami Personal a Oddělení a klávesou Delele ji odstraníme. 245 Případné hlášení Položka nebyla v kolekci nalezena akceptujeme klepnutím do tlačítka OK.

216 Kapitola 10: Databázové nástroje 216 OBR. 10-7: DRUHÉ OKNO PRŮVODCE ANALÝZOU VÝKONU Dokumentace Přesun na SQL server Náměty kategorie Doporučení a Rada může realizovat Access sám. V našem případě označíme řádek Tabulka Stadia: Vytvořit relaci s tabulkou Podniky a klepneme do tlačítka Optimalizace. Kategorie výsledku se změní z Nápadů na Pevný. Klepnutím do tlačítka Zavřít ukončíme práci s Průvodcem analýzou výkonu. V diagramu relací doplníme k vytvořené relaci referenční integritu (včetně aktualizace souvisejících polí v kaskádě). V předcházejících kapitolách jsme poznali, že Access obsahuje značné množství objektů. Objekty obsahují dílčí ovládací prvky, které jsou charakterizovány řadou vlastností. Access nabízí automatickou dokumentaci databáze vypsáním jejích charakteristik do sestavy: V kartě DATABÁZOVÉ NÁSTROJE ve skupině Analyzovat klepneme do tlačítka Dokumentace databáze. Obdobně jako při analýze výkonu vybereme objekty, které chceme dokumentovat. Pro ilustraci vybereme pouze z karty aktuální databáze objekt Relace. Ve formě sestavy se zobrazí dokumentace, kterou můžeme klepnutím do tlačítka Office a příkazem TISK, TISK vytisknout. Prohlížení sestavy ukončíme tlačítkem Zavřít náhled Skupina Přesunout data Pokud je databáze složitá a vyžaduje práci více uživatelů, je vhodné transformovat ji do databáze Microsoft SQL Server, čímž se optimalizuje výkon databáze, přizpůsobivost, zabezpečení, spolehlivost, obnovitelnost a dostupnost aplikace 246 : V kartě DATABÁZOVÉ NÁSTROJE ve skupině Přesunout data klepneme do tlačítka SQL server. V prvním kroku průvodce přenesením rozhodujeme, zda z objektů databáze vytváříme novou SQL databázi nebo objekty přeneseme do dříve připravené SQL databáze. V druhém kroku zadáváme název serveru, který musí být dostupný. Dále vyplňujeme své uživatelské jméno na serveru včetně hesla. Zadáváme také název nově vytvořené SQL databáze či existující SQL databáze, do níž přenášíme objekty naší databáze Accessu. Ve třetím kroku vybereme ze seznamu tabulek tabulky, které chceme do databáze SQL převést. V čtvrtém kroku můžeme zaškrtnutím polí zajistit také exportování dalších atributů tabulek: indexy, ověřovací pravidla polí i tabulek, výchozí hodnoty polí tabulek vložených při založení nového záznamu tabulky, 246 Předpokladem úspěšného převodu na databázi SQL serveru je instalace příslušného softwaru (Microsoft SQL Server 2000 či jiná verze) na serveru a přístup na takový server.

217 Kapitola 10: Databázové nástroje 217 Přesun do databáze Accessu Správce propojených tabulek relace mezi tabulkami. Můžeme také zajistit přidávání tzv. časového razítka, do každého záznamu (věty) tabulky je potom ukládán čas vzniku či poslední změny záznamu. V pátém kroku zajišťujeme snadné prohlížení SQL databáze. Můžeme vytvořit tzv. projekt, v němž jsou uloženy odkazy na objekty SQL databáze (projekt je uložen do souboru s příponou adp) nebo vytvořit propojení tabulek do stávající databáze Accessu. V případě, že jsme v pátém kroku vybrali vytvoření projektu, máme v šestém kroku možnost vyžádat otevření projektu po ukončení převodu. V projektu SQL databáze vidíme známé objekty tabulky, formuláře, sestavy, stránky, makra a moduly. Seznam dotazů najdeme pod záložkou Zobrazení. Navíc jsou uvedeny záložky Databázové diagramy (obdoba relací) a Uložené procedury. Práce s objekty databáze SQL je obdobná jako v Accessu. Uspořádání návrhových zobrazení se poněkud liší, zejména pro tabulky a dotazy. Tvorba kvalitního návrhu databáze je dlouhodobý proces. Často se stává, že když už je databáze užívána více uživateli s různými daty, chceme upravit návrhy objektů v databázi. Musíme potom obtížně data načítat do nové databáze s upravenými návrhy objektů. Je proto vhodnější osamostatnit data od návrhů objektů. Rozdělení databáze vyzkoušíme na zjednodušené verzi databáze: Klepnutím do tlačítka Office a příkazem NOVÁ založíme novou prázdnou databázi s názvem Encian_predni. Do nové databáze importujeme (viz kap. 9.5) z databáze Encian.accdb objekty: tabulky Místnosti, Oddělení, Personal, formulář P52a Personal Identifikace. V kartě DATABÁZOVÉ NÁSTROJE ve skupině Přesunout data klepneme do tlačítka Databáze aplikace Access. V prvním okně průvodce rozdělením jsou uvedeny informace o rozdělování, klepneme do tlačítka Rozdělit databázi. Access vytvoří dvě dílčí databáze: přední s původním názvem Encian_predni, v níž jsou uloženy návrhy objektů a odkazy propojením na zadní databázi s daty, zadní s datovými tabulkami. V druhém okně průvodce zadáme název zadní databáze Encian_zadni 247 a klepneme do tlačítka Rozdělit. Po chvíli se vypíše hlášení o rozdělení databáze. Klepneme do tlačítka OK. Vznikly dvě databáze: Encian_zadni: obsahuje tabulky, Encian_predni: obsahuje ostatní objekty s výjimkou tabulek, kterou jsou do databáze propojeny. Nyní již můžeme upravovat přední databázi a uživatelům ji předávat s aktualizovanými návrhy objektů, aniž narušíme uživatelská data ze zadní databáze. Princip rozdělení je podobný jako při přesunu dat na server SharePoint (viz kap. 9.9) Skupina Databázové nástroje Access si v přední databázi pamatuje místo uložení propojených dat. Pokud uživatel data uloží do jiné složky (adresáře), musíme upravit propojení tabulek. K tomu slouží další nástroj Správce propojených tabulek: Přejmenujeme složku našich databází nebo databáze přesuneme do jiné složky. Otevřeme přední databázi Encian_predni. Poklepáním na libovolnou tabulku zobrazíme chybové hlášení, Access předpokládá uložení zadní databáze v původní složce. V kartě DATABÁZOVÉ NÁSTROJE ve skupině Databázové nástroje klepneme do tlačítka Správce propojených tabulek. V dialogovém okně Správce propojených tabulek je seznam propojených tabulek. Klepneme do tlačítka Vybrat vše a potom do tlačítka OK. 247 Nabízí se původní název přední databáze rozšířený o písmena be (back end).

218 Kapitola 10: Databázové nástroje 218 Správce přepínacích panelů V dalších oknech upřesníme, kde je soubor databáze (zadní databáze) pro jednotlivé vybrané tabulky umístěn. 248 Access upraví odkazy na propojené tabulky a vypíše hlášení, které ukončíme klepnutím do tlačítka OK. 249 Ručně bychom mohli nastavit propojení tabulky také odstraněním propojení a novým připojením klepnutím do tlačítka Access ve skupině Import v kartě EXTERNÍ DATA. Nástroj Správce přepínacích panelů umožňuje vytvořit soustavu panelů pro přepínání mezi jednotlivými objekty či dalšími přepínacími panely. Pro ukázku připravíme výchozí přepínací panel Hlavní menu přepínací panel (viz obr. 10-8), z něhož budou odkazy na panely: Formuláře: nabídka dvou formulářů a možnost návratu na hlavní menu, Sestavy: nabídka dvou sestav a možnost návratu na hlavní menu. OBR. 10-8: PŘEPÍNACÍ PANELY V DATABÁZI ENCIÁN Switchboard Items Přepínací panel Postup přípravy soustavy přepínacích panelů: V kartě DATABÁZOVÉ NÁSTROJE ve skupině Databázové nástroje klepneme 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 přejeme vytvořit jej, klepneme do tlačítka Ano. Vytvoří se dva objekty databáze: tabulka Switchboard Items, do níž se bude ukládat nastavení přepínacích panelů, formulář Přepínací panel, v němž se hlavní i dílčí menu budou zobrazovat. Ve Správci přepínacích panelů klepneme do tlačítka Upravit. Název přepínacího panelu změníme z textu Hlavní přepínací panel na Hlavní menu přepínací panel a klepneme do tlačítka Zavřít. Ve Správci přepínacích panelů nachystáme další dva přepínací panely (tzv. stránky): Klepnutím do tlačítka Nový založíme první z nich. Nazveme jej Formuláře. Klepnutím do tlačítka Nový založíme druhý z nich. Nazveme jej Sestavy. Klepnutím označíme stránku přepínacího panelu Hlavní menu a klepneme do tlačítka Upravit. 248 Propojené tabulky mohou být uloženy i v různých databázích 249 Někdy potřebujeme změnit odkaz na jinou verzi databáze umístěnou v jiném adresáři. Potom zaškrtneme pole Vždy zobrazit dotaz na zadání umístění a Access nám dá možnost upřesnit umístění databáze i v případě, že databáze se stejným názvem v původním adresáři existuje.

219 Kapitola 10: Databázové nástroje 219 Šifrování databáze V rámci hlavního menu doplníme položky přepínacího panelu klepáním do tlačítka Nový: Pro první položku upravíme parametry:» Text: Formuláře» Příkaz: přejít na přepínací panel» Přepínací panel: Formuláře Pro druhou položku upravíme parametry:» Text: Sestavy» Příkaz: přejít na přepínací panel» Přepínací panel: Sestavy Klepnutím do tlačítka Zavřít zavřeme úpravy Hlavního menu. Klepnutím označíme stránku přepínacího panelu Formuláře a klepneme do tlačítka Upravit. V rámci přepínacího panelu Formuláře doplníme položky přepínacího panelu klepáním do tlačítka Nový: Pro první položku upravíme parametry:» Text: Formulář P52a Personal Identifikace» Příkaz: otevřít formulář v režimu úpravy» Formulář: P52a Personal Identifikace Pro druhou položku upravíme parametry:» Text: Formulář P53 Podniky Identifikace» Příkaz: otevřít formulář v režimu úpravy» Formulář: P53 Podniky Identifikace Pro třetí položku upravíme parametry:» Text: Návrat na hlavní menu» Příkaz: přejít na přepínací panel» Přepínací panel: Hlavní menu přepínací panel Klepnutím do tlačítka Zavřít zavřeme úpravy přepínacího panelu Formuláře. Klepnutím označíme stránku přepínacího panelu Sestavy a klepneme do tlačítka Upravit. V rámci přepínacího panelu Sestavy doplníme položky přepínacího panelu klepáním do tlačítka Nový: Pro první položku upravíme parametry:» Text: Sestava P62 Personal Identifikace» Příkaz: otevřít sestavu» Sestava: P62 Personal Identifikace Pro druhou položku upravíme parametry:» Text: Sestava P66 Telefonní seznam» Příkaz: otevřít sestavu» Sestava: P66 Telefonní seznam Pro třetí položku upravíme parametry:» Text: Návrat na hlavní menu» Příkaz: přejít na přepínací panel» Přepínací panel: Hlavní menu přepínací panel Klepnutím do tlačítka Zavřít zavřeme úpravy přepínacího panelu Sestavy. Klepnutím do tlačítka Zavřít zavřeme Správce přepínacích panelů. Přepínací panely spustíme otevřením formuláře Přepínací panel. Poklepeme na jeho název v navigačním podokně. Soustavu přepínacích panelů můžeme kdykoliv modifikovat klepnutím do tlačítka Správce přepínacích panelů ve skupině Databázové nástroje v kartě DATABÁZOVÉ NÁSTROJE. Abychom zamezili neoprávněnému přístupu do databáze, můžeme databázi zašifrovat pomocí hesla: Databázi musíme otevřením ve výhradním režimu, tj. režimu, kdy nemůže být otevřena současně jiným uživatelem: Klepneme do tlačítka Office a vybereme příkaz OTEVŘÍT. Dohledáme databázi. Z nabídky tlačítka Otevřít vybereme VÝHRADNÍ PŘÍSTUP. V kartě DATABÁZOVÉ NÁSTROJE ve skupině Databázové nástroje klepneme do tlačítka Zašifrovat pomocí hesla. V dialogovém okně Nastavit heslo databáze zadáme dvakrát heslo.

220 Kapitola 10: Databázové nástroje 220 Formát ACCDE Formát ACCDR Formulář s nabídkou objektů Automatické spuštění formuláře Oblíbené možnosti Při otevírání databáze jsme nadále vyzýváni k zadání hesla. Navíc je zašifrován obsah databáze tak, aby nebylo možné číst obsah databáze např. programem pro práci se soubory. Dešifrovat databázi můžeme klepnutím do tlačítka Dešifrovat databázi, které nahradilo původní tlačítko Zašifrovat pomocí hesla. Při dešifrování musíme opět zadat heslo. Příprava databáze představuje pro autora hodiny usilovné práce. Access usnadňuje šíření databáze bez možnosti uživatele nahlížet do návrhů formulářů, sestav a modulů: V kartě DATABÁZOVÉ NÁSTROJE ve skupině Databázové nástroje klepneme do tlačítka 250 Vytvořit databázi ACCDE. Upřesníme název a umístění databáze. Otevírání databáze ACCDE probíhá stejně jako otevírání databáze ACCDB. Pro objekty typu Formuláře, Sestavy a Moduly není k dispozici návrhové zobrazení. Obsah modulů nelze prohlížet. Ochranu před prohlížením návrhu nelze obejít ani importováním objektů. V dialogovém okně importu nelze objekty formulářů, sestav, maker a modulů označit. Chceme-li upravit návrh formulářů, sestav nebo modulů v databázi ACCDE, musíme otevřít původní databázi, upravit ji a poté ji znovu uložit jako databázi ACCDE. Pro jakoukoliv databázi můžeme změnit příponu programem na správu souborů, např. průzkumníkem 251 z přípony ACCDB na ACCDR. Databázi potom můžeme spustit: na počítači s nainstalovaným Accessem: poklepáním na název souboru, ze zástupce na ploše 252, na počítači bez instalace Accessu: Z webu Microsoftu 253 lze stáhnout zdarma tzv. runtime Accessu, tj. prostředek, který umožňuje pracovat s databází Accessu bez možnosti úpravy jejího návrhu. Databáze ACCDR nemá k dispozici následující prvky: navigační podokno, pás karet, návrhové zobrazení a zobrazení rozložení, nápovědu. Je proto nutné doplnit výchozí nabídku spouštění objektů Accessu. V databázi Encian jsme poznali následující možnosti tvorby formuláře s nabídkou spouštění objektů: formulář s tlačítky, k nimž jsou definovány událostní vlastnosti Při klepnutí (viz kap. 7.6), formulář s hypertextovými odkazy na jednotlivé objekty databáze (viz kap. 9.8), přepínací panel (viz kap. 10.6). Formulář s nabídkou objektů je nutné automaticky zobrazit při otevření databáze, což lze zajistit dvěma způsoby: Formulář otevřeme makrem, které nazveme Autoexec (viz kap. 7.6). Makro Autoexec se automaticky spouští po otevření databáze. 254 Klepneme do tlačítka Office a do tlačítka Možnosti aplikace Access. V kartě Aktuální databáze v sekci Možnosti aplikace zadáme do pole Zobrazit formulář hodnotu P76 Menu Možnosti aplikace Access Klepnutím do tlačítka Office a do tlačítka Možnosti aplikace Access zobrazíme dialogové okno Možnosti aplikace Access s několika kartami: Oblíbené: Zde můžeme mj.: vybrat barevné schéma Accessu (modré, černé, stříbrné viz kap. 5.2), vybrat výchozí formát ukládání souborů databází, 250 Tvorbu databáze ACCDE musíme provádět po souhlasu s prováděním maker, modulů a akčních dotazů. 251 V průzkumníkovi musí být zobrazeny přípony souborů. Z menu zadáme příkaz USPOŘÁDAT, MOŽNOSTI SLOŽKY A HLEDÁNÍ. V kartě Zobrazení zrušíme zaškrtnutí pole Skrýt příponu souborů známých typů. 252 Zástupce se bude odkazovat na program Access, který je v adresáři Program Files/Microsoft Office/Office12. Po mezeře následuje název souboru databáze a po další mezeře text /runtime. Zástupce tak může obsahovat odkaz: "C:Program Files\Microsoft Office\Office12\MSACCESS.EXE" C:/data/Encian.accdr /runtime 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.

221 Kapitola 10: Databázové nástroje 221 Možnosti aktuální databáze Možnosti datového listu Možnosti návrhářů objektů Možnosti kontroly pravopisu a mluvnice Možnosti upřesnění Tlačítko Office upřesnit uživatelské jméno a iniciály. Aktuální databáze: Nastavené parametry jsou platné jen pro aktuální databázi, mj.: V sekci Možnosti aplikace můžeme upřesnit název aplikace, který se potom zobrazuje v záložce spuštění Accessu ve Windows. Můžeme také upřesnit ikonu, která se zobrazí v záložce formou vhodného souboru ve formátu ico 255. V poli Zobrazit formulář můžeme vybrat formulář, který se má automaticky zobrazit po otevření databáze (viz kap. 10.6). V poli Možnosti okna dokumentu můžeme upravit způsob otevírání objektů v oknech, nemusí to být karty, ale okna, na něž byli zvyklí uživatelé předchozích verzí Accessu. Zaškrtnutím pole Komprimovat při zavření můžeme nastavit automatickou komprimaci databáze při jejím zavírání, což však může při častější práci s databází brzdit zavírání. V sekci 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.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 výchozí barvy (písma, pozadí, mřížky), formát mřížky tabulky, výchozí písmo. Návrháři objektů: Pro jednotlivé objekty lze nastavit výchozí parametry: Pro návrh tabulky vybrat výchozí typ pole (např. text), výchozí velikost textového pole, výchozí velikost číselného pole. Po návrh dotazu lze mj. potlačit zobrazení názvů tabulek v mřížce dotazu, povolit automatické spojení tabulek při stejném jméně polí tabulek. Pro formuláře a sestavy lze nastavit způsob vybírání více ovládacích prvků tažením, název výchozí šablony formuláře a sestavy. Kontrola pravopisu a mluvnice: Tlačítkem Možnosti automatických oprav zobrazíme dialogové okno, v němž můžeme mj. potlačit psaní velkých písmen na začátku vět a nahrazování textu při psaní obdobně jako u jiných programů Microsoft Office. V jednotlivých polích můžeme aktivovat přeskakování slov psaných velkými písmeny, obsahujících číslice, internetové adresy a adresy souborů. Klepnutím do tlačítka Vlastní slovníky můžeme» aktivovat použití vlastního slovníků či více slovníků,» upravit seznam slov v uživatelském slovníku,» vytvořit nový uživatelský slovník,» přidat dříve připravený uživatelský slovník,» odebrat užívaný uživatelský slovník. Upřesnit: V sekci Ú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, nastavit nutnost potvrzování akčních dotazů. V sekci Zobrazit můžeme mj. zadat počet zobrazovaných naposledy použitých databází, nastavit chování inteligentních značek, zobrazování sloupců v návrzích maker. 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í Tlačítko Office (nabídka Soubor) Klepnutím do tlačítka Office otevřeme nabídku Soubor Accessu: NOVÁ: Otevřeme okno Začínáme s aplikací Microsoft Access, v němž můžeme založit novou databázi, která může vycházet ze šablony nebo být prázdná (viz kap. 1.3). 255 Pro vyzkoušení je v demonstračních souborech k dispozici soubor Encian.ico.

222 Kapitola 10: Databázové nástroje 222 OTEVŘÍT: Otevřeme dříve založenou databázi. V Accessu může být otevřena jen jedna databáze. Můžeme však Access spustit vícekrát s otevřením různých databází. ULOŽIT: Ukládá do databáze aktuálně otevřený objekt. Často se takto (kombinací Ctrl S) provádí ukládání objektů formulář, sestava, makro. Obsah tabulky se ukládá automaticky při přechodu na další větu nebo při zavření tabulky. ULOŽIT JAKO: Otevřený objekt můžeme uložit do databáze pod dalším názvem. TISK: Provede tisk otevřeného objektu, dílčí příkazy: TISK: Před tiskem otevře okno Tisk, v němž lze nastavit tiskárnu či rozsah tisku. RYCHLÝ TISK: Provede přímo tisk objektu na výchozí tiskárnu. NÁHLED: Zobrazí náhled tisku včetně aplikační karty NÁHLED. SPRAVOVAT: ZKOMPRIMOVAT A OPRAVIT DATABÁZI: Provede komprimaci databáze, tj. databázi zavře, uspořádá uložení objektů v databázi a databázi znovu otevře. Příkaz je možné také spustit bez předchozího otevření databáze a opravit tak případně databázi, kterou nelze otevřít. ZÁLOHOVAT DATABÁZI: Kopii databáze můžeme uložit pod jiným názvem. Prvotně se nabízí původní název rozšířený o datum ukládání. VLASTNOSTI DATABÁZE: Můžeme prohlédnout (v kartách Obecné, Statistické údaje, Obsah) a editovat (v kartách Souhrnné informace, Vlastní) vlastnosti databáze. Při vyplnění vlastnosti Základ hypertextového odkazu je využit základ pro hypertextové odkazy, nemusíme tak např. zadávat v jednotlivých větách webovou adresu firmy v odkazech na osobní stránky zaměstnanců. Vyplnění vlastnosti může však nepříznivě ovlivnit fungování odkazů na lokální soubory (viz kap. 9.8). Objekt označený v navigačním podokně (např. tabulku) můžeme ve zvoleném formátu (např. xlsx) poslat em. Otevře se výchozí poštovní program s novou zprávou s přílohou objektu exportovaného do vybraného formátu. PUBLIKOVAT: SERVER SPRÁVY DOKUMENTŮ: Access nabídne uložení databáze do některé síťové složky nastavené v počítači. ZABALIT A PODEPSAT: Umístí databázi do souboru nasazení aplikace Access (ACCDC), balíček podepíše a podepsaný balíček uloží do určeného umístění. Uživatelé potom mohou databázi extrahovat z balíčku a pracovat přímo s ní a nikoliv se souborem balíčku. 256 ZAVŘÍT DATABÁZI: Zavře otevřenou databázi bez ukončení práce Accessu. Shrnutí 1. Prostřednictvím makra se skupinou maker můžeme vytvořit pro formulář místní nabídku formuláře. Takovou nabídku můžeme povýšit na globální místní nabídku. Do formuláře můžeme doplnit kartu Doplňky, v níž uvedeme makro obsahující akci PřidatNabídku. 2. K objektům databáze můžeme upřesnit vlastnosti: popis a atribut skrytí. 3. V samostatném podokně lze sledovat závislosti objektů databáze. 4. Analýza tabulky pomáhá vhodným rozdělením tabulky na dílčí tabulky zmenšit databázi, usnadnit její aktualizaci a zabránit chybám při aktualizaci. 5. Analýza výkonu dává doporučení, rady a nápady k racionalizaci návrhu objektů. 6. Objekty je možné v Accessu automaticky dokumentovat. 7. Databázi lze z Accessu převést do SQL databáze. Z Accessu lze SQL databázi prohlížet prostřednictvím projektu či propojením tabulek. 8. Databázi je vhodné rozdělit na přední databázi (všechny objekty kromě tabulek) a zadní databázi (tabulky aktualizované uživatelem). Změnu umístění zadní databáze usnadňuje Správce propojených tabulek. 9. Správce přepínacích panelů umožňuje vytvořit soustavu panelů pro přepínání mezi jednotlivými objekty. 10. Databázi je možné zabezpečit heslem, databáze je navíc při použití hesla zašifrována. 11. Šíření databáze usnadňují formáty ACCDE a ACCDR. Uživatelé formátu ACCDR nemusí mít nainstalovaný Access, mohou využít volně šířený runtime Accessu. 12. Fungování Accessu či jednotlivé databáze lze upravit v možnostech aplikace Access. 256 Podrobněji v nápovědě Accessu v hesle Zabezpečení a ochrana osobních údajů, Zabezpečení databáze aplikace Access 2007, Zabalení, podepsání a distribuce databáze aplikace Access 2007.

223 Příloha A: Použité objekty 223 Tabulky Dotazy Příloha A: Použité objekty Příloha A obsahuje objekty využité v databázi Encian včetně odkazů na stránku, na níž byl objekt vytvořen. Seznam je seřazen dle abecedního řazení jednotlivých typů objektů. Tabulky Cesty (str. 13) Faktury (str. 12) Kontrola_cest (str. 173) Licence (str. 12) Majetek_typy (str. 14) Majetek_umístění (str. 14) Místnosti (str. 14, 26) NACE (str. 12) Oddělení importovaná z webu (str. 206) Oddělení (str. 10, 17) Oddělení_F (str. 81) Oddíly_Sekce (str. 12) Dotazy NACE_Oddíly (str. 32) P13 Zaměstnanci s oddělením (str. 18) P22a Zaměstnanci s původními telefony (str. 27) P22b Místnosti se zaměstnanci (str. 28) P23 Hledání nekonzistencí (str. 31) P33a Inteligentní značky (str. 50) P33d NACE4000 (str. 54) P34 Filtr podle formuláře (str. 62) P42a Křestní jména (str. 69) P42b Seřazená jména (str. 71) P42c Jména bez duplicit (str. 71) P42d Pohlaví a oddělení (str. 72) P42e Pohlaví a oddělení bez duplicit (str. 72) P42f Pohlaví a oddělení jinak řetězené (str. 72) P42g Lidé z PRG (str. 73) P42h Lidé z PRG a ANA (str. 73) P42i Lidé z PRG, ANA a REK (str. 73) P42j Ženy z PRG (str. 74) P42k Ženy z PRG a všichni z REK (str. 74) P42l Ženy z PRG a muži z REK (str. 74) P42m Více než poloviční úvazky (str. 74) P42n Příjmení intervalu písmen (str. 74) P42o Příjmení daného začátku (str. 75) P42p Příjmení daného začátku a konce (str. 75) P42q Příjmení s proměnlivým znakem (str. 75) P42r Lidé mimo oddělení (str. 75) P42s Lidé bez titulu (str. 75) P42t Lidé v intervalu (str. 76) P42u Lidé s oprávněním (str. 76) P42v Březnové služební cesty (str. 76) P42w Délky služebních cest (str. 78) P42x Webové adresy (str. 78) P92 Personal (str. 188) P92a Adamec (str. 188) P92b Beneš (str. 188) Personal (str. 10, 17) Podniky (str. 11) Prodeje DIS (str. 90) Programy (str. 13) Sekce (str. 12) Stadia (str. 11) Switchboard Items (str. 218) Výjezdy (str. 13) P42y NACE 4724 (str. 78) P42z Tituly lidí (str. 79) P43a Původní telefony (str. 79) P43b Faktury DIS (str. 80) P43c Faktury DIS bez bakalářů (str. 80) P43d Faktury vybraného oddělení (str. 80) P43e Licence FIN pozitivní vývoj (str. 81) P43f Licence stavebnictví (str. 81) P43g Lidé na cestě 4 i 10 (str. 81) P43h Lidé bez telefonu (str. 82) P43i Cesta do Sokolova (str. 82) P43j Faktury do cesty do Sokolova (str. 82) P44a Délky cest (str. 83) P44b Poslední cesty (str. 83) P44c Délky cest do jednotlivých míst (str. 84) P44d Cena dle místností (str. 84) P44e Tržby za BON a FIN (str. 84) P44f Tržby v týdnech (str. 85) P44g Podniky s vysokými tržbami (str. 85) P44h Prvních pět lidí (str. 85) P44i První čtvrtina lidí (str. 85) P44j Cesty první čtvrtiny lidí (str. 86) P45a Měsíční tržby sekce (str. 86) P45b Měsíční tržby NACE (str. 86) P45c Cesty od zadaného data (str. 87) P46a Počty lidí dle pohlaví a oddělení (str. 87) P46b Křížová tabulka lidí (str. 88) P46c Řazená oddělení (str. 89) P46d Prodeje dle programů a měsíců (str. 89) P46e Tržby dle programů a měsíců (str. 89) P46f Průměrné délky cest (str. 89) P47a Tvorba Prodeje DIS (str. 90) P47b Bonita 2009 (str. 91)

224 Příloha A: Použité objekty 224 Formuláře Sestavy Makra Moduly P47c Změny názvu programů (str. 91) P47d Odstranění starších prodejů (str. 91) P47e Odstranění růstových prodejů (str. 92) P47f Přidání starších prodejů (str. 92) P47g Přidání růstových prodejů (str. 93) P48a Kódy (str. 93) P48b Seřazené kódy (str. 94) P49a Graf tržeb (str. 94) P49b Procenta sloupcové hodnoty (str. 96) P49c Procenta řádkové hodnoty (str. 96) P49d Tržby za 2 programy (str. 97) P49e Tržby v březnu a dubnu (str. 98) P49f Délka cest (str. 98) P53 Podniky Identifikace (str. 98) P57 Podklady grafů (str. 123) P67 Tržby (str. 144) P68 Tržby (str. 146) Formuláře P33b Místnosti (str. 53) P33c Oddělení (str. 53) P52a Personal Identifikace (str. 110) P52b Personal automatický formát (str. 112) P53 Podniky Identifikace (str. 113) P54 Cesty (str. 116) P55 Licence (str. 117) P56a Licence (str. 119) P56b Faktury (str. 119) P56c Faktury (str. 120) P56d Licence (str. 120) P56e Faktury (str. 121) P56f Podniky (str. 121) P57a Graf Celkové tržby (str. 123) P57b Graf Personal (str. 124) P57c Graf Podniky (str. 126) P58a Personal Identifikace (str. 126) P58b Faktury (str. 126) P58c Graf Personal (str. 126) P58d Cesty (str. 126) Sestavy P62 Personal Identifikace (str. 130) P63 Cesty (str. 137) P64 Licence (str. 138) P65 Hlavní sestava (str. 141) P66 Telefonní seznam (str. 143) P67 Fakturace (str. 144) Makra P72 Makro (str. 154) P73a Makro s podmínkou Where (str. 158) P73b Makro s podmínkou Where (str. 158) Moduly P81 Vlastní funkce (str. 165) P88 Modul (str. 180) P94 Export PowerPoint (str. 192) P72 Dotaz (str. 153) P82 CeléJméno (str. 166) P83 BezDiakritiky (str. 167) P85 KontrolaUctu (str. 169) P86 Aktualizace E_mail (str. 170) P87 Kontrola cest (str. 173) P97 Publisher (str. 200) P98e Webové adresy (str. 203) P98f Lokální adresy (str. 203) PA4 Tvorba Personal_duplicity (str. 214) dotazy pro učebnici Microsoft Office Visio 2007 jednoduše: Visio Kontingenční tabulka Visio Majetek Visio Místnosti Visio Personal Visio Rekapitulace Visio Stadia P58e Karta Personal (str. 126) P58f Podniky Identifikace (str. 128) P58g Faktury (str. 128) P58h Graf Podniky (str. 128) P58i Karta Podniky (str. 128) P72 Licence (str. 154) P72 Oddělení (str. 156) P73b Karta Personal (str. 158) P74a Podniky Identifikace (str. 160) P74b Personal Identifikace (str. 160) P76 Menu (str. 162) P86 Personal Identifikace (str. 170) P87 Kontrola cest (str. 174) P88 Formulář (str. 179) P94 Export PowerPoint (str. 192) P98d Odkazy (str. 201) P98g Web stránka s foto (str. 204) PA2a Personal Identifikace (str. 211) Přepínací panel (str. 218) P68 Podíly (str. 144) P69 Štítky (str. 150) P72 Sestava (str. 157) P75a Makro v těle sestavy (str. 161) P75b Makro v záhlaví skupiny (str. 161) P88 Sestava (str. 180) P74 Makro ve formuláři (str. 159) P76 Menu (str. 162) PA2b Užitečné akce (str. 212) P94 Ident (str. 193)

225 Příloha B: Databáze k procvičení Databáze Příloha B: Databáze k procvičení Příloha B obsahuje zadání samostatné cvičné databáze. Po pročtení jednotlivých kapitol je možné prohloubit si získané poznatky vypracováním cvičné databáze. Zadání cvičné databáze je strukturováno dle jednotlivých dílčích kapitol. Zadání na sebe navazují. Vypracování jednotlivých fází řešení je vhodné ukládat do samostatných souborů, např. Dohody_01, Dohody_02 tak, abychom se mohli vrátit k předchozím fázím v případě chyb v pokročilejších fázích. Každý soubor po dokončení zkomprimujte 257. Ke kapitole 1 Databáze Firma Encián se podílí na externí výuce a dalších pracích pro Fakultu mezinárodních vztahů Vysoké školy ekonomické v Praze. K evidenci dohod použijeme databázi s tabulkami: Personal Obsahuje 20 vět. Každá věta se vztahuje k jednomu zaměstnanci. Pole: E_mail (klíčové), Titul1, Jméno, Příjmení, Titul2. Dohody Obsahuje 77 vět. Každá věta se vztahuje k jedné uzavřené dohodě. Pole:» Číslo_dohody: klíčové pole identifikující dohodu,» E_mail: zaměstnanec, s nímž je dohoda uzavírána,» Popis_práce: stručný popis práce, která je dle dohody prováděna,» Činnost: kód činnosti školy, v jejímž rámci je práce prováděna,» Hodin: dohodnutý počet hodin práce,» Sazba: hodinová sazba odměny zaměstnanci za dohodnutou práci,» Od, Do: doba, po kterou je práce konána,» Druh_dohody: PP = provedení práce nebo záznam,» Katedra: katedra, pro niž je práce vykonávána,» Zakázka: účetní číslo zakázky (projektu), v rámci něhož je práce dle dohody konána,» Datum_zaevidování,» Poznámka. Likvidace Obsahuje 57 vět. Každá věta se vztahuje k likvidaci (úhradě) jedné dohody, k jedné dohodě může být více likvidací (např. po měsících, např. dohoda číslo 4). Pole:» Číslo_dohody: dohoda, k níž se likvidace vztahuje,» Datum: datum příkazu k likvidaci,» Měsíc_výplaty: první den měsíce výplaty úplné či částečné dohodnuté částky,» Hodin_likvidace: hodiny, které byly likvidací zaplaceny,» Částka: vyplacená částka. Katedry Obsahuje 15 vět. Každá věta upřesňuje data o katedře. Činnosti Obsahuje 8 vět. Každá věta upřesňuje data o činnosti (slovní vysvětlení). Zakázky Obsahuje 26 vět. Seznam zakázek včetně činností fakulty, v rámci nichž jsou realizovány. Založte novou prázdnou databázi Dohody_01. V databázi připravte tabulku Dohody s jednoduchou strukturou: Číslo_dohody (klíčové pole). E_mail: E_mail zaměstnance (firmy Encián), s nímž je smlouva uzavírána. Popis_práce: jednoduchý popis práce zaměstnance, např. posudek ke studii. Katedra: zkratka názvu katedry, pro niž zaměstnanec činnost vykonává. V databázi připravte tabulku Personal s jednoduchou strukturou: E_mail (klíčové pole): uživatelské jméno zaměstnance ve firmě Encián. Jméno Příjmení V databázi připravte tabulku Katedry s jednoduchou strukturou: Katedra: zkratka názvu katedry, 257 Klepněte do tlačítka Office a zadejte příkaz SPRAVOVAT, ZKOMPRIMOVAT A OPRAVIT DATABÁZI.

226 Příloha B: Databáze k procvičení Relace 3 Tabulky Katedra_v: vysvětlivka názvu katedry. Do tabulky Katedry vložte věty: Katedra Katedra_v KMO katedra mezinárodního obchodu KPOL katedra politologie Do tabulky Personal vložte věty: E_mail Jméno Příjmení Benes.Pavel Pavel Beneš Janda.Frantisek František Janda Do tabulky Dohody vložte věty: Číslo dohody E_mail Popis_práce Katedra 1 Benes.Pavel posudek ke studii KPOL 2 Janda.Frantisek posudek ke studii KPOL 21 Benes.Pavel posudek na diplomovou práci KMO Připravte dotaz Dohody se zaměstnanci a katedrami, který ke každé dohodě vypíše pole Číslo_dohody, E_mail, Jméno, Příjmení, Popis_práce, Katedra, Katedra_v. Vytvořte v navigačním podokně kategorii Struktura publikace a vytvořené tabulky a dotazy zařaďte do skupiny 1 Databáze. Ke kapitole 2 Relace Importujte do nové databáze Dohody_02 tabulky Personal, Dohody, Likvidace, Katedry, Činnosti, Zakázky ze sešitu Dohody.xlsx. Při importu volte vhodné primární klíče. Pozor při stanovování klíče tabulky Likvidace! K jedné dohodě může být více likvidací. Doplňte do struktury tabulky Likvidace vhodné klíče. V navigačním podokně přidejte do kategorie Struktura publikace skupinu 2 Relace a zařaďte do ní vytvořené tabulky. Definujte v databázi 5 vhodných relací mezi tabulkami včetně referenční integrity s aktualizací souvisejících polí v kaskádě. Pozor! V případě jedné relace je nutné před aplikací referenční integrity upravit data v jedné větě. (V hodnotě jednoho pole je záměrně nepřesnost, která je příčinou nekonzistentnosti dat.) Rozmístěte přehledně tabulky v diagramu relací. Nezapomeňte zkomprimovat soubor databáze. Ke kapitole 3 Tabulky Zkopírujte soubor databáze Dohody_02.accdb do souboru Dohody_03.accdb. Upravte definici polí v návrhu tabulek: v tabulce Personal:» pole E_mail zkraťte na 20 znaků,» pole Titul zkraťte na 5 znaků,» pole Jméno zkraťte na 10 znaků,» pole Příjmení zkraťte na 12 znaků,» pole Titul2 zkraťte na 7 znaků, v tabulce Dohody:» pole Číslo_dohody upravte na celé číslo,» pole E_mail zkraťte na 20 znaků,» pole Popis_práce zkraťte na 30 znaků,» pole Činnost zkraťte na 4 znaky,» pole Druh_dohody zkraťte na 6 znaků,» pole Katedra zkraťte na 5 znaků,» pole Zakázka zkraťte na 8 znaků,» pole Hodin a Sazba upravte na celé číslo, v tabulce Likvidace:» pole Číslo_dohody, Hodin_likvidace a Částka upravte na celé číslo, v tabulce Katedry:» pole Katedra zkraťte na 5 znaků,» pole Katedra_v zkraťte na 60 znaků,» pole Fakulta zkraťte na 2 znaky,

227 Příloha B: Databáze k procvičení Dotazy 4.2 Výběrové dotazy z jedné tabulky» pole Nákladové_středisko zkraťte na 4 znaky, v tabulce Činnosti:» pole Činnost zkraťte na 4 znaky,» pole Činnost_v zkraťte na 50 znaků, v tabulce Zakázky:» pole Zakázka zkraťte na 8 znaků,» pole Činnost zkraťte na 4 znaky. Optimalizujte šířku polí v zobrazení jednotlivých tabulek. Ve struktuře tabulky Personal zajistěte: První písmeno křestního jména a příjmení musí být velké. Ostatní písmena jsou malá, minimální délka křestního jména i příjmení 3 znaky, maximální délka dle délky polí. Titulek i popis křestního jména je Křestní jméno. Pole Jméno a Příjmení je nutné vyplnit, nesmí být vyplněna prázdnou hodnotou. Pole Titul1 je nutné vyplnit, může však být vyplněno prázdnou hodnotou. Pro editaci pole Titul2 je připraveno pole se seznamem s hodnotami:, Ph.D. a, CSc. Ve struktuře tabulky Dohody zajistěte: Pole Činnost je v nové větě vyplněno hodnotou Sazba musí dodržovat pravidlo, že je nejméně 100, nejvýše 2000 Kč. Při nedodržení pravidla se bude vypisovat vhodný text. Pole Datum_zaevidování má doplněnu inteligentní značku Datum. Hodnota pole Do musí být větší nebo rovna hodnotě pole Od, jinak zobrazte vhodný text. Ve struktuře dalších tabulek zajistěte: V tabulce Likvidace zadejte formát pro zobrazování měsíce výplaty m/yyyy tak, aby byly zobrazeny pouze měsíce data výplaty. V tomto tvaru je také možné data zadávat. (Vloží se datum prvního dne měsíce.) Ve struktuře tabulky Katedry zajistěte, aby nebyla vyplněna duplicitně hodnota pole Nákladové_středisko. Do zobrazení tabulky Likvidace doplňte součty polí Hodin_likvidace a Částka. Tabulku Katedry řaďte dle nákladového střediska. V tabulce Dohody nastavte filtr pro zobrazování vět s hodnotou PP v poli Druh_dohody. V zobrazení kontingenční tabulky zobrazte pro tabulku Dohody celkové počty hodin dohod pro jednotlivé katedry. V zobrazení kontingenčního grafu potlačte zobrazení pracoviště CES. (Potlačení zobrazení se promítne i do kontingenční tabulky.) V navigačním podokně změňte název skupiny 2 Relace na 3 Tabulky. Ke kapitole 4 Dotazy Pro editaci polí Titul1, Jméno v tabulce Personal připravte pole se seznamem s dosud vloženými hodnotami (bez duplicit a mimo prázdné hodnoty seřazené dle abecedy). Připravte dotazy nazvané Dotaz D01, D02,... D34: 1. Vypište popisy práce z dohod seřazená dle abecedy bez duplicit. 2. Vypište popisy práce a zakázky v řazení dle zakázek bez duplicit kombinací popisů práce a zakázek a to pouze pro věty s vyplněnou zakázkou. 3. Vypište čísla dohod, popis práce a katedru v řazení dle čísla dohod pro dohody na výuku, přednášky a přednášku v anglickém jazyce. 4. Vypište čísla dohod, popis práce a katedru v řazení dle čísla dohody pro dohody na výuku KMO a posudky na diplomovou práci na KCR. 5. Vypište čísla dohod, pracovníka, popis práce a sazbu pro dohody se sazbou větší nebo rovnou 500 Kč v řazení sestupně dle sazby a vzestupně dle čísla dohody. 6. Vypište kód a vysvětlivku činností, jejichž vysvětlivka je v abecedě mezi písmeny H a S v řazení dle kódu činnosti. 7. Vypište popisy práce dohod, jejichž popis začíná písmenem p a končí písmenem i bez duplicit v řazení dle popisů. 8. Vypište číslo dohody a datum zahájení plnění dohody (pole Od) pro dohody zahájené v lednu. Vypisujte též den v týdnu zahájení plnění. Věty vypisujte v řazení dle data zahájení plnění a dle čísla dohody.

228 Příloha B: Databáze k procvičení Výběrové dotazy z více tabulek 4.4 Výpočty 4.5 Parametrické dotazy 4.6 Křížové dotazy 4.7 Akční dotazy 4.8 Jazyk SQL 4.9 Kontingenční tabulka a graf z výsledků dotazu 9. Pro jednotlivé dohody vypište jejich číslo, datum zahájení a dokončení plnění a délku plnění dohody ve dnech a to v řazení dle čísla dohody. 10. Pro jednotlivé dohody v řazení dle čísla dohody vypište číslo dohody, popis práce, druh dohody a ve sloupci Vysvětlivka text provedení práce pro druh dohody PP a záznam pro druh záznam. 11. K likvidacím vypište číslo dohody, datum likvidace, zlikvidovaných hodin (ve sloupci Likvidace), hodin v dohodě (ve sloupci Dohoda) v řazení dle čísla dohody a data likvidace. 12. Vypište jméno, příjmení a likvidovanou částku pro zaměstnance, kterým byly likvidovány dohody v lednu a to v řazení dle příjmení. 13. Vypište y zaměstnanců, kteří uzavírali dohodu na práce pro KCR i KMO. 14. Vypište (v řazení dle data zahájení a čísla dohod) čísla a data zahájení plnění dohod, jejichž plnění začalo později než zahájení plnění dohody s popisem prezentace obhajob DP. (Neuvádějte konkrétní datum, ale odkaz na datum z dohody prezentace obhajob DP.) Vzniklé dotazy uložte pod názvy Dotaz D14a a Dotaz D14b. 15. Vypište pro jednotlivé zaměstnance jejich a datum dokončení plnění poslední dohody. 16. Vypište pro jednotlivé zaměstnance jejich křestní jméno, příjmení, celkovou dohodnutou odměnu a celkovou likvidovanou částku. Nápověda: Vytvořte nejprve Dotaz D16a, v němž zjistíte za jednotlivé zaměstnance celkovou dohodnutou odměnu jako součet součinů. Potom vytvořte Dotaz D16b, v němž zjistíte za jednotlivé zaměstnance celkovou likvidovanou částku. Na závěr vytvořte Dotaz D16c, v němž uvedete za jednotlivé zaměstnance celkovou dohodnutou odměnu, celkovou likvidovanou částku a jejich rozdíl. 17. Vypište datum a částku likvidace 4 dohod s nejvyšší dohodnutou odměnou. 18. Vypište čísla dohod, popis práce, činnost pro dohody vybrané činnosti. 19. Vypište čísla dohod, popis práce, datum zahájení plnění pro dohody se zahájením v zadaném datu či později v řazení dle data zahájení a čísla dohody. 20. Vypište číslo dohody, datum likvidace, částku pro likvidace s vyšší než zadanou částkou v sestupném řazení dle částky a vzestupném řazení dle čísla dohody. 21. Sestavte křížovou tabulku, v níž v řádcích budou katedry, ve sloupcích činnosti, v tabulce celková výše dohodnutých hodin. 22. Sestavte křížovou tabulku, v níž v řádcích budou katedry KCR, KMO, KOPKK, ve sloupcích činnosti, v tabulce celková dohodnutá částka a to pouze za činnosti 1000 a Sestavte křížovou tabulku, v níž v řádcích budou katedry, ve sloupcích činnosti, v tabulce celková likvidovaná částka. 24. Vypočtěte průměrnou délku dohodnutého plnění dohody na dvě desetinná místa dle kateder a druhu dohody. 25. Vytvořte tabulku Jazykové likvidace, v níž bude přehled likvidací za KAJ, KNJ, KROJ a KRUJ. Pro každou likvidaci uveďte číslo dohody, zaměstnance, popis práce, katedra, datum likvidace, likvidovaná částka. 26. V tabulce Jazykové likvidace změňte popis práce výuka doktorandů na výuka studentů doktorského studia. 27. V tabulce Jazykové likvidace odstraňte věty KAJ. 28. Z tabulky Jazykové likvidace odstraňte věty týkající se dohod činnosti Do tabulky Jazykové likvidace přidejte likvidace týkající se dohod činnosti 9000 a KAJ. 30. Vypište kódy a vysvětlivky kateder i činností zakázek. Sloupce správně nadepište Kód a Kód_v. Seznam vypište v řazení dle kódů. 31. Zobrazte sloupcovým skládaným grafem dohodnuté odměny za jednotlivé katedry za jednotlivé činnosti. Do pole filtrů umístěte druh dohody. Kontingenční graf vyberte jako výchozí zobrazení. 32. Vypočtěte podíly dohodnutých odměn za jednotlivé katedry a jednotlivé činnosti na celkové dohodnuté odměně za všechny činnosti. Kontingenční tabulku vyberte jako výchozí zobrazení. 33. Zobrazte dohodnuté odměny v jednotlivých činnostech za dvě katedry s nejvyššímu dohodnutými odměnami. Kontingenční tabulku vyberte jako výchozí zobrazení. 34. Zobrazte sloupcovým skládaným grafem likvidované odměny za jednotlivé katedry za jednotlivé činnosti. Do pole filtrů umístěte druh dohody. Kontingenční graf vyberte jako výchozí zobrazení.

229 Příloha B: Databáze k procvičení Formuláře 5.2 Samostatný formulář V navigačním podokně zařaďte vytvořené dotazy a tabulku Jazykové likvidace do skupiny 4 Dotazy. Ke kapitole 5 Formuláře Připravte formulář Dohody 1 dle obr. B-1. OBR. B-1: FORMULÁŘ DOHODY Nekonečný formulář 5.5 Formulář se souhrny Upřesnění formuláře: Jedná se o rozdělený formulář. Popisky polí obsahujících pomlčku (Číslo_dohody, E_mail, Popis_práce, Druh_dohody, Datum_zaevidování) jsou upraveny. Pole E_mail je vloženo jako pole se seznamem z tabulky Personal, zobrazeny jsou 4 sloupce se šířkami 0,002 cm, 0 cm, 2 cm, 2 cm. Vkládání je omezeno na seznam. Pole Popis_práce je vloženo jako pole se seznamem s hodnotami dosud vloženými jako Popis práce seřazenými dle abecedy a uvedenými bez duplicit. Pole Činnost je vloženo jako pole se seznamem z tabulky Činnosti, zobrazeny 2 sloupce se šířkami 1 cm a 7 cm. Za pole Sazba je doplněno textové pole s výpočtem dohodnuté odměny. Styl okraje nastaven na průhledný. Přístup klávesou tabelátor je potlačen. Za pole Do je doplněno textové pole s výpočtem délky plnění dohody ve dnech. Styl okraje je nastaven na průhledný. Přístup klávesou tabelátor je potlačen. Pole Druh_dohody je vloženo jako pole se seznamem s hodnotami PP a záznam s vysvětlivkami provedení práce a záznam. Pole Katedra je vloženo jako pole se seznamem z tabulky Katedry, jsou zobrazeny 2 sloupce se šířkami 1 cm a 9 cm. Pole Zakázka je vloženo jako pole se seznamem z tabulky Zakázky, jsou zobrazeny 2 sloupce. Připravte formulář Likvidace 1 dle obr. B-2. Upřesnění formuláře: Popisky polí obsahujících pomlčku (Číslo_dohody, Měsíc_výplaty) jsou upraveny. Ve formuláři je zobrazováno pole Sazba z tabulky Dohody, která je vynásobena hodnotou Hodin, aby součin mohl být použit jako východisko pro vyplnění částky k likvidaci. Sloupce Sazba a Návrh nejsou přístupné klávesou tabelátor, jsou uzamčeny, jsou odlišeny barvou pozadí Formulář pozadí. Částky k likvidaci větší nebo rovné Kč jsou vypisovány červeně.

230 Příloha B: Databáze k procvičení 230 OBR. B-2: FORMULÁŘ LIKVIDACE Podformulář V zápatí formuláře jsou sečteny hodnoty ve sloupcích Hodin a Částka. Upravte formulář Dohody 1 na Dohody 2, formulář Likvidace 1 na Likvidace 2 a vložte je jako podformuláře do formuláře Personal dle obr. B-3. OBR. B-3: FORMULÁŘ PERSONAL 5.7 Graf Upřesnění formulářů: V záhlaví formulářů jsou odstraněny obrázky před textem, písmo zmenšeno na velikost 11 tučně. Z pozadí formulářů je odstraněn obrázek 258 Ve formuláři Dohody 2 jsou pole uspořádána do dvou sloupců. Pro podformuláře jsou odstraněny popisky. Připravte formulář Katedry, v němž jsou pro jednotlivé katedry zobrazeny počty hodin dohodnuté s jednotlivými zaměstnanci v členění dle zakázek (viz obr. B-4). 258 Ve formátové vlastnosti formuláře Obrázek odstraníme obsah (obrázek). Ve formátové vlastnosti záhlaví formuláře nastavíme Barvu pozadí na hodnotu Automaticky, tj. #FFFFFF.

231 Příloha B: Databáze k procvičení 231 OBR. B-4: FORMULÁŘ KATEDRY 6 Sestavy Upřesnění formuláře: V sloupcovém skládaném grafu není uveden nadpis grafu. Velikost písma popisků osy x, y, legendy a popisků dat je 10. V navigačním podokně zařaďte vytvořené formuláře do skupiny 5 Formuláře. Ke kapitole 6 Sestavy Připravte sestavu Měsíční likvidace dle obr. B-5. Sestava vypisuje data o likvidacích dle nákladových středisek za měsíc zadaný před spuštěním sestavy 259. OBR. B-5: SESTAVA MĚSÍČNÍ LIKVIDACE 6.8 Sestavy s podíly Upřesnění sestavy: Likvidace jsou seskupeny dle nákladových středisek. Za jednotlivými středisky jsou součty částek. Připravte sestavu Podíly, v níž budou vypočteny podíly jednotlivých kateder na vyplacených likvidacích v rámci měsíce i celého roku dle obr. B Východiskem sestavy bude parametrický dotaz Měsíční likvidace.

232 Příloha B: Databáze k procvičení 232 OBR. B-6: SESTAVA PODÍLY Štítky 7 Makra Upřesnění sestavy: Podíly jsou uváděny v procentech. Součtová pole jsou nazvána Částka_měsíc, Částka_rok. Za jednotlivými středisky jsou součty částek. Připravte sestavu Štítky, v níž budou štítky o rozměru 3,6 x 5,4 cm tištěné na volné listy A4 s nakládacím okrajem 0,9 cm nahoře. Na každém štítku bude pro jednotlivého zaměstnance v jediném řádku jeho titul před jménem, křestní jméno, příjmení a titul za jménem. Štítky budou řazeny dle příjmení a jména. V navigačním podokně zařaďte vytvořené sestavy do skupiny 6 Sestavy. Ke kapitole 7 Makra Vytvořte tabulku Katedry_F, v níž budou zkratky kateder KCR a KMO. Připravte formulář Katedry_F, v němž bude tlačítko, které zobrazí dohody kateder z tabulky Katedry_F. K zobrazení dohod použijte formulář Dohody_F. V případě, že jsou vybrány katedry, které neuzavřely dohody, zobrazte chybové hlášení (FMV, DEK2, ICRE) Vybrané katedry neuzavřely žádnou dohodu. Připravte modifikaci formuláře Personal pod názvem Personal s podmínkou. Ve formuláři se zobrazuje pole Titul2 jen, když je vyplněno pole Titul1. Polím o zaměstnanci odeberte rozložení ovládacího prvku, aplikujte styl okraje plná čára. 260 Připravte modifikaci dotazu a sestavy Měsíční likvidace pod názvem Měsíční likvidace barevně. V sestavě budou vypisovány po měsících všechny likvidace. V případě druhu dohod PP vypisujte příjmení zaměstnance modře, v případě druhu záznam červeně. Připravte modifikaci formuláře Personal pod názvem Personal se sestavou. Formulář obsahuje tlačítko Sestava. Klepnutím do tlačítka se spustí makro Personal se sestavou, které zobrazí sestavu Měsíční likvidace barevně pro zaměstnance, který je zobrazen ve formuláři. Připravte makro Autoexec, které otevře formulář Menu. Ve formuláři jsou tlačítka, při klepnutí na tlačítka se otevřou formuláře Personal, Personal se sestavou, Personal s podmínkou a sestavy Měsíční likvidace, Podíly, Štítky, Měsíční likvidace barevně. V navigačním podokně zařaďte vytvořené objekty do skupiny 7 Makra. 260 Předpokládáme, že neexistují zaměstnanci, kteří mají titul za jménem a nemají titul před jménem. Ve skutečnosti tato varianta může nastat.

233 Příloha B: Databáze k procvičení Moduly 9 Externí data Ke kapitole 8 Moduly Připravte funkci Likvidace v modulu Funkce pro výpočet částky k likvidaci dohod (z hodin a sazby). Funkci využijte v dotazu K likvidaci, který za jednotlivé dohody uvede číslo dohody, počet hodin k likvidaci (ve sloupci Hodin), sazbu (Sazba), částku k likvidaci (K likvidaci). Zajistěte, aby se v modifikaci formuláře Dohody 1 nazvané Dohody s vkládáním textů: poklepáním na pole Popis_práce vložil text posudek na diplomovou práci, poklepáním na pole Datum_zaevidování vložilo aktuální datum. Zajistěte, aby se v modifikaci formuláře Likvidace 1 nazvané Likvidace s vkládáním částky: poklepáním na pole Částka vložila hodnota k likvidaci vypočtená z polí Hodin_likvidace a Sazba pomocí funkce Likvidace. Ve formuláři Odstupy zobrazte zaměstnance, číslo dohody, popis práce, zahájení a dokončení plnění dohod v řazení dle zaměstnanců, data zahájení plnění dohody a čísla dohody. Po klepnutí do tlačítka Odstupy zobrazte ve sloupci Odstup odstupy dohod. (Formulář bude zobrazovat tabulku Odstupy, kterou vytvoříte z tabulky Dohody dotazem Odstupy tvorba.) V navigačním podokně zařaďte vytvořené objekty do skupiny 8 Moduly. Ke kapitole 9 Externí data Připravte ve Wordu formulář pro vkládání dohod dle obr. B-7. OBR. B-7: FORMULÁŘ DOHOD 10 Databázové nástroje Upřesnění formuláře: Číslo dohody, Hodin a Sazba jsou číselná pole. Číslo dohody může být maximálně tříciferné, hodiny tříciferné, sazba čtyřciferná. Od, Do a Zaevidování jsou pole typu datum. K sloupci Druh dohody doplňte vhodnou nápovědu. Druh dohody vybírejte formou rozevíracího pole se seznamem s hodnotami PP a záznam. V u zajistěte vložení velkých písmen. Katedra je vypisována velkými písmeny. Vložte zobrazenou větu a importujte ji do databáze jako tabulku Dohody import z Wordu. Připravte formou dotazu Mzdy export pro mzdové oddělení za měsíc březen V textovém souboru s položkami oddělenými středníky uveďte zaměstnance a částku k likvidaci v řazení dle u. 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 pomocí aktualizačního dotazu Katedry adresy. V navigačním podokně zařaďte vytvořené objekty do skupiny 9 Externí data. Ke kapitole 10 Databázové nástroje Rozdělte databázi na Dohody_zadni (tabulky) a Dohody_predni (ostatní objekty). Vytvořte soustavu přepínacích panelů včetně návratových voleb: Formuláře: Personal, Personal se sestavou, Personal s podmínkou, Sestavy: Měsíční likvidace, Podíly, Štítky, Měsíční likvidace barevně. V navigačním podokně zařaďte vytvořené objekty do skupiny 10 Databázové nástroje.

234 Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 234 Příloha C. Dodatek ke kap. 4: Dotazy z databáze Banka C.1 Výběrové dotazy z jedné tabulky R42a Účely výdajů Detaily (185 vět) R42A ÚČELY VÝDAJŮ: VÝBĚR NESEŘAZENÉHO POLE S DUPLICITAMI Vypište účely výdajů. R42b Seřazené účely Detaily (185 vět) R42B SEŘAZENÉ ÚČELY: VÝBĚR SEŘAZENÉHO POLE S DUPLICITAMI Vypište vzestupně seřazené účely výdajů. R42c Účely bez duplicit Detaily (50 vět) R42C ÚČELY BEZ DUPLICIT: VÝBĚR SEŘAZENÉHO POLE BEZ DUPLICIT Vypište vzestupně seřazené jedinečné účely výdajů (bez duplicit). R42d Položky a účty Pohyby (150 vět) R42D POLOŽKY A ÚČTY: VÝBĚR NESEŘAZENÝCH POLÍ S DUPLICITAMI Vypište položky a účty pohybů. R42e Seřazené položky a účty Pohyby (78 vět) R42E SEŘAZENÉ POLOŽKY A ÚČTY: VÝBĚR SEŘAZENÝCH POLÍ BEZ DUPLICIT Vypište položky a účty pohybů bez duplicit ve vzestupném seřazení dle položky a účtu. R42f Jinak seřazené položky a účty Pohyby (78 vět) R42F JINAK SEŘAZENÉ POLOŽKY A ÚČTY: VÝBĚR POLÍ SEŘAZENÝCH DLE NESTANDARDNÍ HIERARCHIE ŘAZENÍ Vypište položky a účty pohybů bez duplicit ve vzestupném seřazení dle účtu a položky. R42g Pražská energetika 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í.

235 Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 235 Pohyby (4 věty) R42h Pražská energetika a Česká pošta Pohyby (11 vět) R42H PRAŽSKÁ ENERGETIKA A ČESKÁ POŠTA: VÝBĚR VĚT S NĚKOLIKA VARIANTAMI OBSAHU JEDNOHO POLE Vypište datum zaúčtování, název účtu a částku pohybů Pražské energetiky a České pošty, s.p. v sestupném řazení dle částky a dle data zaúčtování. R42i Energetika, Pošta a Encián Pohyby (18 vět) R42I ENERGETIKA, POŠTA A ENCIÁN: VÝBĚR VĚT S NĚKOLIKA VARIANTAMI OBSAHU JEDNOHO POLE Vypište název účtu, datum zaúčtování, a částku pohybů Pražské energetiky, České pošty, s.p. a Enciánu Praha dle názvu účtu, data zaúčtování a částky. R42j Praha 1 v ČS Automaty (3 věty) R42J PRAHA 1 V ČS: VÝBĚR VĚT S DANÝM OBSAHEM VÍCE POLÍ Vypište město, umístění a ulici automatů v Praze 1 s umístěním v pobočkách České spořitelny, a.s. R42k Praha 1 v ČS a Praha 9 Automaty (24 vět) R42K PRAHA 1 V ČS A PRAHA 9: ALTERNATIVNÍ VÝBĚR VĚT S DANÝM OBSAHEM POLÍ Vypište místo, umístění a ulici automatů v pobočkách ČS v Praze 1 a všech automatů v Praze 9. R42l P1 v ČS a P9 v metru 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. R42m Vyšší výběry Pohyby (5 vět) R42M VYŠŠÍ VÝBĚRY: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU ČÍSELNÉHO POLE Vypište výběry z automatů s výběrem vyšším než 2000 Kč.

236 Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 236 R42n Automaty na ulici H S Automaty (92 vět) R42N AUTOMATY NA ULICI H S: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU TEXTOVÉHO POLE Vypište automaty, které jsou umístěny v ulicích s názvem začínajícím písmeny v intervalu H (včetně) až S (kromě) v seřazení dle názvu ulice. R42o Automaty Ko Automaty (4 věty) R42O AUTOMATY KO: VÝBĚR VĚT S POŽADOVANÝM ZAČÁTKEM OBSAHU TEXTOVÉHO POLE Vypište automaty umístěné v ulicích s názvem začínajícím písmeny Ko. R42p Automaty na lince B Automaty (25 vět) R42P AUTOMATY NA LINCE B: VÝBĚR VĚT S POŽADOVANÝM KONCEM TEXTOVÉHO POLE Vypište automaty umístěné v stanicích metra linky B. R42q Automaty Kxs Automaty (3 věty) R42Q AUTOMATY KXS: ZÁSTUPNÝ ZNAK PRO JEDEN TEXTOVÝ ZNAK Vypište automaty umístěné v ulicích, jejichž název začíná písmenem K a na třetí pozici má písmeno s. R42r Automaty bez nepřetržitého provozu R42R AUTOMATY BEZ NEPŘETRŽITÉHO PROVOZU: VÝBĚR VĚT S PODMÍNKOU NEROVNOSTI OBSAHU POLE Vypište automaty, které nemají nepřetržitý provoz. Automaty (62 vět) R42s Omezené automaty Automaty (40 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. R42t Pohyby bez účtu Pohyby (27 vět) R42T POHYBY BEZ ÚČTU: VÝBĚR VĚT S PRÁZDNÝM OBSAHEM POLE Vypište pohyby, v nichž není vyplněn účet.

237 Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 237 R42u Pohyby s intervalem výdaje Pohyby (24 vět) R42U POHYBY S INTERVALEM VÝDAJE: VÝBĚR S INTERVALOVOU PODMÍNKOU OBSAHU POLE Vypište pohyby s výdajovou částkou z intervalu <2000;10000>. R42v Pohyby s intervalem bez SIPO Pohyby (17 vět) R42V POHYBY S INTERVALEM BEZ SIPO: VÝBĚR VĚT S INTERVALOVOU PODMÍNKOU A PODMÍNKOU KONCE TEXTU Vypište pohyby s výdajovou částkou z intervalu <2000;10000> avšak s výjimkou inkasa SIPO (sdružené inkaso plateb obyvatel). R42w Lednové pohyby Pohyby (17 vět) R42W LEDNOVÉ POHYBY: VÝBĚR VĚT S DANÝM MĚSÍCEM V ČASOVÉM POLI Vypište datum zaúčtování, pořadí měsíce, název dne, název měsíce, týden a čtvrtletí lednových pohybů v řazení dle data zaúčtování. R42x Automaty, karty, příkazy Pohyby (100 vět) R42X AUTOMATY, KARTY, PŘÍKAZY: VĚTVENÝ VÝRAZ A VÝBĚR VŠECH POLÍ VĚTY Vypište všechna data o výběrech z automatů ( automat ), platby platební kartou ( karta ) a platby dle trvalých příkazů ( trvalý příkaz ) v řazení dle data zaúčtování. C.2 Výběrové dotazy z více tabulek R43a Detaily pohybů Pohyby Detaily (185 vět) R43A DETAILY POHYBŮ: VÝBĚR SOUVISEJÍCÍCH VĚT ZE DVOU TABULEK Vypište k pohybům upřesnění výdajů. R43b Výběry v Praze 1 Pohyby Automaty R Automaty (12 vět) R43B VÝBĚRY V PRAZE 1:VÝBĚR S PROPOJENÍM DVOU TABULEK S PODMÍNKOU Vypište pohyby, které byly realizovány výběrem z automatu v Praze 1. R43c Výběry v Praze 1 mimo metro Pohyby Automaty R Automaty (1 věta) R43C VÝBĚRY V PRAZE 1 MIMO METRO: VÝBĚR S PROPOJENÍM DVOU TABULEK A DVOJÍ PODMÍNKOU Vypište pohyby, které byly realizovány výběrem z automatu v Praze 1 a to nikoliv v metru.

238 Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 238 R43d Město_F Automaty (11 vět) R43D AUTOMATY VYBRANÉHO MĚSTA: VÝBĚR POMOCÍ OBSAHU POMOCNÉ TABULKY Vypište automaty z vybraného města. R43e Detaily výběrů Detaily Pohyby Automaty R Automaty (14 vět) R43E DETAILY VÝBĚRŮ: VÝBĚR S PROPOJENÍM ČTYŘ TABULEK Vypište výdaje vyplývající z výběru z automatů. R43f Detaily z vybraného města Detaily Pohyby Automaty R Automaty Město_F (1 věta) R43g Pondělní i čtvrteční automaty R43F DETAILY Z VYBRANÉHO MĚSTA: VÝBĚR S PROPOJENÍM PĚTI TABULEK Vypište výdaje vyplývající z výběru z automatů z vybraného města. R43G PONDĚLNÍ I ČTVRTEČNÍ AUTOMATY: VÝBĚR S PROPOJENÍM TABULKY DO SEBE Vypište automaty, z nichž bylo vybráno v (libovolné) pondělí a zároveň v (libovolný) čtvrtek. Pohyby Pohyby_1 (2 věty) R43h Pohyby bez detailů Pohyby Detaily (0 vět) R43H POHYBY BEZ DETAILŮ: VÝBĚR VĚT S NEEXISTUJÍCÍM PROPOJENÍM DO JINÉ TABULKY Vypište pohyby, k nimž nejsou uvedeny výdaje. R43i Datum výdaje na dovolenou Pohyby Detaily (1 věta) R43I DATUM VÝDAJE NA DOVOLENOU: VÝBĚR HODNOT POLE PRO PŘESNĚ DEFINOVANOU VĚTU ČI VĚTY Vypište datum zaúčtování pohybu výdaje na dovolenou. R43j Pohyby po dovolené Pohyby R43i Datum výdaje na dovolenou (46 vět) R43J POHYBY PO DOVOLENÉ: DOTAZ NA ZÁKLADĚ VÝSLEDKU JINÉHO DOTAZU Vypište pohyby, které byly realizovány ve stejný den nebo později než výdaj za dovolenou.

239 Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 239 C.3 Výpočty R44a Rozdíl dob Pohyby (150 vět) R44A ROZDÍL DOB: VÝPOČTY Z HODNOT POLÍ V RÁMCI VĚTY Vypište pro jednotlivé pohyby rozdíl mezi dobou zaúčtování a zpracování. R44b Nej pro automaty Pohyby (4 věty) R44B NEJ PRO AUTOMATY: SOUHRN POLÍ ZA SKUPINU VĚT Vypište pro jednotlivé automaty nejdřívější a nejpozdější výběr a celkovou vybranou částku. R44c Celkový rozdíl dob Pohyby (5 vět) R44C CELKOVÝ ROZDÍL DOB: SOUČET VÝRAZU Z NĚKOLIKA POLÍ ZA SKUPINU VĚT Vypište celkový rozdíl doby zaúčtování a zpracování za jednotlivé trvalé příkazy. R44d Průměrný rozdíl dob R44D PRŮMĚRNÝ ROZDÍL DOB: VÝRAZ ZE SOUHRNU VĚT Vypište průměrný rozdíl doby zaúčtování a zpracování za jednotlivé trvalé příkazy. Pohyby (5 vět) R44e Výdaje za inkaso a SIPO R44E VÝDAJE ZA INKASO A SIPO: KRITÉRIUM V SOUHRNU Vypište součty výdajů za čtvrtletí dohromady za inkaso a inkaso SIPO. Pohyby (3 věty) R44f Automaty v týdnech R44F AUTOMATY V TÝDNECH: SOUHRN DLE ČÁSTI POLE Vypište celkové částky vybrané v jednotlivých týdnech z automatů. Pohyby (12 vět) R44g Automaty s vysokým výběrem R44G AUTOMATY S VYSOKÝM VÝBĚREM: KRITÉRIUM VE VÝSLEDKU SOUHRNU Vypište automaty, z nichž bylo vybráno více než Kč.

240 Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 240 Pohyby Automaty R Automaty (3 věty) R44h Brzké výběry Pohyby Automaty R Automaty (2 věty) R44H BRZKÉ VÝBĚRY: OMEZENÍ POČTU VĚT VE VÝSLEDCÍCH Vypište 2 automaty s nejdřívějším výběrem. R44i Čtvrtina automatů Pohyby Automaty R Automaty (1 věta) R44I ČTVRTINA AUTOMATŮ: VÝBĚR NĚKOLIK VĚT S NEJVYŠŠÍ HODNOTOU POLE Vypište 25 % automatů s nejdřívějším výběrem. R44j Pohyby čtvrtiny automatů R44J POHYBY ČTVRTINY AUTOMATŮ: UPŘESNĚNÍ ÚDAJŮ O VYBRANÝCH VĚTÁCH Vypište pohyby pro 25 % automatů s nejdřívějším výběrem. R44i Automaty R Pohyby (5 vět) Automaty R Pohyby (4 věty) C.4 Parametrické dotazy R45a Pohyby v měsíci Pohyby (pro leden 17 vět) R45A POHYBY V MĚSÍCI: PARAMETRICKÝ DOTAZ S PŘESNÝMI KRITÉRII Vypište pohyby v zadaném měsíci. R45b Vybrané pohyby Pohyby (pro leden 17 vět pro rok 150 vět) R45B VYBRANÉ POHYBY: PARAMETRICKÝ DOTAZ S PŘIBLIŽNÝM KRITÉRIEM Vypište pohyby v zadaném měsíci nebo všechny pohyby. R45c Pohyby dle data R45C POHYBY DLE DATA: OMEZENÍ DATOVÉHO TYPU PARAMETRU PARAMETRICKÉHO DOTAZU Vypište pohyby od zadaného data.

241 Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 241 Pohyby (89 vět) C.5 Křížové dotazy R46a Pohyby dle položky a měsíce R46A POHYBY DLE POLOŽKY A MĚSÍCE: SOUHRN TABULKY DLE DVOU POLÍ Vypište částky pohybů v součtu dle položky a měsíce. Pohyby (123 vět) R46b Křížová tabulka pohybů Pohyby (56 vět) R46B KŘÍŽOVÁ TABULKA POHYBŮ: KŘÍŽOVÝ DOTAZ S BĚŽNÝM POŘADÍM SLOUPCŮ Vypište částky pohybů v součtu dle položky (řádky) a měsíce (sloupce) formou křížové tabulky. R46c Pohyby dle položky a dne Pohyby (56 vět) R46C POHYBY DLE POLOŽKY A DNE: KŘÍŽOVÁ TABULKA SE ZADANÝM POŘADÍM SLOUPCŮ Vypište částky pohybů v součtu dle položky (řádky) a dne v týdnu výběru (sloupce) formou křížové tabulky. Uveďte jen výběry ve středu, čtvrtek a pátek. C.6 Akční dotazy R47a Tvorba Výběrů z automatu Pohyby Automaty R Automaty (13 vět) R47A TVORBA VÝBĚRŮ Z AUTOMATŮ: VYTVÁŘECÍ DOTAZ Vytvořte tabulku Výběry z automatu, v níž bude přehled výběrů z automatů. Pro každý výběr uveďte všechna pole z tabulky Pohyby, z tabulky Automaty pole Umístění, Ulice, Město. R47b Metro Národní Výběry z automatu (5 vět) R47B METRO NÁRODNÍ: AKTUALIZAČNÍ DOTAZ V tabulce Výběry z automatu změňte umístění Metro Národní I (B) na Metro Národní (B). R47c Umístění dle Automatů Výběry z automatu Automaty R Automaty (13 vět) R47C UMÍSTĚNÍ DLE AUTOMATŮ: AKTUALIZAČNÍ DOTAZ S VYUŽITÍM DAT Z JINÉ TABULKY V tabulce Výběry z automatu změňte umístění automatu dle umístění v tabulce Automaty.

242 Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 242 R47d Výběry od června 2009 Výběry z automatu (4 věty) R47D VÝBĚRY OD ČERVNA 2009: ODSTRAŇOVACÍ DOTAZ DLE POLE Z REDUKOVANÉ TABULKY Z tabulky Výběry z automatu odstraňte věty o výběrech po R47e Nepřetržitá doba Automaty R (198 vět) R47E NEPŘETRŽITÁ DOBA: ODSTRAŇOVACÍ DOTAZ DLE POLE Z JINÉ NEŽ REDUKOVANÉ TABULKY Z tabulky Výběry z automatu odstraňte výběry z automatů s nepřetržitou dobou provozu. Výběry z automatu Automaty2 (3 věty) Položka Položka v tabulce Automaty2 musí být klíčová. R47f Přidání pozdních výběrů R47F PŘIDÁNÍ POZDNÍCH VÝBĚRŮ: PŘIDÁVACÍ DOTAZ DLE POLE Z ROZŠIŘOVANÉ TABULKY Do tabulky Výběry z automatu přidejte výběry realizované po Pohyby, Automaty R, Automaty (4 věty) R47g Přidání nepřetržitých automatů R47G PŘIDÁNÍ NEPŘETRŽITÝCH AUTOMATŮ: PŘIDÁVACÍ DOTAZ DLE POLE Z JINÉ NEŽ ROZŠIŘOVANÉ TABULKY Do tabulky Výběry z automatu přidejte výběry realizované v automatech s nepřetržitým provozem. Pohyby, Automaty R, Automaty (3 věty) C.7 Jazyk SQL R48a Sjednocení Účtů a Názvů účtů Pohyby (64 vět) R48b Sjednocení bez duplicit Pohyby (64 vět) R48A SJEDNOCENÍ ÚČTŮ A NÁZVŮ ÚČTŮ: SJEDNOCOVACÍ DOTAZ Zobrazte z tabulky Pohyby všechny Účty a Názvy_účtů. SELECT Pohyby.Účet FROM Pohyby; UNION SELECT Pohyby.Název_účtu FROM Pohyby; R48B SJEDNOCENÍ BEZ DUPLICIT: SJEDNOCOVACÍ DOTAZ S NÁZVEM A BEZ DUPLICIT Zobrazte z tabulky Pohyby všechny Účty a Názvy_účtů bez duplicit, výsledný sloupec nadepište Název. SELECT DISTINCT Pohyby.Účet AS Název FROM Pohyby; UNION SELECT DISTINCT Pohyby.Název_účtu FROM Pohyby;

243 Příloha C: Dodatek ke kap. 4: Dotazy z databáze Banka 243 C.8 Kontingenční tabulka a graf z výsledků dotazu R49a Graf výdajů dle kategorií Pohyby Detaily (185 vět) R49A GRAF VÝDAJŮ DLE KATEGORIÍ: KONTINGENČNÍ TABULKA V PROCENTECH Zobrazte graficky výdaje za jednotlivé kategorie výdajů v jednotlivých měsících. R49b Podíly na pololetí R49B PODÍLY NA POLOLETÍ: KONTINGENČNÍ TABULKA V PROCENTECH Zobrazte podíly výdajů za jednotlivé kategorie výdajů v jednotlivých měsících na celkových výdajích za leden červenec R49c Podíly za skupiny Pohyby Detaily (153 vět) R49C PODÍLY ZA SKUPINY: SESKUPENÍ ŘÁDKŮ A SLOUPCŮ KONTINGENČNÍ TABULKY Vypočtěte podíl výdajů za jednotlivé kategorie na celkových výdajích za čtvrtletí. Kategorie rozdělte do několika skupin. R49d Dvě nejvyšší kategorie R49D DVĚ NEJVYŠŠÍ KATEGORIE: ŘAZENÍ A FILTROVÁNÍ V KONTINGENČNÍ TABULCE Zobrazte výdaje za jednotlivé kategorie v jednotlivých měsících za dvě kategorie s nejvyššími výdaji.

244 Rejstřík 244 Rejstřík A Access import z jiné databáze 193 akční dotazy 90 aktualizační dotaz 91 aktuální datum a čas 137 analýza tabulky 214 výkonu 215 automatická velikost 107, 137 automatické opravy názvů polí 64 automatické spuštění formuláře 220 automatický formát 112 automatický přepočet 66, 98 barvy ve formuláři 110 B blokové rozložení sestavy 143 C cíl odkazů 201 D databáze 9 databázové modely 9 databázové nástroje 211 databázový systém 9 definice pole 43 deklarace 163 dialogové okno se zprávou 179 dokumentace 216 druhy dotazů 69 druhy formulářů 101 druhy sestav 129 duplikace hodnoty z předchozí věty 26 dynamická sada a snímek 70 dynamické stránky 207 E editace funkce 165 Excel export z Accessu 191 import do Accessu 191 import z Excelu 28 F filtr 55 formát 45 ACCDE 220 ACCDR 220 písma 132 textu 51 výsledného pole 89 zobrazení datového listu 58 formulace dotazu 69 formulář s nabídkou objektů 220 formulář ve Wordu nápověda ve formuláři 183 rozevírací pole 184 tisk formuláře 186 ukládání dat z formuláře 186 zámek dokumentu 185 zaškrtávací políčko 184 formulářové zobrazení 105 funkce HyperLinkPart 78, 132 IIf 116 Left 78 Len 78, 108 Max 85 Min 85 Month 76 Sum 83 Switch 79 Val 85 G globální místní nabídka 211 graf 123 H hlavičky sloupců 52 hledání 62 hromadná korespondence 152 hypertextový odkaz 57 I import tabulky z webu 206 indexování 48 inteligentní značky 49 J jazyk SQL 93 K karta 127 Doplňky ve formuláři 212 komprese kódu 49 kontingenční graf 67 z dotazu 94 kontingenční tabulka 65 v procentech 96 z dotazu 94 kontrola dotazu a spuštění 90 kontrola pravopisu 59 kopírování formátu 108 křížový dotaz 88 M makro 153 akce dle zabezpečení 153 akce Krok 157 akce Najít další 155 akce Najít záznam 154 akce Nastavit vlastnost 159 akce Okno se zprávou 155 akce Otevřít formulář 154 akce Otevřít sestavu 157 akce Přejít na ovládací prvek 154 akce Zavřít 156 akce Zrušit událost 157 akce Zvukový signál 155 argumenty 153 krokování 157 opakování podmínky 155 podmínka akce 153, 155 podmínka Where 158 skupina maker 153, 162 spouštění maker 153 ve formuláři 159 v sestavě 161 metoda Navigate 205 místní nabídka formuláře 211 modifikace fungování kláves 64 hledání 64 seznamu 109 moduly 163 možnosti aktuální databáze 221 datového listu 221 kontroly pravopisu 221 návrhářů objektů 221 upřesnění 221

245 Rejstřík 245 zvětšení a zmenšení 134, 139 mřížka v rozložení 149 N náhled 134 nahrazování 63 navazující dotazy 82 navigační podokno 20 návrh databáze 23 návrhové zobrazení 21, 103 název písma 145 nekonečný formulář 116 nekonzistentnost dat 31 nesvázané odkazy 201 normalizace 23, 34 nová relace 33 nové hodnoty 45 nulová délka 48 nutnost zadat 48 O objekt OLE 57 objektová funkce CurrentDb 175 objekty, Accessu 9 metody, vlastnosti 174 oblíbené možnosti 220 obrysové rozložení sestavy 148 odebrání rozložení 107 odsazované rozložení sestavy 145 odstranění stránky 127 odstraňovací dotaz 91 omezení počtu vět 85 omezit na seznam 52 OneNote import do Accessu 199 opakované spojení tabulky 32 operace se záznamy 59 operátor & 78 >= 74 and 74 between 76 kde 84 not 75 null 76 or 73 orientace 55 Outlook export do Accessu 198 import do Accessu 198 kontakty do a z Outlooku 60 shromáždění dat 199 ověřovací pravidlo 47, 54 ověřovací text 48, 54 ovládací prvek 51, 102, 130 ActiveX 204 označování více objektů 107 P panel nástrojů Rychlý přístup 18 zpráv 213 parametrický dotaz 86 pás karet 19 počet desetinných míst 45 počet řádků seznamu 52 počet sloupců 52 počet stránek a počet vět 137 podformulář 119 podíly v sestavě 149 podokno objektu 21 podsestava 142 pole s více hodnotami 53 se seznamem 106 ve formuláři 104 popis tabulky 54 pořadí prvků ve formuláři 109 sloupců 89 pořadí stránek 127 pouze přidat 51 PowerPoint 192 procedury 163 Project import do Accessu 197 propojení tabulek 36 průběžný součet 149 průvodce dotazem 144 importem textu 186 sestavou 143 vyhledáváním 54 překreslení formuláře 176 přesnost a měřítko 45 přesun do databáze Accessu 217 na SQL server 216 převod makra do Visual Basicu 211 přidání obsahu tabulky do jiné 188 pole do návrhové mřížky 70 tabulky do konstrukce dotazu 69 přidávací dotaz 92 příkaz Do Loop 175 For Next 167 If Then Else 167 přiřazovací 165 Select Case 180 With 176 příklady použití VBA 163 připojení tabulky z webu 207 Publisher export z Accessu 200 R referenční integrita 25 relace dotazu a tabulky 32 tabulky ke stejné tabulce 32 vícenásobná 32 rozdělení formuláře 115 rozložení ovládacích prvků 105 v relacích 33 RTF formátování 58 Ř řazení 55, 139 řazení a filtrování 61 v kontingenční tabulce 97 řazení výsledků dotazu 71 S seskupení dle prvního znaku 145 řádků a sloupců kontingenční tabulky 96 seskupování a řazení 148 seskupování ovládacích prvků 107 sestava relací 212 seznam vlastností 212 SharePoint 207 aktualizace dat na webu 208 aktualizace dat v Accessu 209 aktualizace databáze na webu 209 přesun na server SharePoint 207 seznam serveru SharePoint 40 zobrazení SharePointu 56 schránka 58 sjednocovací dotaz 93