Gary said:
One easy way is to create a loop to repeat the OpenReport
command. You can hard code your four or you can prompt the
user for how many. I will give you the prompt part as well
and you can just take those lines out if you don't need
them. No error handling included...
Dim lngCopies as Long, lngCopied as Long
' Here is where you could also just specify 4
lngCopies = InputBox("How many copies would you like?")
Do Until lngCopied = lngCopies
DoCmd.OpenReport "YourReportName", acNormal
lngCopied = lngCopied + 1
Loop
Gary, you have to be careful with that. If the report is
already open, issuing another OpenReport on the same report
will not create another instance. Depending on the timing,
it may do various things from just giving the report the
focus (if being previewed) to possibly changing its record
source or filter (if the report has code to do that kind of
stuff).
If the original question was about generating four different
reports, then just using an OpenReports for each report is
fine. But to print multiple copies of the same report with
the same data, the PrintOut method is the easiest approach.
If its the same report and PrintOut doesn't fit the
situation or if the data is different between the copies,
then a substantial amount of code is needed to create and
manage multiple instances of the report.