Så här automatiserar du processen att välja skrivare för en rapport i Microsoft Access

Anteckning

Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.

Nybörjare: Kräver kunskap om användargränssnittet på enanvändardatorer.

Den här artikeln gäller en Microsoft Access-databasfil (.mdb) eller en Microsoft Access-databasfil (.accdb).

Sammanfattning

Om du vill skriva ut en rapport till en viss skrivare kan du manuellt välja skrivaren och alla utskriftsalternativ, eller så kan du automatisera processen så att du med ett klick på en knapp kan byta skrivare och sedan skriva ut rapporten med de alternativ som du har fördefinierat. I den här artikeln förklaras hur du automatiserar processen för val av skrivare.

Mer information

I den här proceduren används två exempel: skriva ut till en laserskrivare och skriva ut till en matrisskrivare. Du kan ersätta de skrivare som du vill använda. Gör så här för att automatisera processen med skrivarval för en viss rapport:

  1. Skapa följande tre rapporter:

    • rptLaserPrinter
    • rptDotMatrix
    • rptMyReport
      NOTE rptMyReport representerar den faktiska rapport som du vill skriva ut.
  2. Så här ställer du in skrivaralternativ:

    1. Öppna rptLaserPrinter i designvyn.

    2. Klicka på Skriv ut i menyn Arkiv.

      Obs! I Access 2007 eller en senare version klickar du på Microsoft Office-knappen och sedan på Skriv ut.

  3. I dialogrutan Skriv ut klickar du på den laserskrivare du vill använda i rutan Namn och klickar sedan på OK.

  4. Klicka på Egenskaper, ange de utskriftsalternativ du vill använda, till exempel orientering och pappersstorlek, och klicka sedan på OK.

  5. Upprepa steg a till d för rptDotMatrix. Klicka på matrisskrivaren i steg c.

  6. I fönstret Databas klickar du på Moduler, klickar på Nytt och skriver sedan följande funktion:

    Obs! I Access 2007 eller en senare version klickar du Modul i gruppen Övrigt på fliken Skapa.

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

OBS! Funktionen ChangePrinter kopierar egenskapen PrtDevNames från en rapport till en annan. Du kan sedan kopiera de utskriftsalternativ som du har angett för rapporterna rptLaserPrinter och rptDotMatrix till en specifik rapport som du vill skriva ut.

OBS! Egenskapen "acSaveNo" används i raden "DoCmd.Close acReport, rptPrinter, acSaveNo" i koden som visas tidigare i det här avsnittet. Om du inte använder det här alternativet och sparar PrtDevName för en nondefault-skrivare i rapportdesignen kommer rapporten inte att kunna hitta skrivaren när den körs nästa gång. Du får följande felmeddelande:

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. Spara modulen som Modul1 och avsluta Visual Basic Editor.

  2. Skapa följande formulär:

    Form: frmForm1
    ------------------------------
    RecordSource: Unbound
    
    Control Type: Command Button
    Name: cmdLaser
    Caption: Laser
    Control Type: Command Button
    Name: cmdDotMatrix
    Caption: Dot Matrix
    
  3. Klicka på KodVisa-menyn.

    Obs! I Access 2007 och senare klickar du på Visa kod i gruppen Verktyg på fliken Design.

  4. Skriv följande i Visual Basic Editor:

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. Avsluta Visual Basic Editor och ändra egenskapen Vid klickning för båda kommandoknapparna till [Händelseprocedur]. Gör så här:

    1. I designvyn klickar du på kommandoknappen och sedan på EgenskaperVisa-menyn.

      Obs! I Access 2007 eller en senare version klickar du på kommandoknappen i designvyn och sedan på Egenskapssida i gruppen Verktyg på fliken Design.

    2. Klicka på fliken Händelse, klicka på egenskapen Vid klickning, klicka på nedpilen och sedan på [Händelseprocedur].

  2. Om du vill skriva ut rptMyReport till en specifik skrivare öppnar du frmForm1 i formulärvyn och klickar sedan på lämplig knapp.

Referenser

Mer information om hur du styr din skrivare från Microsoft Access finns på följande Microsoft-webbplats:

Egenskapen PrtDevMode