select valua
กระทู้เก่าบอร์ด อ.Yeadram

 1,297   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 เหมือนกันคับ

รบกวนอาจารย์หรือท่านผู้รู้ ด้วยนะครับ...


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

1 @R08410
กระทู้นี้ไม่มีคนตอบเลยเหรอครับ เกือบหลุดไปนะเนี่ย
ขออภัยผู้ถามด้วยครับ ไม่ค่อยได้สำรวจนักช่วงนี้ เลยไม่เห็นทุกกระทู้

สำหรับคำตอบ หลักๆ มันคือการอ้างอิงนั่นแหละครับ
ข้อจำกัดนะครับ
- ฟอร์ม2 ต้องรันอยู่
- ฟอร์ม1 ต้องรันอยู่
- textbox บนฟอร์ม2 สมมติว่าชื่อ txFieldA ควรจะมีข้อมูลอยู่ในนั้นก่อนที่จะ ดับเบิ้ลคลิ๊ก
- textbox บนฟอร์ม1 สมมติว่าเชื่อ txFA ใช้แสดงข้อมูลของฟิลด์ FieldA
- โค้ดต้องเขียนในเหตุการณ์ ดับเบิลคลิ๊ก ของ txFieldA บนฟอร์ม2 เท่านั้น

Sub.......()
Forms("Form_1").controls("txFA") = me.txFieldA
End sub

โค้ดมีแค่นี้ครับ
2 @R08448


อาจารย์ Yeadram
ผมได้ใส่ code ตามอาจารย์แนะนำครับแต่ก็ยังติดอีกนิดหน่อยครับ เหมือนว่า VB
จะหาชื่อ Field ที่ Form 2 ไม่เจอ ผมได้แนบรูป Form1 และ Form2 มาด้วยครับ

รบกวนอาจารย์ Yeadram ด้วยนะครับ.....

ขอบคุณมากครับ

3 @R08451
ของคุณอาจต้องระวัง การเติมข้อมูลผิดแถว เพราะฟอร์มเป้าหมายของคุณเป็นแบบ contineous
และอีกอย่างคือ การตั้งชื่อคอนโทรลเป็นคำเดียวกันกับชื่อฟิลด์ที่ผูก มันทำให้สับสนเวลาอ้างอิงผ่านโค้ด VBA
แต่ไม่เป็นไรเอาไว้ก่อน

เบื้องต้นนี้แก้ไขแค่
ในวงเล็บต้องมีเครื่องหมายอัญญประกาศ คร่อมไว้ด้วยครับ
4 @R08454
อาจารย์ 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")
6 @R08457
อาจารย์ Yeadram....

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

ต้องขอขอบคุณอาจารย์ Yeadram มากเลยที่เดียวที่ชี้แนะ

...อาจารย์ Yeadram ครับว่างไหมครับ ผมจะเลี้ยงข้าวมื้อหนึ่ง อิอิ...



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