ขอ Code การส่งค่าไปแบบฟอร์มใหม่แบบเป็น Subform
กระทู้เก่าบอร์ด อ.Yeadram

 2,531   3
URL.หัวข้อ / URL
ขอ Code การส่งค่าไปแบบฟอร์มใหม่แบบเป็น Subform

DoCmd.OpenForm "form2", acNormal, , "([name] = '" & Me.[comboboxName] & "')"

ตอนนี้ผมใช้โค้ดแบบนี้อยู่ครับ ซึ่งตรง Me.[comboboxName] มันอยู่ในส่วนของ subform ผมอยากจะอ้างอิงไปใน combobox รายชื่อที่เป็นฟอร์มหลัก จะต้องแก้ไขโค้ดยังไงบ้างครับ

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

1 @R05654
โค้ดอยู่ในฟอร์มย่อย จะอ้างถึงคอนโทรลของฟอร์มแม่
1 me.parent.ชื่อคอนโทรล
2 me.parent.form.controls("ชื่อคอนโทรล")
3 forms("ชื่อฟอร์มเป้าหมาย").controls("ชื่อคอนโทรลที่อยู่บนฟอร์มเป้าหมาย")

ลองดูซักอย่างนะครับเผื่อจะเจอ อิอิ

แนะนำเพิ่มเติมนิดครับ วิธีที่ 3 สามารถใช้ได้กับทุกๆ ฟอร์มที่เปิดอยู่ ณ เวลานั้น
ใช้อ้างถึงฟอร์มแม่ก็ได้
ใช้อ้างถึงฟอร์มลูกก็ได้
ใช้อ้างถึงฟอร์มอื่นๆ ก็ได้
และหลังวงเล็บสุดท้ายคุณยังสามารถเพิ่มได้ทั้ง properties หรือ method ของคอนโทรลนั้นๆ ที่อยู่บนฟอร์มเป้าหมายได้ด้วย
เช่น
-ถ้าต้องการข้อมูล หรือค่าใดๆ ที่อยู่ในคอนโทรลนั้นๆ
x = forms("A").controls("B")    ' ไม่ต้องใส่ .value เพราะมันเป็น default สำหรับ access อยู่แล้ว

-ถ้าต้องการตั้งค่าคุณสมบัติ (properties) ของคอนโทรลนั้นๆ
forms("A").controls("B").visible = False

-ถ้าต้องการใช้งาน method ของคอนโทรลนั้นๆ (ควรต้องรู้ด้วยว่าคอนโทรลนั้นๆ มี method อะไรให้เรียกใช้ได้บ้าง)
forms("A").controls("comboXX").requery

2 @R05715
ทำยังไงดีครับ ผมลองจนไม่ไหวแล้ว
ใน subform ได้ตั้งค่า AllowEdits เป็น no เอาไหว้
แล้วได้สร้างปุ่มอยู่ในฟอร์มหลักเพื่อแก้ให้ AllowEdits เป็น yes แต่ติดตรงไม่รู้จะส่งค่าไปที่ Subform ยังไง ได้ลองใช้วิธีที่ 3 แล้ว แต่ก็ไม่สามารถสั่งให้ subform มันเปลี่ยนค่าได้ครับ

Forms("Subform").AllowEdits = True

งงตรง control ด้วยครับ ถ้ามันไม่มีจะต้องใช้ค่าอะไรแทนเหรอครับ
3 @R05716
sub form เป็นคอนโทรล
ชื่อคอนโทรล ชื่อว่า child1
ทำการแสดงผลฟอร์มย่อยที่สร้างไว้แล้ว ชื่อ sfForm1

เมื่อต้องการตั้งค่าคุณสมบัติให้ฟอร์มย่อยนี้ สามารถแก้ไขข้อมูลได้สั่งอย่างนี้ครับ
me.child1.Allowedits=true ได้
หรือ
me.child1.form.allowedits=true ก็ได้

ถ้าคุณใช้ชื่อคอนโทรลเป็นคำเดียวกันกับชื่อของแหล่งข้อมูล เช่น
ชื่อคอนโทรลคือ sfForm1
ชื่อแหล่งข้อมูลของ sfForm1 ก็คือฟอร์มย่อยที่ชื่อ sfForm1

คุณใช้คำสั่งได้ว่า
me.sfForm1.form.AllowEdits=true ได้
แต่ใช้
me.sfForm1.AllowEdits=true ไม่ได้


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