Úvod k programovaniu v Accesse

Vytváranie novej databázy zvyčajne začínate tak, že vytvoríte niekoľko databázových objektov, ako sú napríklad tabuľky, formuláre a zostavy. V určitom štádiu sa však môžete dostať do situácie, v ktorej je potrebné použiť určité programovanie na automatizáciu istých procesov a spojenie databázových objektov. Tento článok vám pomôže zorientovať sa v programovacích nástrojoch v Accesse.

Obsah tohto článku

Čo je programovanie?

Mám použiť makrá alebo kód VBA?

Vykonávanie bežných úloh programovania pomocou Sprievodcu príkazovým tlačidlom

Základné informácie o makrách

Základné informácie o kóde VBA

Konvertovanie makier na kód VBA

Čo je programovanie?

Programovanie v Accesse je proces pridávania funkcií do databázy pomocou accessových makier alebo kódu jazyka Visual Basic for Applications (VBA). Predpokladajme napríklad, že ste vytvorili formulár a zostavu, a do formulára chcete pridať príkazové tlačidlo, ktoré po kliknutí naň otvorí zostavu. V tomto prípade je programovanie procesom vytvorenia makra alebo procedúry VBA a následného nastavenia vlastnosti udalosti PriKliknutí tak, aby sa kliknutím na príkazové tlačidlo spustilo makro alebo procedúra. Pri jednoduchej operácii, ako je napríklad otvorenie zostavy, môžete použiť Sprievodcu príkazovým tlačidlom, ktorý vykoná všetky potrebné akcie, alebo môžete vypnúť Sprievodcu a naprogramovať operáciu sami.

Poznámka: Pojmom makro sa v mnohých programoch balíka Microsoft Office označuje kód VBA. Pre používateľov Accessu to môže byť zavádzajúce, pretože pojem makro v Accesse označuje pomenovanú kolekciu akcií makier, ktorú môžete zostaviť pomocou Zostavovača makier. Akcie makier v Accesse predstavujú iba podmnožinu príkazov, ktoré sú k dispozícii v jazyku VBA. Na rozdiel od programu Visual Basic Editor ponúka Zostavovač makier štruktúrovanejšie rozhranie a umožňuje vám pridávať programovanie do ovládacích prvkov a objektov aj bez znalosti kódu VBA. Majte na pamäti, že v článkoch Pomocníka pre Access sa accessové makrá označujú ako makrá. Kód VBA sa zasa označuje ako VBA, kód, funkcia alebo procedúra. Kód VBA sa nachádza v moduloch tried, ktoré sú súčasťou jednotlivých formulárov alebo zostáv a obvykle obsahujú kód iba pre dané objekty, a v moduloch, ktoré nie sú spojené s konkrétnymi objektmi a obvykle obsahujú globálny kód, ktorý je možné použiť v celej databáze.

Objekty, ako sú napríklad formuláre a zostavy, a ovládacie prvky, napríklad príkazové tlačidlá a textové polia, obsahujú rôzne vlastnosti udalostí, ku ktorým môžete pripojiť makrá alebo procedúry. Každá vlastnosť udalosti je spojená s konkrétnou udalosťou, ako je napríklad kliknutie tlačidlom myši, otvorenie formulára alebo úprava údajov v textovom poli. Udalosti môžu byť spustené aj faktormi mimo Accessu, ako sú napríklad systémové udalosti alebo makrá a procedúry pripojené k iným udalostiam. Ak pridáte makrá alebo procedúry do viacerých vlastností udalostí mnohých objektov, databáza sa môže stať komplexnou, vo väčšine prípadov však môžete dosiahnuť požadované výsledky aj pomocou minimálneho programovania.

Na začiatok stránky

Mám použiť makrá alebo kód VBA?

Rozhodnutie o tom, či použiť makrá, kód VBA alebo obe, závisí najmä od plánovaného spôsobu nasadenia a distribúcie databázy. Ak ide napríklad o databázu uloženú vo vašom počítači, ktorú používate len vy, a zároveň vám vyhovuje použiť kód VBA, na väčšinu úloh programovania sa môžete rozhodnúť použiť jazyk VBA. Ak však plánujete zdieľať databázu s inými používateľmi a umiestnite ju na súborový server, v záujme zabezpečenia je vhodné jazyk VBA nepoužívať.

Medzi používaním makier alebo kódu VBA by ste sa mali rozhodovať na základe dvoch kritérií: zabezpečenia a požadovaných funkcií. Zabezpečenie je problém, pretože jazyk VBA sa môže používať na vytvorenie kódu, ktorý ohrozuje zabezpečenie údajov alebo môže poškodiť súbory v počítači. Pri používaní databázy vytvorenej iným používateľom by ste mali kód VBA povoliť iba v prípade, že viete, že databáza pochádza z dôveryhodného zdroja. Ak vytvárate databázu, ktorú budú používať iní používatelia, mali by ste sa vyhnúť pridávaniu programovacích nástrojov, ktoré od používateľa vyžadujú, aby databáze udelil dôveryhodnosť. Všeobecné postupy, ktoré umožňujú vyhnúť sa potrebe posudzovania dôveryhodnosti používateľmi, nájdete ďalej v tejto časti.

Ak chcete zvýšiť zabezpečenie svojej databázy, mali by ste sa pokúsiť používať makrá vždy, keď je to možné, a používať programovanie VBA iba pri operáciách, ktoré nemožno uskutočniť pomocou akcií makier. Navyše je vhodné snažiť sa používať iba akcie makier, na ktorých spustenie sa nevyžaduje udelenie dôveryhodnosti databáze. Obmedzenie používania akcií makier týmto spôsobom poskytuje používateľom istotu, že databáza neobsahuje žiadne programovanie, ktoré by mohlo poškodiť údaje alebo iné súbory v ich počítačoch.

Poznámky k makrám

Počínajúc vydaním Access 2010 obsahuje Access mnoho nových akcií makier, ktoré vám umožňujú vytvárať výkonnejšie makrá ako v starších verziách Accessu. Teraz môžete napríklad pomocou akcií makier vytvoriť a používať globálne dočasné premenné a pomocou nových akcií makier na spracovanie chýb môžete elegantnejšie riešiť chyby. V starších verziách Accessu sú tieto typy funkcií k dispozícii iba s použitím jazyka VBA. Okrem toho môžete vložiť makro priamo do vlastnosti udalosti objektu alebo ovládacieho prvku. Vložené makro sa stane súčasťou objektu alebo ovládacieho prvku a pri presúvaní alebo kopírovaní objektu alebo ovládacieho prvku sa spolu s ním presúva alebo kopíruje aj makro.

Makrá predstavujú jednoduchý spôsob riešenia viacerých úloh programovania, ako je napríklad otváranie a zatváranie formulárov a spúšťanie zostáv. Vyžadujú iba minimálnu znalosť syntaxe, a preto vám umožňujú rýchlo a jednoducho spájať vytvorené databázové objekty, napríklad formuláre, zostavy a ďalšie. V Zostavovači makier sa zobrazujú argumenty pre každú akciu.

Makrá poskytujú zvýšené zabezpečenie a jednoduchosť používania a použitie makier je navyše nevyhnutné na vykonanie nasledujúcich úloh:

  • Priradenie akcie alebo množiny akcií ku klávesu. V tomto prípade je potrebné vytvoriť skupinu makier s názvom AutoKeys.

  • Vykonanie akcie alebo série akcií pri prvom otvorení databázy. V tomto prípade je potrebné vytvoriť makro s názvom AutoExec.

    Poznámka:  Makro AutoExec sa spustí pred všetkými ostatnými makrami alebo kódom VBA, a to aj vtedy, keď ste v dialógovom okne Access – možnosti nastavili úvodný formulár a k udalosti PriOtvorení alebo PriZavedení daného formulára pripojili makro alebo kód VBA.

Ďalšie informácie o zostavovaní makier nájdete v časti Základné informácie o makrách.

Poznámky k jazyku VBA

Použiť programovanie VBA namiesto makier je vhodné vtedy, keď chcete vykonať niektorú z týchto činností:

  • Použitie vstavaných funkcií alebo vytvorenie vlastných funkcií    Access obsahuje mnoho vstavaných funkcií, ako je napríklad funkcia IPmt, ktorá slúži na výpočet výšky platby úroku. Tieto vstavané funkcie môžete používať na vykonávanie výpočtov bez potreby vytvárania zložitých výrazov. Pomocou kódu VBA môžete tiež vytvárať vlastné funkcie na vykonávanie výpočtov, ktoré presahujú možnosti výrazu, alebo na nahradenie zložitých výrazov. Vytvorené funkcie môžete navyše použiť vo výrazoch tak, aby sa bežná operácia použila vo viacerých objektoch.

  • Vytvorenie objektov alebo práca s objektmi    Vo väčšine prípadov zistíte, že objekt je najjednoduchšie vytvoriť a upraviť v návrhovom zobrazení daného objektu. V niektorých prípadoch však možno budete chcieť upraviť definíciu objektu v kóde. Pomocou jazyka VBA môžete okrem samotnej databázy upravovať aj všetky objekty v danej databáze.

  • Vykonávanie akcií na úrovni systému    Ak chcete z Accessu spustiť iný program, napríklad Microsoft Excel, môžete na to použiť akciu SpustiťAplikáciu v makre. Možnosti na vykonávanie iných akcií mimo Accessu pomocou makra sú však minimálne. S použitím jazyka VBA môžete skontrolovať, či určitý súbor existuje v počítači, môžete používať automatizáciu alebo technológiu dynamickej výmeny údajov (DDE) na komunikáciu s iným programami systému Microsoft Windows, ako je napríklad Excel, a môžete vyvolávať funkcie v knižniciach DLL.

  • Práca so záznamami po jednom    S použitím jazyka VBA môžete prechádzať po jednotlivých záznamoch v množine záznamov a vykonať operáciu s každým záznamom samostatne. Makrá naopak pracujú naraz s celou množinou záznamov.

Na začiatok stránky

Vykonávanie bežných úloh programovania pomocou Sprievodcu príkazovým tlačidlom

Ak do formulára pridávate príkazové tlačidlo, Sprievodca príkazovým tlačidlom vám pomôže začať s programovaním. Sprievodca vám pomôže vytvoriť príkazové tlačidlo, ktoré vykonáva určitú úlohu. V accessovom súbore (.accdb) Sprievodca vytvorí makro vložené vo vlastnosti PriKliknutí príkazového tlačidla. V súbore .mdb alebo .adp Sprievodca vytvorí kód VBA, pretože v týchto formátoch súborov vložené makrá nie sú k dispozícii. Makro alebo kód VBA potom môžete v oboch prípadoch upraviť alebo rozšíriť podľa vlastných potrieb.

  1. Na navigačnej table kliknite pravým tlačidlom myši na formulár, do ktorého chcete pridať príkazové tlačidlo, a potom kliknite na položku Návrhové zobrazenie.

  2. Kliknutím na šípku nadol na karte Návrh zobrazte galériu Ovládacie prvky a skontrolujte, či je vybratá možnosť Použiť sprievodcov ovládacími prvkami.

  3. Na karte Návrh v galérii Ovládacie prvky kliknite na položku Tlačidlo.

  4. V mriežke návrhu formulára kliknite na miesto, kde chcete príkazové tlačidlo umiestniť.

    Spustí sa Sprievodca príkazovým tlačidlom.

  5. Na prvej strane Sprievodcu môžete kliknutím na jednotlivé kategórie v zozname Kategórie zobraziť akcie, ktoré môže Sprievodca naprogramovať pre príkazové tlačidlo. V zozname Akcie vyberte požadovanú akciu a potom kliknite na tlačidlo Ďalej.

  6. Kliknite na možnosť Text alebo Obrázok v závislosti od toho, či chcete na príkazovom tlačidle zobraziť text alebo obrázok.

    • Ak chcete zobraziť text, môžete upraviť text v poli vedľa možnosti Text.

    • Ak chcete zobraziť obrázok, Sprievodca navrhne obrázok v zozname. Ak chcete vybrať iný obrázok, začiarknite políčko Zobraziť všetky obrázky, čím sa zobrazí zoznam všetkých obrázkov príkazového tlačidla dostupných v Accesse, alebo kliknite na tlačidlo Prehľadávať a vyberte obrázok, ktorý je uložený na inom mieste.

      Kliknite na tlačidlo Ďalej.

  7. Zadajte zmysluplný názov príkazového tlačidla. Tento krok je voliteľný a zadaný názov sa nezobrazuje na príkazovom tlačidle. Zadanie zmysluplného názvu je však vhodné, ak chcete neskôr odkazovať na príkazové tlačidlo (ak napríklad nastavujete poradie ovládacích prvkov vo formulári). V takom prípade bude pre vás oveľa jednoduchšie rozlišovať príkazové tlačidlá. Ak príkazové tlačidlo slúži napríklad na zavretie formulára, môžete ho nazvať przZavrieť alebo PríkazZavrieť.

  8. Kliknite na tlačidlo Dokončiť.

    Access umiestni príkazové tlačidlo do formulára.

  9. Ak chcete zobraziť akcie, ktoré Sprievodca naprogramoval, použite tento voliteľný postup:

    1. Ak sa hárok vlastností ešte nezobrazuje, zobrazte ho stlačením klávesu F4.

    2. V hárku vlastností kliknite na kartu Udalosť.

    3. V poli vlastnosti Pri kliknutí kliknite na tlačidlo Zostaviť Obrázok tlačidla .

      Access spustí Zostavovač makier a zobrazí makro, ktoré vytvoril Sprievodca. Makro môžete podľa potreby upraviť – ďalšie informácie o úprave makra nájdete v časti Základné informácie o makrách. Po dokončení úprav kliknite na karte Návrh v skupine Zavrieť na položku Zavrieť, čím sa zavrie Zostavovač makier. Ak Access zobrazí výzvu na uloženie zmien a aktualizáciu vlastnosti, zmeny môžete uložiť kliknutím na tlačidlo Áno alebo odmietnuť kliknutím na tlačidlo Nie.

  10. Na karte Návrh kliknite v skupine Zobrazenia na položku Zobraziť a potom kliknite na položku Formulárové zobrazenie. Kliknutím na nové príkazové tlačidlo skontrolujte, či pracuje podľa očakávania.

Na začiatok stránky

Základné informácie o makrách

Makro je nástroj, ktorý umožňuje automatizáciu úloh a pridáva funkcie do formulárov, zostáv a ovládacích prvkov. Ak do formulára pridáte napríklad príkazové tlačidlo, makru priradíte vlastnosť udalosti tlačidla PriKliknutí, čím bude makro obsahovať príkazy, ktoré sa majú vykonať pri každom kliknutí na tlačidlo.

Accessové makrá je vhodné chápať ako zjednodušený programovací jazyk, v ktorom vytvárate kód tak, že zostavujete zoznam akcií, ktoré sa majú vykonať. Pri vytváraní makra vyberiete v rozbaľovacom zozname jednotlivé akcie a pre každú akciu vyplníte požadované informácie. Pomocou makier môžete pridať funkcie do formulárov, zostáv a ovládacích prvkov bez potreby písania kódu v module VBA. Makrá poskytujú podmnožinu príkazov, ktoré sú k dispozícii v jazyku VBA. Pre väčšinu ľudí je ľahšie vytvoriť makro ako napísať kód v jazyku VBA.

Makro sa vytvára pomocou Zostavovača makier znázorneného na nasledujúcom obrázku.

Zostavovač makier programu Access 2010

Poznámka: Všimnite si, že Zostavovač makier v Accesse 2007 vyzeral inak ako na vyššie uvedenom obrázku. Zostavovač makier v Accesse 2007 predstavoval sériu riadkov a stĺpcov, v ktorých boli uvedené rôzne akcie makra.

Zobrazenie Zostavovača makier:

  • Na karte Vytvoriť kliknite v skupine Makrá a kód na položku Makro.

Na začiatok stránky

Základné informácie o kóde VBA

Kód VBA vám podobne ako makrá umožňuje pridať do accessovej aplikácie automatizáciu a iné funkcie. Možnosti kódu VBA môžete rozšíriť pomocou ovládacích prvkov tretích strán a môžete vytvárať vlastné funkcie a procedúry pre svoje konkrétne potreby.

S programovaním s použitím jazyka VBA je možné najrýchlejšie začať tak, že najprv vytvoríte accessové makro, ktoré potom skonvertujete na kód VBA. Pokyny pre tento postup nájdete v časti Konvertovanie makier na kód VBA. Táto funkcia vytvorí nový modul VBA, ktorý vykonáva ekvivalentné operácie v makre. Zároveň otvorí Visual Basic Editor, aby ste mohli začať s úpravou procedúry. Pri práci v programe Visual Basic Editor môžete kliknutím na kľúčové slová a stlačením klávesu F1 spustiť Pomocníka pre accesových vývojárov, ktorý obsahuje ďalšie informácie o jednotlivých kľúčových slovách. Pomocníka pre accesových vývojárov potom môžete preskúmať a oboznámiť sa s novými príkazmi, ktoré vám pomôžu vykonať požadované programátorské úlohy.

Na začiatok stránky

Konvertovanie makier na kód VBA

Access môžete použiť na automatické konvertovanie makier na moduly VBA alebo moduly tried. Môžete konvertovať makrá pripojené k formuláru alebo zostave bez ohľadu na to, či existujú ako samostatné objekty alebo ako vložené makrá. Rovnako môžete konvertovať aj globálne makrá, ktoré nie sú pripojené ku konkrétnemu formuláru alebo zostave.

Poznámka: Kód jazyka Visual Basic for Applications (VBA) je možné pridať do webovej databázy, avšak tento kód nemožno spustiť, keď je databáza spustená vo webovom prehliadači. Ak webová databáza obsahuje kód VBA, pred spustením kódu je túto webovú databázu nutné otvoriť pomocou Accessu. Ak chcete vykonať úlohy programovania vo webovej databáze, použite namiesto toho accessové makrá.

Konvertovanie makier pripojených k formuláru alebo zostave

Tento postup konvertuje na kód VBA všetky makrá, na ktoré odkazuje formulár alebo zostava (alebo niektorý z ich ovládacích prvkov), ako aj všetky makrá vložené do formulára alebo zostavy, Tento kód VBA sa potom pridá do modulu triedy daného formulára alebo zostavy. Modul triedy sa stane súčasťou formulára alebo zostavy a presúva alebo kopíruje sa spolu s formulárom alebo so zostavou.

  1. Na navigačnej table kliknite pravým tlačidlom myši na formulár alebo zostavu a potom kliknite na položku Návrhové zobrazenie.

  2. Na karte Návrh kliknite v skupine Nástroje na položku Konvertovať makrá formulára do jazyka Visual Basic alebo Konvertovať makrá zostavy do jazyka Visual Basic.

  3. V dialógovom okne Konvertovať makrá formulára alebo Konvertovať makrá zostavy vyberte, či chcete, aby Access pridal ku generovaným funkciám kód spracovania chýb. Ak máte v makrách nejaké komentáre, taktiež vyberte, či ich chcete zahrnúť do funkcií ako komentáre. Pokračujte kliknutím na tlačidlo Konvertovať.

    Ak pre formulár alebo zostavu neexistuje žiadny modul triedy, Access vytvorí jeden modul triedy a pridá do neho procedúru pre každé makro priradené k danému formuláru alebo zostave. Access tiež zmení vlastnosti udalosti formulára alebo zostavy tak, aby namiesto makier spúšťali nové procedúry VBA.

  4. Zobrazenie a úprava kódu VBA:

    1. Ak sú formulár alebo zostava stále otvorené v návrhovom zobrazení a hárok vlastností sa ešte nezobrazuje, zobrazte ho stlačením klávesu F4.

    2. Na karte Udalosť v hárku vlastností kliknite na ľubovoľné pole vlastnosti, v ktorom sa zobrazuje položka [Procedúra spúšťaná udalosťou], a potom kliknite na tlačidlo Zostaviť Obrázok tlačidla . Ak chcete zobraziť vlastnosti udalostí konkrétneho ovládacieho prvku, kliknutím vyberte daný ovládací prvok. Ak chcete zobraziť vlastnosti udalostí celého formulára alebo zostavy, v rozbaľovacom zozname v hornej časti hárka vlastností vyberte položku Formulár alebo Zostava.

      Access otvorí Visual Basic Editor a zobrazí procedúru udalosti v jej module triedy. Posúvaním nahor alebo nadol môžete zobraziť všetky ostatné procedúry, ktoré sú v rovnakom module triedy.

Konvertovanie globálnych makier

  1. Na navigačnej table kliknite pravým tlačidlom na makro, ktoré chcete konvertovať, a potom kliknite na položku Návrhové zobrazenie.

  2. Na karte Návrh kliknite v skupine Nástroje na položku Konvertovať makrá do jazyka Visual Basic.

  3. V dialógovom okne Konvertovať makro vyberte požadované možnosti a kliknite na tlačidlo Konvertovať.

    Access skonvertuje makro a otvorí Visual Basic Editor.

  4. Zobrazenie a úprava kódu VBA:

    1. Ak sa v programe Visual Basic Editor nezobrazuje tabla Prieskumník projektu, kliknite v ponuke Zobraziť na položku Prieskumník projektu.

    2. Rozbaľte strom pod názvom databázy, v ktorej pracujete.

    3. V časti Moduly dvakrát kliknite na modul Konvertované makro- názov makra.

      Visual Basic Editor otvorí modul.

Pripojenie funkcie VBA k vlastnosti udalosti

Pri konvertovaní globálneho makra do jazyka VBA sa kód VBA umiestni do štandardného modulu. Štandardný modul na rozdiel od modulu triedy nie je súčasťou formulára alebo zostavy. Funkciu budete veľmi pravdepodobne chcieť priradiť k vlastnosti udalosti vo formulári, zostave alebo ovládacom prvku tak, aby sa kód spustil presne v požadovanom čase a na požadovanom mieste. Môžete to dosiahnuť tak, že skopírujete kód VBA do modulu triedy a potom ho priradíte k vlastnosti udalosti, alebo môžete vykonať špeciálne volanie z vlastnosti udalosti do štandardného modulu pomocou nasledujúceho postupu.

  1. V programe Visual Basic Editor si poznačte názov funkcie. Ak ste napríklad skonvertovali makro s názvom MojeMakro, názov funkcie bude MojeMakro().

  2. Zavrite Visual Basic Editor.

  3. Na navigačnej table kliknite pravým tlačidlom myši na formulár alebo zostavu, ku ktorej chcete funkciu priradiť, a potom kliknite na položku Návrhové zobrazenie.

  4. Kliknite na ovládací prvok alebo časť, ku ktorej chcete funkciu priradiť.

  5. Ak sa hárok vlastností ešte nezobrazuje, zobrazte ho stlačením klávesu F4.

  6. Na karte Udalosť v hárku vlastností kliknite na pole udalosti vlastnosti, ku ktorému chcete funkciu priradiť.

  7. Do poľa vlastnosti zadajte znak rovnosti (=) a zaň názov funkcie, napríklad =MojeMakro(). Nezabudnite zadať zátvorky.

  8. Uložte formulár alebo zostavu kliknutím na tlačidlo Uložiť na paneli s nástrojmi Rýchly prístup.

  9. Na navigačnej table dvakrát kliknite na formulár alebo zostavu a otestujte, či sa kód spúšťa podľa očakávaní.

Teraz už poznáte základy pridávania kódu VBA do databázy. Tento článok popisuje len základné informácie o tom, ako začať pracovať. Existuje veľké množstvo výborných referenčných publikácií a online zdrojov, ktoré vám môžu pomôcť pri rozvíjaní svojich programátorských schopností.

Na začiatok stránky

Rozšírte svoje zručnosti práce s balíkom Office
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×