Rapport meerdere malen afdrukken

Status
Niet open voor verdere reacties.

Wim1961

Gebruiker
Lid geworden
23 jun 2007
Berichten
29
Ik heb een variabele "AantalPrints".

Hoe zou ik dat in onderstaand stukje code kunnen invoegen om een rapport automatsch meerdere keren te kunnen afdrukken. Dus het aantal malen dat gelijk is aan de waarde van de variabele? Als de waarde van "AantalPrints" dus 5 is dan wil ik 5 labels afddrukken, als hij 8 is wil ik acht labels afdrukken enz, enz,



Dim stDocName As String

stDocName = "rpt_Sticker"
DoCmd.OpenReport stDocName, acNormal

grt, Wim
 
Daarvoor gebruik je het PrintOut commando:

Code:
Private Sub PrintEtiket_Click()
    'Open het report in Preview modus
    stDocName = "rpt_Sticker"
    DoCmd.OpenReport stDocName, acViewPreview
    'Print opgegeven aantal copieën van het rapport
    DoCmd.PrintOut , , , , 5
End Sub
 
Hallo, dit werkt op zich goed. Als ik de variable invul op de plek van het aantal kopieën gaat dit prima. Nu zou ik alleen graag zien dat er afgedrukt wordt zonder dat het rapport in het beeldscherm verschijnt. Is dit ook mogelijk?

grt, Wim
 
Ben bang van niet. De normale weergave drukt gelijk af, zoals je al gemerkt hebt, en doet dan één exemplaar. Een oplossing zou nog kunnen zijn dat je met een loopje de printopdracht een aantal keer laat draaien.

Code:
Public Function PrintMultipleCopies(strReportName As String, bytNumberOfCopies As Byte)
    Dim bytCounter As Byte
    For bytCounter = 1 To bytNumberOfCopies
        DoCmd.OpenReport strReportName
    Next bytCounter
End Function


Op een formulier zet je dan een knop, die de functie PrintMultipleCopies aanroept:

Code:
Private Sub Knopje_Click()
    Call PrintMultipleReports("rpt_Sticker", 5)
End Sub
 
Hallo Michel,

bovenstaande gaat op zich wel goed, loopt alleen mis zodra ik i.p.v. een fixed aantal een variable invoer. Dus i.p.v.
Call PrintMultipleReports("rpt_Sticker", 5)

dit

Call PrintMultipleReports("rpt_Sticker", AantalLabels)

grt, Wim
 
Dat snap ik wel, want waar komt die waarde AantalLabels vandaan?
 
"LabelAantal" is een variable, die ik aan het begin van de procedure uitreken.
De uitkomst is een getal zonder decimalen.

Deze variable had ik ook ingevuld bij de eerste optie die je me vertelde, die waarbij het rapport in beeld komt. Ging daarbij perfect. Die had ik zo gemaakt:

stDocName = "rpt_Stickers"
DoCmd.OpenReport stDocName, acViewPreview
DoCmd.PrintOut , , , , LabelAantal

groeten, Wim
 
Je moet de variabele misschien als Public declareren; dan werkt hij door de hele database heen. Dat moet overigens wel in een algemene Module gebeuren, niet op een formulier of rapport.
 
Bedankt voor de tip, ik ga er begin volgende week mee aan de slag en laat de uitkomst hier nog even weten.

grt, Wim

**Update

Het is gelukt op een andere manier, ik heb onderstaand gebruikt.

stDocName = "rpt_AfTeDrukkenRapport"
DoCmd.SelectObject acReport, "rpt_AfTeDrukkenRapport", True
'Print opgegeven aantal copieën van het rapport
DoCmd.PrintOut , , , , LabelAantal

Allemaal bedankt voor de antwoorden.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan