save report เป็น PDF แบบอัตโนมัติ
กระทู้เก่าบอร์ด อ.Yeadram

 2,464   7
URL.หัวข้อ / URL
save report เป็น PDF แบบอัตโนมัติ

เรียนผู้รู้ทุกท่าน
     เนื่องจากผมมีไฟล์ใบสั่งซื้อ ที่ต้อง upload เป็น pdf ส่งขึ้น web ซึ่งผมได้ทำ report ไว้แล้ว และใช้ตัว CutePdf ในการส่งออกเป็น pdf แต่มีความต้องการว่าอยากให้ โปรแกรมส่งไฟล์ออกอัตโนมัติ และ save เป็นชื่อเลขที่ใบสั่งซื้อโดยไม่ต้องถามและไม่ต้องใส่ชื่อไฟล์ใหม่ ผมได้ลองค้นกระทู้เก่า ๆ ดู คือทางอาจารย์ได้แนะนำการใช้ sendkeys ส่งชื่อไฟล์และ path ไป แต่ผมลองเอามาปรับแล้ว
โดยสร้างฟอร์มชื่อ MIDDLE_PO และมี Text0 เพื่อรับเลขที่ PO สำหรับ Report ก็ชื่อ MIDDLE_PO
ปรากฏว่า โค๊ดที่เขียน โปรแกรมยังถามหาชื่อไฟล์อยู่ครับ แต่พอทำหลาย ๆ ครั้ง (ประมาณ 4-5 ครั้ง) มันก็ save อัตโนมัติให้ แล้วก็บางครั้งมันให้ปุ่ม Numlock ใช้งานไม่ได้ แล้วบางครั้งก็ขึ้นมาถามให้ save หลายครั้ง ไม่แน่ใจว่าเกิดอะไรขึ้นครับ โดยผมเขียนไว้อย่างนี้ครับ

' ระบุชื่อรายงาน
Dim rpName As String
rpName = Forms!MIDDLE_PO!Text0

'สั่งprint รายงาน
DoCmd.OpenReport "MIDDLE_PO", acViewNormal, , , acHidden

' ระบุชื่อไฟล์และพาธสำหรับ pdf ปลายทาง
Dim PdfFileName As String
PdfFileName = "c:\PO\" & rpName

SendKeys PdfFileName
SendKeys "{ENTER}"

DoCmd.Close acReport, rpName, acSaveNo




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

1 @R16938
cutepdf ทำได้ แต่ต้องซื้อเวอร์ชั่นที่เป็น commercial
ส่วน bullzip printer รุ่น freeware ดูเหมือนทำได้ แต่ต้องไปศึกษาเองนะครับว่าทำยังไง
2 @R16939
http://www.biopdf.com/guide/examples/microsoft_access/ เจอมาเพิ่มเติม เป็นตัวอย่าง VBA ที่ตั้งค่าชื่อไฟล์ที่พิมพ์ออกไป

biopdf ก็เป็น commercial เวอร์ชั่นของ bullzip นั่นเอง เขาว่าทางเทคนิคแล้วแตกต่างกันน้อยมาก
3 @R16940
ขอบคุณครับ ยังงั้นผมก็คงต้องใช้ manual กันไปก่อน ตอนนี้ผมใช้วิธีก็คือให้ Access คัดลอกตัวแปรไว้ใน cllipboard แล้วเมื่อเปิดหน้า Cutepdf ให้ save ชื่อไฟล์ ก็ให้ผู้ใช้กด Ctrl+V แล้ว Enter ครับ ก็รู้สึกมันดูยังไง ๆ อยู่เหมือนกัน แต่ก็ดีกว่าต้องพิมพ์เองทั้งหมดครับ
   ไม่แน่ใจว่าอาจารย์มีอะไรแนะนำเพิ่มเติมไม๊ครับ
4 @R16942
ถ้าชื่อไฟล์ pdf มันรันเองเป็นค่าวันที่และเวลา เช่น report20130828101400 อย่างงี้ได้ไหม ตัว bullzip ทำได้ครับ
5 @R16943
เรียน อาจารย์สันติสุข
        ต้องระบุเป็นเลขที่ PO ครับ เพราะเจ้าหน้าที่ต้องนำไป upload ขึ้น web ตามเลขที่นั้นๆ ครับ...
6 @R16948
หลังจากได้ชื่อไฟล์ auto แล้วใช้ VBA ทำการ rename อีกทีได้ไหมครับ
7 @R16952
เป็น แนวคิดที่ดีครับ ผมลอง search ดู แล้ว อาจารย์ TTT เคยตอบเรื่องการเปลี่ยนชื่อไฟล์ไว้อยู่นะครับ
www.thai-access.com/yeadram_view.php?topic_id=3458
ผมจะลองไปปรับใช้ ได้ผลยังไงแล้วจะเข้ามาบอกนะครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3209s