กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
310 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 ครับ. อยากเรียนถามว่ามีวิธีอื่นที่จะช่วยให้ทำงานได้เร็วขึ้นอีกบ้างไหมครับ.
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
2 @R02280
ผมลองใช้ method CopyObject ตามที่อ.กรุณาแนะนำ โปรแกรมทำงานเร็วขึ้นมากครับ ขอบพระคุณอาจารย์ และสุขสันต์วันสงกรานต์สมาชิกทุกท่านครับ.
Time: 0.1166s
ถ้าทำแค่คนเดียว ผมว่าน่าจะให้เขาแก้ไขทีละรายการ แล้วก็บันทึกไปพร้อมกันเลย
น่าจะสะดวกกว่า คิดว่าคงจะไม่มีการแก้ข้อมูลทุกรายการ
ถ้ายังมีเหตุผลที่จะต้องทำอย่างเดิม ก็ให้ลองใช้ CopyObject method ดูครับ
Sub CopyTable()
DoCmd.CopyObject , "Table2", acTable, "Table1"
End Sub
ส่วนการลบ ให้ลอง
Sub DelNow()
CurrentDb.Execute "Delete * From Table2"
End Sub