วันเสาร์ที่ 11 กุมภาพันธ์ พ.ศ. 2555

การใช้ VBA สั่งเปิดรายงานแบบมีเงื่อนไข (MS Access)

รายงานที่นำข้อมูลมาจาก Query สามารถกำหนดเงื่อนไขในการแสดงข้อมูลได้ ดังนี้
  1. กำหนดเงื่อนไขโดยตรงในช่อง Criteria ของ Query นั้น ๆ  เช่น ถ้าเราต้องการให้นำข้อมูลของอำเภอนครหลวงมาแสดง ให้พิมพ์ข้อความในเครื่องหมายคำพูดในช่อง Criteria ดังภาพ

  2. ถ้าเป็นการสั่งจากฟอร์ม เราสามารถกำหนดให้นำข้อความจาก กล่องข้อความ list box หรือ combo box มาเป็นเงื่อนไขได้ โดยการอ้างอิงถึง กล่องข้อความในช่องเงื่อนไข ในภาพ เป็นการอ้างอิงข้อความชื่อวิชา ที่อยู่ใน กล่องข้อความ ในแบบฟอร์มชื่อ frmShowAll_by_Subject (อ่านวิธีการอ้างอิงถึง Object คลิกที่นี่)

  3. ใช้ 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 ที่กำหนด

ไม่มีความคิดเห็น:

แสดงความคิดเห็น