Solved

Access PDF orientation issues after upgrade from 2007 to 2010

Posted on 2011-02-17
5
1,467 Views
Last Modified: 2012-05-11
After upgrading to Access 2010 when my module converts to PDF it puts all reports in landscape rather than portrait. I have checked all the settings in Access and everything shows to be in the proper portrait settings. I am using a 3rd party module to do this conversion. Looking around online it looks like Access now has a built in PDF converter. If this is the case, can someone please help me with the new piece of code.
Option Compare Database
Function send_emailcap_mtd()
   On Error GoTo Err_Send_Click

    Dim mydb As Database, RS As Recordset
    Set mydb = DBEngine.Workspaces(0).Databases(0)

    Dim docname As String, ctl As Control, strTo As String
    Dim path As String, subject As String, body As String
    Dim attach As String, blnSuccessful As Boolean
        

    Application.Echo False
    'Get all the email addresses  for the daily stat report
    Set RS = mydb.OpenRecordset("qry_emailcap_mtd")
       
    'Report to run and make a snapshot of the report and put it on the server
    path = "c:\temp\"
    docname = "emailcap_mtd"
    subject = "Email Address Capture Report"
    body = "Daily Report is Attached"
    attach = path + docname + ".rtf"
    'DoCmd.OpenReport docname, A_PREVIEW
    DoCmd.OutputTo acOutputReport, docname, acFormatRTF, _
    attach, False
    
'start of pdf change
    Dim blRet As Boolean
    Dim attachPDF As String
    attachPDF = path + docname & ".pdf"
    ' Call our convert function
    ' Please note the last param signals whether to perform
    ' font embedding or not. I have turned font embedding ON for this example.
      blRet = ConvertReportToPDF(docname, vbNullString, _
      attachPDF, False, True, 150, "", "", 0, 0, 0)
    ' To modify the above call to force the File Save Dialog to select the name and path
    ' for the saved PDF file simply change the ShowSaveFileDialog param to TRUE.
'end of pdf change
    
    'This loops through all of the email addresses and sends the report to everyone
    Do Until RS.EOF
      strTo = RS!Email
       'Old format for sending reports with warnings
       'DoCmd.SendObject A_REPORT, docname, A_FORMATTXT, strTo, , , "Daily Stat Report", , False
       'New way of sending reports without warnings

'       blnSuccessful = FnSafeSendEmail(strTo, subject, body, attach, "", "")
       blnSuccessful = FnSafeSendEmail(strTo, subject, body, attachPDF, "", "")
       RS.MoveNext
    Loop
    'Clean up process
    RS.Close
    DoCmd.Close A_REPORT, docname
    Set RS = Nothing
    Set mydb = Nothing

exit_send_click:
    
    Application.Echo True
    Exit Function

Err_Send_Click:
    Resume exit_send_click
    
End Function

Open in new window

0
Comment
Question by:Cole100
  • 2
  • 2
5 Comments
 
LVL 7

Expert Comment

by:shaydie
ID: 34921196
To output to a PDF using built-in functionality
Output your report to strPath and attach to email...

strPath = "c:\mypath\DailyRpt-" & fDate & ".pdf"
DoCmd.OutputTo acOutputReport, "Report", acFormatPDF, strPath

0
 
LVL 10

Expert Comment

by:Luke Chung
ID: 34923402
The syntax for the constants "A_" come from Access 2.0 days.

0
 

Author Comment

by:Cole100
ID: 34930354
Can you help me out with where to place this piece of code. I am having no luck on getting this to works. Thanks
0
 
LVL 10

Expert Comment

by:Luke Chung
ID: 34930449
I haven't seen situations where the report is in one mode and the PDF comes out in another. Are you experiencing this problem when you generate the PDF interactively from previewing the report?
0
 
LVL 7

Accepted Solution

by:
shaydie earned 250 total points
ID: 34930592
Hi Cole,

I'm guessing that something like this should work.. edited code below:

Function send_emailcap_mtd()
   On Error GoTo Err_Send_Click
 
    Dim mydb As Database, RS As Recordset
    Set mydb = DBEngine.Workspaces(0).Databases(0)
    Dim attachPDF As String
    Dim docname As String, ctl As Control, strTo As String
    Dim path As String, subject As String, body As String
    Dim attach As String, blnSuccessful As Boolean
         
     Application.Echo False
    'Get all the email addresses  for the daily stat report
    Set RS = mydb.OpenRecordset("qry_emailcap_mtd")
       
    path = "c:\temp\"
    docname = "emailcap_mtd"
    attachPDF = path + docname & ".pdf"
    subject = "Email Address Capture Report"
    body = "Daily Report is Attached"
    DoCmd.OutputTo acOutputReport, docname, acFormatPDF, attachPDF
     
    'This loops through all of the email addresses and sends the report to everyone
    Do Until RS.EOF
      strTo = RS!Email
       'Old format for sending reports with warnings
       'DoCmd.SendObject A_REPORT, docname, A_FORMATTXT, strTo, , , "Daily Stat Report", , False
       'New way of sending reports without warnings
 
'       blnSuccessful = FnSafeSendEmail(strTo, subject, body, attach, "", "")
       blnSuccessful = FnSafeSendEmail(strTo, subject, body, attachPDF, "", "")
       RS.MoveNext
    Loop
    'Clean up process
    RS.Close
    Set RS = Nothing
    Set mydb = Nothing
 
exit_send_click:
     
    Application.Echo True
    Exit Function
 
Err_Send_Click:
    Resume exit_send_click
     
End Function
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

It took me quite some time to sort out all the different properties of combo and list boxes available from Visual Basic at run-time. Not that the documentation is lacking: the help pages are quite thorough and well written. The problem was rather wh…
In a multiple monitor setup, if you don't want to use AutoCenter to position your popup forms, you have a problem: where will they appear?  Sometimes you may have an additional problem: where the devil did they go?  If you last had a popup form open…
Familiarize people with the process of utilizing SQL Server stored procedures from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Micr…
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

920 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

17 Experts available now in Live!

Get 1:1 Help Now