FORM : รบกวนแนะนำ Code ด้วยครับ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 315   6
URL.หัวข้อ / URL
FORM : รบกวนแนะนำ Code ด้วยครับ

จาก Code ข้างล่าง
Private Sub T_BookingNo_BeforeUpdate(Cancel As Integer)
If DLookup("BookingNo", "Tbl1020_ConfirmBooking", "BookingNo = [Forms]![FrmTbl1020_ConfirmBooking]![T_BookingNo]") = True Then
MsgBox "Booking No นี้มีรายการอยู่แล้ว." & vbCrLf & "กรุณาตรวจสอบรายการอีกครั้ง.", vbQuestion
Docmd.Close
DoCmd.OpenForm "Frm000_MainForm"

Else
DoCmd.Save

End If

End Sub
ผมพบปัญหาว่า Data ยังจำข้อมูลเดิมที่ Key เลขซ้ำเข้าไป
ในขณะที่ Form FrmTbl1020_ConfirmBooking ปิดไปแล้ว
และเมื่อเปิด Frorm FrmTbl1020_ConfirmBooking เข้ามาใหม่
จะพบ Booking No ที่ Key ซ้ำไว้ โชว์ขึ้นมาอีกครับ
รบกวน อาจารย์ แนะนำด้วยครับ
ที่ผมต้องการคือ
1. ที่ BeforeUpdate เมื่อ Key Booking No ซ้ำให้ขึ้น Dailog เหมือนเดิม
แต่ เมื่อ Click OK ให้ตัวเลขที่ Key ซ้ำไว้หายไป เพื่อเตรียมรับข้อมูลใหม่
หรือ
2. ให้ปิด Frorm FrmTbl1020_ConfirmBooking ไปเลย และ
ให้ลบ Data ที่ Key ซ้ำไปด้วย (เนื่องจากของเดิมจะจำ Data ไว้)
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี

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

1 @R05750
ลองเปลี่ยนเป็น DCount() แทนครับ

If DCount("BookingNo", "Tbl1020_ConfirmBooking", "BookingNo = [Forms]![FrmTbl1020_ConfirmBooking]![T_BookingNo]") > 0 Then
...

2 @R05768
ขอบพระคุณ อ.สุภาพ มากๆ ครับ
วันนี้ผมพึ่งจะเข้า Website ของ อาจารย์ได้
ผมได้ลองเปลี่ยนตามที่ อาจารย์ แนะนำแล้วครับ OK เลย ไม่มีปัญหา
แต่ จากปัญหาเดิม
***************************
ผมพบปัญหาว่า Data ยังจำข้อมูลเดิมที่ Key เลขซ้ำเข้าไป
ในขณะที่ Form FrmTbl1020_ConfirmBooking ปิดไปแล้ว
และเมื่อเปิด Frorm FrmTbl1020_ConfirmBooking เข้ามาใหม่
จะพบ Booking No ที่ Key ซ้ำไว้ โชว์ขึ้นมาอีกครับ
****************************
ผมลองสร้าง New Batabase แล้ว Import ข้อมูลเข้ามาใหม่
ปรากฏว่า ปัญหานี้ หายครับ
เมื่อ เปิด Form ขึ้นมาใหม่ก็จะไม่จำข้อมูลที่ Key ซ้ำเดิมครับ
ผม งง กับ Access จริงๆ
ก็ขอขอบพระคุณ อ.สุภาพ มากๆ ครับ
ขอบพระคุณครับ
Suchat
ชลบุรี
3 @R05771
ลองเพิ่มคำสั่ง undo ลงไปครับ..

Private Sub T_BookingNo_BeforeUpdate(Cancel As Integer)
If DLookup("BookingNo", "Tbl1020_ConfirmBooking", "BookingNo = [Forms]![FrmTbl1020_ConfirmBooking]![T_BookingNo]") = True Then
MsgBox "Booking No นี้มีรายการอยู่แล้ว." & vbCrLf & "กรุณาตรวจสอบรายการอีกครั้ง.", vbQuestion
Undo
Docmd.Close
DoCmd.OpenForm "Frm000_MainForm"

Else
DoCmd.Save

End If

End Sub
4 @R05776
ขอบพระคุณ อ.BADMAN มากๆ ครับ
สามารถแก้ปัญหา
***************************
ผมพบปัญหาว่า Data ยังจำข้อมูลเดิมที่ Key เลขซ้ำเข้าไป
ในขณะที่ Form FrmTbl1020_ConfirmBooking ปิดไปแล้ว
และเมื่อเปิด Frorm FrmTbl1020_ConfirmBooking เข้ามาใหม่
จะพบ Booking No ที่ Key ซ้ำไว้ โชว์ขึ้นมาอีกครับ
****************************
ผมเลยทำตัวอย่างมาให้ท่านอื่นๆ ที่สนใจลองนำศึกษาดูครับ
ตัวอย่างนี้จะเป็นการแก้ปัญหาตรงที่
" BeforeUpdate เมื่อ Key Booking No ซ้ำให้ขึ้น Dailog เหมือนเดิม
แต่ เมื่อ Click OK ให้ตัวเลขที่ Key ซ้ำไว้หายไป เพื่อเตรียมรับข้อมูลใหม่ "

ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
5 @R05778
เท่าที่ผม D/L ไฟล์ลองเปิดใช้ดู(Access97) ก็ไม่มีปัญหาอะไรครับ
ไม่ทราบติดตรงไหนครับ...
6 @R05785
ขอบพระคุณ อ.BADMan อีกครั้งครับ
จากคำแนะนำของ อ.สุภาพ และ อ.BADman
ผมสามารถแก้ปัญหาที่ต้องการได้แล้วครับ
ผมอาจอธิบาย หรือ เขียนแล้วทำให้สับสนในคำถาม
ใน คคห ที่ 4 ผมแนบ File มาให้เพื่อนๆ เอาไว้ศึกษาดูครับ
ขอบพระคุณ อ.BADMan มากๆ อีกครั้งครับ
และขอโทษ อาจารย์ด้วยครับ ที่ทำให้สับสน
ขอบพระคุณมากๆ ครับ
Suchat
ชลบุรี
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0630s