[AccessD] VBA Error Trapping

Rocky Smolin rockysmolin2 at gmail.com
Wed Apr 26 15:41:13 CDT 2023


In my error handler I usually ignore 2501 because I've asked if the user
wants to do something and they say no and so the 2501 operation canceled
pops up.  They click OK, and carry on. But I have this in code where if
they cancel an operation. So in the error handler If Err.Num = 2501 then
exit sub else msgbox "Run Time Error: " & err.num & " - " & err.desc. and
exit sub.

Re: the code starting with 'With DoCmd', generally have two buttons on the
form - Print and Preview. If the user wants to preview and know about
Ctrl-P, then that's all they ever use.

It looks to me like you're opening in Preview Mode and then right away
sending the same report to the printer. In any event if the first Open
fails you don't want to resume next but exit the sub.

r


On Wed, Apr 26, 2023 at 1:28 PM Ryan W <wrwehler at gmail.com> wrote:

> Oops. Yeah. Forgot to add that into the pseudocode.
>
> Is the handling of the error and resume logic sane enough?  I usually only
> handle errors that stop the process for the user to fix and start over.
> With this I want it to keep chugging along even if the report has no data
> (this is in relation to my query about fuzzy matching last week).... right
> now I have the data loaded from the client show in a datasheet as red if a
> matching ID for the work isn't found during the process. My users can
> choose to fix it (ideally) or ignore it (and then end up dealing with the
> missing reports with mismatched IDs after the fact).
>
>
>
> On Wed, Apr 26, 2023 at 3:08 PM Rocky Smolin <rockysmolin2 at gmail.com>
> wrote:
>
> > I think you need an Exit Sub right before Err_Handler:
> >
> > R
> >
> > On Wed, Apr 26, 2023 at 11:30 AM Ryan W <wrwehler at gmail.com> wrote:
> >
> > > 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
> > >
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > https://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> >
> --
> 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