Cvičení předmětu KIV/DBM1
5. týden výuky, cvičící: Ing. Tomáš Kotouč
Zadání kritérií semestrální práce. Vytváření formulářů bez průvodce, nastavování vlastností formuláře včetně reakcí na události.
Podoba cvičné databáze před cvičením a po ukončení cvičení.
- Zadání semestrální práce:
- Studenti mají možnost si vymyslet zadání aplikace dle uvedených kritérií sami nebo jim bude nějaké zadání přiděleno.
- Studenti mohou semestrální práci vykonávat i v týmu a to maximálně čtyřčleném.
- Studenti musí odevzdat jak aplikaci (vzor), tak dokumentaci této aplikace (vzor).
- Při odevzdávání aplikace musí být přítomni všichni členové týmu.
- Kritéria aplikace:
- Aplikace bude naprogramována v DBMS Access 2.0.
- Aplikace bude postavena alespoň nad čtyřmi tabulkami.
- Mezi tabulkami bude alespoň jedna vazba M:N (např.: student studuje více předmětů, jeden předmět studuje více studentů = tato vazba se rozkládá na tři tabulky s vazbami [Studenti] 1:N [Znamky] N:1 [Predmety]).
- Z formulářů aplikace budou přístupné všechny tabulky a to pro zadávání (INSERT), změnu (UPDATE), mazání (DELETE) i prohlížení (SELECT).
- Alespoň jeden formulář bude postaven nad dotazem.
- Aplikace bude obsahovat alespoň jeden formulář s podformulářem.
- V aplikaci bude zabezpečena konzistence dat (nesmí nastat situace, že v jedné tabulce smažu otce (MASTER) a v jiné mi zůstanou synové (DETAIL)).
- Jako aplikaci můžete použít jakoukoliv jinou databázovou aplikaci, kterou jste připravili pro jiný předmět, pro nějakou společnost nebo vlastní využití. Tato aplikace však musí splňovat uvedená kritéria.
- Při předvádění aplikace bude různými otázkami zkoumána nejenom funkčnost aplikace, ale také, zda všichni členové týmu aplikaci rozumí (zda jste ji napsali sami).
- Na příštím cvičení studenti oznámí, co budou dělat.
- Příklady možných aplikací.
- Vytvoření formuláře bez průvodce - hlavní formulář:
- Chceme vytvořit formulář obsahující tlačítka, kterými se dostaneme na formuláře Studenti a Predmety. Tento formulář nebude zobrazovat žádná data.
![](hlavni_2)
- Zakládáme nový formulář a protože se nebudou zobrazovat žádná data a nechceme použít průvodce, klikneme hned na tlačítko Prázdný formulář.
![](novy_formular.jpg)
- Otevře se nám úplně prázdný formulář. Jediné, co je zatím zobrazeno je Souprava nástrojů (pokud není, zobrazíme výběrem z menu Zobrazit - Souprava nástrojů) a Vlastnosti (pokud není, zobrazíme výběrem z menu Zobrazit - Vlastnosti).
![](souprava_nastroju.jpg)
- Nyní chceme na formulář napsat nápis Nabídka = ze Soupravy nástrojů vybereme objekt Popis (klikneme na tento objekt na Soupravě nástrojů, přejdeme na plochu formuláře a zde klikneme na místo, kde má být levý horní okraj objektu). Nápis umístíme nahoru do formuláře, napíšeme Nabídka a stiskneme klávesu ENTER. Nyní chceme, aby byl nápis větší, červený a zarovnaný přesně nahoru - doprostřed formuláře = u vlastnosti Velikost písma zadáme 14, u vlastnosti Barva popředí vybereme červenou barvu, u vlastnosti Zarovnání textu vybereme Doprostřed a protože nechceme, aby měl nápis nějaké pozadí, vybereme si ve vlastnosti Styl pozadí hodnotu Bez okraje. Plochu objektu roztáhneme až do krajů plochy formuláře (ta vytečkovaná plocha) a umístíme nahoru. Všimneme se, že tento objekt má i další vlastnosti.
- Do pravého horního rohu formuláře si přidáme tlačítko pro zavření formuláře = v soupravě nástrojů si vybereme objekt Příkazové tlačítko a klikneme do pravého horního rohu formuláře. Zobrazí se nám průvodce pro tento objekt. Vybereme si Práce s tabulkami - Zavřít formulář a klikneme na tlačítko Další. Zde si můžeme vybrat pro námi vytvářené tlačítko nápis nebo ikonu, necháme nabízenou ikonu a klikneme na tlačítko Další. Zde si můžeme zadat název tlačítka, necháme nabízené a klikneme na tlačítko Ukončit. Tím se nám vytvoří požadované tlačítko.
- Do formuláře si přidáme pod nápis tlačítko pro otevření formuláře Studenti. V soupravě nástrojů si vybereme objekt Příkazové tlačítko a klikneme na plochu formuláře. Zobrazí se nám průvodce pro tento objekt. Vybereme si Práce s tabulkami - Otevřít formulář a klikneme na tlačítko Další. Zde si vybereme, který formulář se nám má zobrazit, tedy STUDENTI a klikneme na tlačítko Další. Zde si zadáme název tlačítka Studenti a klikneme na tlačítko Další. Zde si můžeme zadat název tlačítka, necháme nabízené a klikneme na tlačítko Ukončit. Tím se nám vytvoří požadované tlačítko.
- Pod tlačítko Studenti přidáme tlačítko Předměty pro otevření formuláře Predměty.
- Nyní chceme, aby plocha formuláře byla šedá = ve vlastnostech těla vybereme u vlastnosti Barva pozadí šedou barvu.
- Formulář uložíme pod názvem Hlavni.
- Když formulář otevřeme, zjistíme, že stále nevypadá jako náš vzor.
![](hlavni_1.jpg)
- Nyní musíme změnit ještě několik vlastností formuláře.
- Nechceme, aby se nám zobrazoval volič záznamů (to podlouhé tlačítko vlevo) = ve vlastnosti Volič záznamů vybereme NE.
- Nechceme, aby se nám zobrazovali navigační tlačítka (na jakém záznamu stojíme a tlačítka okolo) = ve vlastnosti Navigační tlačítka vybereme NE.
- Chceme, aby se nám formulář zobrazoval vždy ve středu obrazovky = ve vlastnosti Automaticky zarovnat na střed vybereme ANO.
- Nechceme, aby se nám mohl kdokoliv měnit velikost okna = ve vlastnosti Styl okraje vybereme Dialogový.
- Nechceme, aby se nám zobrazovalo ovládací tlačítko formuláře (windows tlačítko na minimalizaci, maximalizaci, ..) = ve vlastnosti Pole ovládací nabídky vybereme NE.
- Nechceme, aby se nám zobrazoval minimalizační tlačítko = ve vlastnosti Minimalizační tlačítko vybereme NE.
- Nechceme, aby se nám zobrazoval maximalizační tlačítko = ve vlastnosti Maximalizační tlačítko vybereme NE.
- Nechceme, aby se nám zobrazoval nápis "Formulář: Hlavni", ale "Nabídka" = ve vlastnosti Titulek vložíme Nabídka.
- Formulář uložíme, zavřeme a otevřeme. Nyní už vypadá tak, jak jsme si představovali. Je třeba si všimnout, že formulář obsahuje ještě mnoho dalších vlastností.
- Do formuláře Studenti přidáme do záhlaví formuláře tlačítko Zavřít formulář.
- Do formuláře Předměty přidáme do záhlaví formuláře tlačítko Zavřít formulář.
- Otevřeme si formulář Hlavni a vyzkoušíme, zda jsou z něho dostupné formuláře Studenti a Předměty a z nich jestli je možné se tlačítkem Zavření formuláře dostat zpět do formuláře Hlavni.
- Nyní chceme v nějakém formuláři zadávat známky jen těm, kteří je ještě nemají vyplněny.
- Využijeme k tomu dotaz odvozené sloupce kam do sloupce Znamka do kritérií zapíšeme IS NULL.
![](odvozene_s1.jpg)
- To nám zaručuje, že se opravdu zobrazí pouze záznamy, které nemají vyplněnou známku.
![](odvozene_s2.jpg)
- Nyní si založíme nový formulář nad dotazem odvozené sloupce a to opět bez průvodce.
![](bez_znamky_2.jpg)
- Otevře se nám úplně prázdný formulář.
- Ve formuláři potřebujeme mít zobrazuno Záhlaví, Tělo a Patu = to docílíme kliknutím na menu Formát - Záhlaví/Pata formuláře.
- Do záhlaví formuláře do pravého horního rohu si přidáme tlačítko pro zavření formuláře.
- Do záhlaví formuláře si přidáme tlačítko pro přechod na první záznam = v soupravě nástrojů si vybereme objekt Příkazové tlačítko a klikneme na plochu formuláře do záhlaví. Zobrazí se nám průvodce pro tento objekt. Vybereme si Navigace záznamy - Přejít na první záznam a protože už nic dalšího nebudeme chtít v nastavení tlačítka měnit, klikneme na tlačítko Ukončit.
- Vedle tlačítka Přejít na první záznam přidáme ještě tlačítka Přejít na předchozí záznam, Přejít na další záznam, Přejít na poslední záznam a tlačítka Přidat nový záznam a Odstranit záznam.
- V těle budeme chtít vidět položky o studentovi, o předmětu a známku. V soupravě nástrojů si vybereme objekt Textové pole a klikneme na plochu těla. Smažeme titulek a ve vlastnostech textového pole nastavíme vlastnosti Zdroj ovládacího pole na S, tím dojde k propojení na položku dotazu. Takto přidáme i položky pro předmět a známku a spojíme je s položkou dotazu. Tělo zužíme jen na výšku textových polí.
- V záhlaví si vytvoříme nápisy Student, Předmět a Známka a to nad příslušnými položkami v tělu. Jejich pozadí změníme na neviditelné.
- Patu zmenšíme na nulu.
- Nyní chceme, aby plocha formuláře byla šedá = ve vlastnostech záhlaví a těla vybereme u vlastnosti Barva pozadí šedou barvu.
- Formulář uložíme pod názvem Bez_znamky.
- Když formulář otevřeme, zjistíme, že stále nevypadá jako náš vzor.
![](bez_znamky_1.jpg)
- Nyní musíme změnit ještě několik vlastností formuláře.
- Nechceme, aby nám mohl někdo do formuláře přidávat data, jen opravovat = ve vlastnosti Výchozí nastavení pro úpravy vybereme Neumožnit přidávat záznamy.
- Nechceme, aby se nám zobrazovali navigační tlačítka (na jakém záznamu stojíme a tlačítka okolo) = ve vlastnosti Navigační tlačítka vybereme NE.
- Naopak chceme, aby se nám zobrazovala jen svislá lišta = ve vlastnosti Posuvníky vybereme Jen svislý.
- Chceme, aby se nám formulář zobrazoval vždy ve středu obrazovky = ve vlastnosti Automaticky zarovnat na střed vybereme ANO.
- Nechceme, aby se nám mohl kdokoliv měnit velikost okna = ve vlastnosti Styl okraje vybereme Dialogový.
- Nechceme, aby se nám zobrazovalo ovládací tlačítko formuláře (windows tlačítko na minimalizaci, maximalizaci, ..) = ve vlastnosti Pole ovládací nabídky vybereme NE.
- Nechceme, aby se nám zobrazoval minimalizační tlačítko = ve vlastnosti Minimalizační tlačítko vybereme NE.
- Nechceme, aby se nám zobrazoval maximalizační tlačítko = ve vlastnosti Maximalizační tlačítko vybereme NE.
- Chceme, aby se nám zobrazoval název formuláře "Bez známky" = ve vlastnosti Titulek vložíme "Bez známky".
- Na závěr ještě vyměníme textové pole pro znamku za kombinované pole s hodnotami NULL, 1, 2, 3, 4.
![](bez_znamky_3.jpg)
- Formulář uložíme, zavřeme a otevřeme. Nyní už vypadá tak, jak jsme si představovali.
- Nyni do formuláře Hlavni přidáme odkaz (tlačítko) na tento formulář Bez_známky.
- Zobrazíme si návrh formuláře Hlavní a pod tlačítko Předměty přidáme další tlačítko Záznamy bez známky, který nám má otevřít formulář Bez_znamky.
![](hlavni_3.jpg)
- V průvodci se ale uklepneme a vybereme jako formulář, který se má otevřít SPZ.
- Nyní se u tohoto tlačítka podíváme na vlastnost Při klepnutí. Toto je vlastnost, která reaguje na událost, v tomto případě na událost kliknutí. Po kliknutí na tento objekt má spustit proceduru události, která byla vygenerována průvodcem při vytváření tohoto objektu.
- Otevřeme si zdrojový program této procedury. Kód je psán ve Visual Basicu, což je programovací jazyk Microsoftu použitelný ve více programech této firmy. Kód DocName = "SPZ" přepíšeme na DocName = "Bez_znamky".
- Uložíme a opustíme. Když nyní zobrazíme formulář Hlavni, poznáme, že přes tlačítko Záznamy bez známky se opravdu dostaneme na požadovaný formulář.
Pokud najdete nějaké nesrovnalosti, zašlete je, prosím, na e-mailovou adresu kotouc@civ.zcu.cz.