Udostępnij za pośrednictwem


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

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 bazy danych programu Microsoft Access (accdb).

Podsumowanie

Jeśli chcesz wydrukować raport na określonej drukarce, możesz ręcznie wybrać drukarkę i wszystkie opcje drukowania lub zautomatyzować proces, aby za pomocą kliknięcia przycisku można przełączać drukarki, a następnie drukować raport za pomocą opcji wstępnie zdefiniowanych. W tym artykule wyjaśniono, jak zautomatyzować proces wyboru drukarki.

Więcej informacji

W tej procedurze użyto dwóch przykładów:

  • Drukowanie na drukarce laserowej.
  • Drukowanie na drukarce z macierzą kropkową.

Można zastąpić konkretne drukarki, których chcesz użyć. Aby zautomatyzować proces wybierania drukarek dla określonego raportu, wykonaj następujące kroki:

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

    • rptLaserPrinter
    • rptDotMatrix
    • rptMyReport

    Uwaga

    rptMyReport reprezentuje rzeczywisty raport, który chcesz wydrukować.

  2. Aby ustawić opcje drukarki, wykonaj następujące kroki:

    1. Otwórz rptLaserPrinter w widoku projektu.

    2. W menu Plik kliknij polecenie Drukuj.

      Uwaga

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

    3. W oknie dialogowym Drukowanie kliknij drukarkę laserową, która ma być używana w polu Nazwa , 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ę z macierzą kropkową w kroku c.

  3. 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 innego. Następnie można skopiować opcje drukowania ustawione dla raportów rptLaserPrinter i rptDotMatrix do określonego raportu, który chcesz wydrukować.

    Właściwość acSaveNo jest używana DoCmd.Close acReport, rptPrinter, acSaveNo w wierszu kodu. Jeśli nie używasz tej opcji i zapiszesz w projekcie raportu wartość PrtDevName drukarki innej niż domyślna, raport nie będzie mógł znaleźć drukarki po następnym uruchomieniu. Zostanie wyświetlony następujący komunikat o błędzie:

    Ten dokument został wcześniej sformatowany dla drukarki <PrinterName> na <porcie>, ale ta drukarka nie jest dostępna. Czy chcesz użyć domyślnej drukarki <DefaultPrinterName> na <porcie>?

  4. Zapisz moduł jako moduł Module1, a następnie zamknij Redaktor Visual Basic.

  5. 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
    
  6. W menu Widok kliknij pozycję Kod.

    Uwaga

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

  7. W Redaktor 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
    
  8. Zamknij Redaktor Visual Basic, a następnie zmień właściwość On Click obu przycisków poleceń na [Event Procedure]. Aby tak zrobić, wykonaj następujące kroki:

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

      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ść Kliknij , kliknij strzałkę w dół, a następnie kliknij pozycję [Procedura zdarzeń].

  9. Aby wydrukować rptMyReport na określonej drukarce, otwórz plik frmForm1 w widoku Formularz, a następnie kliknij odpowiedni przycisk.

Informacje

Aby uzyskać więcej informacji na temat kontrolowania drukarki z programu Microsoft Access, zobacz PrtDevMode, właściwość.