[置頂] BOF或EOF中有一個是「真」,或者當前的記錄已被刪除,所需的操做要求一個當前的記錄。

  作學生管理系統是,會一直彈出一個對話框就是:編碼

 運行時錯誤’3021‘; BOF或EOF中有一個是「真」,或者當前的記錄已被刪除,所需的操做要求一個當前的記錄。

  

 它幾乎無所不在,它的意思很簡單就是,它須要數據時,沒有數據可用了。spa

 通常來說,學生管理系統,就有2個地方最容易出現這個問題。code

 第一個:編碼錯了

If mrc.EOF = False Then
     mrc.MoveFirst
      mybookmark = mrc.Bookmark
      mrc.MoveLast
      mrc.Delete
            	
      mybookmark = mrc.Bookmark
      Call Viewdata
End If

  這時就會出現這個錯誤,由於倒數第三句,它找不到該書籤,沒有數據讓它用了,那麼就要改成:it

 If mrc.EOF Then    mrc.MoveFirst        mybookmark = mrc.Bookmark mrc.MoveLast mrc.Delete mrc.Bookmark = mybookmark Call Viewdata End If 


 

 

 

 

     第二種狀況就是:它確實沒有數據了。

  這種狀況很常見,由於畢竟,當你刪除了最後一條記錄,就沒有數據可用了。io

  那麼咱們就來編碼一下cancelcommand的代碼,讓她給一個提示,告訴咱們最後一條記錄了,刪除後,就沒有記錄。ast

  (1)這樣分爲二種狀況:一種是正好最後一條記錄(可是記錄不僅有一條),第二種狀況就是:有且僅有一條記錄,首先要判斷出來class

 (2)這樣就用到了2個if語句,第一個先要判斷是否是最後一條記錄;第一個要判斷的是有卻僅有一條記錄的,咱們要讓全部的按鈕都不能用|(這樣就不會出現這樣的錯誤)。並提示無記錄。sed

 

 

 
 
Private Sub deleteCommand_Click() mybookmark = mrc.Bookmark str2$ = MsgBox("確認是否要刪除?", vbOKCancel, "刪除當前數據")           If str2$ = vbOK Then mrc.MoveNext If mrc.EOF Then‘分爲2種狀況:一種是是最後一條記錄(但不僅一條記錄);一種是有且僅有一條記錄 mrc.MovePrevious mrc.MovePrevious 
 If mrc.BOF Then ‘有且僅有一條記錄的狀況的處理 mrc.MoveNext mrc.Delete MsgBox "最後一條記錄已經刪除!", vbOKOnly + vbExclamation, "警告" txtCourseno.Text = "" txtCoursename.Text = "" comboCoursetype.Text = "" txtCoursedes.Text = "" Frame2.Enabled = False firstCommand.Enabled = False previousCommand.Enabled = False lastCommand.Enabled = False nextCommand.Enabled = False txtCourseno.Enabled = False txtCoursename.Enabled = False comboCoursetype.Enabled = False txtCoursedes.Enabled = False editCommand.Enabled = False updateCommand.Enabled = False cancelCommand.Enabled = False deleteCommand.Enabled = False Else                        ‘有不少條記錄,但正好刪的是第一條記錄的處理 mrc.MoveFirst mybookmark = mrc.Bookmark mrc.MoveLast mrc.Delete mrc.Bookmark = mybookmark Call Viewdata End If Else                ‘有不少條記錄也不是最後一條記錄的處理 'mrc.MoveNext mybookmark = mrc.Bookmark mrc.MovePrevious mrc.Delete mrc.Bookmark = mybookmark Call Viewdata End If Else                   ‘不刪除的處理 mrc.Bookmark = mybookmark Call Viewdata End If End if
相關文章
相關標籤/搜索