กระทู้เก่าบอร์ด อ.Yeadram
1,355 5
URL.หัวข้อ /
URL
ต้องการพิมพ์รายงานบนซองจดหมายค่ะ
รบกวนสอบถามวิธีออกแบบรายงานให้พิมพ์ข้อมูลรายชื่อลูกค้าลงบนซองจดหมายค่ะ
ลองวัดขนาดของซองจดหมายได้ ประมาณ 11 x 22 cm
ตอนนี้ได้ออกแบบรายงานไว้ โดยกำหนดขนาดให้พอดีกับขนาดซองดังกล่าว
ปัญหาก็คือ ในบางเครื่องก็ไม่มีตัวเลือก ให้เลือกขนาดดังกล่าว
ขอเรียนสอบถามว่า เราจะกำหนดขนาดหน้ากระดาษให้กับรายงานนี้
แบบตายตัวไปเลยได้ไหมคะ แบบว่า เมื่อสั่งพิมพ์ ก็พิมพ์ด้วยขนาดที่กำหนด
ได้เลย ไม่ว่าจะไปใช้กับเครื่องไหนก็ตาม
ในบางเครื่อง พยายามเลือกหาขนาดกระดาษดังกล่าวหรือใกล้เคียงก็ไม่เห็นมี
ขนาดสำเร็จรูปอื่นๆ ที่พอเหมาะกับซองจดหมายดังกล่าว
พอจะใช้ขนาดไหนได้บ้างคะ หรือต้องปรับเปลี่ยนออกแบบรายงานใหม่
ลองวัดขนาดของซองจดหมายได้ ประมาณ 11 x 22 cm
ตอนนี้ได้ออกแบบรายงานไว้ โดยกำหนดขนาดให้พอดีกับขนาดซองดังกล่าว
ปัญหาก็คือ ในบางเครื่องก็ไม่มีตัวเลือก ให้เลือกขนาดดังกล่าว
ขอเรียนสอบถามว่า เราจะกำหนดขนาดหน้ากระดาษให้กับรายงานนี้
แบบตายตัวไปเลยได้ไหมคะ แบบว่า เมื่อสั่งพิมพ์ ก็พิมพ์ด้วยขนาดที่กำหนด
ได้เลย ไม่ว่าจะไปใช้กับเครื่องไหนก็ตาม
ในบางเครื่อง พยายามเลือกหาขนาดกระดาษดังกล่าวหรือใกล้เคียงก็ไม่เห็นมี
ขนาดสำเร็จรูปอื่นๆ ที่พอเหมาะกับซองจดหมายดังกล่าว
พอจะใช้ขนาดไหนได้บ้างคะ หรือต้องปรับเปลี่ยนออกแบบรายงานใหม่
5 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R23943
หมายความว่าเราต้องไปตั้งค่าในทุกๆเครื่องที่จะใช้งานใช่ไหมคะ
แล้วเราพอจะมีวิธีใช้โค๊ดคำสั่งอะไรให้เข้าไปกำหนดค่าตามที่ต้องการ
จากโปรแกรมของเราได้บ้างไหมคะ แบบว่าพอคลิกสั่งปรินท์รายงาน
ก็ให้ไปกำหนดค่าหน้ากระดาษตามที่ต้องการด้วยเลย
แล้วเราพอจะมีวิธีใช้โค๊ดคำสั่งอะไรให้เข้าไปกำหนดค่าตามที่ต้องการ
จากโปรแกรมของเราได้บ้างไหมคะ แบบว่าพอคลิกสั่งปรินท์รายงาน
ก็ให้ไปกำหนดค่าหน้ากระดาษตามที่ต้องการด้วยเลย
3 @R23945
ถ้าเช็คจากค่าคงที่ของขนาดกระดาษที่ vba มีให้ตาม https://msdn.microsoft.com/en-us/vba/access-vba/articles/acprintpapersize-enumeration-access จะเห็นได้ว่ากระดาษที่ชื่อ Envelope DL ที่มีค่าเป็น 27 จะมีขนาดเดียวกันกับที่ต้องการเลยครับ ใน Access บนเครื่องผมก็มีขนาดกระดาษอันนี้ ตอนที่อยู่ใน Report Design View ก็เลือก Page Setup ก็จะเห็น Paper Size ชื่อว่า DL Env. (คิดว่าอันเดียวกันครับ) ก็ไม่ต้องเขียนโปรแกรมอะไรเลยครับ กำหนดไปพร้อมกับตัวรายงานได้เลย
4 @R23947
ใช้ฟังก์ชั่นประมาณนี้ได้หรือเปล่าครับ
Function rpt_Printing(ReportName As String, Optional PrinterName As String) As Boolean
Dim oPrinter As Printer
' กำหนดชื่อเครื่องพิมพ์เป้าหมาย
If PrinterName & "" = "" Then
Set oPrinter = Application.Printers(Application.Printer.DeviceName)
Else
Set oPrinter = Application.Printers(PrinterName)
End If
' กำหนดคุณสมบัติของเครื่องพิมพ์
With oPrinter
.PaperSize = acPRPSEnvDL ' ขนาดกระดาษที่ อ.สันติสุข แนะนำ
' คุณสมบัติอื่นๆ หากต้องการกำหนด มีอีกมาก ศึกษาดูครับ
' .TopMargin = 1440
' .BottomMargin = 1440
' .LeftMargin = 1440
' .RightMargin = 1440
End With
With DoCmd
.OpenReport ReportName, acViewPreview
Reports(ReportName).Printer = oPrinter ' เลือกเครื่องพิมพ์ที่ถูกแก้ไขคุณสมบัติให้มาใช้กับรายงาน
.PrintOut ' สั่งพิมพ์
.Close acReport, ReportName
End With
End Function
rpt_Printing("ชื่อรายงานเป้าหมาย", "ชื่อเครื่องพิมพ์ หากไม่ต้องการ Default")
สั่งพิมพ์ที่รายงานชื่อ Report1
rpt_Printing "Report1"
หรือ สั่งพิมพ์ที่รายงานชื่อ Report1 เครื่องพิมพ์ชื่อ Microsoft Print to PDF
rpt_Printing "Report1", "Microsoft Print to PDF"
อะไรประมาณนี้ ปรับใช้ดูครับ
Function rpt_Printing(ReportName As String, Optional PrinterName As String) As Boolean
Dim oPrinter As Printer
' กำหนดชื่อเครื่องพิมพ์เป้าหมาย
If PrinterName & "" = "" Then
Set oPrinter = Application.Printers(Application.Printer.DeviceName)
Else
Set oPrinter = Application.Printers(PrinterName)
End If
' กำหนดคุณสมบัติของเครื่องพิมพ์
With oPrinter
.PaperSize = acPRPSEnvDL ' ขนาดกระดาษที่ อ.สันติสุข แนะนำ
' คุณสมบัติอื่นๆ หากต้องการกำหนด มีอีกมาก ศึกษาดูครับ
' .TopMargin = 1440
' .BottomMargin = 1440
' .LeftMargin = 1440
' .RightMargin = 1440
End With
With DoCmd
.OpenReport ReportName, acViewPreview
Reports(ReportName).Printer = oPrinter ' เลือกเครื่องพิมพ์ที่ถูกแก้ไขคุณสมบัติให้มาใช้กับรายงาน
.PrintOut ' สั่งพิมพ์
.Close acReport, ReportName
End With
End Function
rpt_Printing("ชื่อรายงานเป้าหมาย", "ชื่อเครื่องพิมพ์ หากไม่ต้องการ Default")
สั่งพิมพ์ที่รายงานชื่อ Report1
rpt_Printing "Report1"
หรือ สั่งพิมพ์ที่รายงานชื่อ Report1 เครื่องพิมพ์ชื่อ Microsoft Print to PDF
rpt_Printing "Report1", "Microsoft Print to PDF"
อะไรประมาณนี้ ปรับใช้ดูครับ
5 @R23949
ใช้ได้แล้วค่ะ กำหนดค่าเป็น Envelope DL 27 ตามที่อ.สันติสุขแนะนำ
อีกอันที่เป็น Envelope italy 36 ก็ใช้ได้เช่นกัน แต่เลือกใช้ Envelope DL ค่ะ
ขอขอคุณอาจารย์ทั้งสองท่านนะคะ ตอนนี้ได้ตามที่ต้องการแล้วค่ะ
อีกอันที่เป็น Envelope italy 36 ก็ใช้ได้เช่นกัน แต่เลือกใช้ Envelope DL ค่ะ
ขอขอคุณอาจารย์ทั้งสองท่านนะคะ ตอนนี้ได้ตามที่ต้องการแล้วค่ะ
Time: 0.3142s
http://www.thai-access.com/yeadram_view.php?topic_id=623
http://www.thai-access.com/yeadram_view.php?topic_id=1601
http://thai-access.com/yeadram_view.php?topic_id=1895