Private Sub deleteCommand _Click()
myBookmark = mrc.Bookmark '把记录集的指针赋给一个字符变量
str2$ = MsgBox("确认是否删除当前数据?", vbOKCancel, "删除当前记录")
If str2$ = vbOK Then '假如你点了确认按钮
mrc.MoveNext '显示删除后下一条记录
If mrc.EOF Then '如果删除的是最后一条有两种情况1.最后一条(仅有一条)2.最后一条(但前边还有)mrc.MovePrevious
mrc.MovePrevious
If mrc.BOF Then '1.有且仅有一条记录的处理
mrc.MoveNext
mrc.Delete
MsgBox "最后一条记录已经删除!", vbOKOnly + vbExclamation, "警告"
Unload Me
Else '判断是最后一条(但前边还有)
mrc.MoveFirst '这里红色字体的三行书签的作用是:
myBookmark = mrc.Bookmark '使删除记录后回到第一条记录
mrc.MoveLast
mrc.Delete '指针回到最后一行,并删除
mrc.Bookmark = myBookmark
Call viewData '调用viewData函数,使表显示当前(也就是第一条)记录。
End If
Else '有很多记录 ,也不是最后一条记录的处理
myBookmark = mrc.Bookmark
mrc.MovePrevious
mrc.Delete
mrc.Bookmark = myBookmark
Call viewData
End If
End If
End SubPublic Sub viewData() '把临时表中当前记录赋给文本框
txtSID.Text = mrc.Fields(0)
txtName.Text = mrc.Fields(1)
comboSex.Text = mrc.Fields(2)
txtBorndate.Text = Format(mrc.Fields(3), "yyyy-mm-dd") '规定日期格式形如:2015-06-20
comboClassno.Text = mrc.Fields(4)
txtTel.Text = mrc.Fields(5)
txtRudate.Text = Format(mrc.Fields(6), "yyyy-mm-dd")
txtAddress.Text = mrc.Fields(7)
txtComment.Text = mrc.Fields(8)
End Sub当只有一记录时,为了人性化,加了一个提示:最后一条已删除,如图:
![]()
Bookmark(书签)和move指针的应用
最新推荐文章于 2021-06-06 11:15:09 发布
在我敲学生时,遇到了书签Bookmark 和movefirst、moveprevious、movenext、movelast,一开始我真是一头雾水,最后探讨了一番总算理解了。那么对数据库的删过程,是如何实现的呢,下面以修改学籍窗体里的删除按钮为例,有不对的还请学的好的指出……