ขอตัวอย่างตารางชั่วคราว
กระทู้เก่าบอร์ด อ.Yeadram

 1,930   2
URL.หัวข้อ / URL
ขอตัวอย่างตารางชั่วคราว

ได้ค้นหาเรื่องตารางชั่วคราว ใน webboard แล้ว แต่ยังไม่ค่อยเข้าใจคะ
หลักการ คือ เมื่อมีการใส่ข้อมูลใน form แล้ว จะยังไม่ถูกบันทึกลงในตารางทันที จนกว่าจะกดปุ่ม save ใช่รึปล่าวคะ แล้วจะต้องเขียน code อย่างไร หาก form นั้นมีทั้ง form หลัก และ subform ทำได้หรือไม่คะ

ขอตัวอย่างได้รึปล่าวค่ะ

ขอบคุณค่ะ




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

1 @R03501
1 สร้างตารางชั่วคราวขึ้นมาก่อน ถ้ามีฟอร์มหลัก กับฟอร์มย่อย ง่ายๆ ก็สร้างไว้สองตาราง ยากๆ ก็จับมาจอยกันแล้วสร้างตารางเดียว แต่เพื่อความเข้าใจง่าย ก็สร้างสองตารางดีกว่า
- ดูว่า source ของฟอร์มหลักมาจากตารางไหน ก็อบตารางนั้นมาเลย เอาแต่โครงสร้าง ตั้งชื่อเป็น tmpHead
- ดูว่า source ของฟอร์มย่อย มาจากตารางไหน ก็อบมาทั้งตาราง เอาแต่โครงสร้าง ตั้งชื่อเป็น tmpSub

2 ไปเปลี่ยน แหล่งข้อมูลของ ฟอร์ม
- ฟอร์มหลัก จากเดิมมันอ้างถึงตารางต้นฉบับ (สมมติว่า ชื่อ tableHead) ก็ไปเปลี่ยนให้เป็น tmpHead
- ฟอร์มย่อย จากเดิมมันอ้างถึงตารางต้นฉบับ (สมมติว่า ชื่อ tableSub) ก็ไปเปลี่ยนให้เป็น tmpSub

แค่นั้นแหละครับ เวลาทำงานแบ่งเป็น อย่างน้อย 2โหมด
1 โหมดเพิ่มข้อมูล
2 โหมดการเรียกดูข้อมูล (readonly)
3 โหมดการแก้ไขข้อมูล

เมื่อมีการเปลี่ยนโหมด ไปเป็น โหมด1 ให้ทำงานตามลำดับดังนี้
- สั่งให้ฟอร์มย่อย เปลียน source ไปเป็น tmpSub
- สั่งฟอร์มหลัก เปลี่ยน source ไปเป็น tmpHead
- สั่งฟอร์มให้ สามารถแก้ไขข้อมูลได้
me.allowedits=true
me.allwoadditions=true
me.ฟอร์มย่อย.allowedits=true
me.ฟอร์มย่อย.allowadditions=true
- สั่งฟอร์มย่อย requery, สั่งฟอร์มหลัก Requery
- ทำการเพิ่มข้อมูล > ตรวจสอบ
- เมื่อมีการกดปุ่ม Save ให้เขียน sql statement แล้วรัน ตามลำดับดังนี้
- - เพิ่มข้อมูลเข้าตารางหลักก่อน
insert into tableHead values(select * from tmpHead)
- - ต่อไปเพิ่มข้อมุลเข้าตารางย่อย
insert into tableSub values(select * from tmpSub)
- - ต่อไปสั่งล้างตาราง tmp ให้เหลือเป็นตารางเปล่า
delete from tmpHead
delete from tmpSub
- - สั่งฟอร์มหลักไปเรคคอร์ดใหม่ เพื่อรอการป้อนข้อมูลใหม่ต่อไป
docmd.gotorecord acdataform, me.name, acnewrec

---------------- จบงาน เพิ่มข้อมูล ---------------------

เมื่อมีการเปลี่ยนโหมดไปเป็นโหมด2
- สั่งฟอร์มให้ ไม่สามารถแก้ไขข้อมูลได้
me.allowedits=false
me.allwoadditions=false
me.ฟอร์มย่อย.allowedits=false
me.ฟอร์มย่อย.allowadditions=false
- สั่งฟอร์มให้เปลี่ยนแหล่งข้อมูล
-- ฟอร์มหลัก เปลี่ยน source ไปเป็น tableHead
-- ฟอร์มย่อยเปปลี่ยนเป็น tableSub
-- สั่งทั้งสองฟอร์ม requery
-------------------- จบงาน View ข้อมูล -----------------

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