I believe I have found what appears to be a bug in Microsoft's "Save as PDF/XPS" add-in for Access 2007.
Given a scenario where code in a database containing a report calls code in another database (via a reference to the accdb) in order to generate report output in either PDF or XPS format, the called code generates the following error upon attempting to execute the DoCmd.OutputTo method:
Run-time error '2509':
Microsoft Office Access cannot find the object 'reportname'
I have no problem outputting to other file types, such as TXT or RTF via such an approach, nor do I have any problem generating XPS or PDF output from code in the database containing the report.
For instance, given the following two functions, contained in a referenced database (used as a common function library):
Public Function testRTF(rName As String, destFile As String)
DoCmd.OutputTo acOutputReport, rName, acFormatRTF, destFile
Public Function testPDF(rName As String, destFile As String)
DoCmd.OutputTo acOutputReport, rName, acFormatPDF, destFile
The first function succeeds when called from the database containing the report, but the second one fails with the aforementioned error. There is no problem, however, executing a DoCmd.OutputTo to PDF format from code actually contained in the same database as the report.
Can anyone else confirm this and suggest a workaround?!
I have so far confirmed this problem on two vastly different installations (one Vista, one Windows 2003).