กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
313 4
URL.หัวข้อ /
URL
... เรียนอาจารย์สุภาพครับ ...
เรียนอาจารย์ช่วยดู code ที่ครับ ว่าทำไมเวลามัน error แล้ว ไม่ไป run บรรทัด err1: ครับ
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
End If
End If
End If
Set rst = Nothing
Set rst1 = Nothing
Set dbs = Nothing
Exit Sub
err1:
MsgBox "¢éÍÁÙÅÂѧäÁè¤Ãº ËÃ×Í ¡ÃÍ¡¢éÍÁÙżԴ¾ÅÒ´ ¨Ö§äÁèÊÒÁÒöºÑ¹·Ö¡ä´é", vbExclamation, "áé¨é§ãËé·ÃÒº"
End Sub
คือว่า พอกด run แล้วมันก็นิ่งไปเลยน่ะครับ ไม่มีอะไรเกิดขึ้นเลย (คือถ้า run ปกติ มันจะ error น่ะ)
เป็นเพราะอะไรเหรอครับ
แล้วถามอีกคำถามนึงคือ ผมจะเขียนให้มันดูค่าจากในตารางว่า เป็น yes หรือ no แล้วทำให้ปุ่ม command ของแต่ละเรคอดมัน enabled น่ะครับ( คือถ้าเรคอดนี้มีฟิลหนึ่งเป็น yes ก็ให้ปุ่ม command ของเรคอดนั้น เป็น disabled หรือ enabled )ซึ่งแต่ละเรคอดจะมี ปุ่ม command หมดทุกเรคอดน่ะครับ (คือจะใส่ปุ่ม command ไว้ในส่วนของรายละเอียด ทำให้ทุกเรคอดจะมีปุ่ม command หมดเลย)
ไม่ทราบว่าจะต้องเขียนควบคุมยังไงฮะ
ใช้ access2000
ขอบคุณมากๆครับ
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
End If
End If
End If
Set rst = Nothing
Set rst1 = Nothing
Set dbs = Nothing
Exit Sub
err1:
MsgBox "¢éÍÁÙÅÂѧäÁè¤Ãº ËÃ×Í ¡ÃÍ¡¢éÍÁÙżԴ¾ÅÒ´ ¨Ö§äÁèÊÒÁÒöºÑ¹·Ö¡ä´é", vbExclamation, "áé¨é§ãËé·ÃÒº"
End Sub
คือว่า พอกด run แล้วมันก็นิ่งไปเลยน่ะครับ ไม่มีอะไรเกิดขึ้นเลย (คือถ้า run ปกติ มันจะ error น่ะ)
เป็นเพราะอะไรเหรอครับ
แล้วถามอีกคำถามนึงคือ ผมจะเขียนให้มันดูค่าจากในตารางว่า เป็น yes หรือ no แล้วทำให้ปุ่ม command ของแต่ละเรคอดมัน enabled น่ะครับ( คือถ้าเรคอดนี้มีฟิลหนึ่งเป็น yes ก็ให้ปุ่ม command ของเรคอดนั้น เป็น disabled หรือ enabled )ซึ่งแต่ละเรคอดจะมี ปุ่ม command หมดทุกเรคอดน่ะครับ (คือจะใส่ปุ่ม command ไว้ในส่วนของรายละเอียด ทำให้ทุกเรคอดจะมีปุ่ม command หมดเลย)
ไม่ทราบว่าจะต้องเขียนควบคุมยังไงฮะ
ใช้ access2000
ขอบคุณมากๆครับ
4 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R02764
เออ คือ ว่า ในคำถามแรกนั้น ผมได้ทำฟอร์มเป็นแบบให้ใส่ข้อมูลบน textbox ถ้าไม่ได้ใส่ข้อมูลเลยหรือ ใส่ข้อมูลไม่ครบ มันจะขึ้น error น่ะครับ(เพราะ หลังจากใส่ข้อมูลลงบน text เสร็จก็จะบันทึกลงบนตาราง แต่ว่าบางฟิลจะตั้งค่าไว้ว่า จำเป็นต้องใส่ด้วย ดังนั้นอันไหนที่ไม่ได้ใส่ เวลากดบันทึก จะขึ้น error ) แต่ทีนี้ไอ้ code ของผมนั้นไม่รู้ว่าผิดตรงไหน(แต่ถ้าใส่ครบหมดแล้วนะ ก็บันทึกได้ปรกติ )คือทั้งที่ยังไม่ใส่ข้อมูลหรือใส่ไม่ครบ กด บันทึก(OFF_SAVE) แล้ว ก็นิ่งเลย ไม่มีไรเกิดขึ้น
เป็นเพราะอะไรเหรอครับ
ขอบคุณมากครับ
เป็นเพราะอะไรเหรอครับ
ขอบคุณมากครับ
3 @R02765
วิธีการตรวจหา (Debug) ว่าในแต่ละ If (ซึ่งมีหลายๆ อันแบบนี้) มันวิ่งไปอันไหนบ้าง ควรจะใส่ Else ไว้ด้วย เช่น
If เงื่อนที่ 1 Then
' ทำงานที่ 1 ตรงนี้
Else
MsgBox "เงื่อนไขที่ 1 ไม่จริง"
End If
จะทำให้เราสามารถตรวจหาเงื่อนไขแต่ละอันได้
ลองดูครับ
If เงื่อนที่ 1 Then
' ทำงานที่ 1 ตรงนี้
Else
MsgBox "เงื่อนไขที่ 1 ไม่จริง"
End If
จะทำให้เราสามารถตรวจหาเงื่อนไขแต่ละอันได้
ลองดูครับ
4 @R02794
ดูคร่าวๆนะครับ คุณกำหนดจุดตรวจสอบที่เดียวคือ OFF_AUTH
ซึ่งเงื่อนไขมี 0-4 เท่านั้น ฉะนั้น ถ้าคุณใส่ค่าอื่นๆนอกจากนี้ หรือไม่ใส่ มันก็จะเหมือนกับคุณใส่ค่าตามปกติ ก็เลยไม่เกิด Error แต่ว่าค่านั้นไม่เข้าเงื่อนไขใดๆ ที่คุณกำหนดไว้ ก็เลยไม่มีการทำงานใดๆทั้งสิ้นครับ
.......ก็แค่เดาครับ........................................................................
ซึ่งเงื่อนไขมี 0-4 เท่านั้น ฉะนั้น ถ้าคุณใส่ค่าอื่นๆนอกจากนี้ หรือไม่ใส่ มันก็จะเหมือนกับคุณใส่ค่าตามปกติ ก็เลยไม่เกิด Error แต่ว่าค่านั้นไม่เข้าเงื่อนไขใดๆ ที่คุณกำหนดไว้ ก็เลยไม่มีการทำงานใดๆทั้งสิ้นครับ
.......ก็แค่เดาครับ........................................................................
Time: 0.1135s
ส่วนคำถามที่ 2 ก็ให้ใช้กับเหตุการณ์ OnCurrent ของ Form แล้วใช้
Private Sub Form_Current()
If Me.YesNoField = True Then
Me.Command1.Enabled = True
Else
Me.Command1.Enabled = False
End If
End Sub