รบกวนขอสอบถามการ Export file เป็น pdf ใน MS Access โดยแยกไฟล์ตามรหัสพนักงานค่ะ


0 สมาชิก และ 3 บุคคลทั่วไป กำลังดูหัวข้อนี้

11 ก.ย. 63 , 12:13:53
อ่าน 1718 ครั้ง

mtaccess

รบกวนขอสอบถามการ Export file จาก Report เพื่อ Save file เป็น pdf ตามข้อมูลแต่ละหน้าค่ะ คืออยากจะกด Export to pdf แล้วให้บันทึกข้อมูลไฟล์ตามรหัสพนักงานค่ะ เช่น 11111.pdf, 11112.pdf ตามข้อมูลที่เราดึงมาทั้งหมดค่ะ ปรกติจะเซฟเป็น pdf โดยรวมข้อมูลให้ทั้งหมด แต่อยากให้ save ไฟล์เป็น pdf ตามรหัสพนักงานค่ะ เช่นมี 10 คน ก็ให้ save ทีละไฟล์ รบกวนแนะนำวิธีการด้วยค่ะ พร้อมกันนี้ได้แนบไฟล์ตัวอย่างโปรแกรมที่ได้ทำมาด้วย

ขอบคุณค่ะ








 

11 ก.ย. 63 , 13:18:54
ตอบกลับ #1

PNR

ลองดูนะครับ
คุณต้องไปสร้าง Floder ชื่อ upload ไว้ Drive C: ก่อนเน้อ
อัพเดทโค้ดให้ใหม่นะครับ ไม่ต้องสร้างTableเพิ่ม  และลบCriteria ใน Query ออกไปใช้การกำหนด Criteria ตอนเปิด Recordset แทน

โค้ด
โค๊ด: [Select]
Private Sub Command8_Click()
    Dim rsGroup As DAO.Recordset
    Dim EmployeeCode As String, myPath As String

  myPath = "C:\upload\"
 

  Set rsGroup = CurrentDb.OpenRecordset("SELECT * FROM QueryForReportCertification where Cstr([TrainingEndDate])='" & CStr(Forms!frmSearchCertificate!txtApplyDate) & "'")
 
  Do While Not rsGroup.EOF
  EmployeeCode = rsGroup!EmployeeCode
 
    DoCmd.OpenReport "ReportCertificationNew", acViewPreview, , "EmployeeCode='" & EmployeeCode & "'"
    DoCmd.OutputTo acOutputReport, "ReportCertificationNew", acFormatPDF, _
                            myPath & EmployeeCode & ".pdf", False
 
DoCmd.Close acReport, "ReportCertificationNew"

 rsGroup.MoveNext
 Loop

 rsGroup.Close
End Sub
« แก้ไขครั้งสุดท้าย: 11 ก.ย. 63 , 14:14:45 โดย PNR »
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

11 ก.ย. 63 , 13:45:46
ตอบกลับ #2

mtaccess

ลองดูนะครับ
คุณต้องไปสร้าง Floder ชื่อ upload ไว้ Drive C: ก่อนเน้อ
อัพเดทโค้ดให้ใหม่นะครับ ไม่ต้องสร้าง Table เพิ่มและ ลบ Criteria ใน Query ออกไป

โค้ด
โค๊ด: [Select]
Private Sub Command8_Click()
    Dim rsGroup As DAO.Recordset
    Dim ColumnName As String, myPath As String

  myPath = "C:\upload\"
 

  Set rsGroup = CurrentDb.OpenRecordset("SELECT * FROM QueryForReportCertification where Cstr([TrainingEndDate])='" & CStr(Forms!frmSearchCertificate!txtApplyDate) & "'") 
  Do While Not rsGroup.EOF
  ColumnName = rsGroup!EmployeeCode 
    DoCmd.OpenReport "ReportCertificationNew", acViewPreview, , "EmployeeCode='" & ColumnName & "'"
    DoCmd.OutputTo acOutputReport, "ReportCertificationNew", acFormatPDF, _
                            myPath & ColumnName & ".pdf", False 
DoCmd.Close acReport, "ReportCertificationNew"
 rsGroup.MoveNext
 Loop
 rsGroup.Close
End Sub


ขอบคุณมากๆนะคะ ลองทำในตัวอย่างแล้วใช้ได้ เดี๋ยวจะลองนำไปใช้กับงานจริงดูค่ะ

 

11 ก.ย. 63 , 13:50:02
ตอบกลับ #3

PNR

อ้างถึง
ลองทำในตัวอย่างแล้วใช้ได้ เดี๋ยวจะลองนำไปใช้กับงานจริงดูค่ะ

ขอชื่นชมนะครับ มีการสร้างไฟล์ตัวอย่าง และรูปอธิบายแบบนี้
จะทำให้ผู้ตอบเข้าใจขั้นตอนที่ต้องการและ แก้ไขให้ได้อย่างรวดเร็วครับ
เสียเวลาสร้างนิดหน่อย แต่แก้ไขได้ง่ายกว่าครับ
 :miao: :miao:
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

11 ก.ย. 63 , 15:31:15
ตอบกลับ #4

mtaccess

อ้างถึง
ลองทำในตัวอย่างแล้วใช้ได้ เดี๋ยวจะลองนำไปใช้กับงานจริงดูค่ะ

ขอชื่นชมนะครับ มีการสร้างไฟล์ตัวอย่าง และรูปอธิบายแบบนี้
จะทำให้ผู้ตอบเข้าใจขั้นตอนที่ต้องการและ แก้ไขให้ได้อย่างรวดเร็วครับ
เสียเวลาสร้างนิดหน่อย แต่แก้ไขได้ง่ายกว่าครับ
 :miao: :miao:

ขอบคุณสำหรับคำชมค่ะ
ลองนำไปใช้กับของจริงที่ลิงค์จาก Database เป็น SQL Server พอกดปุ่ม Export to pdf ไปแล้ว โปรแกรมนิ่ง ไม่มีการ Export ไฟล์มาให้เลยค่ะ
รบกวนแนะนำด้วยค่ะ ขอบคุณค่ะ

ตัวอย่างโค้ดค่ะ

โค๊ด: [Select]
Private Sub cmdPDF_Click()
Dim rsGroup As DAO.Recordset
  Dim ColumnName As String, myPath As String

  myPath = "\\Servername\h\upload\"    '--------------อยู่บน Host ค่ะ
 
  Set rsGroup = CurrentDb.OpenRecordset("SELECT * FROM QueryForReportCertification where Cstr([dbo_ResultTraining.TrainingEndDate])='" & CStr(Forms!frmSearchCertificate!txtApplyDate) & "'")
 
  Do While Not rsGroup.EOF
  ColumnName = rsGroup!dbo_Reg.EmployeeCode
 
    DoCmd.OpenReport "ReportCertificationNew", acViewPreview, , "dbo_Reg.EmployeeCode='" & ColumnName & "'"
    DoCmd.OutputTo acOutputReport, "ReportCertificationNew", acFormatPDF, _
                            myPath & ColumnName & ".pdf", False
 
DoCmd.Close acReport, "ReportCertificationNew"

 rsGroup.MoveNext
 Loop

 rsGroup.Close
End Sub

 

11 ก.ย. 63 , 15:44:47
ตอบกลับ #5

PNR

เป็นเพราะ Format วันที่ ไม่ตรงกันหรือเปล่าครับ
ขอดูฟอแมทวันที่จากฐาน SQL Server มาดูหน่อย
(ผมไม่ได้อยู่ตอบมาอีกทีวันจันทร์นะครับ ไปทริปตกปลาทะเล)

ลองรีเช็คเรืองฟอแมทวันที่ให้ตรงกันนะครับ
 
« แก้ไขครั้งสุดท้าย: 11 ก.ย. 63 , 16:06:53 โดย PNR »
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

14 ก.ย. 63 , 09:34:47
ตอบกลับ #6

mtaccess

เป็นเพราะ Format วันที่ ไม่ตรงกันหรือเปล่าครับ
ขอดูฟอแมทวันที่จากฐาน SQL Server มาดูหน่อย
(ผมไม่ได้อยู่ตอบมาอีกทีวันจันทร์นะครับ ไปทริปตกปลาทะเล)

ลองรีเช็คเรืองฟอแมทวันที่ให้ตรงกันนะครับ

วันที่ใน database ค่ะ

 

14 ก.ย. 63 , 10:55:17
ตอบกลับ #7

PNR

ต้องฟอแมทวันที่ให้ตรงกันกับ textbox ที่ใช้ในการค้นหาก่อนครับ

ที่คิวรี่ปรับฟอแมทเป็นแบบนี้ดูครับ
Dates: Format([TrainingEndDate],'dd/mm/yyyy')

และที่ โค้ดใส่แบบนี้
Set rsGroup = CurrentDb.OpenRecordset("SELECT * FROM QueryForReportCertification where Cstr([Dates])='" & CStr(Forms!frmSearchCertificate!txtApplyDate) & "'")

และแก้ฟิลล์ที่ตัวรายงาน ที่เป็นฟิลล์ TrainingEndDate เป็น Dates ทั้งหมด


ถ้าไม่ได้ คงต้องรีโมทไปตรวจสอบให้แล้วละครับ
เพราะต้องเช็คข้อมูลวันที่ที่แสดงใน access ว่าเป็นแบบไหนจะได้ปรับให้เหมือนกัน
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

14 ก.ย. 63 , 11:25:38
ตอบกลับ #8

sjs

งานที่ทำเป็นการ Link Table MS SQL server มาหรือเปล่าครับ ถ้าใช่ลองสร้าง Query ใส่เงื่อนไขที่Field  [Dates] = = =Forms!frmSearchCertificate!txtApplyDate  แล้ว view ดูข้อมูลได้ไหมครับ
« แก้ไขครั้งสุดท้าย: 14 ก.ย. 63 , 11:55:56 โดย sjs »

 
โพสต์นี้ได้รับคำขอบคุณจาก: PNR, mtaccess

14 ก.ย. 63 , 11:47:46
ตอบกลับ #9

mtaccess

ต้องฟอแมทวันที่ให้ตรงกันกับ textbox ที่ใช้ในการค้นหาก่อนครับ

ที่คิวรี่ปรับฟอแมทเป็นแบบนี้ดูครับ
Dates: Format([TrainingEndDate],'dd/mm/yyyy')

และที่ โค้ดใส่แบบนี้
Set rsGroup = CurrentDb.OpenRecordset("SELECT * FROM QueryForReportCertification where Cstr([Dates])='" & CStr(Forms!frmSearchCertificate!txtApplyDate) & "'")

และแก้ฟิลล์ที่ตัวรายงาน ที่เป็นฟิลล์ TrainingEndDate เป็น Dates ทั้งหมด


ถ้าไม่ได้ คงต้องรีโมทไปตรวจสอบให้แล้วละครับ
เพราะต้องเช็คข้อมูลวันที่ที่แสดงใน access ว่าเป็นแบบไหนจะได้ปรับให้เหมือนกัน

ลองแล้วติด error นี้ค่ะ


รบกวนให้คำแนะนำด้วยนะคะ ขอบคุณค่ะ

 

14 ก.ย. 63 , 12:02:53
ตอบกลับ #10

PNR

ชื่อฟิลล์ผิดครับ
Dates คือฟิลล์  TrainingEndDate อันเดิมของคุณครับ
ที่ผมต้องเปลี่ยนชื่อเป็น Dates เพื่อทำการฟอแมทเป็น Dates: Format([TrainingEndDate],'dd/mm/yyyy')
ลองส่งรูปแสดงชื่อฟิลล์ในคิวรี่ มาดูหน่อย
และโค้ดที่ใส่ไว้ตอน OpenRecord ด้วยครับ
« แก้ไขครั้งสุดท้าย: 14 ก.ย. 63 , 12:14:48 โดย PNR »
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

14 ก.ย. 63 , 12:21:53
ตอบกลับ #11

mtaccess

ชื่อฟิลล์ผิดครับ
Dates คือฟิลล์  TrainingEndDate อันเดิมของคุณครับ
ที่ผมต้องเปลี่ยนชื่อเป็น Dates เพื่อทำการฟอแมทเป็น Dates: Format([TrainingEndDate],'dd/mm/yyyy')
ลองส่งรูปแสดงชื่อฟิลล์ในคิวรี่ มาดูหน่อย
และโค้ดที่ใส่ไว้ตอน OpenRecord ด้วยครับ

รูปแสดงชื่อฟิลล์ในคิวรี่ค่ะ


และโค้ด
Set rsGroup = CurrentDb.OpenRecordset("SELECT * FROM QueryForReportCertification where Cstr([Dates])='" & CStr(Forms!frmSearchCertificate!txtApplyDate) & "'")

 

14 ก.ย. 63 , 12:36:10
ตอบกลับ #12

PNR

ในคิวรี่ ฟอแมท ฟิลล์ TrainingEndDate ก่อนนะครับ
เอาโค้ดนี้ไปวางในฟิลล์นะครับ
Dates: Format([TrainingEndDate],'dd/mm/yyyy')
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

14 ก.ย. 63 , 14:17:24
ตอบกลับ #13

mtaccess

ในคิวรี่ ฟอแมท ฟิลล์ TrainingEndDate ก่อนนะครับ
เอาโค้ดนี้ไปวางในฟิลล์นะครับ
Dates: Format([TrainingEndDate],'dd/mm/yyyy')



ทำได้แล้วค่ะ แต่ติดปัญหาตอนบันทึกไฟล์ออกมาเป็น pdf รูปลายเซ็นต์ที่ใส่ไว้ในหน้ารายงาน ไม่มาด้วยค่ะ ข้อมูลอื่นมาครบหมด รบกวนแนะนำด้วยค่ะ ขอบคุณค่ะ

 

14 ก.ย. 63 , 14:48:55
ตอบกลับ #14

PNR

ไม่น่าจะไม่แสดงนะครับ จากโค้ดถึงมีรูปในหน้ารายงานก็ต้องแสดงอยู่แล้วครับ
ลองเช็คความถูกต้องของการตั้งค่าการแสดงให้ดีๆครับผิดตรงไหนหรือเปล่า
การกำหนด ให้แสดงด้านหลังสุด หรือ ด้านหน้าสุดก็มีส่วนนะครับ
ลองดูหน้ารายงานในมุมมองเหมือนพิมพ์ ดูหรือลองปริ้นดู กด Ctrl + P ว่าตอนพิมพ์ออกมาลายเซ็นต์แสดงหรือไม่


Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

14 ก.ย. 63 , 15:07:15
ตอบกลับ #15

mtaccess

ไม่น่าจะไม่แสดงนะครับ จากโค้ดถึงมีรูปในหน้ารายงานก็ต้องแสดงอยู่แล้วครับ
ลองเช็คความถูกต้องของการตั้งค่าการแสดงให้ดีๆครับผิดตรงไหนหรือเปล่า
การกำหนด ให้แสดงด้านหลังสุด หรือ ด้านหน้าสุดก็มีส่วนนะครับ
ลองดูหน้ารายงานในมุมมองเหมือนพิมพ์ ดูหรือลองปริ้นดู กด Ctrl + P ว่าตอนพิมพ์ออกมาลายเซ็นต์แสดงหรือไม่

รายงานในมุมมองเหมือนพิมพ์รูปลายเซ็นต์มาปรกติค่ะ แต่ตอนสั่งบันทึกเป็น pdf รูปไม่มา ต้องไปตั้งค่าการแสดงรูปตรงไหนคะ เหมือนมีรูปซ้อนกันสองรูปมีรูปที่เป็นพื้นหลัง 1 และรูปที่เป็นลายเซ็นต์ 1 รบกวนแนะนำด้วยค่ะ ขอบคุณค่ะ

 

14 ก.ย. 63 , 15:20:38
ตอบกลับ #16

PNR

เหมือนมีรูปซ้อนกันสองรูปมีรูปที่เป็นพื้นหลัง 1 และรูปที่เป็นลายเซ็นต์ 1

ผมไม่เห็นภาพครับ อธิบายไม่ถูกเหมือนกัน
หรืออีกวิธีลองคลิกขวาที่รูป โดยที่รูปพื้นหลัง เลือก นำไปไว้ข้างหลังสุด
และ รูปลายเซ็นต์กดเลือกนำไปไว้ข้างหน้าสุด

หรือลองลบรูปที่เป็นพื้นหลังออกไปก่อนครับ ว่าแสดงหรือไม่
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

14 ก.ย. 63 , 17:01:05
ตอบกลับ #17

mtaccess

เหมือนมีรูปซ้อนกันสองรูปมีรูปที่เป็นพื้นหลัง 1 และรูปที่เป็นลายเซ็นต์ 1

ผมไม่เห็นภาพครับ อธิบายไม่ถูกเหมือนกัน
หรืออีกวิธีลองคลิกขวาที่รูป โดยที่รูปพื้นหลัง เลือก นำไปไว้ข้างหลังสุด
และ รูปลายเซ็นต์กดเลือกนำไปไว้ข้างหน้าสุด

หรือลองลบรูปที่เป็นพื้นหลังออกไปก่อนครับ ว่าแสดงหรือไม่

ทำได้แล้วค่ะ เป็นกับการเลือกรูปมาวางค่ะ ที่ไม่ได้เพราะวางเป็น ole เลยแก้มาเป็น image รูปแสดงแล้วค่ะ
ขออนุญาตถามอีกข้อนะคะ ถ้าเราจะให้บันทึกลงใน google drive ตามลิงค์ที่เรามี สามารถทำได้ไหมคะ รบกวนแนะนำด้วยค่ะ ขอบคุณค่ะ

 


บอร์ดเรียนรู้ Access สำหรับคนไทย


 

Sitemap 1 2 3 4 5