Když chcete mít v Accessu dotaz, který bude při každém spuštění žádat o zadání, můžete vytvořit parametrický dotaz.
Můžete také vytvořit formulář pro shromáždění hodnot parametrů, které budou použité k omezení záznamů vrácených v dotazech, formulářích nebo sestavách. Tento článek vysvětluje, jak používat formuláře k vylepšení použití parametrů v dotazech, formulářích a sestavách.
V tomto článku
Základní informace
V Accessu můžete pomocí kritérií v parametrickém dotazu omezit sadu záznamů, které tento dotaz vrátí. Můžete zjistit, že dialogová okna zobrazovaná parametrickými dotazy nevyhovují vašim požadavkům. V takových případech můžete vytvořit formulář, který bude lépe splňovat vaše požadavky na shromažďování parametrů. Tento článek popisuje, jak vytvořit formulář, který shromažďuje parametry pro dotaz nebo sestavu. Tento článek předpokládá, že umíte vytvářet dotazy a definovat parametry v dotazech. Než budete pokračovat, měli byste alespoň umět vytvořit výběrový dotaz.
Tento článek obsahuje příklady použití parametrů v dotazech. Neobsahuje vyčerpávající informace o zadávání kritérií.
-
Další informace o tom, jak vytvořit výběrový dotaz, najdete v článku Vytvoření jednoduchého výběrového dotazu.
-
Další obecné informace o dotazech najdete v článku Úvod do dotazů.
-
Další informace o definování parametrů v dotazech najdete v článku Požádání uživatele o zadání kritérií při spuštění dotazu pomocí parametrů.
-
Další informace o zadávání kritérií v dotazech najdete v článku Příklady kritérií dotazů.
Použití parametrů v dotazech
Použití parametru v dotazu je jednoduché jako vytvoření dotazu, který používá kritéria. Můžete navrhnout dotaz, který vás vyzve k zadání jednoho údaje, třeba čísla položky, nebo k zadání více než jednoho údaje, například dvou kalendářních dat. Parametrický dotaz zobrazí pro každý parametr samostatné dialogové okno, které vás vyzve k zadání hodnoty tohoto parametru.
Přidání parametru do dotazu
-
Vytvořte výběrový dotaz a pak ho otevřete v návrhovém zobrazení.
-
V řádku Kritéria pole, pro které chcete použít parametr, zadejte text, který se má zobrazit v dialogovém okně parametru, a dejte ho do hranatých závorek, například:
[Počáteční datum]
Po spuštění dotazu se zobrazí dialogové okno s výzvou k zadání parametru (bez hranatých závorek).
Při zadávání výzev pro parametry můžete také používat výrazy, například:
Between [Počáteční datum] And [Koncové datum]
Poznámka: Pro každou výzvu pro parametr se zobrazí samostatné dialogové okno. V druhém příkladu se zobrazí dvě dialogové okna – jedno pro Počáteční datum a jedno pro Koncové datum.
-
Zopakujte krok 2 pro všechna pole, ke kterým chcete přidat parametry.
Předchozí postup můžete použít k přidání parametru do libovolného z těchto typů dotazů: výběrový, křížový, přidávací, vytvářecí nebo aktualizační.
Parametr můžete přidat také do sjednocovacího dotazu. Postupujte takto:
-
Otevřete sjednocovací dotaz v zobrazení SQL.
-
Přidejte klauzuli WHERE obsahující všechna pole, pro která chcete zobrazit výzvu k zadání parametru.
Pokud už klauzule WHERE existuje, zjistěte, jestli už jsou v ní pole, u kterých chcete použít výzvu pro parametr, a jestli nejsou, přidejte je.
-
Místo kritéria použijte v klauzuli WHERE výzvu pro parametr.
Zadání datových typů parametrů
Měli byste také zadat, jaký datový typ by měl parametr přijímat. Datový typ můžete zadat pro libovolný parametr, ale zvlášť důležité je nastavit ho pro číselná data, údaje s uvedením měny nebo kalendářní data a časy. Pokud pro parametr zadáte přijímaný datový typ, zobrazí se uživatelům užitečnější chybová zpráva v případě, že zadají chybný datový typ, například text místo očekávané částky s uvedením měny.
Poznámka: Pokud je parametr nakonfigurovaný tak, aby přijímal textová data, bude jakékoli zadání považováno za text a nezobrazí se žádná chybová zpráva.
Pokud chcete zadat datový typ parametrů v dotazu, postupujte takto:
-
Při otevření dotazu v návrhovém zobrazení klikněte na kartě Návrh ve skupině Zobrazit či skrýt na položku Parametry.
-
V dialogovém okně Parametry dotazu zadejte ve sloupci Parametr výzvu pro každý parametr, pro který chcete zadat datový typ. Ověřte, zda každý parametr odpovídá výzvě použité na řádku Kritéria v návrhové mřížce dotazu.
-
Ve sloupci Datový typ vyberte datový typ pro každý parametr.
Vytvoření formuláře, který shromažďuje parametry
Parametrické dotazy sice mají předdefinované dialogové okno, které shromažďuje parametry, ale poskytují jenom základní funkce. Když ke shromažďování parametrů budete používat formulář, získáte následující funkce:
-
Možnost používat ovládací prvky specifické pro určité datové typy, například kalendářní ovládací prvky pro data
-
Stálost shromážděných parametrů, díky které je můžete použít ve více než jednom dotazu
-
Možnost poskytnout pro shromažďování parametrů ovládací prvek pole se seznamem nebo seznam, který umožňuje vybírat v seznamu dostupných hodnot
-
Možnost poskytnout ovládací prvky pro jiné funkce, jako je otevření nebo aktualizace dotazu
Následující video ukazuje, jak můžete pro shromažďování parametrů dotazu vytvořit jednoduchý formulář, místo abyste používali dialogová okna normálně spojená s parametrickými dotazy.
Vytvoření formuláře, který shromažďuje parametry pro sestavu
Tento scénář můžete řešit několika způsoby, ale my ukážeme jenom techniku používající hlavně makra. Když chcete vytvořit formulář, který shromažďuje parametry pro sestavu, postupujte podle těchto pokynů.
Krok 1: Vytvoření formuláře, který přijímá zadání
-
Na kartě Vytvoření klikněte ve skupině Formuláře na tlačítko Návrh formuláře.
-
V návrhovém zobrazení stiskněte klávesu F4, aby se zobrazil seznam vlastností, a potom nastavte vlastnosti formuláře podle následující tabulky.
Vlastnost
Nastavení
Titulek
Zadejte název, který se má zobrazit v záhlaví formuláře.
Výchozí zobrazení
Samostatný formulář
Povolit formulářové zobrazení
Ano
Povolit zobrazení Datový list
Ne
Povolit zobrazení kont. tabulky
Ne
Povolit zobrazení kont. grafu
Ne
Posuvníky
Žádné
Volič záznamů
Ne
Navigační tlačítka
Ne
Styl okraje
Dialogový
-
Pro každý parametr, který má formulář shromažďovat, klikněte na kartě Návrh ve skupině Ovládací prvky na položku Textové pole.
-
Nastavte vlastnosti textových polí podle následující tabulky.
Vlastnost
Nastavení
Název
Zadejte název, který popisuje příslušný parametr, například Počáteční datum.
Formát
Zvolte formát odpovídající datovému typu pole parametru. Například pro datové pole vyberte Datum (obecné).
-
Uložte formulář a dejte mu název, například frmKritéria.
Krok 2: Vytvoření modulu kódu, který kontroluje, jestli už je formulář pro parametry načtený
-
Na kartě Vytvoření klikněte ve skupině Makra a kód na tlačítko Modul.
Otevře se nový modul v editoru jazyka Visual Basic.
-
V editoru jazyka Visual Basic napište nebo do něj zkopírujte následující kód:
Function IsLoaded(ByVal strFormName As String) As Boolean Dim oAccessObject As AccessObject Set oAccessObject = CurrentProject.AllForms(strFormName) If oAccessObject.IsLoaded Then If oAccessObject.CurrentView <> acCurViewDesign Then IsLoaded = True End If End If End Function
-
Uložte modul pod jedinečným názvem a zavřete editor jazyka Visual Basic.
Krok 3: Vytvoření makra, které řídí formulář a sestavu
V Accessu můžeme pomocí submaker definovat všechny potřebné kroky v rámci jediného makra. Vytvoříme čtyři submakra – Otevřít dialog, Zavřít dialog, OK a Zrušit, která budou řídit různé úkoly potřebné pro tento postup. Řiďte se níže uvedeným snímkem obrazovky a vytvořte nové makro s následnými submakry a akcemi. V tomto příkladu jsme formulář pro parametry nazvali frmKritéria. Upravte si makro tak, aby v něm byl název formuláře, který jste dříve vytvořili. Nezapomeňte také kliknout na kartě Návrh na Zobrazit všechny akce, abyste viděli všechny akce makra.
Uložte a zavřete makro. Dejte makru nějaký název, například Makro Rozsah dat.
Krok 4: Přidání příkazových tlačítek OK a Zrušit do formuláře
-
Otevřete v návrhovém zobrazení formulář pro parametry, který jste dříve vytvořili.
-
Ujistěte se, že na kartě Návrh ve skupině Ovládací prvky není vybraná možnost Použít průvodce ovládacími prvky.
-
Na kartě Návrh klikněte ve skupině Ovládací prvky na položku Tlačítko.
-
Umístěte ukazatel pod textová pole na formuláři a kliknutím vytvořte příkazové tlačítko OK.
-
Pokud není zobrazený seznam vlastností, zobrazte ho stisknutím klávesy F4.
-
Nastavte vlastnosti tlačítka OK podle následující tabulky.
Vlastnost
Nastavení
Název
OK
Titulek
OK
Výchozí
Ano
Při kliknutí
Zadejte název makra, například Makro Rozsah dat.OK.
-
Vytvořte příkazové tlačítko Zrušit a nastavte jeho vlastnosti podle následující tabulky.
Vlastnost
Nastavení
Název
Zrušit
Titulek
Zrušit
Při kliknutí
Zadejte název makra, například Makro Rozsah dat.Zrušit.
-
Uložte a zavřete formulář.
Krok 5: Použití dat formuláře jako kritérií dotazu
-
Otevřete v návrhovém zobrazení dotaz, který jste dříve vytvořili.
-
Zadejte kritéria pro data. Použijte objekt Forms , název formuláře a název Ovládací prvek:
-
Když máte například v databázi Accessu (.accdb nebo .mdb) formulář s názvem frmKritéria, použijte v dotazu následující výraz, abyste odkázali na ovládací prvky s názvy Počáteční datum a Koncové datum:
Between [Forms]![frmKritéria]![Počáteční datum] And [Forms]![frmKritéria]![Koncové datum]
-
Krok 6: Přidání akcí makra do událostí sestavy
-
Sestavu, kterou budete chtít použít, otevřete v návrhovém zobrazení.
-
Pokud není zobrazený seznam vlastností, zobrazte ho stisknutím klávesy F4.
-
Zajistěte, aby vlastnost sestavy Zdroj záznamů byla nastavená na parametrický dotaz, který jste dříve definovali.
-
Nastavte další dvě vlastnosti sestavy podle následující tabulky.
Vlastnost
Nastavení
Při otevření
Zadejte název makra, například Makro Rozsah dat.Otevřít dialog.
Při zavření
Zadejte název makra, například Makro Rozsah dat.Zavřít dialog.
Když u sestavy dojde k události Otevřít, spustí Access akce definované v submakru Otevřít dialog, které je součástí objektu Makro Rozsah dat. A podobně – když sestavu zavřete, spustí Access akce definované v submakru Zavřít dialog, které je součástí objektu Makro Rozsah dat.
-
Uložte a zavřete sestavu.
Krok 7: Vyzkoušení
Teď, když jste vytvořili všechny objekty Accessu, můžete vyzkoušet, jak to funguje. Otevřete sestavu v zobrazení sestavy nebo v náhledu a všimněte si, že než Access sestavu zobrazí, otevře se váš formulář pro parametry v dialogovém režimu. Do textových polí, která jste dříve ve formuláři vytvořili, zadejte potřebná kritéria a potom klikněte na příkazové tlačítko OK. Access formulář skryje (nastaví vlastnost Viditelné na hodnotu Ne) a otevře sestavu jenom s daty, která splňují vaše kritéria. Funguje to díky tomu, že parametrický dotaz, na kterém je sestava založená, může načíst hodnoty z ovládacích prvků ve skrytém formuláři. Když sestavu zavřete, Access zavře také formulář pro parametry.