hennessym
asked on
Runtime Error 2585 (this action can't be carried out while processing a form or report event)
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.
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
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.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.