ต้องการให้ ค่าจาก subform ส่งค่าให้ main form ค่ะ
กระทู้เก่าบอร์ด อ.Yeadram

 5,576   5
URL.หัวข้อ / URL
ต้องการให้ ค่าจาก subform ส่งค่าให้ main form ค่ะ

mainform = mainA
subform=subB
ใน subB มีการให้ใส่ค่า percentile

เมื่อ percentile_LostFocus

ให้ mainA ชื่อ sum_percentile รับค่าผลรวมของ percentile จาก subB


ที่ไม่ใช้วิธีอ้าง [subBl].Form![sum_percentile] จาก mainA เนื่องจากต้องเก็บค่าดังกล่าวไว้ในตารางด้วยน่ะค่ะ


+++++ทำอยู่ตั้งนานแล้วไม่ได้ซักทีค่ะ+++++++

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

1 @R05285
สมมติว่า แหล่งข้อมูลของ subB คือ ตารางหรือคิวรี่ ชื่อ source1
สมมติว่า ฟิลด์ที่สัมพันธ์กันระหว่าง subB กับ MainA คือฟิลด์ที่ชื่อ f1 และเป็นข้อมูลชนิด Text
สมมติว่า ฟิลด์ f1 ถูกออกแบบให้แสดงผลบนฟอร์ม MainA ใน textbox ชื่อว่า TXf1

เขียนโค้ดในฟอร์มย่อย subB

Private sub percentile_LostFocus()
Forms("MainA").controls("Sum_percentiles") = Dsum("percentile","source1","[f1] Like '" & Forms("mainA").controls("TXf1") & "'")
End sub
2 @R05295
ได้แล้วค่ะ ขอบคุณค่ะ

แต่ติดปัญหาตอนเอา ฟอ์มนี้ไปเป็น subform ของ อีกฟอร์มหนึ่ง(ฟอร์มAA) มันบอกว่า ไม่พบ ฟอร์มA

ทั้ง ๆ ถ้า เปิด ฟอร์มA ย่อย มันก้อส่งค่าให้นะค่ะ
3 @R05296
ลองเปลี่ยนคำสั่งการอ้างอิง
น่าจะได้นะครับ ลองดู

Private sub percentile_LostFocus()
Me.parent.form.controls("Sum_percentiles") = Dsum("percentile","source1","[f1] Like '" & Me.parent.form.controls("TXf1") & "'")
End sub
4 @R05302

มันขึ้น runtime error 2448

ไม่สามารถกำหนดค่าให้กับวัตถุได้
5 @R05308
คุณทดสอบสั่งการจากฟอร์มลูก subB
โดยอ้างถึงคอนโทรลในฟอร์มแม่......
คุณบอกว่า subB ตัวนี้สามารถฝังอยู่ได้ในฟอร์มแม่ได้หลายตัว
คุณรันโค้ดที่ให้ไป ในขณะทีมันฝังกับฟอร์มแม่ตัวแรก (MainA) มันผ่าน

แต่คุณรันโค้ดที่ให้ไป ในขณะทีมันฝังกับฟอร์มแม่ตัวที่สอง (MainAA) ไม่ผ่าน

--- กับความเห็นล่าสุด ผมไม่แน่ใจว่าใช่หรือเปล่า (คือผ่านกับ MainA แต่ไม่ผ่านสำหรับ MainAA)

ในฟอร์ม MainA เราอ้างถึงคอนโทรลที่ชื่อ Sum_percentiles, TXf1
ในฟอร์ม MainAA เราอ้างคอนโทรลก็ชื่อเดียวกัน
---- ถามว่า มีคอนโทรลชื่อเหล่านี้ ใน MainAA หรือไม่

ถ้ามันมีชื่อคอนโทรลตรงกันจริง ตามเข้าไปดูอีกว่า คอนโทรลเหล่านั้น เป็นชนิดเดียวกันหรือไม่ในระหว่างสองฟอร์มแม่ (เป็น textbox เหมือนกันหรือเปล่า)

ถ้าชนิดคอนโทรลเหมือนกัน ตามเข้าไปดูอีกว่า แหล่งข้อมูลของคอนโทรลตัวใดมีปัญหาหรือไม่ เช่น บางตัวเขียนอ้างชื่อฟิลด์(ทำหน้าที่ทั้งแสดงผลและรับข้อมูลที่ input) บางตัวเขียนโดยนิพจน์(ทำหน้าที่แค่แสดงผลได้อย่างเดียวรับ input ไม่ได้)

ลองตรวจสอบดูครับถ้าหาสาเหตุเจอ ก็อาจจะเจอทางออกได้ด้วยตัวคุณเองครับ

ถ้ามันมีความแตกต่างกันหลายอย่าง ก็แนะ??ำให้ใช้การตรวจสอบเงื่อนไขก่อนจะสั่งการครับ คือให้ตรวจดูก่อนว่า ขณะนี้ มันรันอยู่ภายใต้ฟอร์มแม่ตัวใด เช่น

select case me.parent.form.name
case "MainA"
---
case MainAA"
---
end select
เป็นต้น
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3333s