ขอทราบหลักการอ้างอิงฟอร์มย่อยในฟอร์มหลักค่ะ
กระทู้เก่าบอร์ด อ.Yeadram

 1,645   2
URL.หัวข้อ / URL
ขอทราบหลักการอ้างอิงฟอร์มย่อยในฟอร์มหลักค่ะ

ขอเรียนถามอาจารย์ทุกท่านนะคะ
หนูอยากทราบว่าการเขียนโค้ดใ้ห้สามารถอ้างอิงฟอร์มย่อย(แบบแท็บ)ที่อยู่บนฟอร์มหลัก ว่าจะต้องเรียงคำสั่งอย่างไรคะ
คือตอนนี้หนูมีฟอร์มย่อยแบบแท็บสมมติว่าชื่อ Frm1 ซึ่งอยู่บนฟอร์มหลักสมมติว่าชื่อ MasterForm ค่ะ
ที่ฟอร์มย่อย Frm1 ก็จะมีโค้ดต่างๆอยู่ เวลารันเพียง Frm1 อย่างเดียว โค้ดต่างๆก็ทำงานของมันได้ปกติ แต่เมื่อใดที่รัน Frm1 ซึ่งเป็นแท็บอยู่บน MasterForm ก็จะเกิด Error บอกประมาณว่าไม่พบ Frm1 ที่อ้างถึง อะไรทำนองนี้แหละค่ะ ทั้งๆที่ Frm1 ก็กำลังรันอยู่ เพียงแต่รันอยู่บน MasterForm เท่านั้นเองค่ะ แต่ถ้าไม่รันผ่านMasterForm คือรัน Frm1 เพียงตัวเดียว มันก็ใช้ได้ปกติค่ะ
หนูเข้าใจเอาเองว่า เราจะต้องเขียนโค้ดให้อ้างอิงทั้ง MasterForm และ Frm1 ด้วยใช่หรือเปล่าคะ หากใช่ เราจะเขียนโค้ดอ้างอิงแบบไหนจึงจะถูกต้องคะอาจารย์
ขอความกรุณาด้วยค่ะ

2 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R03442
ขอเพิ่มเติมนะคะ
โค้ดด้านล่างนี้หนูวางไว้ที่ Afterupdate ของคอนโทรลบน Frm1 ค่ะ

Forms("Frmbox").Controls("Text1") = Forms("Frm1").MasterForm.Control("Key")

ความต้องการก็เพื่อส่งค่าจากคอนโทรล Key ที่อยู่บนฟอร์ม Frm1 ไปยังคอนโทรล Text1 ที่อยู่บนฟอร์ม Frmbox ค่ะ
ปัญหาคือ ถ้าเปิดเพียงฟอร์ม Frm1 ตามลำพัง (ไม่มีคำสั่ง MasterForm) มันก็ส่งค่าได้ปกติค่ะ แต่ถ้าเราเปิด Frm1 ในลักษณะของฟอร์มย่อย(แบบแท็บ)โดยผ่านฟอร์มหลัก MasterForm แล้วมันจะ Error โดยแจ้งว่าไม่พบฟอร์ม Frm1 ที่อ้างถึง ค่ะ
2 @R03447
แวะมารายงานให้เพื่อนๆทราบว่า เจอสาเหตุและแก้ได้แล้วค่ะ โดยเพียงสลับตำแหน่งกันระหว่าง Frm1 กับ MasterForm ให้เป็นตามข้างล่างนี้ค่ะ

ของเดิมที่ไม่ผ่าน : Forms("Frmbox").Controls("Text1") = Forms("Frm1").MasterForm.Control("Key")

ของใหม่ที่ผ่านแล้ว : Forms("Frmbox").Controls("Text1") = Forms("MasterForm").Frm1.Control("Key")

ตอนนี้ใช้ได้เรียบร้อยแล้วนะคะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3478s