Solved

Visual Basic:  acOutputReport Results in Error 2302:  Microsoft Access can't save the output data to the file you've selected.

Posted on 2013-11-08
14
2,785 Views
1 Endorsement
Last Modified: 2014-01-03
I trying to save an Access 2013 report as an Adobe Acrobat document.  When the application is run on my system, I do not receive an error.  When this is run on the system where the application is scheduled to run, the following error is received:

"Error #2302: Microsoft Access can't save the output data to the file you've selected."

This is my statement:

appAccess.DoCmd.OutputTo(Access.AcOutputObjectType.acOutputReport, "My Report", _
  "PDF Format (*.pdf)", "C:\" & gstrDateStamp & " My Report.pdf", True, "", , _
  Access.AcExportQuality.acExportQualityPrint)

Open in new window

I have tried several things, which do not seem to have any impact:
- Creating an empty file and naming it what the Acrobat file will be named, so the file already exists.
- Set the autostart parameter to True or False

Any ideas you might have would be greatly appreciated!

Thanks In Advance,

- Michael
1
Comment
Question by:mjs082969
  • 5
  • 3
  • 2
  • +2
14 Comments
 
LVL 49

Expert Comment

by:Gustav Brock
Comment Utility
The application may not have the necessary permission to write to:
"C:\" & gstrDateStamp & " My Report.pdf"

Or try using a path without spaces:

"C:\" & gstrDateStamp & "MyReport.pdf"

Or, if that works, wrap the full path in quoutes, Chr(34).

/gustav
0
 

Author Comment

by:mjs082969
Comment Utility
I'm desperate.  If you tell me that making and wearing a helmet out of Jell-o will fix it, I'm in...

I did try the following statements, and they execute successfully.  

appAccess.DoCmd.OutputTo(Access.AcOutputObjectType.acOutputReport, "MyReport", Access.Constants.acFormatTXT, "C:\" & gstrDateStamp & " MyReport.txt", True, "", , Access.AcExportQuality.acExportQualityPrint)

appAccess.DoCmd.OutputTo(Access.AcOutputObjectType.acOutputReport, "MyReport", Access.Constants.acFormatSNP, "C:\" & gstrDateStamp & " MyReport.snp", True, "", , Access.AcExportQuality.acExportQualityPrint)
 
They aren't what I need, but they are very similar.  And, again, they are executing successfully...

So that probably rules out a problem with permissions.  

I have determined that on the machine where it is successful, I have Adobe Acrobat Pro 9 installed.  On the system where it is failing, I have Adobe Reader XI installed.  Hmmmm...

But I will try removing the spaces from the report name and see if that has any impact...

Thanks Again,

- Michael
0
 
LVL 49

Accepted Solution

by:
Gustav Brock earned 500 total points
Comment Utility
OK. Some progress.

First check if at all Access can save to PDF on that machine.
You are correct that the XI reader can be an issue. It's a monster.

Try building the path:

strPath = Chr(34) & "C:\" & gstrDateStamp & " My Report.pdf" & Chr(34)

Then:

appAccess.DoCmd.OutputTo(Access.AcOutputObjectType.acOutputReport, "My Report", "PDF Format (*.pdf)", strPath, True, "", , Access.AcExportQuality.acExportQualityPrint)

/gustav
0
 

Author Comment

by:mjs082969
Comment Utility
I think the different versions of Adobe ARE causing a nightmare!

I am going to ask the user if they can handle XPS... but they are gone for the weekend.  I will close this off on Monday.  

Have a Great Weekend and thanks for the assistance!
0
 
LVL 49

Expert Comment

by:Gustav Brock
Comment Utility
You are welcome!

/gustav
0
 

Author Comment

by:mjs082969
Comment Utility
This must be something to do with the system environment.  It will work on some systems, but not others.  On the ones where it continues to fail I receive the following error:

A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in MyProgram.Exe

Regardless of what format I use.  

Any advice would be greatly appreciated!

Thanks Again,

- Michael
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 61

Expert Comment

by:mbizup
Comment Utility
Try this (works for me with the environment you described):

docmd.OutputTo acOutputReport, "myReport", acformatpdf,,true

Open in new window


If it works, try building on it successively to isolate the problem:

1.
Dim strFile as string
strFile = "myreport.PDF"   '<--- uses same folder as the database

docmd.OutputTo acOutputReport, "myReport", acformatpdf, strFile ,true

Open in new window


2.
Dim strFile as string

'****** Check this... the file is being placed at the root level on the C drive.  Should it be under a folder specified by gstrDateStamp?
strFile =  "C:\" & gstrDateStamp & "MyReport.pdf"   '<---- Use full path

docmd.OutputTo acOutputReport, "myReport", acformatpdf, strFile ,true

Open in new window



3.
Dim strFile as string
strFile =  "C:\" & gstrDateStamp & "MyReport.pdf" 


docmd.OutputTo acOutputReport, "myReport", acformatpdf, strFile ,true, "", , Access.AcExportQuality.acExportQualityPrint '<-- add the print quality

Open in new window

0
 
LVL 15

Expert Comment

by:dbbishop
Comment Utility
Did you try mbizup suggestions?
0
 
LVL 15

Expert Comment

by:dbbishop
Comment Utility
try replacing "PDF Format (*.pdf)" with Access.acFormatPDF
0
 

Author Comment

by:mjs082969
Comment Utility
I will attempt the suggestions...
0
 
LVL 45

Expert Comment

by:Martin Liss
Comment Utility
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
0
 

Author Comment

by:mjs082969
Comment Utility
I was not able to resolve the issue with any of the feedback given.  I elected to migrate the reports out of Microsoft Access and into another source.
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…

743 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now