在做学生管理的过程中,多次运用BOF和EOF,使文章的逻辑更加的鲜明,刚开始理解不是很到位、有点小偏差,随着大家的交流与学习,逐渐加强了对其的认识,接下来大家共同学习!
解释说明:
ADO Recordset 对象用于容纳一个来自数据库表的记录集。一个 Recordset 对象由记录和列(字段)组成。
在 ADO 中,此对象是最重要且最常用于对数据库的数据进行操作的对象。
BOF (Before of File)指示当前记录位置位于 Recordset 对象的第一个记录之前。
Private Sub previousCommand_Click()
On Error GoTo P_Err
'错误语句
mrc.MovePrevious
If mrc.BOF Then '如果当前记录位于第一个记录,则移向最后一个记录
mrc.MoveLast
End If
Call viewData
P_EXIT:
Exit Sub
P_Err:
MsgBox "无任何记录!", vbOKOnly + vbCritical, "警告" '验证无法正常完成
GoTo P_EXIT
End Sub
EOF(End of File) 指示当前记录位置位于 Recordset 对象的最后一个记录之后。
Private Sub deleteCommand_Click()
On Error GoTo P_Err
myBookmark = mrc.Bookmark '标记
Str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
If Str2$ = vbOK Then '首先是先测试是否要删除的记录为最后一条记录
mrc.MoveNext '如果为最后,则先把当前记录移动到第一个
If mrc.EOF Then
mrc.MoveFirst '书签移动到第一个
mybookmarl = mrc.Bookmark
mrc.MoveLast '然后在移动到最后
mrc.Delete '删除
mrc.Bookmark = myBookmark '找到刚才的书签
Call viewData
Else
myBookmark = mrc.Bookmark '标记如果不是最后一个
mrc.MovePrevious '标记下一个,因为删除以后就要移动到下一个
mrc.Delete '删除
mrc.Bookmark = myBookmark ' 找回刚才标记的书签
Call viewData
End If '显示记录
Else
mrc.Bookmark = myBookmark '取消标记
Call viewData
End If
P_EXIT:
Exit Sub
P_Err:
txtName.Text = ""
txtBorndate.Text = ""
txtSID.Text = ""
txtRudate.Text = ""
txtTel.Text = ""
txtAddress.Text = ""
txtComment.Text = ""
MsgBox "无任何记录!", vbOKOnly + vbCritical, "警告" '验证无法正常完成
GoTo P_EXIT
End Sub
返回值:BOF 和 EOF 属性返回布尔型值。
使用 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,直到重新安排当前记录。
以下表格说明不同 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 |
分享到:
相关推荐
在调试“学生管理系统”时,想修改学籍信息,如果此时数据库中的数据已被完全删除则会出现“BoF 或Eof有一个是真,或当前记录已被删除的错误
------------------------- ###推荐使用下面两条 if not (rs.bof and rs.eof) then 表示:指针位于 RecordSet 的当中(并非是最后一条和第一条) ,说明一定有记录。 if rs.bof and rs....
在这些天敲写和调试学生信息管理系统的时候,经常会用到EOF(Endof File)和BOF(Before of File),稍加不注意查询我们的数据库会出错,那么这俩到底是何方神圣,是怎么用的,之间又有什么区别呢? 一、认识 ...
解决T3/T6打最新增量补丁后,提示本地版本...1、解决了使用工具报EOF或BOF错误的问题 2、使用工具后,如果还不行,请尝试重启电脑 3、重启还不行,看一下是不是360之类的软件把update.exe给隔离了 更新日期:2013-7-25
计算机视觉的实验,Python写的代码,萌新代码,勿喷,仅仅只是方便没时间写实验的朋友,直接用python打开就能运行
使用bof算法来提取图像特征,在corel数据集(10*100张图片)上实现以图搜图,即输入数据集中某一张图,在剩下的999张图里搜索最邻近的10张图。
python计算机视觉编程——基于BOF的图像检索(附代码) 计算机视觉.pdf
MFC 按钮的小例子,初学者很适用,希望大家一起享用
BOF&麦肯锡-2020全球时尚业态报告(英文)-2019.12-108页.pdf
icecast_avllib_bof
icecast_libshout_bof
BOF.NET是一个小型本机BOF对象,与BOF.NET托管运行时结合使用,可以直接在.NET中开发Cobalt Strike BOF。 BOF.NET消除了本机编译的复杂性以及手动导入本机API的麻烦。 由于可以使用传统的托管调试器来调试.NET程序集...
Filter bank representation methods for speech recognition
Bof-exploit:Python
使用KMeans算法与BOF 算法实现图像检索,Matlab编码
BOF White Paper, A good tutial for Beginners
BOF.NET-钴击信标对象文件的.NET运行时介绍BOF.NET是一个小型本机BOF对象,与BOF.NET托管运行时结合使用,可以直接在.NET中开发Cobalt Strike BOF。 BOF.NET消除了本机编译的复杂性以及手动导入本机API的麻烦。由于...
Source Code for bag of features, developed in Matlab