unautomatic query
กระทู้เก่าบอร์ด อ.Yeadram

 1,066   6
URL.หัวข้อ / URL
unautomatic query

ผมนำ sub form วางใน control ประเภท tab ซึ่งมี sub form ประมาณ 10 ตัวมีทั้งแบบ sheet และ graph ซึ่งแต่ละตัวก็ผูกกับ query และรับค่าที่เป็นเงื่อนไขจาก main form เพื่อกรองข้อมูลมาแสดงผล แต่เนื่องจาก sub form ที่ใช้ผูกกับ query หลายตัวทำให้เวลาเปิดเข้า main form จะมีการ run query ทุกตัวขึ้นมาทำให้ใช้เวลานาน ผมอยากให้ตอน open form หรือ load form หรือ form active ให้มีคำสั่งที่ไม่ให้มีการทำงานของ query ครับสว่นคำสั่งให้ requery หลังจากเลือก tab ที่ต้องการให้แสดงผลอันนี้พอได้แล้วครับ

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

1 @R18694
คำถามค่อนข้างซับซ้อน วิธีแก้ปัญหาก็เลยซับซ้อน

ถ้า Main Form มี Record Source เวลาเปิดขึ้นมาก็ทำให้ Sub Query ทำงาน
ทางแก้ไข คือสร้าง Main Form แบบที่ไม่มี Record Source

แล้วใส่ Criteria เข้าไป แล้วสร้างปุ่ม Requery เพียงเท่านี้ตอนเปิดฟอร์ม ก็จะไม่มีการทำคิวรีแล้วครับ
2 @R18703
- ใน Form Open event ของเมนฟอร์ม ให้เคลียร์ Record Source ของทุกซับฟอร์มของทุก Page ให้เป็น null   ยกเว้น Page แรก

- พอคลิก Page ไหน ก็กำหนด Record Source ของซับฟอร์มของ Page นั้น แล้วก็ไปเคลียร์ Record Source ของซับฟอร์มของ Page ที่เคยแสดงก่อนหน้า ให้เป็นค่า null
3 @R18704
ใช่เลยครับพี่ ธัชชัย ผมลืมไปเลยว่าเคยสร้าง Form ประเภทที่ไม่ผูกกับ Record source เพียงแค่มี textbox ไว้ใส่ criteria เพื่อใช้กับ sub form ขอบคุณมากครับ

แต่เรื่องการเคลียร์ Record source เป็นความรู้ใหม่ครับอยากทราบวิธีเขียนครับกรุณาสอนข้าน้อยหรือ sample code นิดนึงครับ อาจไม่ต้องกลับไปแก้ form ใหม่
4 @R18705
จะกำหนด Record Source ก็ใช้ Code

    RecordSource = "ชื่อตารางหรือคิวรี"

จะเคลียร์ก็ใช้ Code

    RecordSource = ""

5 @R18706
ต้องอ้าง subform.recordsource ด้วยหรือเปล่าครับพี่
6 @R18707
ผมจำแบบละเอียดๆ ไม่ได้นะครับ (ต้องเปิดตำราทุกครั้ง) เพราะภาษา Programming ให้หัวมีเยอะซะ

ลองตามนี้นะครับ

Forms.Subform.Recordsourece

หรือไม่ก็
Forms!Subform!Recordsourece

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