จะมีวิธีเพิ่มspeedในการsaveข้อมูลกลับคืนจากtemporary tableได้อย่างไรครับ.
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 254   2
URL.หัวข้อ / URL
จะมีวิธีเพิ่มspeedในการsaveข้อมูลกลับคืนจากtemporary tableได้อย่างไรครับ.

อาจารย์ครับ ผมสร้างformมีmainform (ใช้temp table "table A_tmp"เป็นrecordSource)เป็นcontinuous form มีsubform(มีtable B_tmpเป็นrecordsource)เป็นdatasheet เพิ่อใช้แก้ไข/เพิ่มเติมrecordใน2 tablesได้ในฟอร์มเดียวกัน ต้องการให้user สามารถแก้ไขทุกrecord ใน 2 tablesได้ ก่อนที่จะสั่งsaveในครั้งเดียว. ตอนopen form จะต้องถ่ายข้อมูลจากtableจริง(tableA และ tableB) ไปให้ temp tables ทั้งสองก่อน และตอน close form ก็จะต้องถ่ายข้อมูลจาก temp tables กลับไปยัง tableจริงทั้งสองtables. สรุปการทำงานเป็นstepดังนี้:
1.ลบall records จาก tableA_tmpและ tableB_tmp 2.ถ่ายall recordจาก tableA และtableB ไปให้ tableA_tmp และtableB_tmp 3.ลบ all records จาก tableA และ tableB 4. ถ่าย all records จาก tableA_tmp และtableA_tmp กลับไปให้ tableA และ tableBตามลำดับ. ปัญหาก็คือ ในการถ่ายข้อมูลระหว่างtableจริง กับ temporary table จะใช้เวลานานมาก ทั้งตอนเปิดฟอร์ม และตอนsaveข้อมูล ( ปัจจุบัน ในทั้ง 2tableมีประมาณหนึ่งหมื่นrecord) ผมใช้ SQL DELETE และ SQL SELECT command ในการลบ และถ่ายโอนข้อมูลระหว่าง tables ครับ. อยากเรียนถามว่ามีวิธีอื่นที่จะช่วยให้ทำงานได้เร็วขึ้นอีกบ้างไหมครับ.

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

1 @R02272
ดูเหมือนว่าจะเป็นข้อมูลที่ไม่ได้เปิดให้หลายๆ คนทำงานพร้อมกัน

ถ้าทำแค่คนเดียว ผมว่าน่าจะให้เขาแก้ไขทีละรายการ แล้วก็บันทึกไปพร้อมกันเลย
น่าจะสะดวกกว่า คิดว่าคงจะไม่มีการแก้ข้อมูลทุกรายการ

ถ้ายังมีเหตุผลที่จะต้องทำอย่างเดิม ก็ให้ลองใช้ CopyObject method ดูครับ

Sub CopyTable()
DoCmd.CopyObject , "Table2", acTable, "Table1"
End Sub

ส่วนการลบ ให้ลอง

Sub DelNow()
CurrentDb.Execute "Delete * From Table2"
End Sub



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