日期:2014-05-16 浏览次数:20493 次
在做学生管理的过程中,多次运用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,而 Record