记录集对象的BookMark 属性的使用

在做学生管理系系统时,在修改记录的模块中有两个功能一个是对记录的修改完后更新,一个是对记录的删除。

 

在做对记录的删除时,用到的是标签。在写这段代码的时候首先是先理解了他的代码。在大脑中形成了一幅图,在想着图自己写代码。

因为在删除时要考虑到删除的是那条记录,可能删除的是所有记录的最后一条,也可能删除的是第一条记录,并且也想好再删除本条记录后要更改mrc。bookmark的位置。因为删除后此位置就不存在了。如果用户接着删下一条记录所以就要移动标签了。

如果删除的不是最后一条记录,在删前要记录删出该记录的下一个位置,以便在删除后让记录集指针指向删后的下一个记录。所以在删除之前将要删的记录的下一个做上标签。

 

上面的图是分别是删除最后一条和删除的不是最后一条记录的图。

无论删除的是否是第一条记录都要首先要记录集指针下移,以便判断是否是最后一条记录。

他的源代码思想。

 

private sub deletecommand_click ()
mybookmark=mrc.mark
str=msgbox ("是否删除当前记录?好吧!要删就删吧,我不强求",vbokcancel,"删除当前记录"
if str=vbok then
      mrc.moveNext
        if mrc.eof then
            mrc.movefirst
            mybookmark=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
       mybookmark=mrc.bookmark
       call viewdata
end if 
end sub


 

没有考虑到如果记录集中只有一条记录或是在删除到最后时只剩下一条记录的时候。那记录集指针都指向的空的了。应该判断一下是否在删完后是否还有记录。也就是在mrc.bookmark=mybookmark 设定时判断一下mybookmark的值是否为0 。如果为0 的给出记录为空的提示。这样是不是好一点呢。还是多余呢。

Private Sub deleteCommand_Click()
   
    myBookmark = mrc.Bookmark
    str2 = MsgBox("是否删除当前的记录?好吧要删就删吧,我不强求", vbOKOnly, " 删除当前记录")
    If str2 = vbOK Then
        mrc.MoveNext
        If mrc.EOF Then
            mrc.MoveFirst
            myBookmark = mrc.Bookmark
            mrc.MoveLast
            mrc.Delete
            mrc.Bookmark = myBookmark
              If myBookmark = 0 Then
                  MsgBox "只有一条记录,删完就没啦", vbOKOnly + vbExclamation, "警告"
                  Exit Sub
              End If
            Call viewData
        Else
            myBookmark = mrc.Bookmark
            mrc.MovePrevious
            mrc.Delete
            mrc.Bookmark = myBookmark
            If myBookmark = 0 Then
                  MsgBox "只有一条记录,删完就没啦", vbOKOnly + vbExclamation, "警告"
                  Exit Sub
            End If
            Call viewData
        End If
    Else
        mrc.Bookmark = myBookmark
        Call viewData
    End If
        
End Sub


他的删除方法是这个样子的。有没有更简单的方法呢。基础差。待研究。。。

 

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值