มีปัญหากับการใช้ property Dirty กับ Subform ค่ะ
กระทู้เก่าบอร์ด อ.Yeadram

 2,060   4
URL.หัวข้อ / URL
มีปัญหากับการใช้ property Dirty กับ Subform ค่ะ

คือต้องการจะเชคนิพจน์การเปลี่ยนแปลงของ subform ค่ะ ว่ามีการพิมพ์ชื่อหรือเปลี่ยนแปลงอะไรบ้างหรือไม่ จึงใช้ Dirty มาช่วย

แต่ปรากฎว่า

Me.subform.form.dirty

เป็น false ตลอดเลยค่ะ ไม่ว่าเราจะเปลี่ยนแปลง control ใน subform อย่างไร

วานผู้รู้ช่วยตอบคำถามด้วยนะคะ

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

1 @R01788
.dirty จะเป็น True ก็ต่อเมื่ออยู่ระหว่างแก้ไขครับ เมื่อใดที่เรคอร์ดบนหน้าจอได้ save ไปแล้ว .dirty ก็จะเป็น False    ดังนั้นเข้าใจว่าโค้ดที่ตรวจสอบนั้นคงอยู่ในส่วนของ main form และเป็นไปได้มากว่าการที่โค้ดนั้นจะทำงานได้ แปลว่า จะต้องคลิกอะไรบางอย่างบน main form ซึ่งนั่นจะทำให้เกิดการ save เรคอร์ดใน sub form ไปโดยอัตโนมัติ ดังนั้นเช็คกี่ทีก็เป็น false เสมอครับ

Access ไม่มี property อะไรให้ตรวจสอบโดยตรงว่า ข้อมูลใน subform ถูกแก้ไขไปหลังจากแสดงข้อมูลหรือไม่ คุณต้องสร้างอัลกอรึธึมเพื่อตรวจสอบเองครับ เช่น ทุกครั้งที่มีการ save เรคอร์ดใน subform   ก็อาจบันทึกลงตัวแปรสัก 1 ตัวว่ามีการแก้ไขไปแล้ว โดยกำหนดใน Form_AfterUpdate event ของ subform ครับ
2 @R01789
เข้าใจแล้วค่า ขอบคุณนะค้า

ตอนนี้แก้ปัญหาโดยการ เอาปุ่มที่เชคไปไว้ใน subform เลย ค่ะ แหะๆ
3 @R01834
มีที่ไหนที่เขียนอธิบายการใช้ event ของ Access บ้างครับ
รู้สึกว่าจะใช้เป็นไม่ถึง 50%
หรือมีท่านใดจะเสียสละเวลาเขียนบ้างไหมครับ

หรือจะเริ่มจากผมดี
4 @R01851
ตอนผมเริ่มศึกษาเรื่อง Event นี้ สิ่งสำตัญคือเราต้องรู้ว่ามันจะเกิดเมื่อไหร่ ... Help File ของ Access เองเป็นแหล่งที่ผมคิดว่าอธิบายได้ละเอียดที่สุดแล้ว แม้ว่าจะอธิบายไม่ครบถ้วนทุกกรณีก็ตาม ซึ่งผมยอมรับในจุดนี้ได้เพราะคิดว่าบางทีก็ไม่สามารถรู้ได้ล่วงหน้าว่าถ้าเจอกรณีแปลกๆหน่อย แล้ว Event จะมีลำดับการเกิด Event เป็นอย่างไรบ้าง... ต่อจากนั้นก็ทดลองจริง โดยสร้าง Bound Form ที่มี Sub Form ทั้ง Main และ Sub Form ก็มีสัก 2 ฟิลด์ แล้วใส่คำสั่ง

Doevents
MsgBox "ชื่อ Event"

เข้าไปเป็นบรรทัดแรกของแทบทุก Event ทั้ง Event ของ Form, Section, Control ต่างๆ แล้วก็ลองรันดู ทีนี้คุณก็จะเห็นลำดับการเกิดของ Event จริงๆ

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