ตัวอย่างนะครับ
ผมได้เพิ่มส่วนตรวจสอบข้อมูลกรณีผู้คีย์ Copy ข้อมูล มา
1.เมื่อ Copy มาแล้วไม่ได้กด ปุ่มแก้ไข(Save Record) แล้ว ไปทำขั้นตอนอื่นๆ เช่น Filter OD หรือ Style หรือ กดเพิ่ม Record ใหม่ หรือ กดปุ่มปิดฟอร์ม จะไม่สามารถทำได้และ มีข้อความแจ้งเตือนขึ้นมาพร้อมระบุ ID ที่มีปัญหา ถ้าไม่ต้องการแก้ไข สามารถลบ Record ทิ้งได้
2.เมื่อกดปุ่มแก้ไข จะมีวันที่แก้ไขแสดงที่ล่างขวาของโปรแกรม และจะสามารถ Copy หรือทำขั้นตอนต่อไปได้
3.ผมเปลี่ยนคำสั่งเป็น Code ทั้งหมด (ผมไม่ถนัด Macro) เพราะต้องเพิ่ม ส่วนที่้ตรวจสอบ
4.ผมปิดปุ่มปิด ของฟอร์มแล้วสร้าง ปุ่มที่้ปิดขึ้นมาแทนเพื่อให้สามารถตรวจสอบก่อนปิดได้
ส่วนการตรวจสอบ 4 Field นั้นเป็นการ Checkว่ามีที่ซ้ำกันที่ ID อะไรบ้างเพื่อไว้ตรวจสอบข้อมูลทั้งหมดภายหลัง
ผมใช้ การสร้าง Query หาค่าซ้ำกัน ของ 4 Field แล้ว ให้แจ้งเลข ไอดีที่มีค่าซ้ำกัน ซึ่งคุณสามารถนำไปประยุกต์ใช้ต่อได้ครับ
Private Sub Duplicate_Click()
Dim rstObj As DAO.Recordset, msgStr As String
Set rstObj = CurrentDb.OpenRecordset("FindDuplicate")
Do While Not rstObj.EOF
msgStr = msgStr & rstObj.Fields("ID") & vbCrLf
rstObj.MoveNext
Loop
Call MsgBox(msgStr, , "ตรวจสอบพบ ID ที่ข้อมูลซ้ำกัน!!!!")
Set rstObj = Nothing
End Sub
หมายเหตุ FindDuplicate คือชื่อคิวรี่
ID คือ ส่วนที่เราต้องการให้แสดง ผลออกมา
ตัวอย่างด้านล่างครับ