การอ้างอิง Control ที่อยู่บนฟอร์มย่อยใน Navigation Form

การอ้างอิง Control ที่อยู่บนฟอร์มย่อยใน Navigation Form
หากใครเคยใช้ Navigation Form สำหรับสร้างฟอร์มหลักใน Microsoft Access เพื่อนำฟอร์มต่าง ๆ มาไว้ในฟอร์มเดียวกันโดยแยกเป็นแต่ละ Tab จะเห็นว่าง่ายดายมาก เพียงแค่ลากฟอร์มเข้ามาตรง AddNew ในมุมมอง Layout View ของ Navigation Form เราก็จะได้ฟอร์มย่อยมาอยู่บน Navigation Form แล้ว ดังรูป

ซึ่งจากรูปจะเห็นว่ามีฟอร์ม FOrder ที่อยู่บน Navigation Form ด้วย โดยฟอร์ม FOrder นั้นมี TextBox 2 กล่อง รอให้ใส่ช่วงวันที่ที่ต้องการออกรายงานรายการใบสั่งซื้อตามช่วงเวลาที่ต้องการ ซึ่งก่อนหน้านี้ได้ทำเป็นฟอร์มเดี่ยว ๆ ยังไม่นำมาอยู่บน Navigation Form และสามารถเปิดรายงานได้ตามปกติ ทั้งนี้ ค่า Parameter ที่กำหนดที่ Query เพื่อหารายการสั่งซื้อที่สั่งซื้อระหว่างวันที่ที่ต้องการ ทำได้โดยใส่ Criteria ด้วยคำสั่ง Between [Forms]![FOrder]![txtFromDate] And [Forms]![FOrder]![txtToDate] ดังรูป

ซึ่งถ้าเราเปิดฟอร์ม FOrder เดี่ยว ๆ โดยไม่ผ่าน Navigation Form ฟอร์ม FOrder จะยังใช้งานได้ตามปกติ
โดยการอ้างอิง Control บนฟอร์มเดี่ยว ๆ นั้น โครงสร้างการอ้างอิง คือ [Forms]![ชื่อฟอร์ม]![ชื่อ Control]
แต่หากใช้งาน FOrder ผ่าน Navigation Form จะมี InputBox แสดงขึ้นมาให้ใส่ค่า Parameter ดังรูป 
ซึ่งถ้าไม่ต้องการให้มี InputBox ดังกล่าวปรากฎขึ้น เนื่องจากไม่รู้จักค่า Parameter เราจะต้องอ้างอิง control ที่อยู่บน Subform ใน Navigation Form ใหม่ โดย Criteria เป็น Between [Forms]![NavigationFrm]![NavigationSubform].[Form]![txtFromDate] and [Forms]![NavigationFrm]![NavigationSubform].[Form]![txtToDate] ดังรูป

จากรูป เราจะมาดูโครงสร้างของการอ้างอิง Control ที่อยู่บน Subform ใน Navigation Form กัน ดังรูปค่ะ

ชื่อ SubForm นั้น เป็น SubForm ใน Navigation Form ค่ะ ทั้งนี้ หลังจากเราเปลี่ยนการอ้างอิง Control ใหม่แล้ว เมื่อเราเปิดฟอร์ม FOrder ลำพัง จะมี InputBox ให้ใส่ค่า Parameter ใหม่นะคะ เนื่องจากการอ้างอิง Control กรณีฟอร์มเดี่ยว ๆ กับ Control ที่อยู่บน SubForm ใน Navigation Form นั้นไม่เหมือนกันตามทีกล่าวไปแล้วค่ะ