การเรียก เมนูพิมพ์ ของ MS Access ด้วยคำสั่ง acCmdPrint

โดย อ.ทองจุล ขันขาว

 

ความรู้พื้นฐาน: โปรแกรม Access การใช้ VBA กับโปรแกรม Access

 

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

การใช้คำสั่งนี้ จำเป็นต้องให้โปรแกรมตรวจสอบ error ด้วย เพราะถ้าผู้ใช้คลิก Cancel จะเกิด error และ ทำให้โปรแกรมแสดงผลผิดปกติไป เช่น อาจจะแสดงเมนูพิมพ์ 2 ครั้ง เป็นต้น

การใช้คำสั่ง acCmdPrint ทำได้ดังนี้

1.    สร้างฟังชั่นในโมดูล ดังนี้

Function printDialog()

On Error Resume Next

   DoCmd.RunCommand acCmdPrint

On Error GoTo 0

End Function

ฟังชั่นนี้ เรียกใช้คำสั่ง acCmdPrint และตรวจสอบ error ที่เกิดขึ้น

2.    สร้างเมนูใหม่ และใช้ เมนู print

3.    คลิกขวาที่เมนูใหม่เพื่อเรียก property

 

4.    คลิกที่ properties เพื่อเปิดเมนู

5.    เรียกใช้ฟังชั่นที่สร้างขึ้นใหม่นี้ ที่ On Action ของเมนู โดยพิมพ์

=printDialog() ลงในช่อง ตามภาพ

 

เป็นอันเสร็จการเรียกเมนูพิมพ์ เพื่อให้ผู้ใช้สามารถตั้งค่าการพิมพ์ ได้ตามต้องการ