?
Solved

Error Received when SendObject command is cancelled

Posted on 2013-02-07
15
Medium Priority
?
348 Views
Last Modified: 2013-02-12
I have the following code behind a button on a form that a user clicks on to email the information on the screen via a report.  It creates the info in a PDF format, opens outlook and attaches the PDF.  

The problem I am having is if a user closes/cancels the email without sending they get a "2501" error.  I don't want this error or the pop-up for this error to appear.  I just want it to close/cancel the email and go back to the form again.

Here is my code:

Private Sub cmdEmailRpt_Click()
On Error GoTo Err_cmdEmailRpt_Click

Dim stDocName As String

'DoCmd.Echo False

stDocName = "rptAudit_Emails"

DoCmd.SendObject acReport, stDocName, acFormatPDF

'DoCmd.Echo True

Exit_cmdEmailRpt_Click:
    Exit Sub

Err_cmdEmailRpt_Click:
    'If the user closes the Email screen without sending.
    If Err.Number = 2501 Then
        Resume Exit_cmdEmailRpt_Click
    End If

Open in new window



What am I doing wrong?

Thanks,

gdunn59
0
Comment
Question by:gdunn59
  • 6
  • 5
  • 4
15 Comments
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 38865581
I don't see anything wrong...

testing now...
0
 
LVL 49

Expert Comment

by:Dale Fye
ID: 38865590
I don't see anything wrong either.
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 38865594
your code works fine for me here...

Perhaps your report it self is not able to be opened
Database88-2013-02-07.mdb
0
Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

 
LVL 1

Author Comment

by:gdunn59
ID: 38865698
boag2000:

Weird, I just tried your sample database, and the same thing happens.  I get the 2501 error.

Could it be the version of Access and/or Outlook that I am using?

I am using 2007.

Thanks,
gdunn59
0
 
LVL 49

Expert Comment

by:Dale Fye
ID: 38865746
No points, please!

Have you checked to make sure all of your references are there, none are "Missing"?

You might want to compact and repair your database, after making a backup.

You might also consider creating a new database and importing all of the objects from the current database into it.
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 38865783
Hmmm....
I just tested it in Acc 2010 and got the error

(I had tested it first in Acc 2007 with no error)

Follow up with fyed then...

I may not have time to dig further...
0
 
LVL 49

Expert Comment

by:Dale Fye
ID: 38865852
"Could it be the version of Access"

It might be, but as I mentioned above, it is more likely that you are missing a reference or simply have a corrupt database.  Try my recommendations (above) and see whether that fixes it.

You may also want to consider "repairing" you Access installation.  NOTE: this may require a copy of your Office installation disk

Start -> Programs -> Control Panel -> Programs -> Uninstall

Then select Office and Repair
0
 
LVL 1

Author Comment

by:gdunn59
ID: 38865873
fyed:

I've attached a screen shot of the References that I am using.  Is anything missing?

Thanks,
gdunn
Screen-Shot-of-References--for-A.docx
0
 
LVL 49

Expert Comment

by:Dale Fye
ID: 38865930
No, it would say "MISSING" in front of the missing reference if anything was missing.
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 38865952
fyed.

I'm on my way home...
I'll let you take this from here

I am sure this is something simple...

I am curious/stumped as well...

;-)

Jeff
0
 
LVL 49

Expert Comment

by:Dale Fye
ID: 38865969
Jeff,

I'm heading to the gym in about 10 minutes.  Home about 7PM ET, will investigate further then.

Dale
0
 
LVL 74

Expert Comment

by:Jeffrey Coachman
ID: 38865982
LOL
Me too...
Biceps and  Lats tonight...
0
 
LVL 1

Accepted Solution

by:
gdunn59 earned 0 total points
ID: 38866326
Everyone,

Thanks for your assistance, but none of the solutions worked.

I was able to get it to work with the following code:

Private Sub cmdEmailRpt_Click()
On Error GoTo Err_cmdEmailRpt_Click

Dim olApp As Outlook.Application
Dim olmsgNew As Object
Dim strAttach1 As String
Dim strAttachTemp As String
Dim strOutputToTemp As String

''Set Attachments from Temp Area (on C Drive)
strOutputToTemp = "C:\Windows\Temp\Audit " & "_" & InquiryNum & ".PDF"

strAttachTemp = strOutputToTemp

'''Output to Temp Area (to C Drive)
DoCmd.OutputTo acOutputReport, "rptAudit_Emails", acFormatPDF, strOutputToTemp, False

' Create the Outlook session.
Set olApp = CreateObject("Outlook.Application")
Set olmsgNew = olApp.CreateItem(olMailItem)
With olmsgNew
Set fsoAttach = CreateObject("Scripting.FileSystemObject")
If Not fsoAttach.FileExists(strAttachTemp) Then
    MsgBox "File does not exist now.", vbInformation, "File Not Found"
Else
    Set olAttachList = .Attachments.Add(strAttachTemp)
End If
    .Display
End With

DoCmd.Echo True

Exit_cmdEmailRpt_Click:
    Exit Sub

Err_cmdEmailRpt_Click:
    'If the user closes the Email screen without sending.
    If Err.Number = 2501 Then
        Resume Exit_cmdEmailRpt_Click
    End If

End Sub

Open in new window



I used the OutputTo Method instead of SendObject.  

With this code, if the user exits the email without sending it prompts the user "Do you want to save changes? Yes  No  Cancel.

Works like a charm.

Thanks,
gdunn59
0
 
LVL 49

Expert Comment

by:Dale Fye
ID: 38866423
Sorry we couldn't help, but glad you found another solution.  I'm gonna try Jeff's code on my 2010 machine and see if it breaks there.
0
 
LVL 1

Author Closing Comment

by:gdunn59
ID: 38879530
None of the solutions provided worked.  Finally got it to work myself.

Thanks,
gdunn59
0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes a method of delivering Word templates for use in merging Access data to Word documents, that requires no computer knowledge on the part of the recipient -- the templates are saved in table fields, and are extracted and install…
Microsoft Access is a place to store data within tables and represent this stored data using multiple database objects such as in form of macros, forms, reports, etc. After a MS Access database is created there is need to improve the performance and…
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

864 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question