?
Solved

Access PDF orientation issues after upgrade from 2007 to 2010

Posted on 2011-02-17
5
Medium Priority
?
1,484 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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 1000 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

Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

Question has a verified solution.

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

Access custom database properties are useful for storing miscellaneous bits of information in a format that persists through database closing and reopening.  This article shows how to create and use them.
Code that checks the QuickBooks schema table for non-updateable fields and then disables those controls on a form so users don't try to update them.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …
Suggested Courses

752 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