学生优化(三)-----禁止循环查询语句

背景:

在第一条的记录上点击上一条记录(按钮),窗体显示最后一条记录。在最后一条记录上点击下一条记录(按钮)记录变成了第一条。数据就这么循环着。

源代码

Private Sub nextCommand_Click()   ’点击下一条按钮
    mrc.MoveNext
    If mrc.EOF Then
        mrc.MoveFirst
    End If
    Call viewData
End Sub


Private Sub previousCommand_Click()    ’点击上一条按钮
    mrc.MovePrevious
    If mrc.BOF Then
        mrc.MoveLast
    End If
    Call viewData
End Sub

这个代码执行时,显示游标从当前记录上移,移到上一条记录,如果出现bof(向上移动时)则让他跳转到最后一条记录,出现eof则跳到第一条记录,不了解bof与eof的请查看我的上上上的上篇博客,它的末尾有介绍。传送门

更改代码

Private Sub cmdPrevious_Click()    '点击上一条按钮
    cmdlast.Enabled = True
    cmdNext.Enabled = True
    If mrc.EOF And mrc.BOF Then
        str1 = MsgBox("没有学籍信息,是否添加学籍信息?", vbOKCancel, "提示")
        
        If str1 = vbOK Then
            frmAddclassinfo.Show
            frmModifyclassinfo.Hide
        Else
            MsgBox "什么都没有你点什么?", vbOKCancel, "提示"
        End If
    Else
        '数据集向后移动
        mrc.MovePrevious
        '判断是否到末位置
        If mrc.BOF Then
            cmdPrevious.Enabled = False
            MsgBox "这已经是第一条数据了,没有上一条了", vbOKOnly + vbExclamation, "提示"
            mrc.MoveNext
        Else       
            Call viewData
        End If
    End If
End Sub




Private Sub cmdNext_Click()       '点击下一条按钮
    cmdPrevious.Enabled = True
    cmdFirst.Enabled = True
    If mrc.EOF And mrc.BOF Then
        str1 = MsgBox("没有班级信息,是否添加班级信息?", vbOKCancel, "提示")
        
        If str1 = vbOK Then
            frmAddclassinfo.Show
            frmModifyclassinfo.Hide
        Else
            MsgBox "什么都没有你点什么?", vbOKCancel, "提示"
        End If
    Else
        '数据集向后移动
        mrc.MoveNext
        '判断是否到末位置
        If mrc.EOF Then
            MsgBox "这已经是最后一条数据了,没有下一条了", vbOKOnly + vbExclamation, "提示"
            cmdNext.Enabled = False
            cmdlast.Enabled = False
            mrc.MovePrevious
        Else
            Call viewData
        End If
    End If
End Sub

 这两个代码的逻辑是:由于我已经点击并显示出了第一条数据(最后一条数据),那么我就直接将上一个信息(下一个信息)以及第一个信息(最后一个信息)这两个按钮不能用,来告诉用户这已经是第一条(最后一条)数据了。

所以1.首先当我显示的是第一条数据时,我会将两个按钮不能用,那么在我点击下一个数据的按钮时,首先将两个按钮恢复到原来可以使用的状态。

2.进行一个空集判断,判断我里面是否有数据,若是没有则提示没有数据是否去添加。若点击确定添加,则跳转到添加班级界面,否则会提示。

3.在不是空集的情况下,让游标先向上移,判断他是否是bof,若是bof也就是没有数据了,此数据是第一个数据的情况下给出提示告知已经是第一条数据了,然后将显示第一条数据和上一个数据的这两个按钮不能用并将游标移回原来的位置。若不是第一条数据则显示当前游标所指(游标已将上移了,此时没有移回来)的数据

这样我们就可以不让他进行循环查询了

欢迎各位大神斧正~

发布了31 篇原创文章 · 获赞 4 · 访问量 2299

猜你喜欢

转载自blog.csdn.net/weixin_44663188/article/details/100015107