[AccessD] VBA Error Trapping

Jim Dettman jimdettman at verizon.net
Wed Apr 26 16:39:04 CDT 2023


  Err = 0

  On Error Resume Next
  DoCmd.OpenReport strReportName, acViewPreview, ,strWhere, acHidden

  If Err= 0 then
       DoCmd.OutputTo acOutputReport, strReportName, acFormatPDF, fullPath
       DoCmd.Close acReport, strReportName, acSaveNo
  ElseIf Err<>2501 then
      ' Some unknown error  
  End If

   On Error Goto xxxxxxx    ' Back to regular error handler

-----Original Message-----
From: AccessD On Behalf Of Ryan W
Sent: Wednesday, April 26, 2023 2:30 PM
To: Access Developers discussion and problem solving
<accessd at databaseadvisors.com>
Subject: [AccessD] VBA Error Trapping

I've got this bit of code that opens a report in preview mode and hidden,
if the NoData event cancels it I trap a 2501 error.

The lines that come after the DoCmd.OpenReport code will continue to run
and output the wrong data (an unfiltered report)

What's the best way to avoid the next two lines that depend on the report
to be open?


I have something like this:

With DoCmd
                        lError = 0
                        .OpenReport strReportName, acViewPreview, ,
strWhere, acHidden
                        If lError = 0 Then
                            .OutputTo acOutputReport, strReportName,
acFormatPDF, fullPath
                            .Close acReport, strReportName, acSaveNo
                        End If
                    End With

Err_Handler:
  if err.number = 2501 then
      lError = Err.Number
      Resume Next
   end if


Is this considered copacetic?   I tried without trapping the err.number to
a variable, but it seems resume next resets the errorcode back to 0.  Would
it be better to Resume to a label after the .close command?
-- 
AccessD mailing list
AccessD at databaseadvisors.com
https://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



More information about the AccessD mailing list