การใช้ VBA สั่งเปิดรายงานแบบมีเงื่อนไข (MS Access)
รายงานที่นำข้อมูลมาจาก Query สามารถกำหนดเงื่อนไขในการแสดงข้อมูลได้ ดังนี้
- กำหนดเงื่อนไขโดยตรงในช่อง Criteria ของ Query นั้น ๆ เช่น ถ้าเราต้องการให้นำข้อมูลของอำเภอนครหลวงมาแสดง ให้พิมพ์ข้อความในเครื่องหมายคำพูดในช่อง Criteria ดังภาพ
- ถ้าเป็นการสั่งจากฟอร์ม เราสามารถกำหนดให้นำข้อความจาก กล่องข้อความ list box หรือ combo box มาเป็นเงื่อนไขได้ โดยการอ้างอิงถึง กล่องข้อความในช่องเงื่อนไข ในภาพ เป็นการอ้างอิงข้อความชื่อวิชา ที่อยู่ใน กล่องข้อความ ในแบบฟอร์มชื่อ frmShowAll_by_Subject (อ่านวิธีการอ้างอิงถึง Object คลิกที่นี่)
- ใช้ stLinkcriteria เพื่อกำหนดเงื่อนไขในการเปิดฟอร์ม วิธีนี้เหมาะสำหรับการกำหนดเงื่อนไขที่มีการใช้สูตร เช่น ถ้าต้องการให้แสดงชื่อวิชาทั้งหมด หรือให้เลือกเฉพาะวิชาใดวิชาหนึ่งที่ต้องการ เราสามารถกำหนดเงื่อนไข ใน stLinkCriteria ได้
ตัวอย่างนี้ เป็นการกำหนดเงื่อนไข ให้นำข้อความใน list box ชื่อ lstSubNames มาเป็นเงื่อนไขในการเปิดรายงาน ตามที่ระบุ แต่ถ้าหาก ข้อความใน lstSubNames เป็นเครื่องหมายดอกจัน (*) ก็ให้นำข้อมูลทุกวิชามาแสดง
If Me.lstSubNames.Value = "*" Then
stLinkCriteria = ""
Else
stLinkCriteria = "[subjName]=" & "'" & Me.lstSubNames.Value & "'"
End If
DoCmd.OpenReport "rptShowAll_by_Subject", acViewPreview, , stLinkCriteria
ทั้งนี้ โดยใน Query ให้ปล่อยเงื่อนไขในฟิลด์ [subjName] ว่างไว้ เพื่อให้แสดงข้อมูลทั้งหมด และให้กรองข้อมูล จาก stLinkCriteria ที่กำหนด
ความคิดเห็น
แสดงความคิดเห็น