【學生資訊管理系統】EOF 和 BOF

00潤物無聲00發表於2014-08-14

敲完學生資訊管理系統時,在刪除資訊的時候,經常會出現下圖這樣的錯誤,遇到問題就要解決問題。經過查閱理解了記錄集Recordset的EOF和BOF屬性,用這兩個屬性可以知道記錄集中是否有資訊存在。

EOF和BOF屬性

  • BOF 指示當前記錄位置位於 Recordset 物件的第一個記錄之前。
  • EOF 指示當前記錄位置位於 Recordset 物件的最後一個記錄之後。

返回值:BOF 和 EOF 屬性返回布林型值。


使用 BOF 和 EOF 屬性可確定Recordset 物件是否包含記錄,或者從一個記錄移動到另一個記錄時是否超

出 Recordset 物件的限制。

  • 如果當前記錄位於第一個記錄之前,BOF 屬性將返回 True ,如果當前記錄為第一個記錄或位於其後則將返回 False 。
  • 如果當前記錄位於 Recordset 物件的最後一個記錄之後 EOF 屬性將返回 True,而當前記錄為 Recordset 物件的最後一個記錄或位於其前,則將返回 False。
  • 如果 BOF 或 EOF 屬性為 True,則沒有當前記錄。

如果開啟沒有記錄的 Recordset 物件,BOF 和 EOF 屬性將設定為 True,而 Recordset 物件的RecordCount 屬性設

置為零。開啟至少包含一條記錄的 Recordset 物件時,第一條記錄為當前記錄,而 BOF 和 EOF 屬性為 False。


如果刪除 Recordset 物件中保留的最後記錄,BOF 和 EOF 屬性將保持 False,直到重新安排當前記錄。


 以下表格說明不同 BOF 和 EOF 屬性組合所允許的 Move 方法。

 產生上圖的錯誤,就是因為在執行程式碼的時候,下面這張圖中的錯誤避免導致的。

 

MoveFirst,

MoveLast

MovePrevious,

Move < 0

Move 0

MoveNext,

Move > 0

BOF=True,

EOF=False

允許

錯誤

錯誤

允許

BOF=False,

EOF=True

允許

允許

錯誤

錯誤

同時為 True

錯誤

錯誤

錯誤

錯誤

同時為 False

允許

允許

允許

允許

 

    允許使用 Move 方法並不能保證該方法成功定位記錄,只是意味著呼叫指定的 Move 方法不會產生錯誤。

下表說明當呼叫各種 Move 方法但未成功定位記錄時 BOF 和 EOF 屬性設定所發生的情況。

 

 

BOF

EOF

MoveFirst, MoveLast

設定為 True

設定為 True

Move 0

沒有變化

沒有變化

MovePrevious, Move < 0

設定為 True

沒有變化

MoveNext, Move > 0

沒有變化

設定為 True


相關文章