Úvod k programovaniu v programe Access

Vzťahuje sa na
Access pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Vytváranie novej databázy zvyčajne začínate vytvorením databázových objektov, ako sú tabuľky, formuláre a zostavy. V určitom bode možno budete potrebovať pridať programovanie na automatizáciu procesov a pripojenie týchto objektov. Tento článok predstavuje programovacie nástroje v Accesse.

Obsah tohto článku

Čo je programovanie?

Programovanie v Accesse znamená pridanie funkcií do databázy pomocou accessových makier alebo kódu programu Visual Basic for Applications (VBA). Môžete napríklad vytvoriť formulár a zostavu a potom pridať príkazové tlačidlo do formulára, ktorý po výbere zostavu otvorí. V takom prípade vytvoríte makro alebo VBA procedúru a potom nastavíte vlastnosť udalosti tlačidla OnClick príkazu tak, aby tlačidlo príkazu spustilo makro alebo procedúru. Pri jednoduchej operácii, ako je napríklad otvorenie zostavy, môžete na vykonanie práce použiť Sprievodcu príkazovým tlačidlom, alebo môžete vypnúť Sprievodcu a naprogramovať vlastný program.

Poznámka

Pojmom makro sa v mnohých programoch balíka VBA Microsoft Office označuje kód. To môže zmiasť používateľov Accessu, pretože pojem makro v Accesse označuje pomenovanú kolekciu akcií makier, ktorú zostavíte pomocou Zostavovača makier. Akcie makier v Accesse predstavujú iba podmnožinu príkazov, ktoré sú k dispozícii v .VBA Na rozdiel od programu Visual Basic Editor ponúka Zostavovač makier štruktúrovanejšie rozhranie, takže do ovládacích prvkov a objektov môžete pridávať programovanie bez toho VBA , aby ste sa učili kódovanie. V článkoch Pomocníka pre Access sa accessové makrá nazývajú makrá. VBA Kód sa nazýva VBA kód, funkcia alebo procedúra. VBA Kód je uložený v moduloch tried, ktoré sú súčasťou jednotlivých formulárov alebo zostáv a zvyčajne obsahujú kód iba pre dané objekty, a v moduloch, ktoré nie sú spojené s konkrétnymi objektmi a zvyčajne obsahujú globálny kód, ktorý môžete použiť v rámci databázy.

Objekty, ako sú formuláre a zostavy, a ovládacie prvky, napríklad príkazové tlačidlá a textové polia, majú 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 zmena ú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 veľa makier alebo procedúr do mnohých vlastností udalostí v mnohých objektoch, databáza sa môže stať zložitou. 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 použití makier VBAalebo oboch závisí najmä od plánovaného spôsobu nasadenia a distribúcie databázy. Ak je databáza napríklad uložená vo vašom počítači, ste jediným používateľom a viete používať VBA kód, ktorý sa môžete rozhodnúť použiť VBA na väčšinu úloh programovania. Ak však plánujete zdieľať databázu s inými používateľmi prostredníctvom súborového servera, z bezpečnostných dôvodov je vhodné nepoužívať túto VBA databázu.

Medzi používaním makier alebo VBA kódu sa rozhodujte na základe dvoch kritérií: zabezpečenia a požadovaných funkcií. Na zabezpečení záleží, pretože VBA sa môže použiť na vytvorenie kódu, ktorý ohrozuje údaje alebo škodu súborom v počítači. Pri používaní databázy, ktorú vytvoril niekto iný, povoľte VBA kód len v prípade, že viete, že databáza pochádza z dôveryhodného zdroja. Keď vytvoríte databázu, ktorú budú používať iní používatelia, pokúste sa vyhnúť pridávaniu programovacích nástrojov, ktoré od používateľa vyžadujú explicitnú dôveru databázy. Všeobecné postupy, ako sa vyhnúť tejto požiadavke, sú uvedené ďalej v tejto časti.

Ak chcete zvýšiť zabezpečenie svojej databázy, pokúste sa používať makrá vždy, keď je to možné, a používajte VBA iba pre operácie, ktoré nemožno vykonať pomocou akcií makier. Snažte sa tiež používať iba akcie makier, ktoré pred spustením nevyžadujú dôveryhodnosť databázy. Obmedzením akcií makier týmto spôsobom zvýšite 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 akcií makier, ktoré vám umožňujú vytvárať výkonnejšie makrá, než povoľovali staršie verzie 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 boli tieto funkcie k dispozícii iba v programe VBA. Makro môžete vložiť aj priamo do vlastnosti udalosti objektu alebo ovládacieho prvku. Vložené makro sa stane súčasťou objektu alebo ovládacieho prvku a zostane s nimi, ak objekt alebo ovládací prvok presuniete alebo skopírujete.

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ú minimálnu znalosť syntaxe, a preto vám umožňujú rýchlo spájať vytvorené databázové objekty, ako sú napríklad formuláre a zostavy. 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 spúšťa pred všetkými ostatnými makrami alebo VBA kódmi, a to aj vtedy, ak ste v dialógovom okne Access – možnosti určili úvodný formulár a pridali k nemu makro alebo VBAOnLoad kódOnOpen.

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

Poznámky k jazyku VBA

Použite VBA namiesto makier v prípade, že chcete vykonať niektorú z týchto činností:

  • Použite vstavané funkcie alebo si vytvorte vlastné. Access obsahuje mnoho vstavaných funkcií, ako napríklad IPmtfunkcia , ktorá slúži na výpočet výšky platby úroku. Tieto funkcie môžete používať na vykonávanie výpočtov bez vytvárania zložitých výrazov. VBAMôžete tiež vytvárať vlastné funkcie na vykonávanie výpočtov, ktoré presahujú možnosti výrazu alebo nahrádzajú zložité výrazy. Vytvorené funkcie môžete navyše použiť vo výrazoch tak, aby sa bežná operácia použila vo viacerých objektoch.
  • Vytvárať objekty alebo práca s objektmi. Vo väčšine prípadov je najjednoduchšie vytvoriť a upraviť objekt 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 VBAklávesov , môžete manipulovať so všetkými objektmi v databáze, ako aj so samotnou databázou.
  • Vykonávanie akcií na úrovni systému. Akciu RunApp v makre môžete vykonať a spustiť z Accessu iný program, napríklad Microsoft Excel, ale nemôžete použiť makro na vykonávanie iných akcií mimo Accessu. Pomocou VBAklávesov , 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 systému Microsoft Windows, ako je napríklad Excel, a vyvolávať funkcie v knižniciach dynamického prepojenia systému Windows (DLLs).
  • Práca so záznamami po jednom. Môžete prechádzať VBA po jednotlivých záznamoch v množine záznamov a s každým záznamom vykonať operáciu. 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 OnClick vlastnosti príkazového tlačidla. V súbore alebo .mdb.adp Sprievodca vytvorí VBA kód, pretože v týchto formátoch súborov vložené makrá nie sú k dispozícii. Makro VBA alebo kód potom môžete v oboch prípadoch upraviť alebo rozšíriť tak, aby lepšie vyhovoval vašim potrebám.

  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 skontrolujte, či je vybratá možnosť Použiť sprievodcov ovládacími prvkami .

  3. Na karte Návrh formulára kliknite v galérii ovládacích prvkov 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 tlačidla príkazu. Tento krok je voliteľný a názov sa nezobrazuje na tlačidle príkazu. Zadanie zmysluplného názvu je však vhodné, aby bolo lepšie, keď sa budete chcieť neskôr odvolať na tlačidlo príkazu, napríklad pri nastavovaní poradia ovládacích prvkov vo formulári, rozoznať tlačidlá príkazov od seba. Ak napríklad tlačidlo príkazu zavrie formulár, môžete ho cmdClose pomenovať alebo CommandClose.

  8. Kliknite na tlačidlo Dokončiť. Access umiestni príkazové tlačidlo do formulára.

  9. Ak chcete vidieť, čo 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ť .

      Access spustí Zostavovač makier a zobrazí makro, ktoré vytvoril Sprievodca. Ak chcete, môžete makro upraviť. Ďalšie informácie nájdete v téme Základné informácie o makrách. Po dokončení úprav zatvorte Zostavovač makier kliknutím na karte Návrh makra v skupine Zavrieť. 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 formulára 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 automatizovať úlohy 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, môžete vlastnosť OnClick udalosti tlačidla priradiť k makru, ktoré obsahuje príkazy, ktoré má tlačidlo vykonať pri každom výbere.

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 vyberáte v rozbaľovacom zozname jednotlivé akcie a pre každú akciu vyplníte požadované informácie. Makrá umožňujú pridať funkcie do formulárov, zostáv a ovládacích prvkov bez potreby písania kódu VBA v module. Makrá poskytujú podmnožinu príkazov, ktoré sú k dispozícii v jazyku VBA, a pre väčšinu ľudí je ľahšie vytvoriť makro ako zapísať VBA kód.

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

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á, VBA umožňuje pridať do accessovej aplikácie automatizáciu a iné funkcie. Rozšírenie VBA môžete vykonať pomocou ovládacích prvkov tretích strán a môžete vytvárať vlastné funkcie a procedúry pre konkrétne potreby.

Ak chcete rýchlo začať VBA , najprv vytvorte accessové makro, ktoré potom skonvertujte na VBA kód. Pokyny na tento postup nájdete v téme Konvertovanie makier na kód VBA. Táto funkcia vytvorí nový VBA modul, 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 VBA moduly 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 proces sa konvertuje na VBA všetky makrá, na ktoré odkazuje formulár alebo zostava alebo niektorý z ich ovládacích prvkov alebo ktoré sú do nich vložené, a tento kód sa pridá VBA 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 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, aby Access pridal ku generovaným funkciám kód spracovania chýb. Ak makrá obsahujú aj komentáre, vyberte aj, či chcete tieto komentáre zahrnúť do funkcií. 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é VBA procedúry.

  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é zobrazené pole [Event Procedure]vlastnosti a potom kliknite na tlačidlo Zostaviť . 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 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í 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.Converted Macro-<macro name> Visual Basic Editor otvorí modul.

Pripojenie funkcie VBA k vlastnosti udalosti

Keď konvertujete globálne makro na VBA, kód VBA sa 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. Ak to chcete urobiť, môžete skopírovať VBA kód do modulu triedy a potom ho priradiť 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 MyMacro, názov funkcie bude .MyMacro()
  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, =MyMacro()napríklad . 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 VBA kódu do databázy. Tento článok popisuje len základné informácie o tom, ako začať. Množstvo výborných referenčných kníh a online zdrojov vám pomôže pri rozvíjaní svojich programátorských schopností.

Pozrite tiež

Vytvorenie makra používateľského rozhrania

Spustenie makra v Accesse 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