check data ก่อนทำการ save
กระทู้เก่าบอร์ด อ.Yeadram

 1,560   2
URL.หัวข้อ / URL
check data ก่อนทำการ save

สอบถามเกี่ยวกับการ save ข้อมูล หากต้องการให้มีการ check ข้อมูลก่อนทำการ save คือ หากพบ field ใด ไม่มีข้อมูล โดยมี msg information หาก คลิก cancle ข้อมูลจะไม่ถูก save ทั้งใน main form และ subform รบกวน ด้วยค่ะ

ณ ปัจจบัน ถึงแม้จะคลิก ยกเลิก ข้อมูลก็จะถูก save เข้าใน table ทำให้บ้าง field เป็นค่าว่างค่ะ

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

1 @R12502
ต้องเขียนคำสั่งควบคุมเองทั้งหมดครับ
1) สร้างฟอร์มทุกอย่างให้เสร็จ โดยใช้แหล่งข้อมูล ชื่อฟิลด์ชื่อตาราง เป็นของปกติของคุณ ท้งฟอร์มหลักและฟอร์มย่อย
2) สร้างตารางชั่วคราว มาไว้รอรับข้อมูลจากฟอร์ม (ก็อปปี้ตารางเดิมเอาเฉพาะโครงสร้าง ง่ายดี) ทั้งแหล่งของฟอร์มหลักและฟอร์มย่อย
3) ไปเปลี่ยนชื่อแหล่งข้อมูลของทั้งสองฟอร์ม เป็นชื่อตารางชั่วคราวที่เพิ่งสร้างขึ้น
4) มีปุ่มคำสั่ง Save ในฟอร์มหลัก
ในปุ่มคำสั่งให้เขียนคำสั่ง ตามลำดับดังนี้
4.1- สั่งตรวจความถูกต้องของข้อมูลในฟอร์มย่อย (ชนิด, รูปแบบ, ความกว้าง, ข้อจำกัดอื่นๆ) อาจใช้การสั่งให้ไล่ตรวจทุกๆ คอนโทรลในฟอร์มย่อยเอา หรือสั่งไปให้ตรวจข้อมูล ในตารางชั่วคราวที่เป็นของฟอร์มย่อย ก็ได้
4.2- สั่งตรวจความถูกต้องของข้อมูลในฟอร์มหลัก (ทำทุกขั้นตอนเหมือนฟอร์มย่อย)
4.3- สั่งให้เพิ่มข้อมูลเข้าตารางจริง โดยเอาข้อมูลจากตารางชั่วคราว ที่เป็นแหล่งข้อมูลของฟอร์มหลักก่อน
4.4- สั่งเพิ่มข้อมูลเข้าตารางจริงจากฟอร์มย่อย
4.5- สั่งล้างข้อมูลจากตารางชั่วคราวฟอร์มหลัก
4.6- สั่งล้างข้อมูลจากตารางชั่วคราวของฟอร์มย่อย (ถ้าจำเป็น)
4.7- แจ้งให้ผู้ใช้ทราบผลการบันทึกและสั่งให้ฟอร์ม รีเฟรช ข้อมูล

4.8-ถ้าการตรวจสอบใดๆ ในข้อ 4.1 และ/หรือ 4.2 เจอข้อผิดพลาดให้โค้ดหยุดทำงานทันที ไม่ต้องทำข้อ 4.3 - 4.7 พร้อมแจ้งข้อผิดพลาดให้ผู้ใช้ทราบ (ถ้าจำเป็นและเห็นสมควร)

** ควรทำงานตามลำดับอย่างนี้ ห้ามสลับลำดับกัน
** การสั่งเพิ่มข้อมูลจากตารางหนึ่ง ไปยังอีกตารางหนึ่ง ถ้าเขียนโค้ดไม่เป็น อาจใช้การสร้างคิวรี่ append ไว้รอ แล้วคอยสั่งรันคิวรี่เอาก็ได้ (อันเดียวกัน)
** ฟอร์มนี้จะใช้สำหรับเป็นฟอร์มเปล่าไว้เพื่อรอ รับข้อมูล เท่านั้น หากต้องการให้ฟอร์มนี้ มีหน้าที่ไว้แก้ไขข้อมูล ก็ต้องสร้างปุ่มคำสั่งเพิ่ม เช่นปุ่ม "ค้นหา/แก้ไข" แล้วเพิ่มคำสั่งเข้าไปอีกหลายคำสั่ง อย่างที่ผมเขียนอธิบายมานี้ ข้อที่ 4 คือการทำงานภายในคลิ๊กเดียวของปุ่มคำสั่ง "บันทึก" หากต้องการให้มีปุ่ม ค้นหา/แก้ไข ผมก็ต้องเขียนต่อเป็นข้อที่ 5 เพราะมันมีหลายคำสั่งหลายขั้นตอนเช่นเดียวกัน และต้องเรียงคำสั่งลำดับงานให้ถูกต้องด้วยถึงจะทำงานได้เป็นปกติครับ

สุดท้าย ให้ข้อคิด
Access เป็นเพียงตัวช่วย เป็นเพียงเครื่องมีที่ช่วย ให้การจัดการข้อมูลง่ายขึ้นแต่มันมีข้อจำกัดอีกหลายอย่าง เช่นความต้องการของคุณนี้ ก็ต้องเขียนเป็นโปรแกรมค่อนข้างเยอะถี่ถ้วนเลยทีเดียวครับ ลำดับงานบนฟอร์ม ลำดับงานบนคิวรี่และรวมทั้ง มาโคร รายงาน มันช่วยได้ส่วนหนึ่ง ไม่ถึงทั้งหมดหรอกครับ
เช่น ถ้าคุณสร้างคอนโทรลแบบ bound กับฟิลด์ ในฟอร์มใดๆ แล้วแค่ย้ายเคอร์เซอร์ออกจากคอนโทรลนั้น มันก็เซฟอัตโนมัติแล้วครับ ถ้าขยันนักก็ต้องเขียนโค้ดกำกับไว้ในทุกๆ คอนโทรลเลยครับ ให้มีการตรวจสอบข้อมูลก่อน เขียนในเหตุการณ์ Before_update ก็ได้ครับ แต่สำหรับผม ผมว่ามันเยอะเกินไปนะ
2 @R12512
ให้อีกวิธี แบบไม่ต้องเขียนโค้ดครับ
ที่ Table Design ไปกำหนด ทุก field ให้ property Allow Null เป็น False ครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2767s