Public Function PrintCopies(reportName As String, noOfCopies As String)
On Error GoTo Err_Routine
Dim i As Integer
If IsNumeric(noOfCopies) Then
If Left(noOfCopies, 1) = "-" Or noOfCopies = "0" Then
MsgBox "Please enter a number between 1 and 25", vbInformation, "Invalid number"
ElseIf Val(noOfCopies) > 0 And Val(noOfCopies) <= 25 Then
DoCmd.OpenReport reportName, acViewDesign, , , acHidden
Reports(reportName).[COLOR=Blue]lblCopies[/COLOR].Visible = True
For i = 1 To Val(noOfCopies)
DoCmd.OpenReport reportName, acViewPreview
Reports(reportName).[COLOR=Blue]lblCopies[/COLOR].Caption = "Copy " & i
DoCmd.PrintOut
Next
DoCmd.OpenReport reportName, acViewDesign, , , acHidden
Reports(reportName).[COLOR=Blue]lblCopies[/COLOR].Visible = False
DoCmd.Close acReport, reportName, acSaveYes
MsgBox "Finished printing!"
Else
MsgBox "Number too big", vbExclamation, "Too many copies"
End If
Else
If noOfCopies <> "" Then
MsgBox "Not a number", vbExclamation, "Invalid input"
End If
End If
Exit_Err_Routine:
Exit Function
Err_Routine:
If Err.Number = 2501 Then
DoCmd.OpenReport reportName, acViewDesign, , , acHidden
Reports(reportName).[COLOR=Blue]lblCopies[/COLOR].Visible = False
DoCmd.Close acReport, reportName, acSaveYes
Else
MsgBox Err.Description
End If
Resume Exit_Err_Routine
End Function