Applies ToAccess pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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 Access.

Obsah tohto článku

Čo je programovanie?

V Access je programovanie proces pridávania funkcií do databázy pomocou makier Access alebo kódu 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 Access používateľov to môže byť mätúce, pretože v Access pojem makro odkazuje na pomenovanú kolekciu akcií makier, ktoré môžete zostaviť pomocou Zostavovača makier. Access akcie makra predstavujú len podmnožinu príkazov dostupných 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. Mali by ste si uvedomiť, že v článkoch Pomocníka Access sa Access 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ť spúšťané aj faktormi mimo Access, ako sú napríklad systémové udalosti, makrá alebo procedúry, ktoré sú 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

Access obsahuje mnoho nových akcií makra, ktoré vám umožňujú vytvárať výkonnejšie makrá, než môžete vytvoriť pomocou starších verzií Access. 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 Access sú tieto typy funkcií k dispozícii iba pomocou 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žite vstavané funkcie alebo vytvorte vlastné funkcie    Access obsahuje množstvo vstavaných funkcií, ako je napríklad funkcia IPmt , ktorá vypočíta výšku 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    Akciu SpustiťApp môžete vykonať v makre a spustiť iný program (napríklad Microsoft Excel) v rámci Access, ale nemôžete použiť makro na iné činnosti mimo Access. Pomocou jazyka VBA môžete skontrolovať, či súbor existuje v počítači, používať automatizáciu alebo dynamickú výmenu údajov (DDE) na komunikáciu s inými programami založenými na Systéme Microsoft Windows, ako je napríklad Excel, a funkciami volania v knižniciach dll systému Windows.

  • 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 súbore Access (.accdb) sprievodca vytvorí makro, ktoré je vložené do vlastnosti OnClick tlačidla príkazu. 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. Na karte Návrh formulára kliknutím na šípku nadol zobrazte galériu ovládacích prvkov a potom skontrolujte, či je vybratá možnosť Použiť sprievodcov ovládacími prvkami .

  3. Na karte Návrh formulárakliknite v galérii ovládacích prvkov na 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čiarknutím políčka Zobraziť všetky obrázky zobrazte zoznam všetkých obrázkov tlačidiel príkazov, ktoré Access poskytuje, alebo kliknutím na tlačidlo Prehľadávať vyberte obrázok, ktorý je uložený na inom mieste.

      Kliknite na tlačidlo Ďalej.

  7. Zadajte zmysluplný názov tlačidla príkazu. Toto je voliteľný krok a tento názov sa nezobrazuje na tlačidli príkazu. Je však vhodné zadať zmysluplný názov, aby ste v prípade potreby odkazovať na tlačidlo príkazu neskôr (napríklad ak nastavujete poradie prvkov pre ovládacie prvky vo formulári), bude oveľa jednoduchšie rozlišovať medzi tlačidlami príkazov. Ak napríklad tlačidlo príkazu zatvorí formulár, môžete ho nazviť cmdClose alebo CommandClose.

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

    Access umiestni tlačidlo príkazu 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 vytvorené sprievodcom. 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í na karte Návrh makra v skupine Zavrieť kliknutím na tlačidlo Zavrieť zavrite Zostavovač makier. Ak Access zobrazí výzvu na uloženie zmien a aktualizáciu vlastnosti, kliknutím na tlačidlo Áno zmeny uložíte. Ak chcete zmeny odmietnuť, kliknite na tlačidlo Nie .

  10. Na karte Návrh formulára kliknite v skupine Zobrazenia na položku Zobraziť a potom 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.

Je užitočné si predstaviť Access makrá ako zjednodušený programovací jazyk, v ktorom vytvárate kód vytvorením zoznamu akcií, ktoré sa majú vykonať. Pri vytváraní makra vyberáte v rozbaľovacom zozname jednotlivé akcie a pre každú akciu vyplníte požadované informácie. Makrá umožňujú pridávať funkcie do formulárov, zostáv a ovládacích prvkov bez nutnosti 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

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

Podobne ako makrá, aj VBA umožňuje pridať automatizáciu a ďalšie funkcie do aplikácie Access. 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.

Rýchlym spôsobom, ako začať s programovaním VBA, je najprv vytvoriť Access makro a potom ho skonvertovať 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 editore jazyka Visual Basic môžete kliknúť na kľúčové slová a stlačením klávesu F1 spustiť Access Pomocníka pre vývojárov a získať ďalšie informácie o jednotlivých kľúčových slovách. Potom môžete preskúmať Access Pomocníka pre vývojárov a objaviť nové príkazy, ktoré vám pomôžu vykonávať požadované úlohy programovania.

Na začiatok stránky

Konvertovanie makier na kód VBA

Pomocou Access môžete automaticky konvertovať makrá 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.

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 formulára 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 Access pridať kód spracovania chýb do funkcií, ktoré generuje. 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í modul a pridá procedúru do modulu pre každé makro priradené k 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 pole vlastností, v ktorom sa zobrazuje [Procedúra spúšťaná udalosťou] a potom kliknite na tlačidlo zostavy 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í editor jazyka Visual Basic a zobrazí procedúru spúšťanú udalosťou v 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 makra 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í editor jazyka Visual Basic.

  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 poznáte základné kroky na pridanie kódu VBA do databázy. Tento článok popisuje len základné informácie o tom, ako začať. existuje mnoho vynikajúcich referenčných kníh a on-line zdroje, ktoré vám môžu pomôcť vybudovať svoje programovacie zručnosti.

Pozrite tiež

Vytvorenie makra používateľského rozhrania

Spustenie accessového makra pomocou klávesovej skratky

Automatizácia udalostí pri spustení pomocou makra

Vytvorenie makra spúšťaného pri otvorení databázy

Poradie udalostí pre databázové objekty

Na začiatok stránky

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.