Export Report to PDF
กระทู้เก่าบอร์ด อ.Yeadram

 1,115   10
URL.หัวข้อ / URL
Export Report to PDF

รบกวนอาจารย์ ทุกท่าน ค่ะ สอบถามการ export Report to PDF ตอนนี้ใช้โค้ด นี้ อยู่ค่ะเอามาจากกระทู้ของอาจารย์ท่านนึงDim rpName As String

rpName = "rpMovement"

' สั่งเปิดรายงานเพื่อระบุเครื่องพิมพ์

DoCmd.OpenReport rpName, acViewDesign, , , acHidden



' ค้นหาเครื่องพิมพ์ที่ต้องการ

Dim prtLoop, prtSet As Printer

For Each prtLoop In Application.Printers

If prtLoop.DeviceName Like "*PDF*" Then Set prtSet = prtLoop

Next

' กำหนดเครื่องพิมพ์ที่ได้ให้เป็นเครืองพิมพ์ประจำของรายงานนั้น

Dim myRpt As Report

Set myRpt = Reports(rpName)

myRpt.Printer = prtSet



' สั่งปริ๊นท์รายงาน

DoCmd.OpenReport rpName, acViewNormal



' ระบุชื่อไฟล์และพาธสำหรับ PDF ปลายทาง

Dim PdfFileName As String

PdfFileName = "c:\documents and settings\all users\desktop\" & rpName & Format(Now(), "ddmmyyyyhhmmss")

SendKeys PdfFileName

SendKeys "{ENTER}"



' สั่งปิดรายงานและล้างหน่วยความจำ

Set myRpt = Nothing

Set prtSet = Nothing

DoCmd.Close acReport, rpName, acSaveNo

แต่ทีนี้ มันจะเป็นการเลือกเครื่องปริ้น ที่เป็น ไฟล์ PDF และจะต้องตั้งdefault เป็น ปริ้น PDF และจะติดปัญหาตรง เวลาจะปริ้นงานอื่นจะต้องมาเลือกเครื่องใหม่
อยากทราบวิธีการ export Report to PDF แบบไม่ต้องตั้งค่า default ที่เครื่องปริ้นค่ะ พอมีวิธีมั้ยค่ะ

ขอบคุณ ค่ะ

10 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R23663
ลอง

DoCmd.OutputTo acOutputReport, rpName, acFormatPDF, PdfFileName
2 @R23673


ลองดูแล้วค่ะ แต่มันจะติด Error ตรงนี้ตลอดเลย

แล้วลองใช้โค้ด แบบว่าให้เวลาเรากดปุ่ม ปริ้น PDF ไฟล์จะบันทึก อันโนมัติ

Private Sub Create_PDF_Click()

Dim myPath As String
Dim strReportName As String

DoCmd.OpenReport "Invoices", acViewPreview

myPath = "C:\Documents and Settings\"
strReportName = Report_Invoices.[Client Organisations_Code] + "-" +
Report_Invoices.Clients_Code + "-" + Report_Invoices.Invoices_Code + "-" +
Format(Report_Invoices.[Invoice Date], "yyyy") + ".pdf"

DoCmd.OutputTo acOutputReport, "", acFormatPDF, myPath + strReportName, True
DoCmd.Close acReport, "Invoices"

End Sub

มันก็จะมาติด Error ตรง DoCmd.OutputTo ตลอดเลยค่ะ
3 @R23674
the format which you are attempting to output the current object is not available

Error ที่แจ้งเตื่อน ค่ะ
4 @R23675
ถ้าเป็น Access 2007 ให้ลองติดตั้งตัวนี้ดูครับ

https://www.microsoft.com/th-th/download/details.aspx?id=7
5 @R23678
ได้แล้วค่ะ ขอบคุณนะคะ อาจารย์

สอบถามอีกนิดค่ะ ถ้าเราจะตั้งชื่อ Filename   จากเลขเอกสารที่รันอยู่ใน Report สามารถตั้งได้มั้ยค่ะ
6 @R23679
"เลขเอกสารที่รันอยู่ใน Report " ... ไม่แน่ใจว่าหมายถึงอะไร แต่ถ้าเลขนั้นได้มาจากเทเบิลและเรารู้เงื่อนไขที่ชี้ชัดได้ว่าจะเอามาจากเรคอร์ดอะไร เราก็สามารถอ่านเลขนั้น ก่อนที่จะเปิดรายงานได้นี่ครับ จะด้วยการใช้คำสั่ง DLookup หรือ OpenRecordset ที่ระบุเงื่อนไขนั้นก็ได้ครับ
7 @R23697
ลิ้งที่อาจารย์ให้มา มีตัวที่ EXPORT เป็น Excel มั้ยค่ะ
8 @R23698
เปลี่ยนจาก acFormatPDF เป็น acFormatXLS เท่านั้นเองครับ
9 @R23699
ลองเเปลี่ยนแล้วค่ะ มันฟ้อง error '2282 the format which you are attempting to output the current object is not available เหมือนตอนแรกคะ
10 @R23700
ไมโครซอฟ์ทบอกให้ติดตั้ง Microsoft Office 2007 Service Pack 2 ครับ

https://support.microsoft.com/en-us/help/934833/unless-you-install-the-office-2007-suite-service-pack-2,-you-cannot-ex

ยังไงก็ตาม การแปลงจาก Report ไปเป็น Excel ไม่น่าใช่รูปแบบที่เหมาะสมครับ เพราะข้อมูลอาจไปแปะลงใน cell ที่อยู่ไม่ตรงกับที่แสดงใน Report และผมก็คิดว่ามันยากที่จะทำให้ตรงกันด้วย สิ่งที่น่าจะเป็นคือเลือกเอาเฉพาะข้อมูลที่เราต้องการ โดยสร้างเป็น Query แล้วจึงส่งออกจาก Query ไปเป็น Excel ดูจะเหมาะสมมากกว่าครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3382s