กระทู้เก่าบอร์ด อ.Yeadram
        
           5,749   5		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        ต้องการให้ ค่าจาก subform ส่งค่าให้ main form ค่ะ      
    
      mainform = mainA
subform=subB
ใน subB มีการให้ใส่ค่า percentile
เมื่อ percentile_LostFocus
ให้ mainA ชื่อ sum_percentile รับค่าผลรวมของ percentile จาก subB
ที่ไม่ใช้วิธีอ้าง [subBl].Form![sum_percentile] จาก 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 
				
        
    2 @R05295    
        
  
      ได้แล้วค่ะ  ขอบคุณค่ะ 
 
แต่ติดปัญหาตอนเอา ฟอ์มนี้ไปเป็น subform ของ อีกฟอร์มหนึ่ง(ฟอร์มAA) มันบอกว่า ไม่พบ ฟอร์มA
ทั้ง ๆ ถ้า เปิด ฟอร์มA ย่อย มันก้อส่งค่าให้นะค่ะ
    
   
 
แต่ติดปัญหาตอนเอา ฟอ์มนี้ไปเป็น 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
    
    
  น่าจะได้นะครับ ลองดู
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
ไม่สามารถกำหนดค่าให้กับวัตถุได้
    
  
  มันขึ้น 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
เป็นต้น
    
    
  โดยอ้างถึงคอนโทรลในฟอร์มแม่......
คุณบอกว่า 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
เป็นต้น
      Time: 0.0627s
    
      
		
สมมติว่า ฟิลด์ที่สัมพันธ์กันระหว่าง 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