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:
Skapa följande tre rapporter:
- rptLaserPrinter
- rptDotMatrix
- rptMyReport
Anteckning
rptMyReport representerar den faktiska rapport som du vill skriva ut.
Så här ställer du in skrivaralternativ:
Öppna rptLaserPrinter i designvyn.
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.
I dialogrutan Skriv ut klickar du på den laserskrivare du vill använda i rutan Namn och klickar sedan på OK.
Klicka på Egenskaper , ange de utskriftsalternativ du vill använda, till exempel orientering och pappersstorlek, och klicka sedan på OK.
Upprepa steg a till d för rptDotMatrix. Klicka på matrisskrivaren i steg c.
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 på 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 FunctionAnteckning
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, acSaveNoraden 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> ?
Spara modulen som Modul1 och avsluta sedan Visual Basic Editor.
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 MatrixKlicka på Kod på Visa-menyn.
Anteckning
I Access 2007 och senare klickar du på Visa kod i gruppen Verktyg på fliken Design.
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 SubAvsluta Visual Basic redigeraren och ändra egenskapen Vid klickning för båda kommandoknapparna till [Händelseprocedur]. Gör så här:
I designvyn klickar du på kommandoknappen och sedan på Egenskaper på Visa-menyn.
I Access 2007 eller en senare version klickar du på kommandoknappen i designvyn och sedan på Egenskapssida i gruppen Verktyg på fliken Design.
Klicka på fliken Händelse, klicka på egenskapen Vid klickning, klicka på nedpilen och sedan på [Händelseprocedur].
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.