日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

学生信息管理系统错误总结之3021

發布時間:2024/1/18 windows 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学生信息管理系统错误总结之3021 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在這些天敲寫和調試學生信息管理系統的時候,經常會用到EOF(End of File)和BOF(Before of File),稍加不注意查詢我們的數據庫就會出錯,那么這兩個究竟是個什么鬼?

一、認識

? ? ? BOF:指當前記錄位置位于Recordset對象的第一個記錄之前
? ? ? EOF:指當前記錄位置位于Recordset對象的最后一個記錄之后?
? ?這兩個的屬性值均返回布爾型:True和False,使用BOF
和 EOF 屬性可確定 Recordset 對象是否包含記錄,或者從一個記錄移動到另一個記錄時是否超出 Recordset 對象的限制。 下表即是各自的使用說明及查詢結果:

?

EOF

BOF

True

當前行的位置是在最后一行的后面,無記錄

當前行的位置是在第一行之前,無記錄

False

當前行的位置是在最后一行或其前面,有記錄

當前位置是在第一行或其后,有記錄

說明:
  • 如果當前記錄位于第一個記錄之前,BOF屬性將返回 True(-1),如果當前記錄為第一個記錄或位于其后則將返回 False (0)。
  • 如果當前記錄位于Recordset 對象的最后一個記錄之后 EOF 屬性將返回True,而當前記錄為 Recordset 對象的最后一個記錄或位于其前,則將返回 False。?
  • 如果BOF 或 EOF 屬性為 True,則沒有當前記錄。
  • 如果打開沒有記錄的Recordset 對象,BOF 和 EOF 屬性將設置為True,而 Recordset 對象的 RecordCount 屬性設置為零。打開至少包含一條記錄的 Recordset 對象時,第一條記錄為當前記錄,而BOF 和 EOF 屬性為 False。
  • 如果刪除Recordset 對象中保留的最后記錄,BOF 和 EOF屬性將保持 False,直到重新安排當前記錄。
  • ? ? ? 而在我們的學生信息管理系統中,會涉及到對指針進行的MoveFirst、MoveLast、MovePrevious與MoveNext四種方法。一般來說,當需要對記錄集Recordset中的所有行進行操作時,代碼可以使用MoveNext,循環遍歷各行,直到EOF屬性被置為True
    如果當 EOF 被置為 True 時再使用 MoveNext ,或當 BOF被置為 True 時再使用 MovePrevious ,都將產生一個提示代號為‘3021’的錯誤。
    ? ? 需要注意的是:允許一個Move 方法并非意味著,該方法能成功地定位某行。它僅表示執行這個指定的 Move 方法是允許的,并且不產生一個錯誤。 BOF 和 EOF屬性的狀態可以隨著該移動的結果而改變。?


    二、用法(因為在學生信息系統中定義mrc為記錄集對象)

    If mrc.BOF Then 表示:當前指針的位置是在第一行記錄之前,則... If mrc.EOF Then 表示:當前指針的位置是在最后一行記錄之后,則... If Not mrc.EOF Then 表示:當前指針的位置沒有到達最后一條記錄 If Not mrc.BOF then

    表示:當前指針的位置沒有到達第一條記錄

    推薦使用下面兩條 If Not (mrc.BOF AND mrc.EOF) Then 表示:指針位于RecordSet 的當中(并非是最后一條和第一條) ,說明一定有記錄。 If mrc.BOF AND mrc.EOF Then 表示:沒有任何記錄

    三、具體使用

    說完了EOF和BOF之后就要說說我們的3021錯誤了。錯誤定位在更改學籍信息中。
    Private Sub cmdPrevious_Click()'數據集向前移動mrc.MovePrevious'判斷是否到起始位置If mrc.BOF Thenmrc.MoveLastEnd IfCall viewData End Sub 自己錯把BOF達成了EOF。這一點就是自己的粗心的問題了。
    第二個錯誤就是關于記錄查詢問題了,在查詢信息頁面如果沒有向數據庫中添加記錄的情況下,會出現錯誤3021,因為搜索不到記錄集,而指針依然要求移到第一條記錄這時就會出現查詢錯誤。
    錯誤處理方法:一、進行錯誤處理
    Private Sub Form_Load()Dim txtSQL As StringDim MsgText As StringtxtSQL = "SELECT * FROM student_Info "Set mrc = ExecuteSQL(txtSQL, MsgText) '得到臨時表On Error GoTo 1:mrc.MoveFirstCall viewDatamyBookmark = mrc.Bookmark '對當前記錄進行標記mcclean = True '可編輯狀態1:If Err = 3021 ThenMsgBox "無記錄!"End IfEnd sub 錯誤處理方法二:用if條件將錯誤顯示出來 Private Sub Form_Load()Dim txtSQL As StringDim MsgText As StringtxtSQL = "SELECT * FROM student_Info "Set mrc = ExecuteSQL(txtSQL, MsgText) '得到臨時表 ’考慮無記錄情況If mrc.EOF And mrc.BOF Then ’一條IF語句充當錯誤處理,當無記錄時,mrc.eof=true’和mrc.bof=true兩個條件同時滿足!MsgBox "無記錄!請先添加記錄。"frmAddsinfo.Show ’直接進行下一步,顯示窗體Elsemrc.MoveFirstCall viewDatamyBookmark = mrc.Bookmark '對當前記錄進行標記mcclean = True '可編輯狀態 End If 總結:3021錯誤是一個很常見的問題,這個問題會讓我們不斷加深我們對于EOF和BOF的理解,每次的錯誤都會讓我們成長的更快。





    總結

    以上是生活随笔為你收集整理的学生信息管理系统错误总结之3021的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。