学生管理系统学习——总结

    学生管理系统最主要的步骤就是  添加——修改——查空——查重——更新

  下面是删除记录的代码,经大神指点,终于理清了它的逻辑

  '记下当前记录位置
  myBookmark = mrc.Bookmark
  '提示是否删除
  str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")
   '判断按钮类型
   If str2$ = vbOK Then
       '移动到数据集下一条记录
       mrc.MoveNext
         '判断数据集对象是否为空
          If mrc.EOF Then
             mrc.MovePrevious
             mrc.MovePrevious '如果数据库中只有一条记录的时候,防止删除记录
                If mrc.BOF Then
                    mrc.MoveNext
                    mrc.Delete
                    MsgBox "最后一条记录已经删除,记录已经为空!", vbOKOnly + vbExclamation, "警告"
                    Unload Me
                   Else
                  '移动到数据集的第一条记录
                   mrc.MoveFirst
                   '记录当前记录的位置
                   myBookmark = mrc.Bookmark
                   '移动到最后一条记录
                   mrc.MoveLast
                   '删除记录
                   mrc.Delete
                   mrc.Bookmark = myBookmark
                   '调用函数显示数据
                   Call viewData
                End If
          Else
         '记载当前位置
         mybookmard = mrc.Bookmark
         '移动到前一条记录
         mrc.MovePrevious
         '删除记录
         mrc.Delete
         '回到原来位置
         mrc.Bookmark = myBookmark
         '调用函数显示数据
         Call viewData
       End If
    Else
    mrc.Bookmark = myBookmark
    Call viewData
  End If

点击修改按钮时,会出现四种情况:

第一种情况:当数据库中只有一条记录时,点击确定删除按钮

      首先记下当前位置,记录集向下移动,判断  If mrc.EOF Then 这条语句,此时记录集指针指向EOF,语句为True,继续执行这个if 语句下的命令,向上移动一条记录,此时指针指向的是要删除的那条记录,为防止数据库中只有一条记录的时候删除它,再向上移动一个记录,此时指针指向BOF,判断If mrc.BOF Then这条语句,为True ,继续执行该if 语句下的命令,指针向下移动,然后删除记录这条记录,卸载窗体,退出if语句。该情况下BOF 为False,EOF为False .

第二种情况:当数据库中有两条记录时,点击删除第一条记录

     首先记下当前位置,记录集向下移动,判断 If mrc.EOF Then 这条语句,此时指针指向最后一条记录,该语句为False,不用执行其下命令,执行else后面的语句,标记此时位置,移动到上一条记录,然后删除记录(该记录即为要删除的那条记录),回到刚才标记的位置,及此数据库中的最后一条记录的位置,调用函数显示数据。该情况下BOF为True,EOF为True

第三种情况:当数据库中有两条记录时,点击删除第二条记录

     首先标记记录当前位置,指针向下移动,判断 If mrc.EOF Then 这条语句,此时记录集指针指向EOF,语句为True,继续执行这个if 语句下的命令,向上移动一条记录,此时指针指向的是要删除的那条记录,为防止数据库中只有一条记录的时候删除它,再向上移动一个记录,此时指针指向第一条记录,判断If mrc.BOF Then这条语句,为False,则执行该If语句的else下的命令,指针指向第一条记录,标记该位置,然后指向最后一条记录,删除该记录(该记录即为要删除的那条记录),回到刚才标记的位置,及此数据库中的第一条记录,调用函数显示数据。该情况下BOF为True ,EOF为False

第四种情况:当数据库中有三条记录,点击删除第二条记录

     首先标记当前位置,指针向下移动,判断 If mrc.EOF Then 这条语句,为False,不执行该If 语句下的命令,直接执行else下的命令,标记此时位置,移动到上一条记录,然后删除记录(该记录即为要删除的那条记录),回到刚才标记的位置,及此数据库中的最后一条记录的位置,调用函数显示数据。该情况下BOF为True,EOF为False

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值