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.
  • 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

    Anteckning

    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.

      Anteckning

      I Access 2007 eller en senare version klickar du på Microsoft Office 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 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.

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

    Anteckning

    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
    

    Anteckning

    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.

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

    Det här dokumentet har tidigare formaterats för skrivaren <PrinterName> på , men den skrivaren är inte <Port> tillgänglig. Vill du använda standardskrivaren <DefaultPrinterName> på <Port> ?

  4. Spara modulen som Modul1 och avsluta sedan Visual Basic Editor.

  5. 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
    
  6. Klicka på KodVisa-menyn.

    Anteckning

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

  7. I Visual Basic Editor skriver du följande:

    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. Avsluta Visual Basic redigeraren 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.

      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].

  9. 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 skrivaren från Microsoft Access finns i Egenskapen PrtDevMode.