Úvod k programování v aplikaci Access

Při vytváření nové databáze obvykle začnete tím, že vytvoříte několik databázových objektů, jako jsou tabulky, formuláře a sestavy. Nakonec dospějete k bodu, kdy je potřeba něco málo naprogramovat, aby se určité procesy zautomatizovaly a vytvořily se vazby mezi databázovými objekty. Tento článek vám pomůže zorientovat se v oblasti nástrojů pro programování v Accessu.

V tomto článku

Co je to programování?

Mám použít makra nebo kód jazyka VBA?

Provádění běžných programovacích úloh pomocí Průvodce příkazovým tlačítkem

Základní informace o makrech

Základní informace o kódu jazyka VBA

Převod maker do kódu jazyka VBA

Co je to programování?

Programování v Accessu je proces, kterým se k databázi přidávají funkce pomocí maker Accessu nebo kódu jazyka VBA (Visual Basic pro Applications). Předpokládejme například, že jste vytvořili formulář a sestavu, a do tohoto formuláře chcete přidat příkazové tlačítko, kterým se při kliknutí daná sestava otevře. Programování v tomto případě představuje proces vytvoření makra nebo procedury jazyka VBA a následné nastavení událostní vlastnosti Při kliknutí pro příkazové tlačítko tak, aby se při kliknutí na toto příkazové tlačítko spustilo příslušné makro nebo procedura. Pro jednoduchou operaci, jako je otevření sestavy, můžete použít Průvodce příkazovým tlačítkem, který udělá celou práci za vás, nebo můžete tohoto průvodce vypnout a naprogramovat to sami.

Poznámka: V řadě aplikací Microsoft Office se termín „makro“ používá k označení kódu jazyka VBA. To může být pro uživatele Accessu matoucí, protože v Accessu termín „makro“ označuje pojmenovanou kolekci akcí makra, kterou je možné sestavit pomocí Tvůrce maker. Akce maker Accessu představují jenom podmnožinu příkazů dostupných v jazyce VBA. Tvůrce maker má strukturovanější rozhraní než Visual Basic Editor a umožňuje vám přidávat k ovládacím prvkům a objektům programování, aniž byste se museli naučit kód jazyka VBA. Mějte tedy na paměti, že v článcích nápovědy k Accessu se makra Accessu označují jako makra. Kód jazyka VBA se zase označuje jako VBA, kód, funkce nebo procedura. Kód jazyka VBA je obsažený v modulech třídy (které jsou součástí jednotlivých formulářů nebo sestav a obvykle obsahují kód jenom pro tyto objekty) a v modulech (které nejsou vázané na konkrétní objekty a obvykle obsahují „globální“ kód, který je možné používat v celé databázi).

Objekty (například formuláře a sestavy) a ovládací prvky (například příkazová tlačítka a textová pole) mají různé událostní vlastnosti, ke kterým můžete připojit makra nebo procedury. Každá událostní vlastnost je spojená s určitou událostí, jako je kliknutí myši, otevření formuláře nebo změna dat v textovém poli. Události se můžou aktivovat také faktory mimo Access, například systémovými událostmi, makry nebo procedurami, které jsou připojené k jiným událostem. Když k několika událostním vlastnostem mnoha objektů přidáte větší počet maker nebo procedur, může databáze nabýt složitosti, ale většinou je k dosažení požadovaných výsledků potřeba jen velmi málo programování.

Začátek stránky

Mám použít makra nebo kód jazyka VBA?

Rozhodnutí, jestli použít makra, jazyk VBA, nebo obě možnosti, závisí především na tom, jak plánujete databázi nasadit nebo distribuovat. Pokud je například databáze uložená na vašem počítači, jste jediným uživatelem a umíte používat kód jazyka VBA, můžete se rozhodnout použít k provedení většiny programovacích úloh jazyk VBA. Pokud ale chcete sdílet databázi s jinými uživateli tak, že ji umístíte na souborový server, můžete se z bezpečnostních důvodů použití jazyka VBA vyhnout.

Rozhodování, jestli použít makra nebo jazyk VBA, byste měli založit na dvou aspektech: na zabezpečení a požadované funkčnosti. Zabezpečení je problém, protože pomocí jazyka VBA je možné vytvořit kód, který ohrožuje bezpečnost dat nebo může poškodit soubory na počítači. Pokud používáte databázi, kterou vytvořil někdo jiný než vy, měli byste kód jazyka VBA povolit, jenom když víte, že daná databáze pochází z důvěryhodného zdroje. Pokud vytvoříte databázi, kterou budou používat jiní uživatelé, pokuste se nezahrnovat programovací nástroje, které vyžadují, aby uživatel udělil databázi stav důvěryhodnosti. Obecné postupy, jak se vyhnout tomu, aby uživatelé museli nastavovat důvěryhodnost databáze, najdete dále v této části.

Pokud chcete usnadnit zajištění zabezpečení databáze, měli byste používat makra tam, kde to jde, a programování v jazyce VBA používat jenom pro operace, které nejdou provést pomocí akcí makra. Dále byste měli používat jenom akce makra, jejichž spouštění nevyžaduje udělení stavu důvěryhodnosti dané databázi. Při takovém omezení používání akcí makra si budou uživatelé jistí, že databáze neobsahuje žádné programování, které by jim mohlo poškodit data nebo jiné soubory na počítači.

Co je důležité vědět o makrech

Od verze Access 2010 obsahuje Access mnoho nových akcí makra, které umožňují vytvářet výkonnější makra než v dřívějších verzích. Teď můžete například pomocí akcí makra vytvářet a používat globální dočasné proměnné a pomocí nových akcí makra pro ošetření chyb můžete ošetřovat chyby elegantněji. V dřívějších verzích Accessu jsou tyto typy funkcí dostupné jenom pomocí jazyka VBA. Kromě toho je možné makro vkládat přímo do událostní vlastnosti objektu nebo ovládacího prvku. Vložené makro se stane součástí objektu nebo ovládacího prvku a zůstane u objektu nebo ovládacího prvku i po jeho přesunutí nebo zkopírování.

Makra poskytují jednoduchý způsob zpracování mnoha programovacích úloh, jako je například otevírání a zavírání formulářů a spouštění sestav. Dokážete rychle a snadno vytvářet vazby mezi databázovými objekty (jako jsou formuláře, sestavy atd.), které jste vytvořili, protože syntaxe, kterou je potřeba si zapamatovat, není moc. Argumenty pro jednotlivé akce se zobrazují v Tvůrci maker.

Makra poskytují vyšší zabezpečení a snadněji se používají, ale navíc je nutné makra používat k provádění těchto úloh:

  • Přiřazení akce nebo sady akcí ke klávese. Tato akce vyžaduje vytvoření skupiny maker s názvem AutoKeys.

  • Provedení akce nebo posloupnosti akcí při prvním otevření databáze. Tato akce vyžaduje vytvoření makra s názvem AutoExec.

    Poznámka:  Makro AutoExec se spustí před všemi ostatními makry nebo kódem jazyka VBA, a to i v případě, že jste v dialogovém okně Možnosti aplikace Access určili úvodní formulář a připojili jste makro nebo kód VBA k jeho události Při otevření nebo Při zavedení.

Další informace o vytváření maker najdete v části Základní informace o makrech.

Co je důležité vědět o jazyce VBA

Místo maker byste měli zvolit programování v jazyce VBA, když chcete používat některé z těchto možností:

  • Používání předdefinovaných funkcí nebo vytváření vlastních funkcí:    Access obsahuje mnoho předdefinovaných funkcí, jako je třeba funkce IPmt, která vrací platbu úroku. Tyto předdefinované funkce můžete použít k provádění výpočtů, aniž byste museli vytvářet složité výrazy. Pomocí kódu jazyka VBA můžete vytvářet také vlastní funkce k provádění výpočtů, které překračují možnosti výrazu, nebo k nahrazování složitých výrazů. Kromě toho můžete pomocí funkcí, které vytvoříte ve výrazech, použít běžnou operaci pro více než jeden objekt.

  • Vytváření objektů nebo manipulace s objekty:    Ve většině případů zjistíte, že vytvářet a upravovat objekt je nejsnadnější v návrhovém zobrazení daného objektu. V některých situacích ale může být vhodnější manipulace s definicí objektu v kódu. Pomocí jazyka VBA můžete manipulovat se všemi objekty v databázi i se samotnou databází.

  • Provádění akcí na systémové úrovni:    Provedením akce SpustitAplikaci v makru můžete z Accessu spouštět jinou aplikaci (například Microsoft Excel), ale mimo Access se mnoho dalšího pomocí makra nedá udělat. Pomocí jazyka VBA můžete zkontrolovat, jestli nějaký soubor v počítači existuje, komunikovat s jinými aplikacemi založenými na Microsoft Windows (jako je například Excel) pomocí služby Automation nebo technologie DDE (Dynamic Data Exchange) a volat funkce v knihovnách DLL pro Windows.

  • Manipulace se záznamy po jednotlivých záznamech:    Pomocí jazyka VBA můžete procházet sadu záznamů po jednotlivých záznamech a provádět nějakou operaci u každého záznamu. Oproti tomu makra pracují s celými sadami záznamů najednou.

Začátek stránky

Provádění běžných programovacích úloh pomocí Průvodce příkazovým tlačítkem

Když do formuláře přidáváte příkazové tlačítko, může vám Průvodce příkazovým tlačítkem pomoct začít s programováním. Průvodce vám pomůže vytvořit příkazové tlačítko, které provádí určitý úkol. V souboru Accessu (.accdb) průvodce vytvoří makro, které se vloží do vlastnosti OnClick (Při kliknutí) daného příkazového tlačítka. V souboru .mdb nebo .adp průvodce vytvoří kód jazyka VBA, protože v těchto formátech nejsou vložená makra k dispozici. Makro nebo kód jazyka VBA pak můžete upravit nebo vylepšit, aby lépe vyhovovaly vašim potřebám.

  1. V navigačním podokně klikněte pravým tlačítkem myši na formulář, do kterého chcete přidat příkazové tlačítko, a pak klikněte na Návrhové zobrazení.

  2. Na kartě Návrh zobrazte kliknutím na šipku dolů galerii Ovládací prvky a zkontrolujte, že je vybraná možnost Použít průvodce ovládacími prvky.

  3. Na kartě Návrh klikněte v galerii Ovládací prvky na položku Tlačítko.

  4. V návrhové mřížce formuláře klikněte na místo, kam chcete dané příkazové tlačítko umístit.

    Spustí se Průvodce příkazovým tlačítkem.

  5. Na první stránce průvodce můžete kliknutím na jednotlivé kategorie v seznamu Kategorie zobrazit akce, jejichž provedení může průvodce pro dané příkazové tlačítko naprogramovat. V seznamu Akce vyberte požadovanou akci a pak klikněte na Další.

  6. Klikněte na možnost Text nebo Obrázek podle toho, jestli chcete na příkazovém tlačítku zobrazit text nebo obrázek.

    • Pokud chcete zobrazit text, můžete příslušný text upravit v poli vedle možnosti Text.

    • Pokud chcete zobrazit obrázek, průvodce navrhne obrázek ze seznamu. Pokud chcete vybrat jiný obrázek, zaškrtněte políčko Zobrazit všechny obrázky, aby se zobrazil seznam všech obrázků příkazového tlačítka, které Access nabízí, nebo klikněte na Procházet a vyberte obrázek uložený jinde.

      Klikněte na Další.

  7. Zadejte smysluplný název daného příkazového tlačítka. Tento krok je volitelný a tento název se na příkazovém tlačítku nezobrazí. Je ale vhodné zadat smysluplný název, protože pokud byste později potřebovali na toto příkazové tlačítko odkazovat (například při nastavování pořadí ovládacích prvků ve formuláři), bude mnohem jednodušší jednotlivá příkazová tlačítka rozlišit. Pokud se příkazové tlačítko používá například k zavření formuláře, můžete ho pojmenovat třeba cmd_Zavřít nebo Příkaz_Zavřít.

  8. Klikněte na Dokončit.

    Access umístí příkazové tlačítko do formuláře.

  9. Pokud chcete zobrazit, co vám průvodce „naprogramoval“, použijte tento volitelný postup:

    1. Pokud není zobrazený seznam vlastností, zobrazte ho stisknutím klávesy F4.

    2. V seznamu vlastností klikněte na kartu Událostní.

    3. V poli vlastnosti Při kliknutí klikněte na tlačítko Sestavit Obrázek tlačítka .

      Access spustí Tvůrce maker a zobrazí makro, které průvodce vytvořil. V případě potřeby můžete makro upravit (další informace o úpravách maker najdete v části Základní informace o makrech). Až to budete mít, zavřete Tvůrce maker, a to tak, že na kartě Návrh ve skupině Zavřít kliknete na Zavřít. Pokud vás Access vyzve k uložení změn a aktualizaci dané vlastnosti, uložte změny kliknutím na Ano nebo je odmítněte kliknutím na Ne.

  10. Na kartě Návrh klikněte ve skupině Zobrazení na Zobrazení a potom na Formulářové zobrazení. Klikněte na nové příkazové tlačítko, abyste ověřili, že funguje podle očekávání.

Začátek stránky

Základní informace o makrech

Makro je nástroj, který umožňuje automatizovat úkoly a přidávat funkce do formulářů, sestav a ovládacích prvků. Když například do formuláře přidáte příkazové tlačítko, spojíte událostní vlastnost OnClick (Při kliknutí) tohoto tlačítka s makrem obsahujícím příkazy, které se mají provést při každém kliknutí na toto tlačítko.

Makra Accessu si je možné představit jako zjednodušený programovací jazyk, ve kterém vytváříte kód tak, že sestavujete seznam akcí k provedení. Při vytváření makra vyberete jednotlivé akce v rozevíracím seznamu a pak pro každou z nich vyplníte požadované informace. Makra umožňují přidávat funkce do formulářů, sestav a ovládacích prvků bez zápisu kódu v modulu VBA. Makra nabízejí podmnožinu příkazů, které jsou dostupné v jazyce VBA, a pro většinu lidí je jednodušší vytvořit makro než napsat kód jazyka VBA.

Makro se vytváří pomocí Tvůrce maker, který je znázorněný na následujícím obrázku.

Tvůrce maker v Accessu 2010

Poznámka: Upozorňujeme, že v Accessu 2007 vypadal Tvůrce maker jinak než na obrázku nahoře. Tvůrce maker v Accessu 2007 byl posloupností řádků a sloupců, ve kterých byly uvedené různé akce makra.

Postup pro zobrazení Tvůrce maker:

  • Na kartě Vytvoření klikněte ve skupině Makra a kód na tlačítko Makro.

Začátek stránky

Základní informace o kódu jazyka VBA

Podobně jako makra i jazyk VBA umožňuje přidávat do Accessu automatizaci a další funkce. Jazyk VBA je možné rozšiřovat pomocí ovládacích prvků jiných dodavatelů a můžete si pro svoje konkrétní potřeby psát vlastní funkce a procedury.

Rychlým způsobem, jak začít s programováním v jazyce VBA, je napřed vytvořit makro Accessu a pak ho převést do kódu jazyka VBA. Pokyny pro tento postup obsahuje část Převod maker do kódu jazyka VBA. Tato funkce vytvoří nový modul VBA, který provádí operace odpovídající těm v makru. Otevře také Visual Basic Editor, abyste mohli začít tuto proceduru upravovat. Při práci ve Visual Basic Editoru můžete kliknout na klíčová slova a pak stisknutím klávesy F1 spustit nápovědu pro vývojáře v Accessu a získat tak další informace o jednotlivých klíčových slovech. Můžete pak nápovědu pro vývojáře v Accessu prozkoumat a objevit nové příkazy, které vám pomůžou provádět požadované programovací úlohy.

Začátek stránky

Převod maker do kódu jazyka VBA

Access umožňuje automaticky převádět makra na moduly nebo moduly třídy jazyka VBA. Můžete převádět makra, která jsou připojená k formuláři nebo sestavě, bez ohledu na to, jestli existují jako samostatné objekty nebo jako vložená makra. Je možné převádět také globální makra, která nejsou připojená ke konkrétnímu formuláři nebo sestavě.

Poznámka: Kód jazyka VBA (Visual Basic Applications) můžete přidat do webové databáze, ale tento kód nejde spustit, když je příslušná databáze spuštěná ve webovém prohlížeči. Pokud webová databáze obsahuje kód jazyka VBA, je před spuštěním tohoto kódu nutné napřed pomocí Accessu tuto webovou databázi otevřít. K provádění programovacích úloh ve webové databázi místo toho používejte makra Accessu.

Převod maker, která jsou připojená k formuláři nebo sestavě

Tento proces převede do jazyka VBA všechna makra, na která odkazuje (nebo která jsou v nich vložená) formulář nebo sestava (nebo některé z jejich ovládacích prvků), a přidá kód jazyka VBA do modulu třídy daného formuláře nebo sestavy. Modul třídy se stane součástí formuláře nebo sestavy a v případě přesunutí nebo zkopírování daného formuláře nebo sestavy se také přesune.

  1. V navigačním podokně klikněte pravým tlačítkem myši na formulář nebo sestavu a potom klikněte na Návrhové zobrazení.

  2. Na kartě Návrh klikněte ve skupině Nástroje na Převést makra formuláře do Visual Basicu nebo na Převést makra sestavy do Visual Basicu.

  3. V dialogovém okně Převést makra formuláře nebo Převést makra sestavy vyberte, jestli má Access přidat ke generovaným funkcím kód pro ošetření chyb. Pokud máte v makrech nějaké komentáře, vyberte také, jestli je chcete zahrnout jako komentáře ve funkcích. Pokračujte kliknutím na Převést.

    Pokud pro daný formulář nebo sestavu neexistuje žádný modul třídy, Access ho vytvoří a přidá do tohoto modulu proceduru pro každé makro, které je k danému formuláři nebo sestavě přidružené. Access také změní událostní vlastnosti formuláře nebo sestavy tak, aby místo maker spouštěly nové procedury jazyka VBA.

  4. Postup pro zobrazení a úpravy kódu jazyka VBA:

    1. Pokud se při otevření formuláře nebo sestavy v návrhovém zobrazení nezobrazuje seznam vlastností, zobrazte ho stisknutím klávesy F4.

    2. V seznamu vlastností klikněte na kartě Událostní do pole libovolné vlastnosti, u které se zobrazuje [Obslužná procedura události], a pak klikněte na tlačítko pro sestavení Obrázek tlačítka . Když chcete zobrazit událostní vlastnosti pro určitý ovládací prvek, kliknutím na tento ovládací prvek ho vyberte. Když chcete zobrazit událostní vlastnosti pro celý formulář nebo sestavu, vyberte v horní části seznamu vlastností v rozevíracím seznamu Formulář nebo Sestava.

      Access otevře Visual Basic Editor a zobrazí obslužnou proceduru události v jejím modulu třídy. Posouváním nahoru nebo dolů můžete zobrazit všechny další procedury, které se v daném modulu třídy nacházejí.

Převod globálních maker

  1. V navigačním podokně klikněte pravým tlačítkem myši na makro, které chcete převést, a potom klikněte na Návrhové zobrazení.

  2. Na kartě Návrh klikněte ve skupině Nástroje na Převést makra do Visual Basicu.

  3. V dialogovém okně Převést makro vyberte požadované možnosti a pak klikněte na Převést.

    Access převede makro a otevře se Visual Basic Editor.

  4. Postup pro zobrazení a úpravy kódu jazyka VBA:

    1. Pokud není ve Visual Basic Editoru zobrazené podokno Project Explorer (Prohlížeč projektu), klikněte v nabídce View (Zobrazení) na Project Explorer (Prohlížeč projektu).

    2. Rozbalte strom pod názvem databáze, ve které pracujete.

    3. V části Modules (Moduly) poklikejte na modul Převedené makro– název makra.

      Visual Basic Editor otevře příslušný modul.

Připojení funkce jazyka VBA k událostní vlastnosti

Při převodu globálního makra do jazyka VBA se kód VBA umístí do standardního modulu. Na rozdíl od modulu třídy není standardní modul součástí formuláře nebo sestavy. S největší pravděpodobností budete chtít tuto funkci přidružit k událostní vlastnosti ve formuláři, v sestavě nebo u ovládacího prvku tak, aby se kód spouštěl přesně v požadovaném okamžiku a na požadovaném místě. Uděláte to buď tak, že zkopírujete kód jazyka VBA do modulu třídy a pak ho přidružíte k událostní vlastnosti, nebo pomocí následující procedury provedete speciální volání z událostní vlastnosti do standardního modulu.

  1. Ve Visual Basic Editoru si poznamenejte název funkce. Pokud jste převáděli například makro s názvem Moje_makro, bude mít funkce název Moje_makro().

  2. Zavřete Visual Basic Editor.

  3. V navigačním podokně klikněte pravým tlačítkem myši na formulář nebo sestavu, ke kterým chcete funkci přidružit, a pak klikněte na Návrhové zobrazení.

  4. Klikněte na ovládací prvek nebo na oddíl, ke kterému chcete funkci přidružit.

  5. Pokud není zobrazený seznam vlastností, zobrazte ho stisknutím klávesy F4.

  6. V seznamu vlastností klikněte na kartě Událostní do pole událostní vlastnosti, ke které chcete funkci přidružit.

  7. Do pole této vlastnosti zadejte symbol Rovná se (=) a za něj název funkce – například =Moje_makro(). Nezapomeňte přidat závorky.

  8. Kliknutím na Uložit na panelu nástrojů Rychlý přístup formulář nebo sestavu uložte.

  9. V navigačním podokně poklikejte na formulář nebo sestavu a otestujte, jestli kód funguje požadovaným způsobem.

Teď tedy znáte základní postup pro přidání kódu jazyka VBA do databáze. Tento článek obsahuje jenom základy, které jsou nutné k tomu, abyste dokázali začít pracovat. Pro pomoc při získávání programovacích dovedností existuje celá spousta užitečných referenčních publikací a online zdrojů.

Začátek stránky

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor. Vypadá to, že bude užitečné, když vás spojíme s některým z našich agentů z podpory Office.

×