【學生信息管理系統】EOF 和 BOF
敲完學生信息管理系統時,在刪除信息的時候,常常會出現下圖這種錯誤,遇到問題就要解決這個問題。經過查閱理解了記錄集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 |
【學生信息管理系統】EOF 和 BOF