學生管理信息系統------實時錯誤“3021”

在調學生的時候同樣遇到了3021 這個問題,下面是解決方法
我們先來了解一下EOF,BOF的用法:
BOF:指當前記錄位置位於Recordset對象的第一個記錄之前; 
EOF:指當前記錄位置位於Recordset對象的最後一個記錄之後。
這兩個的屬性值均返回布爾型:True和False,使用BOF和 EOF 屬性可確定 Recordset 對象是否包含記錄,或者從一個記錄移動到另一個記錄時是否超出 Recordset 對象的限制。

說明:  
(1)如果當前記錄位於第一個記錄之前,BOF屬性將返回 True(-1),如果當前記錄爲第一個記錄或位於其後則將返回 False (0)。  (2)如果當前記錄位於Recordset 對象的最後一個記錄之後 EOF 屬性將返回True,而當前記錄爲 Recordset 對象的最後一個記錄或位於其前,則將返回 False。
( 3)如果BOF 或 EOF 屬性爲 True,則沒有當前記錄。 
(4)如果打開沒有記錄的Recordset 對象,BOF 和 EOF 屬性將設置爲True,而 Recordset 對象的 RecordCount 屬性設置爲零。打開至少包含一條記錄的 Recordset 對象時,第一條記錄爲當前記錄,而BOF 和 EOF 屬性爲 False。  
(5)如果刪除Recordset 對象中保留的最後記錄,BOF 和 EOF屬性將保持 False,直到重新安排當前記錄。

具體用法:
 If objRs.BOF Then  
 表示:當前指針的位置是在第一行記錄之前,則… 
 If objRs.EOF Then 
 表示:當前指針的位置是在最後一行記錄之後,則… 
 If Not objRs.EOF Then 
 表示:當前指針的位置沒有到達最後一條記錄 
 If Not objRs.BOF then 
 表示:當前指針的位置沒有到達第一條記錄 
 推薦使用下面兩條  If Not (objRs.BOF AND objRs.EOF) Then 
 表示:指針位於RecordSet 的當中(並非是最後一條和第一條) ,說明一定有記錄。  
If objRs.BOF AND objRs.EOF Then  表示:沒有任何記錄

解決方法:
加一個判斷語句,遇到就會自動跳過

on  Error  GoTo  1
	mrc.MoveNext
	call viewData
1:
	If Err = 3021 then
	If MsgBox ("已經沒有數據,是否添加數據?",vbOKCancel, ”提示	")  = vbOK then
		frmAddresult.show
	end if 
	end if 
	end sub

當點擊下一條沒有數據的時候,就會彈出提示框問是否添加數據,這樣就可以避免出現錯誤。

發佈了21 篇原創文章 · 獲贊 1 · 訪問量 2435
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章