學生資訊管理系統——錯誤集錦(二)
阿新 • • 發佈:2018-12-22
一年又一年,一天又一天,時間真是如白駒過隙,忽然而已,不知不覺中又到了週末,個人感覺這隻能說是太充實了吧!雖然這一週並沒有除錯多少,但是遇到的問題不少,今天就來歸納總結一下:
錯誤一:
問題原因:定義的變數程式碼敲錯。
錯誤二:
這個問題也是老生常談的了,解決方法如下:
一、進行錯誤處理
錯誤處理的本質就是當遇到錯誤時,可以跳過該錯誤,直接進行下一步,以便於程式順利進行。那麼,我們可以根據這個原理在程式碼中新增錯誤處理:
Private Sub Form_Load() Dim txtSQL As String Dim msgText As String txtSQL = "SELECT * FROM student_Info " Set mrc = ExecuteSQL(txtSQL, msgText) '得到臨時表 On Error GoTo 1: mrc.MoveFirst Call viewData myBookmark = mrc.Bookmark '對當前記錄進行標記 mcclean = True '可編輯狀態 1: If Err = 3021 Then MsgBox "無記錄!" End If end sub
二、根據上述原理,那麼我們也可以將程式碼稍作修改,不做錯誤處理,而是把程式執行的錯誤考慮在內,當遇到這種情況時,用一個if 語句讓程式直接進行下一步即可。
Private Sub Form_Load() Dim txtSQL As String Dim msgText As String txtSQL = "SELECT * FROM student_Info " Set mrc = ExecuteSQL(txtSQL, msgText) '得到臨時表 '考慮無記錄情況 If mrc.EOF And mrc.BOF Then '一條IF語句充當錯誤處理,當無記錄時,mrc.eof=true '和mrc.bof=true兩個條件同時滿足! MsgBox "無記錄!" frmModifysinfo.Show ’直接進行下一步,顯示窗體 Else mrc.MoveFirst Call viewData myBookmark = mrc.Bookmark '對當前記錄進行標記 mcclean = True '可編輯狀態 End If
需要注意的是,因為錯誤處理預設直接進行下一行,而下一步就是顯示本窗體,用If語句可以直接可以將顯示本窗體這一行程式碼改成顯示新增記錄窗體。
經過上述方法處理後,程式一旦遇到類似情況,便會提示“無記錄”,繼續執行下一步。
錯誤三:
錯誤原因:程式碼敲錯。
修改:把”Files“改為”Fields“。
錯誤四:
Private Sub cmdInquire_Click() Dim txtSQL As String Dim MsgText As String Dim dd(4) As Boolean Dim mrc As ADODB.Recordset '組合SQL語句 txtSQL = "select*from student_Info where" '判斷是否選擇學號查詢方式 If Check1(0).Value Then If Trim(txtSID.Text) Then sMeg = "學號不能為空" MsgBox sMeg, vbOKOnly + vbExclamation, "警告" txtSID.SetFocus Exit Sub
顯示sMeg未定義
修改方法:
(1)可將sMeg定義為字串String
(2)直接將:
sMeg = "學號不能為空"
MsgBox sMeg, vbOKOnly + vbExclamation, "警告"
改為:
MsgBox "學號不能為空", vbOKOnly + vbExclamation, "警告"
錯誤五:
錯誤原因:程式碼敲錯
修改:應為“IsNumeric”。
反饋,總結,成長,今天就到這裡了,還沒有結束哦,接下來繼續加油,敬請期待吧!