MS Access vba Print PDF First page only

Hi, I have this code below works fine BUT the problem is; it's doing PDF for all the pages, what I need to do is to make PDF only for the first page  

Private Sub BtnPdf_Click()
Dim FileName As String
Dim FilePath As String
Dim inStkN As Integer
Dim frm As Form
Set frm = Screen.ActiveForm
inStkN = Me.StkN
FileName = "Transf-" & inStkN
FilePath = "C:\Users\orly\Desktop\FolderName\"
    frm.Filter = "StkID = " & frm.StkID
    frm.FilterOn = True
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.OutputTo acOutputForm, "Msg_FrmC", acFormatPDF, FilePath & FileName & ".pdf", True
    frm.FilterOn = False
End Sub
Ronald MalkAsked:
Who is Participating?
 
Rgonzo1971Connect With a Mentor Commented:
then try
Private Sub BtnPdf_Click()
Dim FileName As String
Dim FilePath As String
Dim inStkN As Integer
strPrinter = "eDoc Printer"
Dim frm As Form
Set frm = Screen.ActiveForm
Dim strPrinter As String
strPrinterPDF = "eDoc Printer"
inStkN = Me.StkN
FileName = "Transf-" & inStkN
FilePath = "C:\Users\orly\Desktop\FolderName\"
Set Application.Printer = Application.Printers(strPrinterPDF)
DoCmd.OpenReport "Msg_FrmC", acViewPreview, , "StkID = " & frm.StkID
DoCmd.PrintOut acPages, 1, 1
DoCmd.Close acReport, "Msg_FrmC"
Set Application.Printer = Nothing
End Sub

Open in new window

0
 
Rgonzo1971Commented:
HI,

One way would be to have a pdf printer and then use
DoCmd.PrintOut acPages, 1, 1

Open in new window

Caveat:
The report needs to be opened before printing

Regards
0
 
Ronald MalkAuthor Commented:
Thanks for the reply, Can you please add it for me in my code that's what I did but I'm having error
Private Sub BtnPdf_Click()
Dim FileName As String
Dim FilePath As String
Dim inStkN As Integer
Dim frm As Form
Set frm = Screen.ActiveForm
inStkN = Me.StkN
FileName = "Transf-" & inStkN
FilePath = "C:\Users\orly\Desktop\FolderName\"
    frm.Filter = "StkID = " & frm.StkID
    frm.FilterOn = True
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.PrintOut acPages, 1, 1, "Msg_FrmC", acFormatPDF, FilePath & FileName & ".pdf", True   '<<Error here
    frm.FilterOn = False
End Sub
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
Rgonzo1971Commented:
What is the name of your pdf printer?
0
 
Ronald MalkAuthor Commented:
looks like  I'm stuck with your question, Do not know how to find out, but I can tell that I have installed in my computer Acrobat reader DC I don't know if that helps?
0
 
Rgonzo1971Commented:
Nope
0
 
Ronald MalkAuthor Commented:
For some reason it's not listed it the devices list, I'll do some googling hopefully find why not there, but for now it seems that I have to wait till I find out the name of the PDf printer in my PC
0
 
Rgonzo1971Commented:
You will probably have to install it (it will be a separate software)
0
 
Ronald MalkAuthor Commented:
I installed one called PDFCreator under propery comment it says "eDoc Printer"
0
 
Ronald MalkAuthor Commented:
Please have a look at What I did ,, I'm having Error in this line
Set Application.Printer = Application.Printers(strPrinterPDF)

Dim FileName As String
Dim FilePath As String
Dim inStkN As Integer
Dim strPrinter As String
Dim strPrinterPDF As String
Dim frm As Form

strPrinter = "eDoc Printer"
Set frm = Screen.ActiveForm
strPrinterPDF = "eDoc Printer"
inStkN = Me.StkN
FileName = "Transf-" & inStkN
FilePath = "C:\Users\orly\Desktop\FolderName\"
Set Application.Printer = Application.Printers(strPrinterPDF)
DoCmd.OpenReport "Msg_FrmC", acViewPreview, , "StkID = " & frm.StkID
DoCmd.PrintOut acPages, 1, 1
DoCmd.Close acReport, "Msg_FrmC"
Set Application.Printer = Nothing
0
 
Rgonzo1971Commented:
Which error?
0
 
Ronald MalkAuthor Commented:
in this line
 Set Application.Printer = Application.Printers(strPrinterPDF)
0
 
Rgonzo1971Commented:
I mean the message
0
 
Rgonzo1971Connect With a Mentor Commented:
Is the Printer in the list created by the macro with which name
Sub PrinterList()

For Each prn In Application.Printers
    strRes = strRes & prn.DeviceName & vbCrLf
Next
MsgBox strRes, , "Printers"
End Sub

Open in new window

0
 
Jeffrey CoachmanMIS LiasonCommented:
You did not state what data the first page contains, ...or why you only need to print the first page...?
Page 1=Header
Page 2 and over= Details

In any event, ...instead of going through all these machinations, ...why not simply create a report that only displays (or filters) the first page info?
Then all you have to do is create the PDF from that...
The other issue is that you seem to be outputting a "Form" to a PDF:
   DoCmd.OutputTo acOutputForm, "Msg_FrmC", acFormatPDF, FilePath & FileName & ".pdf", True
Try creating a "Report" and the output will look a lot better.
   DoCmd.OutputTo acOutputReport, "Msg_RptC", acFormatPDF, FilePath & FileName & ".pdf", True

JeffCoachman
0
 
Ronald MalkAuthor Commented:
Very Sorry for coming back so late,, Thank you for your passion, Finally it worked I reinstall the pdf creator and used your code with one change I replaced the Printers(strPrinterPDF) with Printers(o) and it works, that's it thank you again
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.