Zrušení tisku při nepřítomnosti záznamů v sestavě

Platí pro
Access pro Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Ve výchozím nastavení můžete vytisknout sestavy, které neobsahují žádné záznamy. Tento problém můžete vyřešit tak, že ke zjištění chybějících záznamů v sestavě použijete makro nebo kód jazyka VBA (Microsoft jazyk Visual Basic for Application) a potom operaci tisku zrušíte. Postupy v tomto článku vysvětlují použití obou technik.

V tomto článku

Pravděpodobně budete chtít zrušit tisk sestavy, která neobsahuje žádné záznamy. Pokud například začínáte prodávat nový produkt, pravděpodobně nastane období, kdy jste ještě nezaznamenali žádný prodej. Měli byste proto zvážit možnost, že některé z vašich sestav neobsahují žádné podrobné záznamy a že agregační funkce, jako je třeba funkce Počet , nemají co počítat. Chcete-li takový výskyt bez problémů zvládnout, můžete vytvořit makro, které tiskovou úlohu zruší. Můžete také přidat několik řádků pečlivě umístěného kódu jazyka VBA a udělat to samé. VBA je programovací jazyk, který používá aplikace Access.

Makro nebo kód jazyka VBA přidáte do obslužné procedury události On No Data (Žádná data ). Access spustí událost Při žádných datech vždy, když spustíte sestavu, která neobsahuje žádné záznamy. Pokud sestava neobsahuje žádná data, makro a kód jazyka VBA popsané v tomto článku zobrazí příslušnou zprávu a zruší tisk sestavy. Když přidáte makro nebo kód jazyka VBA do procedury události Při chybějícím datech , spustí se makro nebo kód jazyka VBA při každém otevření sestavy, která neobsahuje žádné záznamy. Po kliknutí na tlačítko OK , kterým zavřete některou z výstrah, makro také zavře prázdnou sestavu. Když do sestavy přidáte makro nebo kód jazyka VBA, prázdná sestava se při pokusu o její zobrazení v zobrazení sestavy nebo v zobrazení rozložení neotevře, můžete ji ale otevřít v návrhovém zobrazení.

Zrušení tisku pomocí makra

Makra popsané v této části zobrazí výstrahu při pokusu o tisk prázdné sestavy. Po kliknutí na tlačítko OK zavřete okno zprávy, makro automaticky zruší operaci tisku. Pokud upozornění nezadáte, bude to vypadat, jako by se při pokusu o tisk sestavy nic nedělo, což pravděpodobně uživatele sestavy zmate.

Vytvoření makra

  1. V navigačním podokně klikněte pravým tlačítkem myši na sestavu, kterou chcete změnit, a klikněte na Návrhové zobrazení.
  2. Na kartě Návrh ve skupině Zobrazit nebo skrýt klikněte na Seznam vlastností.
    – nebo –
    V závislosti na místním a jazykovém nastavení poklikejte na pole v levém nebo pravém horním rohu sestavy.
  3. Klikněte na kartu Událost a v poli Při žádných datech klikněte na tlačítko Tvůrce .
    Zobrazí se dialogové okno Zvolit tvůrce .
  4. Klikněte na Tvůrce maker a potom na OK.
    Spustí se návrhář maker a zobrazí prázdné makro.
  5. V rozevíracím seznamu akcí makra v okně návrhu makra vyberte ze seznamu položku MessageBox .
  6. do pole Message (Zpráva ) zadejte text upozornění.
    Mohli byste například zadat následující údaje: Neexistují žádné záznamy, které by bylo třeba nahlásit.
  7. Volitelně můžete změnit hodnotu argumentu v poli ZvukovýSignál z Ano na Ne a v seznamu Typ vybrat typ ikony, která se má zobrazit ve výstražné zprávě.
  8. Do pole Název zadejte název výstražné zprávy.
    Můžete například zadat Žádné záznamy.
  9. Vyberte rozevírací seznam akcí makra pod akcí MessageBox a pak vyberte CancelEvent.
  10. Na kartě Návrh klikněte ve skupině Zavřít na Uložit.
  11. Na kartě Návrh, ve skupině Zavřít, klikněte na příkaz Zavřít. Zobrazí-li se výstraha s dotazem, zda chcete uložit změny makra a vlastnosti sestavy, klikněte na tlačítko Ano, zavřete sestavu, uložte změny, pokud se zobrazí výzva, a pokračujte dalším postupem jejich vyzkoušení.

Otestování makra

  • V navigačním podokně klikněte pravým tlačítkem myši na sestavu obsahující makro a klikněte na příkaz Tisk. V závislosti na zvolených možnostech zobrazí aplikace Access výstrahu.
    Po kliknutí na tlačítko OK pro zavření zprávy akce ZrušitUdálost zastaví operaci tisku. Vzhledem k tomu, že jste neurčili žádnou jinou událost (například otevření sestavy pro zobrazení), sestava se zavře.

Začátek stránky

Zrušení tisku pomocí kódu VBA

Kód jazyka VBA, který je zde popsán, se velmi podobá makru popsanému v předchozí části – při otevření prázdné sestavy zobrazí upozornění. Po zavření výstražné zprávy operaci tisku zruší.

Přidání kódu jazyka VBA

  1. V navigačním podokně klikněte pravým tlačítkem myši na sestavu, kterou chcete změnit, a klikněte na Návrhové zobrazení.

    Poznámka

    Pro provedení tohoto postupu použijte sestavu, která neobsahuje žádné záznamy.

  2. Na kartě Návrh ve skupině Zobrazit nebo skrýt klikněte na Seznam vlastností.
    – nebo –
    V závislosti na místním a jazykovém nastavení poklikejte na pole v levém nebo pravém horním rohu sestavy.

  3. Klikněte na kartu Událost a v poli Při žádných datech klikněte na tlačítko Tvůrce .
    Zobrazí se dialogové okno Zvolit tvůrce .

  4. Klikněte na Tvůrce kódu a potom klikněte na OK.
    Spustí se Visual Basic Editor a zobrazí prázdnou obslužnou proceduru události.

  5. Ve Visual Basic Editoru zadejte následující kód, aby Report_NoData procedura po dokončení vypadala přesně takto:

    Private Sub Report_NoData (Cancel As Integer)
      MsgBox "There are no records to report", vbExclamation, "No Records"
      Cancel = True
    End Sub
    
    
  6. Po dokončení klikněte na Soubor a potom klikněte na Uložit.

  7. Klikněte na Soubor a potom na Zavřít a vraťte se do Microsoft Accessu.

  8. Zavřete otevřenou sestavu a kliknutím na Ano potvrďte uložení.

  9. V navigačním podokně klikněte pravým tlačítkem myši na sestavu, kterou jste právě změnili, a klikněte na příkaz Tisk. V závislosti na zvolených možnostech zobrazí aplikace Access výstrahu.

Procedura Report_NoData používá funkci MsgBox k zobrazení zprávy Nejsou žádné záznamy k hlášení a tlačítka OK . Po kliknutí na tlačítko OK bude řádek "Zrušit=Pravda" v postupu instruovat aplikaci Access, aby sestavu zrušil. Zrušit je argument, který se automaticky předává obslužné proceduře události a Access ho po dokončení procedury události vždy zkontroluje.

Začátek stránky