บังคับให้ Save
กระทู้เก่าบอร์ด อ.Yeadram

 1,600   5
URL.หัวข้อ / URL
บังคับให้ Save

ถ้าต้องการบังคับให้มีการ Save ก่อนออกจากฟอร์มทุกครั้งต้องเขียน Code VB อย่างไรค่ะ?ท่านอาจารย์ (ในEvent เลือกอะไรค่ะ?) กรุณาบอกด้วยค่ะ

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

1 @R03687
ถ้าเป็น bound form (คือฟอร์มที่ผูก RecordSource property เข้ากับเทเบิลหรือคิวรี่) เมื่อปิดฟอร์ม มันก็จะ save โดยอัตโนมัติอยู่แล้วครับ ไม่ต้องทำอะไร
2 @R03689
คือพอดีมนใช้ปุ่มsaveเป็นตัวAppQuery ค่ะซึ่งบ้างครั้งกลัวลืมปิดออกจากฟอร์มไปเลยทำให้ข้อมูลที่Appไปไม่แสดงในตารางที่ต้องการค่ะ
3 @R03690
- อะไรคือ AppQuery ครับ
- "ทำให้ข้อมูลที่Appไป" หมายความว่าอย่างไรครับ

ผมอ่านแล้วไม่เข้าใจทั้งประโยค กรุณาอย่าใช้ศัพท์แสงที่คิดขึ้นมาเองนะครับ คนอื่นจะไม่มีทางเข้าใจได้เลย
4 @R03713
มนหมายถึงมีคำสั่ง Append Query ค่ะคือต้องการส่งข้อมูลเข้าตารางอื่นเพื่อใช้เป็นตัว link กันจุดประสงค์คือต้องการให้บันทึกเพื่อส่งข้อมูลไปตารางอื่นค่ะ

**ปล.ขอโทษนะค่ะคุณสันติสุก มนใช้ศัพท์ไม่ถูกจึงทำให้เข้าใจผิดค่ะ ขอโทษอีกครั้งค่ะ
5 @R03715
โอเคครับ ผมเข้าใจดังนี้คือ ปกติจะคลิกปุ่ม Save เพื่อสั่งให้ Append Query ทำงาน แต่ถ้าเกิดผู้ใช้ปิดฟอร์มไปโดยที่ยังไม่ได้คลิกปุ่ม Save ก็จะทำให้ Append Query นั้นๆไม่ได้ทำงาน ข้อมูลในระบบก็จะไม่ Consistency

ดังนั้นสิ่งที่ต้องทำคือ กำหนดตัวแปรขึ้นมาตัว เป็นตัวแปรในระดับ module เพื่อระบุว่า Append Query นั้นๆ ได้ทำงานไปแล้วหรือยัง เมื่อออกจากโปรแกรม ก็จะเกิด Form_Unload event procedure เราก็จะตรวจสอบตัวแปรนี้ ถ้าตัวแปรนี้ไม่ได้มีค่าซึ่งแสดงสถานะว่าผู้ใช้ได้ผ่านการคลิกปุ่ม Save มาก่อนหน้านี้แล้วหล่ะก็ เราก็เรียก Save_Click event procedure ให้มาทำงานก่อนจะออกจากฟอร์มครับ

โค้ดก็จะเป็นลักษณะนี้ครับ ผมสมุติว่าปุ่ม Save ชื่อว่า btnSave


Option Compare Database
Option Explicit

Dim mIsSaveClick    As Boolean ' Flag ที่ทำหน้าที่บอกสถานะว่าปุ่ม btnSave ได้ทำงานแล้วหรือยัง

Private Sub Form_Load()
    mIsSaveClick = False        ' กำหนดค่าเริ่มต้นให้แก่ตัวแปรที่ทำหน้าที่เป็น flag
End Sub

Private Sub btnSave_Click()
    ...
    ...
    สั่ง Append Query ให้ทำงาน
    ...
    ...
    mIsSaveClick = True        ' ระบุว่า btnSave_Click ได้ทำงานไปแล้ว
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If Not mIsSaveClick Then    ' ถ้าพบว่า btnSave ยังไม่ได้ถูกคลิก
        Call btnSave_Click      ' ก็เรียกมันให้ทำงาน
    End If
End Sub
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3250s