Jak zautomatyzować proces wybierania drukarki do raportu w programie Microsoft Access

Uwaga

Nazwa usługi Office 365 ProPlus została zmieniona na Aplikacje usługi Microsoft 365 dla przedsiębiorstw. Aby uzyskać więcej informacji na temat tej zmiany, przeczytaj ten wpis w blogu.

Poziom podstawowy: Wymagana znajomość interfejsu użytkownika na komputerach mających jednego użytkownika.

Ten artykuł dotyczy pliku bazy danych programu Microsoft Access (mdb) lub pliku bazy danych programu Microsoft Access (accdb).

Podsumowanie

Aby wydrukować raport na konkretnej drukarce, można wybrać drukarkę i wszystkie opcje drukowania ręcznie lub zautomatyzować ten proces tak, aby jednym kliknięciem przycisku można było przełączyć drukarki, a następnie wydrukować raport przy użyciu wstępnie zdefiniowanych opcji. W tym artykule wyjaśniono, jak zautomatyzować proces wyboru drukarki.

Więcej informacji

W tej procedurze użyto dwóch przykładów: drukowania na drukarce laserowej i drukowania na drukarce igłowej. Możesz podstępować konkretne drukarki, których chcesz użyć. Aby zautomatyzować proces wyboru drukarki dla określonego raportu, wykonaj następujące czynności:

  1. Utwórz trzy następujące raporty:

    • rptLaserPrinter
    • rptDotMatrix
    • rptMyReport
      NOTE rptMyReport reprezentuje rzeczywisty raport, który chcesz wydrukować.
  2. Aby ustawić opcje drukarki, wykonaj następujące czynności:

    1. Otwórz program rptLaserPrinter w widoku projektu.

    2. W menu Plik kliknij polecenie Drukuj.

      Uwaga W programie Access 2007 lub nowszej wersji kliknij przycisk pakietu Microsoft Office, a następnie kliknij pozycję Drukuj.

  3. W oknie dialogowym Drukowanie w polu Nazwa kliknij drukarkę laserową, której chcesz użyć, a następnie kliknij przycisk OK.

  4. Kliknij pozycję Właściwości, ustaw dowolne opcje drukowania, takie jak orientacja i rozmiar papieru, a następnie kliknij przycisk OK.

  5. Powtórz kroki od a do d dla rptDotMatrix. Kliknij drukarkę igłową w kroku c.

  6. W oknie Baza danych kliknij pozycję Moduły, kliknij pozycję Nowy, a następnie wpisz następującą funkcję:

    Uwaga W programie Access 2007 lub nowszej wersji kliknij pozycję Moduł w grupie Inne na karcie Tworzenie.

Function ChangePrinter(rptToChange As String, rptPrinter As String)

Dim rpt1 As Report, rpt2 As Report

DoCmd.OpenReport rptToChange, acViewDesign
   DoCmd.OpenReport rptPrinter, acViewDesign

Set rpt1 = Reports(rptToChange)
   Set rpt2 = Reports(rptPrinter)

rpt1.PrtDevNames = rpt2.PrtDevNames

DoCmd.Close acReport, rptPrinter, acSaveNo
   DoCmd.OpenReport rptToChange, acViewPreview
End Function

UWAGA Funkcja ChangePrinter kopiuje właściwość PrtDevNames z jednego raportu do drugiego. Następnie możesz skopiować opcje drukowania ustawione dla raportów rptLaserPrinter i rptDotMatrix do określonego raportu, który chcesz wydrukować.

UWAGA Właściwość "acSaveNo" jest używana w wierszu "DoCmd.Close acReport, rptPrinter, acSaveNo" kodu pokazanego wcześniej w tej sekcji. W przypadku pomiania tej opcji i zapisania w projekcie raportu wartości PrtDevName drukarki nieostatniej raport nie będzie mógł jej znaleźć, gdy zostanie ona uruchomiona następnym razem. Zostanie wyświetlony następujący komunikat o błędzie:

This document was previously formatted for the printer <PrinterName> on <Port>; but that printer isn't available. Do you want to use the default printer <DefaultPrinterName> on <Port>?   
  1. Zapisz moduł jako Moduł1, a następnie zamknij Edytor Visual Basic.

  2. Utwórz następujący formularz:

    Form: frmForm1
    ------------------------------
    RecordSource: Unbound
    
    Control Type: Command Button
    Name: cmdLaser
    Caption: Laser
    Control Type: Command Button
    Name: cmdDotMatrix
    Caption: Dot Matrix
    
  3. W menu Widok kliknij polecenie Kod.

    Uwaga W programie Access 2007 lub nowszym kliknij pozycję Wyświetl kod w grupie Narzędzia na karcie Projektowanie.

  4. W Edytorze Visual Basic wpisz następujące procedury:

Private Sub cmdLaser_Click ()

Call ChangePrinter("rptMyReport", "rptLaserPrinter")
  DoCmd.PrintOut

End Sub

Private Sub cmdDotMatrix_Click ()

Call ChangePrinter("rptMyReport", "rptDotMatrix")
  DoCmd.PrintOut

End Sub

  1. Zamknij Edytor Visual Basic, a następnie zmień właściwość Przy kliknięciu obu przycisków poleceń na [Procedura zdarzenia]. Aby tak zrobić, wykonaj następujące kroki:

    1. W widoku projektu kliknij przycisk polecenia, a następnie kliknij polecenie Właściwości w menu Widok.

      Uwaga W programie Access 2007 lub nowszej wersji kliknij przycisk polecenia w widoku projektu, a następnie kliknij pozycję Arkusz właściwości w grupie Narzędzia na karcie Projektowanie.

    2. Kliknij kartę Zdarzenie, kliknij właściwość Przy kliknięciu, kliknij strzałkę w dół, a następnie kliknij pozycję [Procedura zdarzenia].

  2. Aby wydrukować raport rptMyReport do konkretnej drukarki, otwórz pole frmForm1 w widoku formularza, a następnie kliknij odpowiedni przycisk.

Informacje

Aby uzyskać więcej informacji na temat sterowania drukarką z programu Microsoft Access, odwiedź następującą witrynę internetową firmy Microsoft:

Właściwość PrtDevMode