1. diel - Rozdelenie databázy MS Access
Vitajte u prvej lekcie tutoriálu venovanému pokročilé prácu s programom MS Access. V rámci poslednej lekcie kurzu základov sme sa zoznámili s obmedzením veľkosti dátových výstupov, zvýraznením odchýlok od štandardu a naučili sme sa ovládať parametre tlačového výstupu. V dnešnej lekcii si oddelíme dátové tabuľky od ostatných objektov databázy, importujeme objekty MS Access do našej databázy a zabezpečíme programový kód objektov.
Úvod
V úvodnej lekcii tohto kurzu som vyhlásil, že databáza je jeden súbor, ktorý obsahuje dáta vo forme tabuliek a všetky ostatné objekty databázy. To je výhodné pri práci s databázou lokálne, na jednom počítači. Vo firme, ale dnes aj v rodine, je bežné, že k dátam potrebuje mať prístup viac ľudí a preto je databáza umiestnená na serveri.
Po sieti sa pri práci prenášajú nielen dáta, ale aj ostatné objekty databázy a dochádza nielen k spomaľovaniu komunikácie, ale aj ku konfliktom v prístupe k objektom. Možnosť zlepšenie je databázu rozdeliť. Ďalší dobrý dôvod k oddeleniu dátových tabuliek a dát od ostatných objektov databázy môže byť v prostom zálohovanie stále sa meniacich dát. V oddelenom usporiadaní potom môžu mať používatelia na svojom lokálnom počítači (tí, ktorí pristupujú k dátam na serveri), každý inú databázu objektov, teda otázok, formulárov a zostáv, podľa funkcie vo firme.
Teraz sa naučíme databázu rozdeliť na dátové tabuľky a ostatné objekty do dvoch súborov a ukážeme si niektoré detaily takéhoto rozdelenia. Rovnako sa zoznámime s väčšou ochranou nami vytvorených objektov v databáze.
Vysvetlenie pojmov:
- front-end databázy - databáza, ktorá obsahuje objekty databázy pre prácu nad dátami, ale neobsahuje dátové tabuľky a dáta v nich obsiahnuté.
- back-end databázy - databáza dátových tabuliek a dát, ku ktorým front-end databázy pristupuje ako k prepojeným objektom.
- kompilovaný binárny súbor - databázy, ktorá je
prevedená do binárne formy a nemožno v nej uskutočňovať zmenu programu,
ani meniť objekty s výnimkou dátových tabuliek. Typicky to býva front-end
databázy. Prípony súborov sú
*.accde
, v prípade starších verzií databázy*.mde
.
Upozorňujem: obe časti rozdelenej
databázy sú súbory s príponou *.accdb
, sú to teda
plnohodnotné databázy. V princípe nič nebráni tomu, aby
rozdelené časti obsahovali aj objekty z tej druhej časti rozdelenia, teda
back-end databázy, napr. Otázky alebo programové
moduly, rovnako ako front-end databázy i ďalšie tabuľky.
Iné zvláštnosti prepojených tabuliek
- U prepojené tabuľky nemožno meniť štruktúru, ani vlastnosti jednotlivých polí v nej uložených
- Pri každom otvorení programu MS Access a v nej front-end databázy program načíta štruktúru prepojených tabuliek, takže ak bola štruktúra tabuľky alebo vlastnosti polí v back-end databázu zmenené, sú vo front-end databázu načítané a používané v novej štruktúre.
- Dáta v prepojené tabuľke môže meniť iný užívateľ, takže od ukončenia programu po jeho otvorení sa môžu dáta zmeniť. To už je ale problematika programovanie sieťových nastavení.
Rozdelenie databázy
Prvým krokom, skôr než sa pustíme do praktickej ukážky, je vytvorenie
kópie súboru databázy, v našom prípade súboru
db1.accdb
. Dnešná lekcia je ukážková, v ďalších lekciách
budeme pokračovať v práci na pôvodnej, nerozdelené databázu.
Z našej otvorenej databázy v menu databázovom NÁSTROJE v skupine Presunúť dáta klikneme na ikonu Databáza programu Access. Otvorí sa sprievodca Rozdelenie databázy, ktorý na prvom formulári zobrazuje poučenie k nasledujúcim krokom, klikneme na Rozdeliť databázu.
Program otvorí prehľadávanie zložiek, aby sme vyhľadali umiestnenia a
zadali názov databázy back-end, teda jej dátovej časti. Program ponúkne
názov db1_be
, ja ho ponechal. Ak máme vyhľadané a zadaný nový
názov, klikneme na Rozdeliť. Operácie prebehne automaticky a
na konci sa zobrazí oznámenie Databáza bola úspešne
rozdelená.
Dáta máme prevedená do oddelenej databázy, v databáze front-end je vidíme prepojená. Ak chceme ich umiestnenie skontrolovať, vykonáme to nasledujúcim postupom:
V menu EXTERNÉ DATA v skupine Importovať a prepojiť klikneme na ikonu Správca prepojených tabuliek, otvorí sa rovnomenný dialóg.
Je zobrazený zoznam všetkých prepojených tabuliek našej front-end databázy a ich nové umiestnenie vrátane názvu novej databázy. Upozorňujem na prepínač Vždy zobraziť dotaz na zadanie umiestnenia, ktorý umožňuje pre označenej tabuľky vyhľadať cestu k back-end databázu s dátovými tabuľkami. Tak si v prípade zmeny ich umiestnenia vyhľadáte nové umiestnenie a program vykoná prepojenie tabuliek v novom umiestnení.
Prepojené tabuľky sú v zozname označené malou šípkou, viď obrázok nižšie:
Tu upozorňujem na nemožnosť zmeny v prepojených
tabuľkách. Príklad: Tabuľku tb0Params
som otvoril v návrhovom
zobrazení a pridal polia NovePole, ale pri uložení zmien
program hlási Microsoft Access nemôže uložiť zmeny vlastností
prepojených tabuliek. Zmeny sa neuložia.
V takto nastavených databázach sme stratili jednu veľkú výhodu - vlastné parametrickú tabuľku, nastavenú podľa svojich potrieb. Program nám nedal možnosť vybrať iba niektoré tabuľky, vykonal rozdelenie bez dotazu a bezo zvyšku.
Import objektov z databázy MS Access
Program dáva možnosť databázy rozdeliť, na druhej strane možno tiež
tabuľky, alebo iné objekty, do databázy načítať,
importovať. V tejto časti si ukážeme import prepojené
tabuľky tb0Params
späť do front-end databázy, možno teda mať
časť tabuliek vo front-end databázu a druhú časť tabuliek v back-end
databázu.
V menu EXTERNÉ DATA v skupine Importovať a
prepojiť klikneme na ikonu Access, otvorí sa dialóg
Načítať externé údaje - Databáza programu Access. V
položke Názov súboru nájdeme našu back-end databázu
db1_be
. Prepínač Importovať tabuľky ...
ponecháme zapnutý a klikneme na Ok.
V ďalšom kroku sa otvorí dialóg Import objektov, my
klikneme na záložku Tabuľky a vyberieme položku
tb0Params
a klikneme na Ok.
Posledné dialóg nám umožňuje uložiť kroky importu a následne ho opakovať. My túto možnosť odmietneme a sprievodca ukončíme kliknutím na Zavrieť.
Výsledok nás nepoteší, máme dve tabuľky tb0Params
vo
front-end databázu, jednu uloženú a druhú prepojenú. Pomoc je ľahká, v
ľavom paneli klikneme na prepojenú tabuľku
tb0Params
s malou šípkou na ikone, neotvoríme ju a klikneme na
kláves Delete. Program zobrazí otázka Chcete odobrať
prepojenie na objekt tabuľka tb0Params
? Kliknutím na
Áno je problém vyriešený.
Nie celkom, ešte musíme importovanú tabuľku premenovať na
tb0Params
z programom zmeneného názvu tb0Params1
. To
dosiahneme v Microsofte známym postupom - klávesou F2 na názve
tabuľky.
Toto je skôr taký školský príklad, reálne by sme najskôr
zrušili prepojenie na tb0Params
a až následne
túto tabuľku importovali.
Je potrebné upozorniť na jedno úskalia. K tabuľke
tb0Params
v back-end databázu bolo vymazané prepojenie, ale
samotná tabuľka tam bola ponechaná. Je potrebné zvážiť,
či parametrickú tabuľku budeme distribuovať s každou front-end databáz a v
súbore databázy back-end ju vymastíme úplne, alebo ju tam ponecháme a
budeme pamätať, že niekde je prepojená a inde je importovaná.
Import ďalších objektov MS Access
Podobne, ako sme importovali do našej front-end databázy tabuľku
tb0Params
, možno importovať tiež ďalšie objekty databáz MS
Access. Má to však svoje pravidlá a obmedzenia.
Tu len stručne, databázy sú rovnakého typu, majú rovnaké formálne zázemie a export sa väčšinou podarí bez problémov:
- k importu musíte mať príslušné oprávnenia v sieti, cieľová databáza nesmie byť určená len pre čítanie
- z binárne kódovaných databáz
*.accde
alebo*.mde
možné importovať iba tabuľky - prepojiť možno iba tabuľky, ostatné objekty treba importovať
- tabuľky možno importovať ako definíciu, teda bez dát, alebo ako celú tabuľku vrátane dát
- ak importujeme otázky, treba s nimi importovať tiež podkladové tabuľky
- dotaz možno importovať aj ako tabuľku, to znamená importujeme priamo výsledok dotazu
Vytvorenie binárne kódované databázy
Ak chceme vo front-end databázu zabrániť používateľom (ale aj sebe!) V zmene objektov (ide o ostatné objekty mimo tabuľky), uložíme našu databázu ako binárne kódovanú.
Ako na to?
Z menu SÚBOR sa zobrazí formulár so zoznamom funkcií v ľavom stĺpci. My klikneme na Uložiť ako a v nasledujúcom formulári zvolíme funkciu Uložiť databázu ako, tým sa otvorí pole ikon a my v skupine Spresnenie klikneme na ikonu Vytvoriť databázu ACCDE. Ďalej klikneme na dolnej ikonu Uložiť ako, ktorá otvorí klasického sprievodcu nastavením umiestnenia a názvu a celú akciu vykoná.
To je v dnešnej lekcii všetko.
Úloha: Vráťte si pôvodné nerozdelenú databázu do pôvodného umiestnenia, ktorej kópiu ste si zaobstarali v úvode tejto lekcie, nabudúce budeme pokračovať na nej.
V lekcii budúci, Importy dát z prostredia MS Excel do MS Access , sa naučíme importovať dáta z prostredia MS Excel.