กระทู้เก่าบอร์ด อ.Yeadram
        
           1,451   6		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        select valua      
    
      ขอคำชี้แนะ คับ...
คือมี Form_1 และ Form_2 อันนี้จะแยกอิสระจากกันเลยน่ะคับ ต้องเขียน code ยังไงครับ ที่จะทำให้ Form_1 รับค่าจาก Form_2 จากที่ user double click ที่ Field_A ที่อยู่บน Form_2 แล้ว Field_A ก็จะเพิ่มเข้ามาที่ Form_1 ที่ชื่อ Field_A เหมือนกันคับ
รบกวนอาจารย์หรือท่านผู้รู้ ด้วยนะครับ...
    
    
  คือมี Form_1 และ Form_2 อันนี้จะแยกอิสระจากกันเลยน่ะคับ ต้องเขียน code ยังไงครับ ที่จะทำให้ Form_1 รับค่าจาก Form_2 จากที่ user double click ที่ Field_A ที่อยู่บน Form_2 แล้ว Field_A ก็จะเพิ่มเข้ามาที่ Form_1 ที่ชื่อ Field_A เหมือนกันคับ
รบกวนอาจารย์หรือท่านผู้รู้ ด้วยนะครับ...
				6 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R08448    
        
       
อาจารย์ Yeadram
ผมได้ใส่ code ตามอาจารย์แนะนำครับแต่ก็ยังติดอีกนิดหน่อยครับ เหมือนว่า VB
จะหาชื่อ Field ที่ Form 2 ไม่เจอ ผมได้แนบรูป Form1 และ Form2 มาด้วยครับ
รบกวนอาจารย์ Yeadram ด้วยนะครับ.....
ขอบคุณมากครับ
    
    
  
   
อาจารย์ Yeadram
ผมได้ใส่ code ตามอาจารย์แนะนำครับแต่ก็ยังติดอีกนิดหน่อยครับ เหมือนว่า VB
จะหาชื่อ Field ที่ Form 2 ไม่เจอ ผมได้แนบรูป Form1 และ Form2 มาด้วยครับ
รบกวนอาจารย์ Yeadram ด้วยนะครับ.....
ขอบคุณมากครับ
        
    3 @R08451    
        
  
      ของคุณอาจต้องระวัง การเติมข้อมูลผิดแถว เพราะฟอร์มเป้าหมายของคุณเป็นแบบ contineous 
และอีกอย่างคือ การตั้งชื่อคอนโทรลเป็นคำเดียวกันกับชื่อฟิลด์ที่ผูก มันทำให้สับสนเวลาอ้างอิงผ่านโค้ด VBA
แต่ไม่เป็นไรเอาไว้ก่อน
เบื้องต้นนี้แก้ไขแค่
ในวงเล็บต้องมีเครื่องหมายอัญญประกาศ คร่อมไว้ด้วยครับ
    
  และอีกอย่างคือ การตั้งชื่อคอนโทรลเป็นคำเดียวกันกับชื่อฟิลด์ที่ผูก มันทำให้สับสนเวลาอ้างอิงผ่านโค้ด VBA
แต่ไม่เป็นไรเอาไว้ก่อน
เบื้องต้นนี้แก้ไขแค่
ในวงเล็บต้องมีเครื่องหมายอัญญประกาศ คร่อมไว้ด้วยครับ
        
    4 @R08454    
        
  
      อาจารย์ Yeadram....
Form1 จะมี FieldA อยู่ที่ Subform ของ Form1 หน่ะครับ จึงทำให้ Form2 หา FieldA
ไม่เจอ แต่ถ้า Form1 ไม่มี Subform ใน Form1 สามารถ Transfer fieldA จาก Form2 มาได้ครับ
              
อาจารย์ Yeadram ครับพอจะมีวิธีทำให้ Code ที่ Form2 หา FieldA ที่เป็น subform ของ Form1 เจอจะได้ไหมครับ
ขอบคุณ อาจารย์ Yeadram ล่วงหน้าครับ
    
    
  Form1 จะมี FieldA อยู่ที่ Subform ของ Form1 หน่ะครับ จึงทำให้ Form2 หา FieldA
ไม่เจอ แต่ถ้า Form1 ไม่มี Subform ใน Form1 สามารถ Transfer fieldA จาก Form2 มาได้ครับ
อาจารย์ Yeadram ครับพอจะมีวิธีทำให้ Code ที่ Form2 หา FieldA ที่เป็น subform ของ Form1 เจอจะได้ไหมครับ
ขอบคุณ อาจารย์ Yeadram ล่วงหน้าครับ
        
    5 @R08456    
        
  
      subform ของ Form1 ชื่ออะไรครับ
สมมติว่าชื่อ child1
เวลาอ้างจาก Form2 ก็ให้อ้าง
Forms("Form1").controls("child1").form.controls("FieldA") = "aaa"
อธิบายลักษณะการอ้างอิงโดยลำดับได้ว่า
- มีฟอร์มชื่อ Form1 เขียนว่า
Forms("Form1")
- ใน Form1 มีคอนโทรลชื่อว่า child1 เขียนต่อไปอีกว่า
.controls("child1")
- ซึ่งคอนโทรลชื่อ child1 นี้เป็นฟอร์ม เช่นกัน ก็เขียนต่อไปว่า
.form
- และในฟอร์มย่อย child1 ตัวนี้มีคอนโทรลชื่อ FieldA ก็ต้องต่อไปอีกว่า
.controls("FieldA")
ลองนึกภาพตามดู เห็นลำดับมันแล้วใช่ไหมครับ ก็คืออ้างจากใหญ่สุดไล่ลำดับไปเรื่อยๆ ถ้าคุณเข้าใจหลักการอ้างแล้ว คุณยังสามารถอ้างอิงระดับที่ลึกกว่านี้ ซับซ้อนกว่านี้ก็ได้สบายเลยครับ
สมมติ
a เป็นฟอร์มย่อยของ b
b เป็นฟอร์มย่อยของ c
d เป็น tab control ของ a
โดยที่ d มี 3 หน้า และหน้าที่ 3 มีฟอร์มย่อยชื่อ f
e เป็น textbox ที่อยู่ใน f
โจทก์ ... จงอ้างอิงจากที่อื่นๆ ให้ถึง textbox ชื่อ e
คำตอบ....
forms("c").controls("b").form.controls("a").form.controls("d").pages(2).controls("f").form.controls("e")
    
  สมมติว่าชื่อ child1
เวลาอ้างจาก Form2 ก็ให้อ้าง
Forms("Form1").controls("child1").form.controls("FieldA") = "aaa"
อธิบายลักษณะการอ้างอิงโดยลำดับได้ว่า
- มีฟอร์มชื่อ Form1 เขียนว่า
Forms("Form1")
- ใน Form1 มีคอนโทรลชื่อว่า child1 เขียนต่อไปอีกว่า
.controls("child1")
- ซึ่งคอนโทรลชื่อ child1 นี้เป็นฟอร์ม เช่นกัน ก็เขียนต่อไปว่า
.form
- และในฟอร์มย่อย child1 ตัวนี้มีคอนโทรลชื่อ FieldA ก็ต้องต่อไปอีกว่า
.controls("FieldA")
ลองนึกภาพตามดู เห็นลำดับมันแล้วใช่ไหมครับ ก็คืออ้างจากใหญ่สุดไล่ลำดับไปเรื่อยๆ ถ้าคุณเข้าใจหลักการอ้างแล้ว คุณยังสามารถอ้างอิงระดับที่ลึกกว่านี้ ซับซ้อนกว่านี้ก็ได้สบายเลยครับ
สมมติ
a เป็นฟอร์มย่อยของ b
b เป็นฟอร์มย่อยของ c
d เป็น tab control ของ a
โดยที่ d มี 3 หน้า และหน้าที่ 3 มีฟอร์มย่อยชื่อ f
e เป็น textbox ที่อยู่ใน f
โจทก์ ... จงอ้างอิงจากที่อื่นๆ ให้ถึง textbox ชื่อ e
คำตอบ....
forms("c").controls("b").form.controls("a").form.controls("d").pages(2).controls("f").form.controls("e")
        
    6 @R08457    
        
    
      อาจารย์ Yeadram....

 
Successfully ครับอาจารย์ ลดขั้นตอนการ searching list ได้มากมาย เลยครับโดยไม่ต้องไปเปิดหลาย form แล้วก็ copy code ID มาใส่ที่ Form วิธีนี้ คลิกไม่กี่ครั้งก็สามารถ searching list ที่เราต้องการได้เลยครับ....
ต้องขอขอบคุณอาจารย์ Yeadram มากเลยที่เดียวที่ชี้แนะ
...อาจารย์ Yeadram ครับว่างไหมครับ ผมจะเลี้ยงข้าวมื้อหนึ่ง อิอิ...
    
    
  

 
Successfully ครับอาจารย์ ลดขั้นตอนการ searching list ได้มากมาย เลยครับโดยไม่ต้องไปเปิดหลาย form แล้วก็ copy code ID มาใส่ที่ Form วิธีนี้ คลิกไม่กี่ครั้งก็สามารถ searching list ที่เราต้องการได้เลยครับ....
ต้องขอขอบคุณอาจารย์ Yeadram มากเลยที่เดียวที่ชี้แนะ
...อาจารย์ Yeadram ครับว่างไหมครับ ผมจะเลี้ยงข้าวมื้อหนึ่ง อิอิ...
      Time: 0.4116s
    
      
		
ขออภัยผู้ถามด้วยครับ ไม่ค่อยได้สำรวจนักช่วงนี้ เลยไม่เห็นทุกกระทู้
สำหรับคำตอบ หลักๆ มันคือการอ้างอิงนั่นแหละครับ
ข้อจำกัดนะครับ
- ฟอร์ม2 ต้องรันอยู่
- ฟอร์ม1 ต้องรันอยู่
- textbox บนฟอร์ม2 สมมติว่าชื่อ txFieldA ควรจะมีข้อมูลอยู่ในนั้นก่อนที่จะ ดับเบิ้ลคลิ๊ก
- textbox บนฟอร์ม1 สมมติว่าเชื่อ txFA ใช้แสดงข้อมูลของฟิลด์ FieldA
- โค้ดต้องเขียนในเหตุการณ์ ดับเบิลคลิ๊ก ของ txFieldA บนฟอร์ม2 เท่านั้น
Sub.......()
Forms("Form_1").controls("txFA") = me.txFieldA
End sub
โค้ดมีแค่นี้ครับ