กระทู้เก่าบอร์ด อ.Yeadram
775 4
URL.หัวข้อ /
URL
ต้องการปิดการบันทึกแบบ Real-time
สวัสดีครับ มีปัญหาเกี่ยวกับโปรแกรมครับ
ทดลองรันฟอร์มดู แล้วถ้าเกิดค่าใน Textbox มีการเปลี่ยนแปลง(แก้ไข/เพิ่ม) พบว่า บันทึกข้อมูลเอง โดยที่ยังไม่ได้กด Save เลยครับ ไม่ทราบว่าต้องไปแก้ตรงไหนครับ
ขอบพระคุณมากๆ ครับ
ปล. แต่ละ Textbox ผมตั้ง Locked ไว้ครับ ถ้ากดปุ่มแก้ไข / เพิ่ม ถึงแก้ไขได้
ทดลองรันฟอร์มดู แล้วถ้าเกิดค่าใน Textbox มีการเปลี่ยนแปลง(แก้ไข/เพิ่ม) พบว่า บันทึกข้อมูลเอง โดยที่ยังไม่ได้กด Save เลยครับ ไม่ทราบว่าต้องไปแก้ตรงไหนครับ
ขอบพระคุณมากๆ ครับ
ปล. แต่ละ Textbox ผมตั้ง Locked ไว้ครับ ถ้ากดปุ่มแก้ไข / เพิ่ม ถึงแก้ไขได้
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R22871
น่าจะเกิดขึ้นที่โค้ดนะ ตรวจสอบโค้ดดูก่อนเพราะปกติเรคคอร์ดจะไม่บันทึกหากไม่มีการเลื่อนไปยังเรคคอร์ดก่อนหน้าหรือเรคคอร์ดถัดไป
2 @R22878
ขออนุญาต Copy Code มาเลยนะครับ
Option Compare Database
Private Sub add_Click()
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec
save.Enabled = True
add.Enabled = False
del.Enabled = False
dup.Enabled = False
heatno.Locked = False
c.Locked = False
si.Locked = False
mn.Locked = False
p.Locked = False
s.Locked = False
c_mn_6.Locked = False
ceq.Locked = False
cr.Locked = False
cu.Locked = False
n.Locked = False
mo.Locked = False
v.Locked = False
Text100 = ""
End Sub
Private Sub Command46_Click()
'search
If Text100 = "" Then
MsgBox ("¡ÃسÒãÊèàÅ¢ Heat")
Else
Forms!F_billet.RecordSource = "Q_billet"
Text100 = ""
If IsNull([heatno]) Then
MsgBox ("äÁ辺àÅ¢ Heat ¹Õé")
DoCmd.GoToRecord , , acFirst
End If
End If
End Sub
Private Sub Command73_Click()
If MsgBox("¤Ø³á¹èã¨ÇèÒµéͧ¡ÒÃźãªèËÃ×ÍäÁè? ", 4) = 7 Then
MsgBox ("·Ó¡ÒáàÅÔ¡áÅéÇ")
Else
MsgBox "źàÃÕºÃéÍÂáÅéÇ"
SendKeys "{F5}", True
End If
End Sub
Private Sub dup_Click()
'á¡éä¢
MsgBox ("à»Ô´¡ÒÃá¡éä¢")
heatno.Locked = False
c.Locked = False
si.Locked = False
mn.Locked = False
p.Locked = False
s.Locked = False
c_mn_6.Locked = False
ceq.Locked = False
cr.Locked = False
cu.Locked = False
n.Locked = False
mo.Locked = False
v.Locked = False
Text100 = ""
add.Enabled = False
save.Enabled = True
del.Enabled = False
dup.Enabled = False
End Sub
Private Sub save_Click()
'save
If heatno = "" Then
On Error Resume Next
MsgBox ("¡ÃسÒãÊèËÁÒÂàÅ¢ãËé¤Ãº¶éǹ")
Else
If MsgBox("¤Ø³á¹èã¨ÇèÒµéͧ¡Òúѹ·Ö¡ãªèËÃ×ÍäÁè? ", vbYesNo, "Â×¹Âѹ¡Òúѹ·Ö¡") = vbNo Then
MsgBox ("·Ó¡ÒáàÅÔ¡áÅéÇ")
Cancel = True
Else
DoCmd.save
MsgBox ("¤Ø³ä´éºÑ¹·Ö¡àÃÕºÃéÍÂáÅéÇ")
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec
End If
End If
add.Enabled = True
del.Enabled = True
dup.Enabled = True
save.Enabled = False
heatno.SetFocus
heatno.Locked = True
c.Locked = True
si.Locked = True
mn.Locked = True
p.Locked = True
s.Locked = True
c_mn_6.Locked = True
ceq.Locked = True
cr.Locked = True
cu.Locked = True
n.Locked = True
mo.Locked = True
v.Locked = True
Text100 = ""
End Sub
หลังจากที่รันโปรแกรม เมื่อค่าใน Textbox มีการเปลี่ยนแปลง (เพิ่ม/ลบ/แก้ไข) และเมื่อเราออกจากโปรแกรม (กด x , End task) โปรแกรมจะทำการ Save เองตลอด เมื่อเข้าโปรแกรมใหม่ จะแสดงค่าที่เราพิมพ์ค้างไว้ตลอดครับ
Option Compare Database
Private Sub add_Click()
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec
save.Enabled = True
add.Enabled = False
del.Enabled = False
dup.Enabled = False
heatno.Locked = False
c.Locked = False
si.Locked = False
mn.Locked = False
p.Locked = False
s.Locked = False
c_mn_6.Locked = False
ceq.Locked = False
cr.Locked = False
cu.Locked = False
n.Locked = False
mo.Locked = False
v.Locked = False
Text100 = ""
End Sub
Private Sub Command46_Click()
'search
If Text100 = "" Then
MsgBox ("¡ÃسÒãÊèàÅ¢ Heat")
Else
Forms!F_billet.RecordSource = "Q_billet"
Text100 = ""
If IsNull([heatno]) Then
MsgBox ("äÁ辺àÅ¢ Heat ¹Õé")
DoCmd.GoToRecord , , acFirst
End If
End If
End Sub
Private Sub Command73_Click()
If MsgBox("¤Ø³á¹èã¨ÇèÒµéͧ¡ÒÃźãªèËÃ×ÍäÁè? ", 4) = 7 Then
MsgBox ("·Ó¡ÒáàÅÔ¡áÅéÇ")
Else
MsgBox "źàÃÕºÃéÍÂáÅéÇ"
SendKeys "{F5}", True
End If
End Sub
Private Sub dup_Click()
'á¡éä¢
MsgBox ("à»Ô´¡ÒÃá¡éä¢")
heatno.Locked = False
c.Locked = False
si.Locked = False
mn.Locked = False
p.Locked = False
s.Locked = False
c_mn_6.Locked = False
ceq.Locked = False
cr.Locked = False
cu.Locked = False
n.Locked = False
mo.Locked = False
v.Locked = False
Text100 = ""
add.Enabled = False
save.Enabled = True
del.Enabled = False
dup.Enabled = False
End Sub
Private Sub save_Click()
'save
If heatno = "" Then
On Error Resume Next
MsgBox ("¡ÃسÒãÊèËÁÒÂàÅ¢ãËé¤Ãº¶éǹ")
Else
If MsgBox("¤Ø³á¹èã¨ÇèÒµéͧ¡Òúѹ·Ö¡ãªèËÃ×ÍäÁè? ", vbYesNo, "Â×¹Âѹ¡Òúѹ·Ö¡") = vbNo Then
MsgBox ("·Ó¡ÒáàÅÔ¡áÅéÇ")
Cancel = True
Else
DoCmd.save
MsgBox ("¤Ø³ä´éºÑ¹·Ö¡àÃÕºÃéÍÂáÅéÇ")
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec
End If
End If
add.Enabled = True
del.Enabled = True
dup.Enabled = True
save.Enabled = False
heatno.SetFocus
heatno.Locked = True
c.Locked = True
si.Locked = True
mn.Locked = True
p.Locked = True
s.Locked = True
c_mn_6.Locked = True
ceq.Locked = True
cr.Locked = True
cu.Locked = True
n.Locked = True
mo.Locked = True
v.Locked = True
Text100 = ""
End Sub
หลังจากที่รันโปรแกรม เมื่อค่าใน Textbox มีการเปลี่ยนแปลง (เพิ่ม/ลบ/แก้ไข) และเมื่อเราออกจากโปรแกรม (กด x , End task) โปรแกรมจะทำการ Save เองตลอด เมื่อเข้าโปรแกรมใหม่ จะแสดงค่าที่เราพิมพ์ค้างไว้ตลอดครับ
3 @R22879
ปล. เอ ในโปรแกรมเป็นภาษาไทยปกตินะครับ ก๊อบมาลงเพี้ยนเลย ฮ่าๆ
4 @R22880
คร่าวๆก่อนละกันนะ
การที่คุณ lock คอนโทรลไว้นั้นคุณต้องรู้ว่าโฟกัสถัดไปคืออะไร ถ้าเป็นปุ่ม save ล่ะก็มันก็รันคำสั่งนั้นเลย
เอาล่ะตรวจสอบกันเลยจ้า
ใส่ break point ไว้ที่ procedure ทุกตัวของฟอร์ม
กลับไปที่ฟอร์ม ทดลองแก้ไข text box แล้วดูว่า debugger หยุดที่ breakpoint ไหน
แล้วไล่ดูทีละ step
การที่คุณ lock คอนโทรลไว้นั้นคุณต้องรู้ว่าโฟกัสถัดไปคืออะไร ถ้าเป็นปุ่ม save ล่ะก็มันก็รันคำสั่งนั้นเลย
เอาล่ะตรวจสอบกันเลยจ้า
ใส่ break point ไว้ที่ procedure ทุกตัวของฟอร์ม
กลับไปที่ฟอร์ม ทดลองแก้ไข text box แล้วดูว่า debugger หยุดที่ breakpoint ไหน
แล้วไล่ดูทีละ step
Time: 0.2614s