Psst. EU dotace 85 % pro OSVČ a firmy lze nyní čerpat i na e-learning. Více informací
Aktuálně: Postihly zákazy tvou profesi? Poptávka po ajťácích prudce roste, využij halloweenské akce 80% výuky zdarma!
Halloween BF

Lekce 1 - Rozdělení databáze MS Access

Vítejte u první lekce tutoriálu věnovanému pokročilé práci s programem MS Access. V rámci poslední lekce kurzu základů jsme se seznámili s omezením velikosti datových výstupů, zvýrazněním odchylek od standardu a naučili jsme se ovládat parametry tiskového výstupu. V dnešní lekci si oddělíme datové tabulky od ostatních objektů databáze, importujeme objekty MS Access do naší databáze a zabezpečíme programový kód objektů.

Úvod

V úvodní lekci tohoto kurzu jsem prohlásil, že databáze je jeden soubor, který obsahuje data ve formě tabulek a všechny ostatní objekty databáze. To je výhodné při práci s databází lokálně, na jednom počítači. Ve firmě, ale dnes i v rodině, je běžné, že k datům potřebuje mít přístup více lidí a proto je databáze umístěna na serveru.

Po síti se při práci přenášejí nejen data, ale i ostatní objekty databáze a dochází nejen ke zpomalování komunikace, ale i ke konfliktům v přístupu k objektům. Možnost zlepšení je databázi rozdělit. Další dobrý důvod k oddělení datových tabulek a dat od ostatních objektů databáze může být v prostém zálohování stále se měnících dat. V odděleném uspořádání pak mohou mít uživatelé na svém lokálním počítači (ti, kteří přistupují k datům na serveru), každý jinou databázi objektů, tedy dotazů, formulářů a sestav, podle funkce ve firmě.

Nyní se naučíme databázi rozdělit na datové tabulky a ostatní objekty do dvou souborů a ukážeme si některé detaily takového rozdělení. Rovněž se seznámíme s větší ochranou námi vytvořených objektů v databázi.

Vysvětlení pojmů:

  • front-end databáze - databáze, která obsahuje objekty databáze pro práci nad daty, ale neobsahuje datové tabulky a data v nich obsažená.
  • back-end databáze - databáze datových tabulek a dat, ke kterým front-end databáze přistupuje jako k propojeným objektům.
  • kompilovaný binární soubor - databáze, která je převedena do binární formy a nelze v ní provádět změnu programu, ani měnit objekty s výjimkou datových tabulek. Typicky to bývá front-end databáze. Přípony souborů jsou *.accde, v případě starších verzí databáze *.mde.

Upozorňuji: obě části rozdělené databáze jsou soubory s příponou *.accdb, jsou to tedy plnohodnotné databáze. V principu nic nebrání tomu, aby rozdělené části obsahovaly i objekty z té druhé části rozdělení, tedy back-end databáze, např. dotazy nebo programové moduly, stejně jako front-end databáze i další tabulky.

Jiné zvláštnosti propojených tabulek

  • U propojené tabulky nelze měnit strukturu, ani vlastnosti jednotlivých polí v ní uložených
  • Při každém otevření programu MS Access a v ní front-end databáze program načte strukturu propojených tabulek, takže pokud byla struktura tabulky nebo vlastnosti polí v back-end databázi změněny, jsou ve front-end databázi načteny a používány v nové struktuře.
  • Data v propojené tabulce může měnit jiný uživatel, takže od ukončení programu po jeho otevření se mohou data změnit. To už je ale problematika programování síťových nastavení.

Rozdělení databáze

Prvním krokem, dříve než se pustíme do praktické ukázky, je vytvoření kopie souboru databáze, v našem případě souboru db1.accdb. Dnešní lekce je ukázková, v dalších lekcích budeme pokračovat v práci na původní, nerozdělené databázi.

Z naší otevřené databáze v menu DATABÁZOVÉ NÁSTROJE ve skupině Přesunout data klepneme na ikonu Databáze aplikace Access. Otevře se průvodce Rozdělení databáze, který na prvním formuláři zobrazuje poučení k následujícím krokům, klepneme na Rozdělit databázi.

Program otevře prohledávání složek, abychom vyhledali umístění a zadali název databáze back-end, tedy její datové části. Program nabídne název db1_be, já jej ponechal. Pokud máme vyhledáno a zadán nový název, klepneme na Rozdělit. Operace proběhne automaticky a na konci se zobrazí sdělení Databáze byla úspěšně rozdělena.

Data máme převedena do oddělené databáze, v databázi front-end je vidíme propojena. Pokud chceme jejich umístění zkontrolovat, provedeme to následujícím postupem:

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

V menu EXTERNÍ DATA ve skupině Importovat a propojit klepneme na ikonu Správce propojených tabulek, otevře se stejnojmenný dialog.

Je zobrazen seznam všech propojených tabulek naší front-end databáze a jejich nové umístění včetně názvu nové databáze. Upozorňuji na přepínač Vždycky zobrazit dotaz na zadání umístění, který umožňuje pro označené tabulky vyhledat cestu k back-end databázi s datovými tabulkami. Tak si v případě změny jejich umístění vyhledáte nové umístění a program provede propojení tabulek v novém umístění.

Propojené tabulky jsou v seznamu označeny malou šipkou, viz obrázek níže:

Zde upozorňuji na nemožnost změny v propojených tabulkách. Příklad: Tabulku tb0Params jsem otevřel v návrhovém zobrazení a přidal pole NovePole, ale při uložení změn program hlásí Aplikace Microsoft Access nemůže uložit změny vlastností propojených tabulek. Změny se neuloží.

V takto nastavených databázích jsme ztratili jednu velkou výhodu - vlastní parametrickou tabulku, nastavenou podle svých potřeb. Program nám nedal možnost vybrat jenom některé tabulky, provedl rozdělení bez dotazu a beze zbytku.

Import objektů z databáze MS Access

Program dává možnost databáze rozdělit, na druhé straně lze také tabulky, nebo jiné objekty, do databáze načíst, importovat. V této části si ukážeme import propojené tabulky tb0Params zpět do front-end databáze, lze tedy mít část tabulek ve front-end databázi a druhou část tabulek v back-end databázi.

V menu EXTERNÍ DATA ve skupině Importovat a propojit klepneme na ikonu Access, otevře se dialog Načíst externí data – Databáze aplikace Access. V položce Název souboru najdeme naši back-end databázi db1_be. Přepínač Importovat tabulky… ponecháme zapnutý a klepneme na Ok.

V dalším kroku se otevře dialog Import objektů, my klepneme na záložku Tabulky a vybereme položku tb0Params a klepneme na Ok.

Poslední dialog nám umožňuje uložit kroky importu a následně jej opakovat. My tuto možnost odmítneme a průvodce ukončíme klepnutím na Zavřít.

Výsledek nás nepotěší, máme dvě tabulky tb0Params ve front-end databázi, jednu uloženou a druhou propojenou. Pomoc je snadná, v levém podokně klepneme na propojenou tabulku tb0Params s malou šipkou na ikoně, neotevřeme ji a klepneme na klávesu Delete. Program zobrazí dotaz Chcete odebrat propojení na objekt tabulka tb0Params? Klepnutím na Ano je problém vyřešen.

Ne zcela, ještě musíme importovanou tabulku přejmenovat na tb0Params z programem změněného názvu tb0Params1. Toho dosáhneme u Microsoftu známým postupem - klávesou F2 na názvu tabulky.

Toto je spíš takový školní příklad, reálně bychom nejdříve zrušili propojení na tb0Params a teprve následně tuto tabulku importovali.

Je třeba upozornit na jedno úskalí. K tabulce tb0Params v back-end databázi bylo vymazáno propojení, ale samotná tabulka tam byla ponechána. Je třeba zvážit, zda parametrickou tabulku budeme distribuovat s každou front-end databází a v souboru databáze back-end ji vymažeme zcela, nebo ji tam ponecháme a budeme pamatovat, že někde je propojena a jinde je importována.

Import dalších objektů MS Access

Podobně, jako jsme importovali do naší front-end databáze tabulku tb0Params, lze importovat také další objekty databází MS Access. Má to však svoje pravidla a omezení.

Zde jenom stručně, databáze jsou stejného typu, mají stejné formální zázemí a export se většinou zdaří bez problémů:

  • k importu musíte mít příslušná oprávnění v síti, cílová databáze nesmí být určena pouze pro čtení
  • z binárně kódovaných databází *.accde nebo *.mde lze importovat pouze tabulky
  • propojit lze pouze tabulky, ostatní objekty je třeba importovat
  • tabulky lze importovat jako definici, tedy bez dat, nebo jako celou tabulku včetně dat
  • pokud importujeme dotazy, je třeba s nimi importovat také podkladové tabulky
  • dotaz lze importovat také jako tabulku, to znamená importujeme přímo výsledek dotazu

Vytvoření binárně kódované databáze

Pokud chceme ve front-end databázi zabránit uživatelům (ale i sobě!) ve změně objektů (jedná se o ostatní objekty mimo tabulky), uložíme naši databázi jako binárně kódovanou.

Jak na to?

Z menu SOUBOR se zobrazí formulář se seznamem funkcí v levém sloupci. My klepneme na Uložit jako a v následujícím formuláři zvolíme funkci Uložit databázi jako, tím se otevře pole ikon a my ve skupině Upřesnit klepneme na ikonu Vytvořit databázi ACCDE. Dále klepneme na dolní ikonu Uložit jako, která otevře klasického průvodce nastavením umístění a názvu a celou akci provede.

To je v dnešní lekci vše.

Úkol: Vraťte si původní nerozdělenou databázi do původního umístění, jejíž kopii jste si pořídili v úvodu této lekce, příště budeme pokračovat na ní.

V lekci příští, Importy dat z prostředí MS Excel do MS Access, se naučíme importovat data z prostředí MS Excel.


 

Všechny články v sekci
Microsoft Access pro pokročilé
Článek pro vás napsal Luboš Marvan
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
Snahou autora je žít podle svého
Aktivity (11)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!