Autor: Michal Poho°elsk²
Uve°ejn∞no: New P+C 03/93, str. 5-7
Databßze pro Windows ? MS Access 1.0


Poslednφ obdobφ tv∙rΦφ aktivity v∞novali v²vojovφ pracovnφci firmy Microsoft p°edevÜφm systΘmu Windows a podp∙rn²m nßstroj∙m v jeho prost°edφ. Bylo a₧ s podivem, jak dlouho se vyh²bali nenasytnΘmu trhu databßzov²ch aplikacφ. Prvnφm strategick²m tahem na poli databßzφ bylo zakoupenφ firmy Fox Software spolu s v²konnou verzφ FoxPro 2.0. OhlßÜenou verzi FoxPro 2.5, tentokrßt i pro prost°edφ Windows, Φekali vÜichni fandovΘ FoxPro velmi netrp∞liv∞. O to v∞tÜφ bylo p°ekvapenφ, kdy₧ druh²m strategick²m tahem Microsoftu bylo uvedenφ vlastnφ databßze Access, kterß byla na trh uvedena d°φve ne₧ verze FoxPro 2.5. Databßze Access se do 31.1. 1993 prodßvala za neuv∞°iteln²ch 99 dolar∙, u nßs za 3200 korun.
Microsoft Access 1.0 je databßzov² systΘm urΦen² specißln∞ pro Windows. To se hned od poΦßtku projevφ v po₧adavcφch na hardware: procesor nejmΘn∞ 386SX, 4 MB pam∞ti a alespo≥ 14 MB volnΘho prostoru na pevnΘm disku. V systΘmu m∙₧e b²t otev°ena jedinß databßze - aplikace (oznaΦenφ aplikace je vysti₧n∞jÜφ). Jedinß Access databßze zahrnuje vÜechny tabulky, jen₧ v naÜem b∞₧nΘm pojetφ p°edstavujφ databßze. Do jednoho DOS souboru s p°φponou MDB jsou vedle ·daj∙ takΘ zahrnuty vÜechny ostatnφ objekty spojenΘ s tabulkami. Proto₧e objekty neexistujφ jako samostatnΘ DOS soubory, m∙₧eme je oznaΦovat nßzvy dlouh²mi a₧ 64 znak∙ vΦetn∞ mezer.
Jak jsem ji₧ uvedl, zßkladnφm objektem, se kter²m Access pracuje, je Table - tabulka. Jejφ velikost je limitovßna na 128 MB a obsahuje jednotlivΘ rozd∞lenΘ na polo₧ky urΦenΘho typu. TextovΘ polo₧ky jsou ve dvou typech - krßtk² text do 127 znak∙ nebo MEMO. Polo₧ky pro DATUM mohou obsahovat datum nebo Φas. SvΘrßznΘ jsou polo₧ky logickΘ. Mφsto b∞₧nΘho True/False pou₧φvajφ YES/NO nebo hodnotu -1 jako YES. Nejv∞tÜφ bohatstvφ je u numerick²ch polo₧ek. Ty mohou b²t podle p°esnosti jako 1bytovΘ, celoΦφselnΘ (2 byty), dlouhΘ celoΦφselnΘ (4 byty) nebo krßtkΘ a dlouhΘ s pohyblivou Φßrkou.
ZvlßÜtnφ typy numerick²ch polo₧ek jsou Currency s p°esnostφ 15+4 desetinnß mφsta a Counter - jednoznaΦnΘ Φφslo p°id∞lovanΘ nov²m zßznam∙m v databßzi. Velmi obecn²m typem polo₧ky je objekt OLE (re₧im OLE je novinkou Windows 3.1). M∙₧e to b²t graf, obrßzek, nebo t°eba tabulka Excelu. P°φjemn²m p°φdavkem je program na kreslenφ graf∙. Funguje pomocφ OLE a je mo₧nΘ jej pou₧φt z ka₧dΘho programu, kter² OLE podporuje, t°eba u₧ z jednoduchΘho WRITE. Mo₧nosti tohoto programu jsou tΘm∞° stejnΘ, jako jsou grafy programu EXCEL 3.0.
Ke ka₧dΘ polo₧ce tabulky lze urΦit °adu parametr∙. Krom∞ komentß°e a formßtu polo₧ky to je jejφ nßzev pou₧φvan² v nadpisech, popis polo₧ky pro u₧ivatele, implicitnφ hodnota, v²raz urΦujφcφ p°φpustnost hodnoty a chybovß zprßva (pokud vstupnφ hodnota nevyhovuje).
Ka₧dß tabulka musφ mφt hlavnφ indexov² klφΦ, co₧ je polo₧ka, podle kterΘ je celß tabulka set°φd∞na (symbol klφΦe v tabulce). Hlavnφ klφΦ m∙₧e tvo°it n∞kolik polo₧ek, ale nem∙₧e b²t urΦen obecn²m v²razem a nejsou pro n∞j p°φpustnΘ duplicity. Krom∞ toho m∙₧e b²t ka₧dß polo₧ka oznaΦenß jako indexovanß s mo₧nostφ nebo zßkazem duplicit.
Kdy₧ jsem s databßzφ Access experimentoval, zjistil jsem, ₧e takΘ lze urΦit barvu, jakou se urΦitß polo₧ka bude na obrazovce vypisovat. Nov² soubor MDB, kter² obsahuje jedinou krßtkou tabulku bez ostatnφch objekt∙, mß velikost p°ibli₧n∞ 65 KB. Okno GRAPHICAL QUERY BY EXAMPLE (GQBE) zobrazφ v zßhlavφ struktury vybran²ch tabulek a definiΦnφ p°ehled podmφnek a specifikacφ. U₧ivatel provede obsluhu technikou vyber a p°esu≥ (drag and drop). Nap°φklad kritΘrium pro spojovßnφ tabulek je urΦeno v²b∞rem polo₧ky jednΘ tabulky a jejφm p°esunutφm na odpovφdajφcφ polo₧ku spojovanΘ tabulky. V²sledkem je Φßra, kterß spojuje urΦenΘ polo₧ky v tabulkßch. UrΦenΘ spojenφ m∙₧eme p°edefinovat. Do definiΦnφ tabulky m∙₧eme urΦit komplex WHERE podmφnek, vypoΦφtßvanΘ polo₧ky, specifikace skupin GROUP BY a dopl≥kovΘ kritΘrium pro jejich v²b∞r HAVING, po°adφ pro t°φd∞nφ, v²poΦet k°φ₧ovΘ tabulky atd. Proti pouhΘmu zobrazenφ dovoluje v²b∞r Accessu takΘ sklßdßnφ, aktualizaci a ruÜenφ zßznam∙.
SQL okno je p°evedeno na ekvivaletnφ SQL p°φkaz. Kdy₧ modifikujeme SQL p°φkaz SQL p°φkaz, dochßzφ i k odpovφdajφcφ ·prav∞ SQL okna. P°i zm∞nßch Access okam₧it∞ rozpoznß chybnß klφΦovß slova. K osv∞₧enφ jmen tabulek a polo₧ek musφme vÜak p°φkaz vyvolat. Vybran² vzorek dat je ulo₧en do dynamickΘ tabulky "dynaset", kterß je ve vybran²ch p°φpadech opravitelnß. Tak m∙₧eme snadno opravovat ·daje u v²b∞ru z jednΘ tabulky nebo p°i relaci jedna ku jednΘ. V t∞chto p°φpadech je p°φmΘ spojenφ mezi vybranou a matriΦnφ v∞tou. Lze konstatovat, ₧e m∙₧eme opravovat hodnoty, kterΘ vychßzejφ z polo₧ek a ne z transformacφ.
Access mß mo₧nost spoluprßce s databßzemi jin²ch typ∙. Zßkladnφ mo₧nostφ je IMPORT - cizφ databßze se p°ekonvertuje do databßze Accessu. Takto umφ zpracovßvat soubory ve formßtech PARADOX 3.x, dBase III+ a IV, FoxPro 2.0, Excel, Lotus, Btrieve a SQL Server. TakΘ si poradφ s textov²mi soubory v obou obvykl²ch podobßch v k≤du DOS i Windows. VÜechny tyto typy umφ takΘ p°i EXPORTu a do urΦitΘ mφry si poradφ i s indexov²mi soubory. Druhou zajφmav∞jÜφ mo₧nostφ je ATTACH - cizφ soubor nenφ p°eveden do Accessu, ale z∙stane vedle a je pouze zp°φstupn∞n. Tady je mo₧nostφ mΘn∞, proto₧e umφ pouze dBase, Paradox, Btrieve a SQL Server. V p°ipojen²ch tabulkßch nenφ mo₧nΘ provßd∞t zm∞ny struktur. VÜe samoz°ejm∞ ovlßdß i pro sv∙j vlastnφ formßt. Je nep°φjemnΘ, ₧e v²hody p°ipojovßnφ nelze obecn∞ pou₧φt pro soubory FoxPro (pouze pro ty, kterΘ neobsahujφ Memo polo₧ky). Firma vÜak slibuje doplnit driver FoxPro v krßtkΘ dob∞ po uvedenφ Accessu na trh.

Formßty (Forms)

Ve formßtech m∙₧eme vyu₧φt OLE objekty a zajistit event-driven akce. Definice formßtu se vφce p°ibli₧uje definici sestavy, ne₧ je tomu u FoxPro. I zde se setkßme se t°emi definiΦnφmi pßsmy, vΦetn∞ zßhlavφ a ·patφ, kterß slou₧φ k zobrazenφ titulku a souΦt∙. Odd∞lenφ header-footer se projevφ pouze u hard copy, ale ne na obrazovce. Vytisknutφ formßtu p°edstavuje alternativu k report sestav∞. Snadno tak zφskßme evidenΦnφ karty objekt∙ v tabulce.
M∙₧eme navrhovat komplexy obrazovek a vytvß°et formßty i pomocφ v²b∞r∙. Na obrazovce se vedle hlavnφho formßtu mohou objevovat i subformßty. P°i spojovßnφ tabulek Access sßm urΦuje spojovacφ polo₧ky i kdy₧ jsou v pod°φzen²ch tabulkßch urΦeny primßrnφ klφΦe. V opaΦnΘm p°φpad∞ musφ u₧ivatel charakter spojenφ urΦit manußln∞.
Pro snadn∞jÜφ definici i formßtu je k dispozici "Form WIZARD". Pro formßt nejprve vybereme tabulku. Nebo v²b∞r a potom z nabφdky zßkladnφ grafickou formu: tabulku, graf, jednoduchΘ sloupce a hlavnφ subformßt. Zßkladnφ nabφdku vstupnφho formßtu Wizard p°itom m∙₧eme upravit. Rozmφst∞nφm prvk∙ se p°φliÜ neliÜφ od generßtoru FoxPro - Screen Builder. Prvky formßtu jsou v terminologii Accessu naz²vßny ovladaΦe (controls). Zahrnujφ vedle vstupnφch polo₧ek (input fields) jeÜt∞ p°epφnaΦe (toggle buttons), check boxes, nßv∞stφ (labels), v²konnß tlaΦφtka (command buttons), seznamy (combo list). Seznamy mohou vyu₧φvat i vφce sloupc∙. M∙₧eme definovat i seznamy s mo₧nostφ p°idat dalÜφ hodnotu. Ze specißlnφho nabφdkovΘho okna vybφrßme vÜechny druhy ovladaΦ∙ pomocφ ikon. Grafick² Wizard rovn∞₧ umo₧≥uje definovat celkem 9 r∙zn²ch typ∙ graf∙.

Sestavy (Reports)

Pro usnadn∞nφ nßvrhu sestavy je op∞t k dispozici Report Wizard. S jeho pou₧itφm m∙₧eme p°ipravit jednoduchou sloupcovou sestavu, souΦtovanou sestavu nebo etikety. Jestli₧e do report ovladaΦe CONROL zapφÜeme v²raz, potom snadno zφskßme v sestav∞ vypoΦφtßvanou polo₧ku. Kdy₧ je to zapot°ebφ, Report Wizard automaticky data uspo°ßdß a rozd∞lφ do skupin. T°φd∞nφ m∙₧eme samoz°ejm∞ zajistit i jako souΦßst v²b∞ru. Access sßm rozpoznß pot°ebu dvoupr∙chodovΘho reportu. P°i souΦtovßnφ m∙₧eme, stejn∞ jako u FoxPro, vybφrat mezi souΦtem, poΦtem, pr∙m∞rem atd. I v sestav∞ m∙₧eme uplatnit grafickΘ objekty.

Programovßnφ

Programovat v Accessu m∙₧eme dv∞ma zp∙soby. JednoduÜÜφ je programovßnφ pomocφ maker, pro velkΘ aplikace je pot°eba pou₧φt i slo₧it∞jÜφ programy v jazyku Access Basic. Makro je posloupnost operacφ, kterß zhruba odpovφdß mo₧nostem menu - otevφrßnφ a zavφrßnφ dialog∙, nastavenφ parametr∙, spouÜt∞nφ jin²ch program∙ atd. Makro se sestavuje ve specißlnφ tabulce pomocφ v²b∞ru z p°ibli₧n∞ 20 mo₧n²ch p°φkaz∙ a jejich parametr∙. Do jednoho makro-souboru lze umφstit n∞kolik pojmenovan²ch maker a ka₧d² °ßdek makra m∙₧e b²t podmφn∞n. Slo₧it∞jÜφ v∞tvenφ v makru vÜak nenφ mo₧nΘ.
Access Basic je objektov∞ orientovanß verze Basicu, specializovanß pro prßci s databßzφ. Jeden modul, kter² je ulo₧en spolu se vÜφm dalÜφm v databßzi, obsahuje Φßst s deklaracemi a n∞kolik podprogram∙, funkcφ nebo procedur. Tyto podprogramy se dajφ vyvolat pomocφ maker nebo prvk∙ dialog∙, p°φpadn∞ mohou b²t pou₧ity vÜude, kde je mo₧nΘ napsat v²raz. Prom∞nnΘ m∙₧eme deklarovat jako lokßlnφ, globßlnφ nebo trvale existujφcφ lokßlnφ - STATIC. Je mo₧nΘ zcela zakßzat automatickou deklaraci prom∞nn²ch. Krom∞ b∞₧n²ch typ∙, kterΘ odpovφdajφ typ∙m polo₧ek databßze, je mo₧nΘ pou₧φt typ VARIANT, jen₧ se p°izp∙sobφ p°i°azenΘ hodnot∞ (stejn∞ jako prom∞nnß XBASE).
Jako se deklarujφ i vÜechny objekty a je mo₧nΘ pou₧φvat r∙znΘ typy polφ nebo pomocφ popis∙ Type si vytvo°it obecnou datovou strukturu. Pole je mo₧nΘ deklarovat bez urΦenφ rozm∞r∙ a pozd∞ji jeho velikost m∞nit. V²hodou takΘ je, ₧e jednotlivΘ polo₧ky tabulek nejsou dostupnΘ bezprost°edn∞, ale jen jako souΦßst p°φsluÜnΘho objektu.
Pro nßroΦnΘ ·pravy je k dispozici transakΦnφ zpracovßnφ. Slo₧it∞jÜφ sekvence oprav se zahßjφ p°φkazem BEGINTRANS a a₧ do jeho skonΦenφ si nemusφte d∞lat hlavu, jak to p°φpadn∞ celΘ vrßtit. Transakci skonΦφte p°φkazem COMMIT, kdy₧ je v po°ßdku, nebo ROLLBACK v p°φpad∞ poruchy. Odpadne tφm °ada slo₧it²ch kontrol.

ZabezpeΦenφ soubor∙ a nßpov∞da

V menu se pod volbou SECURITY skr²vß prost°edek pro ochranu databßze p°ed ne₧ßdoucφmi u₧ivateli. Je mo₧nΘ rozd∞lit u₧ivatele do jednotliv²ch skupin (standardn∞ t°φ - Admin, Users a Guests) s r∙zn²mi oprßvn∞nφmi. Ka₧d² u₧ivatel mß svΘ jmΘno a heslo, kter²m se musφ p°ihlßsit, a pokud ₧ßdnΘ neznß, je za°azen do skupiny Guests, kde nesmφ tΘm∞° nic. Soubor u₧ivatel∙ je spoleΦn² pro celou instalaci Accessu na poΦφtaΦi a oprßvn∞nφ u₧ivatel∙ m∙₧e b²t v ka₧dΘm souboru jinΘ.
Vynikajφcφm zp∙sobem je vy°eÜena nßpov∞da, kterß zabφrß na disku p°es 3 MB a obsahuje podrobn² popis prakticky vÜech komponent databßze ACCESS. P°i stisku klßvesy F1 se dozvφte informaci, kterß nejlΘpe odpovφdß prßv∞ provßd∞nΘ Φinnosti. Krom∞ jednotliv²ch akcφ obsahuje i kompletnφ popis jazyka s °adou p°φkaz∙ a dopl≥kov²ch informacφ. Nßpov∞da navφc obsahuje vynikajφcφ a revoluΦnφ prost°edek CUE CARD, kter² lze nejlΘpe charakterizovat jako pr∙vodce. Cue Card vßm p°esn∞ poradφ, jak se co nejrychleji dostat k cφli vaÜeho sna₧enφ, a jß sßm jsem tohoto pr∙vodce p°i poznßvßnφ Accessu vyu₧φval velmi intenzφvn∞.

Zßv∞r

I kdy₧ jsem v pom∞rn∞ krßtkΘ dob∞ nemohl program po°ßdn∞ vyzkouÜet, a jako profesionßlnφ programßtor ve FoxPro mohu b²t takΘ podezφrßn ze zaujatosti, musφm konstatovat, ₧e Access je obecn∞ pou₧itelnß databßze, schopnß pracovat s vφce u₧ivateli s p°esn∞ urΦen²mi oprßvn∞nφmi v sφti. Program je ve svΘ prvnφ verzi neuv∞°iteln∞ kvalitn∞ zpracovßn a pat°φ nepochybn∞ mezi nejlepÜφ programy Microsoftu.




Skok na dalÜφ strßnku Skok na hlavnφ menu Skok na dalÜφ strßnku


Copyright (c) 1993-2000 Michal Poho°elsk²