กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
348 4
URL.หัวข้อ /
URL
... เรียนอาจารย์สุภาพช่วยดู code หน่อยครับ มันมีปัญหาน่ะครับ ...
Private Sub OFF_SAVE_Click()
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset("officer")
On Error GoTo err1
If OFF_AUTH.Value = 3 Or OFF_AUTH.Value = 4 Then
rst.AddNew
rst!OFF_STUDENTID = OFF_STUDENTID
rst!OFF_NAME = OFF_NAME
rst!OFF_SURNAME = OFF_SURNAME
rst!OFF_STARTDATE = OFF_STARTDATE
rst!OFF_ENDDATE = OFF_ENDDATE
rst!OFF_ACTIVE = 0
rst!OFF_AUTH = OFF_AUTH
rst.Update
rst.Close
Call ClearTextbox(Me)
OFF_AUTH = Null
Form.Refresh
End If
If OFF_AUTH.Value = 0 Or OFF_AUTH.Value = 1 Or OFF_AUTH.Value = 2 Then
If OFF_USERNAME.Enabled = True And OFF_PASSWORD.Enabled = True Then
If IsNull(OFF_USERNAME) Or IsNull(OFF_PASSWORD) Then
MsgBox "¤Ø³µéͧ¡ÃÍ¡ Username áÅÐ Password ãËé¤Ãº´éÇÂ", vbExclamation, "á¨é§ãËé·ÃÒº"
Else
rst.AddNew
rst!OFF_STUDENTID = OFF_STUDENTID
rst!OFF_NAME = OFF_NAME
rst!OFF_SURNAME = OFF_SURNAME
rst!OFF_STARTDATE = OFF_STARTDATE
rst!OFF_ENDDATE = OFF_ENDDATE
rst!OFF_ACTIVE = -1
rst!OFF_AUTH = OFF_AUTH
rst!OFF_USERNAME = OFF_USERNAME
rst!OFF_PASSWORD = OFF_PASSWORD
rst.Update
rst.Close
Call ClearTextbox(Me)
OFF_AUTH = Null
Form.Refresh
Exit Sub
err1:
MsgBox "¢éÍÁÙÅÂѧäÁè¤Ãº ËÃ×Í ¡ÃÍ¡¢éÍÁÙżԴ¾ÅÒ´ ¨Ö§äÁèÊÒÁÒöºÑ¹·Ö¡ä´é", vbExclamation, "áé¨é§ãËé·ÃÒº"
End If
End If
End If
Set rst = Nothing
Set rst1 = Nothing
Set dbs = Nothing
End Sub
--------------------
คือ มันไม่ยอม ไป run ในส่วน err1 อ่ะครับ(เมื่อเกิด error ) คือผมเขียน code ไว้ว่า ถ้าเกิด error ขึ้น ให้มันไป run ตรงคำสั่ง err1 น่ะ(กรณีที่เกิด error ได้คือ 1.ยังไม่ได้พิมค่าใดๆ เลยลงบน textbox 2. ยังพิมไม่ครบทุก textbox 3. พิมค่าผิดรูปแบบ คือ textbox นั้นใส่ได้แต่เป็นตัวเลข แต่ดันใส่เป้นตัวหนังสือ) คือเมื่อลองทำในสามกรณีนี้แล้ว(คือลองคำสั่ง msg error ) แต่ก็ไม่มีอะไรเกิดขึ้นเลยครับ
code ของผมมันผิดส่วนไหนเหรอครับ อาจารย์ช่วยดูให้ที (แต่ว่า คำสั่งอื่นๆ ก็ทำงานได้ถูกต้องตามปรกตินะ)
ขอบคุณมากๆ ครับ (อาจารย์ลองดูรูปแบบฟอร์มได้ในรูปที่ผมส่งมาเลยครับ)
Set dbs = CurrentDb()
Set rst = dbs.OpenRecordset("officer")
On Error GoTo err1
If OFF_AUTH.Value = 3 Or OFF_AUTH.Value = 4 Then
rst.AddNew
rst!OFF_STUDENTID = OFF_STUDENTID
rst!OFF_NAME = OFF_NAME
rst!OFF_SURNAME = OFF_SURNAME
rst!OFF_STARTDATE = OFF_STARTDATE
rst!OFF_ENDDATE = OFF_ENDDATE
rst!OFF_ACTIVE = 0
rst!OFF_AUTH = OFF_AUTH
rst.Update
rst.Close
Call ClearTextbox(Me)
OFF_AUTH = Null
Form.Refresh
End If
If OFF_AUTH.Value = 0 Or OFF_AUTH.Value = 1 Or OFF_AUTH.Value = 2 Then
If OFF_USERNAME.Enabled = True And OFF_PASSWORD.Enabled = True Then
If IsNull(OFF_USERNAME) Or IsNull(OFF_PASSWORD) Then
MsgBox "¤Ø³µéͧ¡ÃÍ¡ Username áÅÐ Password ãËé¤Ãº´éÇÂ", vbExclamation, "á¨é§ãËé·ÃÒº"
Else
rst.AddNew
rst!OFF_STUDENTID = OFF_STUDENTID
rst!OFF_NAME = OFF_NAME
rst!OFF_SURNAME = OFF_SURNAME
rst!OFF_STARTDATE = OFF_STARTDATE
rst!OFF_ENDDATE = OFF_ENDDATE
rst!OFF_ACTIVE = -1
rst!OFF_AUTH = OFF_AUTH
rst!OFF_USERNAME = OFF_USERNAME
rst!OFF_PASSWORD = OFF_PASSWORD
rst.Update
rst.Close
Call ClearTextbox(Me)
OFF_AUTH = Null
Form.Refresh
Exit Sub
err1:
MsgBox "¢éÍÁÙÅÂѧäÁè¤Ãº ËÃ×Í ¡ÃÍ¡¢éÍÁÙżԴ¾ÅÒ´ ¨Ö§äÁèÊÒÁÒöºÑ¹·Ö¡ä´é", vbExclamation, "áé¨é§ãËé·ÃÒº"
End If
End If
End If
Set rst = Nothing
Set rst1 = Nothing
Set dbs = Nothing
End Sub
--------------------
คือ มันไม่ยอม ไป run ในส่วน err1 อ่ะครับ(เมื่อเกิด error ) คือผมเขียน code ไว้ว่า ถ้าเกิด error ขึ้น ให้มันไป run ตรงคำสั่ง err1 น่ะ(กรณีที่เกิด error ได้คือ 1.ยังไม่ได้พิมค่าใดๆ เลยลงบน textbox 2. ยังพิมไม่ครบทุก textbox 3. พิมค่าผิดรูปแบบ คือ textbox นั้นใส่ได้แต่เป็นตัวเลข แต่ดันใส่เป้นตัวหนังสือ) คือเมื่อลองทำในสามกรณีนี้แล้ว(คือลองคำสั่ง msg error ) แต่ก็ไม่มีอะไรเกิดขึ้นเลยครับ
code ของผมมันผิดส่วนไหนเหรอครับ อาจารย์ช่วยดูให้ที (แต่ว่า คำสั่งอื่นๆ ก็ทำงานได้ถูกต้องตามปรกตินะ)
ขอบคุณมากๆ ครับ (อาจารย์ลองดูรูปแบบฟอร์มได้ในรูปที่ผมส่งมาเลยครับ)
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R02489
ผมว่าปัญหา น่าจะเป็นตรง บรรทัด Exit sub นะครับ ลองแก้ตามนี้นะ
.
.
.
Call ClearTextbox(Me)
OFF_AUTH = Null
Form.Refresh
End If
End If
End If
Set rst = Nothing
Set rst1 = Nothing
Set dbs = Nothing
Exit Sub
err1:
MsgBox "¢éÍÁÙÅÂѧäÁè¤Ãº ËÃ×Í ¡ÃÍ¡¢éÍÁÙżԴ¾ÅÒ´ ¨Ö§äÁèÊÒÁÒöºÑ¹·Ö¡ä´é", vbExclamation, "áé¨é§ãËé·ÃÒº"
End Sub
.
.
.
Call ClearTextbox(Me)
OFF_AUTH = Null
Form.Refresh
End If
End If
End If
Set rst = Nothing
Set rst1 = Nothing
Set dbs = Nothing
Exit Sub
err1:
MsgBox "¢éÍÁÙÅÂѧäÁè¤Ãº ËÃ×Í ¡ÃÍ¡¢éÍÁÙżԴ¾ÅÒ´ ¨Ö§äÁèÊÒÁÒöºÑ¹·Ö¡ä´é", vbExclamation, "áé¨é§ãËé·ÃÒº"
End Sub
3 @R02490
ผมเปิด help ดูในส่วนของ Error Traping
มีคำอธิบายตามนี้
.......
..
.
Within the procedure,
place the Exit Sub or Exit Function statement in front of the error handler label,
so that the procedure doesn't run the error-checking code if no error occurs.
นั่นคือ ควรจะ จบ function ก่อน (พวก end if ทั้งหลายแหล่)
จากนั้น Exit sub
แล้วจึง
err1:
MsgBox "..........."
End sub
๋Just try AGAIN
hope this help.
มีคำอธิบายตามนี้
.......
..
.
Within the procedure,
place the Exit Sub or Exit Function statement in front of the error handler label,
so that the procedure doesn't run the error-checking code if no error occurs.
นั่นคือ ควรจะ จบ function ก่อน (พวก end if ทั้งหลายแหล่)
จากนั้น Exit sub
แล้วจึง
err1:
MsgBox "..........."
End sub
๋Just try AGAIN
hope this help.
4 @R02493
ก็ยังไม่ได้อยู่ดีอ่ะครับ คือ run แล้วก็ไม่มีอะไรเกิดขึ้นเลย
ทำไงดี
ทำไงดี
Time: 0.1295s
ไป run คำสั่ง sql
sql = "update officer set off_active = 0 where off_enddate <= date() "
DoCmd.RunSQL sql
ที่อีกเครื่องไม่ได้ พอผมนำ file Libraly จากเครือ่งผม ไปลงเครื่องนั้นแล้วก็ใช้ได้น่ะครับ เป็น file msinfo.dll แต่ว่ามันขึ้น msg ว่า
You are about to update 0 row(s)
Once you click Yes, you can't use the Undo command to reverse the changes.
Are you sure you want to update these records?
แล้วก็ให้ Yes กับ No น่ะครับ พอ Yes แล้วก็ run ได้ปรกติ
มันเป็นเพราะอะไรเหรอครับ