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

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 s orientací na programovací nástroje v Access.

V tomto článku

Co je to programování?

V Access je programování proces přidávání funkcí do databáze pomocí Access maker nebo kódu jazyka VBA (Visual Basic for 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 matoucí pro Access uživatele, protože v Access termín "makro" odkazuje na pojmenovanou kolekci akcí makra, kterou můžete sestavit pomocí Tvůrce maker. Access akce makra představují pouze 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. Nezapomeňte, že v článcích nápovědy Access se makra Access 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 mohou být také aktivovány faktory mimo Access, jako jsou systémové události, nebo makra nebo procedury, které jsou připojeny 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

Access obsahuje mnoho nových akcí maker, které umožňují vytvářet výkonnější makra, než můžete vytvořit pomocí starších verzí Access. 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. Ve starších verzích Access jsou tyto typy funkcí dostupné pouze 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žijte předdefinované funkce nebo vytvořte vlastní funkce,    Access zahrnuje mnoho předdefinovaných funkcí, jako je například funkce IPmt , která vypočítá 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:    Akci Spustit Aplikaci v makrech můžete provést a spustit jiný program (například Microsoft Excel) v rámci Access, ale makro nemůžete použít k provádění dalších akcí mimo Access. 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 Access (.accdb) průvodce vytvoří makro, které je vložené ve vlastnosti OnClick 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 formuláře zobrazte kliknutím na šipku dolů galerii Ovládací prvky a ujistěte se, že je vybraná možnost Použít průvodce ovládacími prvky .

  3. Na kartě Návrh formuláře klikněte v galerii Ovládací prvky na 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 a zobrazte seznam všech obrázků příkazového tlačítka, které Access poskytují, nebo klikněte na Procházet a vyberte obrázek, který je 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. Ve 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ž budete hotovi, na kartě Návrh makra klikněte ve skupině Zavřít na Zavřít a zavřete Tvůrce maker. Pokud Access zobrazí výzvu k uložení změn a aktualizaci vlastnosti, uložte změny kliknutím na Ano nebo kliknutím na Tlačítko Ne změny odmítněte.

  10. Na kartě Návrh formuláře klikněte ve skupině Zobrazení na položku Zobrazení a potom na položku 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.

Je užitečné si Access makra představit jako zjednodušený programovací jazyk, ve kterém vytváříte kód sestavením seznamu akcí, které se mají provést. 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

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 umožňuje jazyk VBA do aplikace Access přidat 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 nejprve vytvořit makro Access a pak ho převést na kód 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 v editoru jazyka Visual Basic můžete kliknout na klíčová slova a stisknout klávesu F1. Tím spustíte Access nápovědu pro vývojáře a dozvíte se další informace o jednotlivých klíčových slovech. Pak můžete prozkoumat Access nápovědě pro vývojáře a objevit nové příkazy, které vám pomůžou s prováděním požadovaných programovacích úloh.

Začátek stránky

Převod maker do kódu jazyka VBA

K automatickému převodu maker na moduly jazyka VBA nebo moduly tříd můžete použít Access. 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ě.

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 formuláře klikněte ve skupině Nástroje na možnost Převést makra formuláře do jazyka Visual Basic nebo Převést makra sestavy do jazyka Visual Basic.

  3. V dialogovém okně Převést makra formulářů nebo Převést makra sestavy vyberte, jestli chcete Access přidat kód pro zpracování chyb do funkcí, které generuje. 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 formulář nebo sestavu neexistuje žádný modul třídy, Access ho vytvoří a přidá do modulu proceduru pro každé makro přidružené k formuláři nebo sestavě. Access také změní vlastnosti událostí 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. Na kartě Událost v seznamu vlastností klikněte do libovolného pole vlastností s textem [Event Procedure] (Procedura události) a potom klikněte na tlačítko 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í proceduru události v 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 maker klikněte ve skupině Nástroje na převést makra na Visual Basic.

  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 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ď znáte základní kroky pro přidání kódu VBA do databáze. Tento článek popisuje pouze základní informace o tom, jak začít. existuje mnoho vynikajících referenčních knih a online zdrojů, které vám pomohou rozvíjet své programovací dovednosti.

Viz také

Vytvoření makra uživatelského prostředí

Spuštění makra aplikace Access pomocí klávesové zkratky

Automatizace událostí při spuštění pomocí makra

Vytvoření makra, které se spustí při otevření databáze

Pořadí událostí pro databázové objekty

Začátek stránky

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.