4.8.7. Výběrové objekty

Microsoft Access umožňuje umisovat do formuláře objekty, které umožní zadávat obsah položky výběrem z nabízených možností. Na obr. 45 jsou znázorněny tři možnosti :

List box umožní vybrat jednu z nabízených hodnot. Nabídka přípustných hodnot musí být uložena v samostatné tabulce (dotazu) jako první v pořadí (na levé straně). Pokud je přípustná prázdná hodnota položky, musí být prázdná hodnota v nabídkové tabulce.
Combo Box umožní vybrat jednu z nabízených hodnot. Nabídka hodnot se provádí pomocí dotazu, může tedy pocházet z libovolné tabulky, případně z ručně zadaného seznamu, který je součástí objektu. Můžeme buď nalistovat požadovanou hodnotu nebo zapisovat do horního pole svoji hodnotu. Současně je psaná hodnota vyhledávána v seznamu hodnot. Vyhledává se vždy podle hodnot v prvním sloupci nabídky, do položky je však možno uložit hodnotu i z jiného sloupce nalezeného záznamu. Zda bude možno do položky zadat také hodnotu, která v nabídce nevystupuje, se zadává jako vlastnost Combo Boxu. Např. v ukázce je to umožněno, pokud je zadán nový titul do adresáře, který se nevyskytuje v nabídce titulů (tabulka STituly), pak je tento nový titul zapsán do nabídky. Tuto kontrolu zajišuje makro, které se spouští před změnou hodnoty položky (vlastnost Before Update).
Check box samostatný Check Box umožňuje zadávat logickou hodnotu. Pokud máme několik hodnot, z nichž se volí právě jedna, můžeme vytvořit vzájemně provázanou skupinu Check Boxů. Nejprve vytvoříme skupinu kontrolních boxů (Option Group), její výsledek přiřadíme požadované položce (vlastnost Control Source), pak do ní vložíme požadovaný počet výběrových boxů (objektů třídy Check Box, ale také Option Button nebo Toggle Button). V jejich vlastnostech Control Source bude Access automaticky umisovat hodnoty 1, 2 ... v pořadí jejich vkládání. Tyto hodnoty pak budou ukládány jako výsledek celé skupiny boxů. Access automaticky zajistí, že zmáčknutí jednoho boxu ruší zmáčknutí jiných boxů. Vždy je vybrán jen jeden z nich. Vracené hodnoty je možno nastavit podle požadavků uživatele, ale jen v číselné podobě. Pozn.: Je vhodné nastavit barvu podkladu (vlastnost Back Style) na hodnotu Normal, tím se zajistí, že se jednotlivé části objektu překrývají. Jinak by se prolínaly, např. přes text nadpisu by vedla čára rámečku apod.

Výběrové objekty

Obr.45. Výběrové objekty

4.8.8. Vložení grafu

Vložení grafu do formuláře je velmi jednoduché. Microsoft Access obsahuje silný nástroj pro tvorbu grafů - průvodce (Graph Wizard). Pro ukázku grafu vytvoříme pomocí průvodce graf znázorňující podíl doby strávené u jednotlivých zaměstnavatelů. Tento graf bude obsahovat informace vždy pro jednu osobu. Postup úkonů bude následující :

  1. Graf chceme vložit do úpatí formuláře. V okně Toolbox (viz obr. 41) vybereme třídu objektů Graph a umístíme nový objekt této třídy do prostoru úpatí formuláře.
  2. Následně se otevře okno, ve kterém zadáme název zdrojové tabulky (nebo dotazu typu Select), obsahující požadovaná data. V našem případě je to dotaz [QOsoba místo doba].
  3. Pak vybereme ty položky, jejichž hodnoty budou do grafu vstupovat. Přitom je dobré vybrat jako první položku, která poslouží pro popis grafu. V našem případě vybereme [Místo] a [Doba].
  4. Nyní určíme, jakou operací mají být zpracovány položky patřící ke stejnému záhlaví (mají stejné [Místo]) - Add - součet, Average - průměr, Count - počet
  5. Následuje dotaz, zda graf bude vázán na některou položku formuláře. U nás bude vázán.
  6. Určíme tedy vazbu položky formuláře a položky zdroje pro formulář. Nejvýhodnější jsou primární klíče. Pokud je nemáme k dispozici, je často nutné nastavit vazbu mezi více položkami obou objektů, které budou schopny identifikovat jednotlivé záznamy.
  7. Dále zvolíme druh grafu, např. koláčový graf. Současně určíme, zda jednotlivá data jsou ve sloupcích zdrojové tabulky (implicitně) nebo v řádcích.
  8. Poslední je určení nadpisu grafu a rozhodnutí o připojení legendy. Výsledkem je hotový graf, viz obr. 46. Jeho vzhled se bude měnit podle toho, se kterou osobou ve formuláři pracujeme. Musíme si ale uvědomit, že opakované vytváření grafu pro každý nový záznam trvá nějaký čas.

Výsledný graf

Obr.46. Výsledný graf

Graf je uložen v rámečku pro OLE (Object Linking and Embedding), který má některé významné vlastnosti :

Skupina vlastností Other Properties:

OLE Class třída objektu (např. Microsoft Graph 5.0 Chart).
Row Source Type třída objektu, ze kterého pochází informace pro objekt, implicitně Table/Query.
Row Source název objektu ze kterého pochází nabídka hodnot objektu nebo SQL příkaz pro získání potřebných informací, např. :

SELECT DISTINCTROW [Místo], SUM([QOsoba místo doba].[Doba]) AS [Doba] FROM [QOsoba místo doba] GROUP BY [Místo];

Link Chield Fields pokud je nastavena vazba mezi formulářem a objektem, je zde název položky objektu.
Link Master Fields pokud je nastavena vazba mezi formulářem a objektem, je zde název položky formuláře.
Display Type způsob zobrazení - Content, Icon
Update Options způsob zobrazení, pokud jsou nadřízená data změněna (Automatic, Manual).
OLE Type způsob připojení objektu (Linked - spojený dynamicky, Embedded - konstantní, None).
OLE Type Allowed (Linked, Embeeded, Eithed).
Class třída objektu (např. MSGraph.Chart.5).
Source Doc soubor, který bude využit při události Action.
Source Item určuje data, která budou zobrazena při události Action.
Column Count počet sloupců zdrojové tabulky.
Enabled zadává se přístupnost do objektu (Yes - lze měnit obsah, No - nelze).

Skupina vlastností Layout Properties:

Size Mode způsob zobrazení objektu, který je větší než rozměr rámečku (Clip - bude zobrazen výsek z levého horního rohu, který se vejde do rámečku, Stretch -- bude zobrazen celý objekt tak, aby vyplnil celý rámeček, Zoom - bude zobrazen celý objekt, jeho rozměry budou změnšeny stejnoměrně).
Column Heads první položka zdrojové tabulky je použita pro záhlaví (Yes) nebo ne (No).
Visible viditelnost objektu (Yes - viditelný, No - neviditelný).
Display When kdy má být objekt zobrazován (Always - vždy, Print Only - jen při tisku, Screen Only - jen na obrazovce).
Left poloha levého okraje objektu ve formuláři.
Top poloha horního okraje objektu ve formuláři.
Width šířka objektu ve formuláři.
Height výška objektu ve formuláři.
Back Style barva podkladu (Clear - tlumená, Normal - výrazná).
Back Color číslo barvy podkladu rámečku. Jednodušší nastavení je pomocí palety barev přímo ve formuláři.
Special Effect prostorové efekty pro zvýraznění objektu ve formuláři (Color - jen zvýraznění barvou, Raised - vystouplý, Sunken - zasunutý).
Border Style barva rámečku (Clear - tlumená, Normal - výrazná).
Border Color číslo barvy rámečku.
Border Width šířka čáry rámečku v počtu bodů (Hairline - vlasová čára).
Border Line Style druh čáry rámečku.

Skupina vlastností Event Properties:

On Update nastává při změně obsahu objektu.
On Enter nastává při vstupu do objektu (první přesunutí zaostření - Focus na objekt).
On Exit nastává při odchodu z objektu (po stisku klávesy Esc apod.).
On Got Focus nastává při zaostření na objekt.
On Lost Focus nastává při ztrátě zaostření (zaostření na jiný objekt).
On Click nastává při stisku Enter na objektu apod.
On Dbl Click nastává po dvojím stisku myši (Double Click) při práci s obsahem položky.
On Mouse Down nastává při přechodu na další objekt myší.
On Mouse Move nastává při uchopení objektu myší.
On Mouse Up nastává při přechodu na předchozí objekt myší.

Skupina vlastností Other Properties:

Name jméno objektu. Podle tohoto jména se s objektem pracuje v programu apod.
Auto Activate při jaké události má proběhnout oprava obsahu objektu (Manual, Get Focus, Double-Click).
Verb číslo operace, která má být provedena, pokud je objekt deaktivován.
Locked uzamčení objektu proti změně hodnot (Yes) nebo ne (No).
Tab Stops zastavování tabelátoru povoleno (Yes) nebo zakázáno (No).
Tab Index velikost tabelačních odskoků v počtu znaků.
Tag uživatelské vlastnosti.

Pokud chceme upravit vzhled grafu, případně jiného objektu OLE, použijeme činnost menu Edit-Object-Edit nebo dvojí zmáčknutí myši na objektu (Double Click), tím vyvoláme editor objektu v závislosti na jeho typu. V našem případě to bude program Microsoft Graph, viz obr. 47.

Při nesprávné nebo nedokonalé instalaci programu Microsoft Access se stává, že editor objektu není nalezen. Nezbývá, než buď oželet objekt nebo nainstalovat program znovu.

Editace obsahu grafu

Obr.47. Editace obsahu grafu

4.9. Práce s formulářem

S formulářem je možno pracovat ve dvou režimech, buď jako s tabulkou (Datasheet) nebo jako s formulářem (Form). Práce s tabulkou je stejná, jako práce se skutečnou tabulkou, proto se budeme věnovat dále jen práci s formulářem.

S formulářem pracujeme v okně, viz obr. 48. Jak vidíme, je typické, že formulář je doplněn uživatelským menu, hlášení o prováděných činnostech je vypisováno do stavového řádku na dolním okraji. K formuláři je také připojena nápověda. Proto nemá smysl rozebírat činnosti ve standardním menu pro práci s formulářem. Jeho činnosti byly vysvětleny v kapitole věnované práci s tabulkou. Raději se budeme věnovat některým často používaným činnostem

Prostředí programu při práci s formulářem

Obr. 48. Prostředí programu při práci s formulářem

4.9.1. Vyhledávání a změna hodnot položek

Při práci s formulářem jsou pro nás zajímavé především činnosti, jako vyhledávání a změna obsahu položek. Činnost menu Edit-Find otevře okno, ve kterém specifikujeme hodnotu, kterou hledáme, viz obr. 49. Můžeme přitom řídit činnost vyhledávání zadáním parametrů :

Search In určuje, zda se má prohledávat jen v hodnotách položky, ve které stojí kurzor (Current Field) nebo v hodnotách všech položek (All Fields).
Direction směr prohledávání od aktuálního záznamu (Up - směrem k prvnímu záznamu, Down - směrem k poslednímu záznamu).
Match Case zohlednění velikosti písma (křížek - malá a velká písmena považovat za rozdílná).
Search Fields as Formatted prohledávat položky jako formátované (křížek - ano).

Okno pro vyhledávání hodnot položek

Obr. 49. Okno pro vyhledávání hodnot položek

Pokud chceme nejen vyhledávat, ale také měnit hodnoty položek, použijeme činnost menu Edit-Replace. Činnost probíhá v okně, viz obr. 50. Můžeme zadat nejprve vyhledání další položky vyhovující požadavku, přitom se bude ignorovat aktuální záznam i kdyby požadavkům vyhovoval (Find Next) a pak změnu hodnoty (Replace) nebo automatickou změnu u všech vyhovujících záznamů (Replace All).

Okno pro změnu hodnot položek

Obr. 50. Okno pro změnu hodnot položek

4.9.2. Nastavení filtru záznamů

Ve formuláři můžeme zpracovávat jen záznamy, které si vybereme nastavením filtru záznamů. Filtr záznamů se tvoří v okně, které otevřeme činností menu Records-Edit Filter/Sort, viz obr. 51.

Filtr se tvoří stejně jako dotaz (Query) typu Select, má jen některá omezení. Naznačuje to i omezený počet řádků popisujících jednotlivé položky (sloupce) filtru. Při tvorbě filtru máme jen omezenou nabídku činností v menu. Především můžeme filtr uložit jako dotaz (činnost menu File-Save As Query) nebo ho naopak načíst z již vytvořených dotazů (činnost menu File-Load From Query), v tom případě nám Access nabídne seznam dotazů, které lze jako filtr použít a z nich si vybereme, viz obr. 52.

Na obr. 51 je zobrazena tvorba filtru, který vybere záznamy, jejichž položka Titul začíná textem "Ing.*". Současně je provedeno setřídění vyhovujících záznamů (Sort), a to vzestupně, nejprve podle příjmení, pak podle jména.

Okno pro tvorbu filtru záznamů

Obr. 51. Okno pro tvorbu filtru záznamů

Okno pro načtení filtru záznamů z dotazu

Obr. 52. Okno pro načtení filtru záznamů z dotazu

Filtr aplikujeme činností menu Records-Apply Filter/Sort. Ve formuláři budou zobrazeny jen záznamy vyhovující zadanému filtru. To nám však nebrání přidat nový záznam, který nebude filtru vyhovovat. Tento záznam bude zobrazen tak dlouho, dokud znovu neprovedeme činnost menu Records-Apply Filter/Sort.

Okno pro tvorbu filtru se uzavírá automaticky při uzavření formuláře

4.10. Tvorba sestavy

Pro prezentaci údajů v databázi slouží výstupní sestavy. Než přistoupíme k tvorbě nové sestavy, je dobré si uvědomit, že na její vzhled má vliv nastavení parametrů pro tiskárnu, jak vidíme na obr. 53. Zejména jsou to okraje, ale také velikost tiskové plochy, počet sloupců apod. Pomocí těchto nastavení můžeme i ručně vytvořit sestavu pro tisk adresních štítků.

Nastavení parametrů pro tiskárnu

Obr. 53. Nastavení parametrů pro tiskárnu

Pro tvorbu nové sestavy (New) nabízí Access opět použití průvodce (Report Wizard), viz obr. 54. Současně zde volíme název zdrojové tabulky nebo dotazu.

Tvorba nové sestavy

Obr. 54. Tvorba nové sestavy

Pokud zvolíme nabídku Report Wizards, otevře se následně okno, ve kterém zvolíme požadovaný typ sestavy:

Single-Column v sestavě jsou uvedeny jednotlivé záznamy, každá položka na jednom řádku.
Groups/Totals záznamy v sestavě jsou seskupovány do skupin. Je možno provádět výpočetní operace v rámci jednotlivých skupin záznamů nebo celé sestavy.
Mailing Label sestava je tištěna ve formě adresních štítků.
Summary sestava se součty ve skupinách záznamů.
Tabular v sestavě jsou položky záznamů vždy všechny v jenom řádku.
AutoReport automatická definice sestavy podle zvyklostí programu.
MS Word Mail Merge dokument s tabulkou pro tisk adres v prostředí editoru MS Word.

Zvolme sestavu s tvorbou skupin a součty ve skupinách (Groups/Totals). Následuje volba položek, které mají být v sestavě zobrazeny. Je vhodné je vybírat v pořadí, v jakém chceme aby byly v sestavě uspořádány. Zapomenout nesmíme ani na položky, podle kterých se budou tvořit skupiny záznamů.

Pokračujeme určením, které položky budou tvořit skupiny (Groups) záznamů ve výsledné sestavě. Máme možnost zvolit nejvýše 4 položky.

Pro jednotlivé položky skupin určíme po jakých rozsazích hodnot budou skupiny tvořeny. Liší se podle datového typu položky. Přípustné hodnoty jsou zařazeny v nabídce.

Dalším nastavením je určení, podle kterých položek budou tříděny záznamy ve skupině.

Následuje určení vzhledu sestavy. Jsou k dispozici tři nabídky, jejich ukázka je uvedena pod lupou v levém horním rohu okna :

Executive jednoduchá úprava, záhlaví je odděleno dvojitou čarou.
Presentation složitější úprava, záhlaví je odděleno tučnou čarou.
Ledger položky jsou orámovány a vzhledem tvoří tabulku.

Posledním krokem je určení nápisu v záhlaví sestavy, rozhodnutí, zda mají být všechny položky zobrazeny na společné stránce, zda mají být počítána procenta ze součtových položek apod. Následuje vytvoření vlastní sestavy, viz obr. 55

Konec vytváření sestavy pomocí průvodce

Obr. 55. Konec vytváření sestavy pomocí průvodce

4.11. Úprava sestavy

Po ukončení tvorby sestavy nebo při její úpravě (Design), přejdeme do okna úpravy vzhledu sestavy. Okno i použitelné činnosti se velmi podobají úpravě formuláře. V menu je jen několik nových činností. Prostředí programu při úpravě vzhledu sestavy je na obr. 57. Je zde zobrazeno také okno s vlastnostmi objektu, kterých je oproti formuláři poněkud méně.

V menu File je navíc činnost Sample Preview, která ukáže vzhled sestavy s ukázkovými daty. Má význam především, pokud je zdrojová tabulka (dotaz) sestavy prázdná.

V menu View je navíc činnost Sorting and Grouping..., která otevře/zavře okno s údaji o třídění záznamů v sestavě, viz obr. 56. Vidíme zde, že sestava bude tříděna podle oboru a stupně vzdělání, v každé skupině pak podle příjmení a jména. Současně jsou určeny vlastnosti pro každou skupinu záznamů :

Group Header určení, zda bude zobrazeno záhlaví skupiny.
Group Footer určení, zda bude zobrazeno úpatí skupiny.
Group On určení, jakým způsobem budou skupiny tvořeny (Each Value, Prefix Characters).
Group Interval interval pro tvorbu skupin. Např. pokud budeme chtít tvořit skupiny osob podle počtu dovršených desítek let, zadáme tvorbu skupin podle položky [Věk] a interval 10.
Keep Together zda má být oblast (Section) vázána na následující oblast.

Pokud určíme, že u položky bude zobrazeno záhlaví nebo úpatí skupin, je položka chápána jako zdroj skupin, což se znázorní značkou skupiny na levém okraji řádku. Na obr. 56. je u prvních dvou položek. Pokud záhlaví ani úpatí nezapneme, je položka chápána jako určení způsobu setřídění záznamů v rámci skupiny.

Vlastnosti pro tvorbu skupin a třídění záznamů

Obr. 56. Vlastnosti pro tvorbu skupin a třídění záznamů

Vlastnost pro rozsah skupin je závislý na typu položky, podle které se skupiny vytvářejí.

U textových dat může mít vlastnost Group On hodnotu :

Each Value skupiny budou tvořit záznamy s použitou položkou stejné hodnoty.
Prefix Characters skupiny budou tvořit záznamy, jejichž použitá položka začíná stejným písmenem.

U číselných dat, počítadel apod. může mít vlastnost Group On hodnotu :

Each Value skupiny budou tvořit záznamy s použitou položkou stejné hodnoty.
Interval skupiny budou tvořit záznamy, jejichž použitá položka má hodnotu v určeném intervalu krokování, např 5 znamená skupiny 0 - 4, 5 - 9, 10 - 14 atd.

U datumových a časových dat může mít vlastnost Group On hodnotu :

Each Value skupiny budou tvořit záznamy s použitou položkou stejné hodnoty.
Year skupiny budou tvořeny podle stejného roku.
Qtr skupiny budou tvořeny podle stejného čtvrtletí roku.
Month skupiny budou tvořeny podle stejného měsíce roku.
Week skupiny budou tvořeny podle stejného týdne roku.
Day skupiny budou tvořeny podle stejného dne roku.
Hour skupiny budou tvořeny podle stejné hodiny.
Minute skupiny budou tvořeny podle stejné minuty.

Úprava vzhledu sestavy

Obr. 57. Úprava vzhledu sestavy

V okně úpravy sestavy vidíme, že sestava má více částí.

Report Header záhlaví sestavy. Je tisknuto na začátku celé sestavy. V ukázce obsahuje název sestavy, datum a čas provedení tisku (funkce Now).
Page Header záhlaví stránky. Je tisknuto na začátku každé stránky. V ukázce obsahuje popisy vystupujících položek záznamu.
Obor Header záhlaví skupiny tvořené podle obsahu položky Obor. Je tisknuto na začátku každé skupiny.
Stupeň Header záhlaví skupiny tvořené podle obsahu položky Stupeň. Je tisknuto na začátku každé skupiny záznamů se stejným vzděláním v rámci skupiny záznamů jednoho oboru.
Detail oblast informací o jednom záznamu. Obsahuje konkrétní informace o jednom záznamu. Je možno používat jakékoliv objekty, které známe z tvorby formuláře, výpočty apod. Často se používají také položky nastavené jako neviditelné (vlastnost Visible = No), které na výsledné sestavě nebudou zobrazeny. Slouží pro možnost nastavení filtru záznamů, případně možnost odkazovat se na hodnoty svých zdrojových položek při výpočtech apod.
Stupeň Footer úpatí skupiny tvořené podle obsahu položky Stupeň. Je tisknuto na konci každé skupiny. V ukázce obsahuje informaci o součtu odpracovaných let v této skupině : =Sum(Doba) a procento podílu na celkové odpracované době všech záznamů.
Obor Footer úpatí skupiny tvořené podle obsahu položky Obor. Je tisknuto na konci každé skupiny. V ukázce obsahuje informaci o součtu odpracovaných let v této skupině : =Sum(Doba) a procentu podílu na celkové odpracované době všech záznamů.
Page Footer úpatí stránky. Je tisknuto na konci každé stránky. V ukázce obsahuje číslo stránky, tištěné skloněným písmem :="strana "& Page.
Report Footer úpatí sestavy. Je tisknuto na konci celé sestavy. To znamená, že v reálném případě bude předcházet vytištění úpatí poslední stránky. V ukázce obsahuje počet všech záznamů v sestavě (GrandTotal).

4.12. Tisk sestavy

Každou sestavu tvoříme především proto, abychom ji mohli tisknout. Vzhled sestavy při tisku zobrazíme pomocí činnosti menu File-Print Preview. Access zobrazí stránku papíru s výsledkem sestavy. Pomocí lupy nebo tlačítka Zoom můžeme přepínat mezi zobrazením detailu a celé stránky. Na obr. 58 je zobrazeno prostředí programu s detailem sestavy. Současně je zde zobrazeno okno pro určení základních parametrů pro tisk.

Pokud jsme spokojeni, můžeme sestavu vytisknout příkazem File-Print. K nastavení parametrů tisku se otevře pomocné okno, na obr. 58 se nachází v prostřední části obrázku.

Pokud nejsme spokojeni s nastavenými parametry tiskárny, můžeme vyvolat tlačítkem Setup jejich změnu (platí jen pro aktuální objekt). Otevře se stejné okno, jako při činnosti menu File-Print Setup, viz obr. 53. Na obrázku je stav okna po stisku tlačítka More, které přidá do okna některé doplňující informace.

Pokud se sestavou pracuje více uživatelů s různými tiskárnami, dochází k častým změnám jejich nastavení u sestav. Uživatel pak může být překvapen hlášením, např. viz obr. 59, které nastává, pokud byla sestava formátována pro tiskárnu, která v jeho instalaci Windows není připojena.

Tisk sestavy

Obr. 58. Tisk sestavy

Hlášení pokud byla sestava dříve upravena pro tiskárnu, která není připojena

Obr. 59. Hlášení pokud byla sestava dříve upravena pro tiskárnu, která není připojena.


Návrat k obsahu