กระทู้เก่าบอร์ด อ.Yeadram
1,930 2
URL.หัวข้อ /
URL
ขอตัวอย่างตารางชั่วคราว
ได้ค้นหาเรื่องตารางชั่วคราว ใน webboard แล้ว แต่ยังไม่ค่อยเข้าใจคะ
หลักการ คือ เมื่อมีการใส่ข้อมูลใน form แล้ว จะยังไม่ถูกบันทึกลงในตารางทันที จนกว่าจะกดปุ่ม save ใช่รึปล่าวคะ แล้วจะต้องเขียน code อย่างไร หาก form นั้นมีทั้ง form หลัก และ subform ทำได้หรือไม่คะ
ขอตัวอย่างได้รึปล่าวค่ะ
ขอบคุณค่ะ
หลักการ คือ เมื่อมีการใส่ข้อมูลใน form แล้ว จะยังไม่ถูกบันทึกลงในตารางทันที จนกว่าจะกดปุ่ม save ใช่รึปล่าวคะ แล้วจะต้องเขียน code อย่างไร หาก form นั้นมีทั้ง form หลัก และ subform ทำได้หรือไม่คะ
ขอตัวอย่างได้รึปล่าวค่ะ
ขอบคุณค่ะ
2 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R03504
ขอบคุณค่ะ yeadram
ขอกลับไปทดลองทำก่อนนะค่ะ
ขอกลับไปทดลองทำก่อนนะค่ะ
Time: 0.3366s
- ดูว่า 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 ข้อมูล -----------------