Databáze hospůdek
e-mail:
[email protected]
© Drummer and Dawe 2008
Databáze hospůdek
Obsah 1
Úvodní slovo k databázi................................................................................................................... 2
2
Formuláře ........................................................................................................................................ 2 2.1
Dotazy ...................................................................................................................................... 5
3
Sestavy ............................................................................................................................................. 6
4
Makra .............................................................................................................................................. 7
1
Databáze hospůdek
1 Úvodní slovo k databázi Tato databáze vznikla pro předmět 2OP83 a téma vycházelo z nápadu a vlastní iniciativy autora. Účelem je uchování dat ohledně navštěvovaných podniků (restaurace, hospody, bary a další). Krycí název pro databázi je „Kolumbus, aneb objevování pražských hospůdek a barů“. Databáze tedy slouží k zadávání a editaci hospůdek, ale nejen to, umí i evidovat různé akce a členy, kteří se akcí pravidelně účastní. Díky této databázi už nebude nikdy problém s rozhodováním kam zrovna vyrazit. Databáze přehledně zobrazuje základní informace o podniku (název, kontakt), dále pak řadu konkrétních a užitečných informací, jako např. pivo, které se v hospůdce točí a jeho cena, jestli se tam vaří a jaké je v hospůdce herní vybavení nebo např. jaká zastávka městské hromadné dopravy je nejblíže. Pro snazší lokalizaci hospůdky je v databázi zabudována i funkce lokalizace pomocí GPS souřadnic. Databáze umožňuje rychlé a přehledné vyhledávání podniků, možnost tisknout sestavy a přehledy a má i řadu dalších zajímavých funkcí, jako např. zobrazení některých hodnot pomocí přehledných grafů. Práce s databází je díky propracovanému uživatelskému prostředí velmi přívětivá. Pohodlnou práci s databází zajišťují především přehledné formuláře, makra, která na pozadí automatizují některé úkony a také např. uživatelská nápověda ke každému formuláři.
2 Formuláře Pro odstínění běžného uživatele od strohé podoby databáze bylo vytvořeno 14 formulářů, z toho 4 jako podformuláře využité v jiných formulářích a 2 jako rozcestník či menu. V dalším textu abstrahuji od popisu podformulářů, jelikož ty budou stručně popsány s hlavními formuláři, do kterých byly vloženy. Formulář F_Menu Tento formulář se otevře automaticky po spuštění databáze a slouží jako hlavní navigační menu pro další formuláře a obecně i pro práci s celou databází. Jako hlavní prvek zde bylo využito souhrnné makro M_Menu, ve kterém je definována událost pro každé tlačítko ve formuláři. Po kliknutí na obrázek vlevo nahoře (dveře se šipkou) bude práce s databází ukončena. Pokud se budeme chtít něco dovědět o databázi, stačí kliknout na tlačítko otazníku vpravo nahoře (formulář F_About).
2
Databáze hospůdek
Formulář f_Hospody_zadávání Tento formulář už je o dost zajímavější a právě na něm se pokusím popsat většinu použitých prvků, dotazů a nastavení v databázi.
Tento formulář, jak už sám název napovídá, slouží především k zadávání nových hospůdek a editaci již zadaných. Formulář tedy primárně vychází z tabulky Hospody. Dále obsahuje dva podformuláře F_výčepy a F_vybavení. Tyto podformuláře jsou nekonečnými formuláři a slouží k doplnění tabulek 3
Databáze hospůdek Výčepy a Druh vybavení. Např. podformluář F_výčepy je založen na dotazu, který vyselektuje druh piva i cenu z tabulek Piva a Výčep. Pole „Vyber pivo“ je pole se seznamem a je nastaveno tak, že ukazuje konkrétní druh piva, ale na pozadí to edituje ID_piva. Pokud je v hospodě druh piva, který ještě není v tabulce Piva, je možné tento nový druh piva přidat pomocí tlačítka „Přidej nový druh“, kdy nám vyjede samostatný formulář F_pivo_edit a v něm můžeme přidat nový druh nebo editovat stávající. To samé je možné u Vybavení. Ve formuláři jsou použity standardní editovací pole, pole se seznamem, zaškrtávací pole a rámečky alias skupiny voleb. Nalezneme tam i jakési aktivní pole, např. pod polem „Poznámka“ je informace o zbývajícím počtu znaků, které je ještě možné vložit do pole poznámka. Syntaxe je následující: ="Zbývající počet znaků: " & 255-Val(Len(*Poznámka_v+)) Další „vymožeností“ tohoto formuláře je možnost, po zadání GPS souřadnic dané hospůdky, vyvolat webový prohlížeč na portálu mapy.cz a nechat si ukázat přesnou polohu hospůdky. Syntaxe: ="Ukaž na mapy.cz #http://www.mapy.cz/?query=loc:" & *GPS_šířka+ & "," & *GPS_délka+ Abychom mohli do databáze uložit „syrové hodnoty“ GPS, ale zároveň mohli pracovat s odkazem pro mapy.cz, obsahuje formulář ještě dvě skryté (pomocné) pole – GPS_šířka a GPS_délka, ve kterých se převádí souřadnice do řetězce vhodného pro poskládání dotazu na portál mapy.cz. Např. pole GPS_šířka má tuto syntaxi: =[GPS01] & "%C2%B0" & [GPS02] & "'" & [GPS03] & "%22N". Z té je patrné, že poskládá informace z tří polí, kam uživatel zadá hodnoty a doplní řetězec o hodnoty symbolizující různé zvláštní znaky jako mezera, stupně, uvozovky atd. Co se týče formátu formuláře, jsou zakázány posuvníky, styl okraje je nastaven na „tenký“. Navigační tlačítka i volič záznamů má hodnotu „ne“. Pro navigaci v tomto, ale i ve většině všech dalších formulářů, je využita sada tlačítek s přidělenými makry.
Díky těmto tlačítkům můžeme pohodlně přecházet mezi záznamy, jít na první, či na poslední, přidat nový záznam, otevřít nápovědu formuláře nebo formulář zavřít. Tlačítka jsou napojena na makro M_navigace. Každé tlačítko má vlastní vysvětlivku pro ujasnění voleb, vysvětlivka se zobrazí, pokud necháme ukazatel nad tlačítkem. Formulář F_Členů Tento formulář slouží k zadávání nových členů, či k editaci členů stávajících. Z údaje o datu narození se v sestavě „Členové“ , vypočítává věk. Formulář F_Akce
4
Databáze hospůdek Ttento formulář slouží k popisu uskutečněných akcí, nese datum, název i poznámku k akci, dále eviduje pomocí dalších dvou podformulářů informace o účasti členů a o navštívených hospůdkách. Tento formulář je stěžejní z toho důvodu, že je tu předpoklad, že při každé nové akci přibude řada nových hospůdek a možná i členů a proto zde nechybí tlačítka „Přidej nového člena“ či „Přidej novou hospůdku“, která nás odkážou na již popisované formuláře. Formulář Graf_spotřeba Speciální formulář zobrazující pouze grafy na třech kartách. Tyto grafy jsou většinou založeny na speciálních dotazech a ukazují přehled spotřeby piva jednotlivých členů nebo přehled průměrných cen piv jednotlivých značek či komplexnější pohled na přehled hospod, piv, která jsou v dané hospodě točena a jeho cena.
2.1 Dotazy Pro přehlednější práci s dotazy jsem vytvořil formulář F_Dotazy, který opět obsahuje řadu tlačítek napojených na makra a na konkrétní dotazy.
Z obrázku formuláře je patrné, jaké dotazy jsem vytvořil. Jedná se jak o dotazy akční (vytvořit, aktualizovat, odstranit), tak o dotazy křížové a nechybí ani dotaz parametrický. Vytvořit tabulku přehled: akční dotaz, který spíše pokusně vytváří tabulku „Přehled“. Vychází ze tří tabulek (Členové, Ucast, Akce) a dotazu Vek. Výsledná tabulka Přehled vypíše přezdívku člena, jeho funkci, věk, který spočítá dle data narození, sečte počet piv z tabulky akce pro každého člena a vypíše počet akcí, na kterých se každý člen účastnil. Povýšení člena: akční dotaz, který aktualizuje jeden údaj v tabulce členové. Jedná se o údaj o funkci/hodnosti člena. Člena tudíž můžeme povýšit. Dotaz je zároveň i parametrický, jelikož se nás nejprve dotáže pro jakého člena chceme provést aktualizaci a pak nás poprosí o zadání nového hodnosti.
5
Databáze hospůdek Přehled Piva a ceny v podnicích: vypíše všechny podniky (hlavička řádku), druhy piva (hlavička sloupce) a ceny piv (hodnota). Vybavení v podnicích: křížový dotaz, který vypíše jednotlivé podniky, druhy vybavení a hodnotu 1 v poli, pokud dané vybavení v daném podniku nalezneme. Pivo (jaké a nakolik): asi nejužitečnější parametrický dotaz, který lze vyvolat nad touto databází;) Pokud chce uživatel zjistit podniky, kde točí jeho oblíbenou značku piva a zároveň má hluboko do kapsy, může zadat max. cenu piva. Výsledek dotazu tedy budou podniky s oblíbenou značkou a definovaným limitem ceny. Odstranit hospodu: jedná se o akční dotaz, který umožní díky zapnuté volbě u relací databáze „odstranění souvisejících polí v kaskádě“ – odstranit hospůdku, která byla např. uzavřena.
3 Sestavy Jelikož se u této databáze předpokládá spíše práce s formuláři, vytvořil jsem jen několik základních sestav. S_Hospody Tato sestava přehledně shrnuje veškeré důležité informace o hospůdkách. Najdeme zde údaje jako adresa, kontaktní Inko, MHD, poznámku, herní vybavení a točená piva včetně cen.
6
Databáze hospůdek S_Členové_sloupce: sestava, která ve dvou sloupcích vypíše informace o všech členech S_Vybavení_bez_duplicit: sestava, která využívá řazení a seskupování. Vypisuje vždy název podniku a všechny druhy vybavení. Pokud podnik žádné vybavení nemá, objeví se smutný Smajlík . To je zajištěno příkazem IFF. Syntaxe je následující: =IIf([Druh_vybaveni] Is Null;":(";[Druh_vybaveni]) S_Relace: automatizovaně vypíše relace databáze.
4 Makra Pro jednodušší práci s formuláři jsem využil řadu maker, která pracují na pozadí databáze. Většinou se jednalo o makra sloužící pro přechod mezi formuláři, zavíraní oken, vyvolání dotazu atd. V dalším popisu se zaměřím spíše na významnější či rozsáhlejší makra. Marko M_Menu Toto makro slouží především pro hlavní formulář F_Menu. Tzn. slouží k otvírání formulářů, sestav a dotazů. Nechybí tady i makro pro tlačítko „Exit z databáze“ Makro M_navigace Toto makro obsluhuje navigační tlačítka na každém formuláři. Makro M_Adresa Toto makro je zajímavé v tom, že řeší zadání adresy podniku po stisku tlačítka „Zadej adresu“ ve formuláři Editace hospůdek.Marko nejprve provede přechod na další záznam, poté přechod na předchozí záznam a tím zajistí uložení nových informací o hospůdce, poté otevře formulář a předá parametr - Název podniku. Díky tomu pak mohu editovat adresu pro konkrétní podnik. Syntaxe (Podmínka Where v makru): *Nazev+=*Formuláře+!*f_Hospody_zadávání+!*Nazev+
7