I have a command button (cmdPurchaseOrderPrint) on my form (Orders) that opens a print dialog box for a report. When I click 'ok' to print the form I see Error # 2585, This action can't be carried out while processing a form or report event. Debugging reveals the offending statement is RunCommand acCmdPrint.
Here's the code behind the click event of the command button:
DoCmd.OpenReport "PurchaseOrder", acViewPreview
And here's the code behind the on open event of the report:
Private Sub Report_Open(Cancel As Integer)
On Error GoTo Error_Handling:
Dim cn As ADODB.Connection
Set cn = CurrentProject.Connection
Dim rstOrders As New ADODB.Recordset
Dim strSQL As String
If CurrentProject.AllForms("O
rders").Is
Loaded = False Then
Dim OrderNum As String
Get_Input:
OrderNum = InputBox("Enter Order #")
If OrderNum <> "" Then
strSQL = "SELECT Order_Num FROM tblOrders WHERE Order_Num = '" & OrderNum & "' "
rstOrders.Open (strSQL), cn, adOpenForwardOnly, adLockReadOnly
If rstOrders.EOF = True Then
MsgBox "Order #" & OrderNum & " Not Found!", vbCritical
rstOrders.Close
GoTo Get_Input
Else
strSQL = "SELECT * FROM tblOrders WHERE Order_Num = '" & OrderNum & "' "
Me.RecordSource = strSQL
End If
Else
End
DoCmd.Close
End If
Else
strSQL = "SELECT * FROM tblOrders WHERE Order_Num = " & Forms!Orders!Order_Num
Me.RecordSource = strSQL
RunCommand acCmdPrint
End If
Exit Sub
Error_Handling:
If Err.Number = 2501 Then 'user canceled print dialog box
End
Else
MsgBox Err.Number
MsgBox Err.Description
End If
End Sub
Any idea what I'm doing wrong?
Thanks in advance.
Start Free Trial