学生信息系统优化(三)---查询信息按钮

背景

第一次验项目漏洞百出,有一个问题给我留下了深刻的印象,如下图是我的查询信息窗体

问题

我的代码运行起来之后,数据库里的信息设成了一个循环,当记录到达最后一条时,点击下一条就会返回到第一条记录,同理,记录到第一条时,点击上一条记录会回到最后一条记录。师傅这时候问我,如果软件是这样的,那么要第一条记录和最后一条记录还有什么用。我觉得师父说的有道理。所以回来之后我就开始更改我的代码。并且将“查看按钮”有了更深一步的优化。

下面是我的代码

解决方法

Private Sub cmdFirst_Click()
    mrc.MoveFirst
    Call viewData
    cmdNext.Enabled = True
    cmdLast.Enabled = True
End Sub

Private Sub cmdLast_Click()
    mrc.MoveLast
    Call viewData
    cmdPrevious.Enabled = True
    cmdFirst.Enabled = True
End Sub

Private Sub cmdNext_Click()
    mrc.MoveNext
    If mrc.EOF Then
        MsgBox "已经是最后一条数据", vbOKOnly + vbExclamation, "警告"
        cmdNext.Enabled = False
        cmdLast.Enabled = False
        mrc.MovePrevious            '非常重要的一个步骤
    Else
        Call viewData
    End If
    cmdPrevious.Enabled = True
    cmdFirst.Enabled = True
End Sub

Private Sub cmdPrevious_Click()
    mrc.MovePrevious
    If mrc.BOF Then
        MsgBox "已经是第一条数据", vbOKOnly + vbExclamation, "警告"
        cmdPrevious.Enabled = False
        cmdFirst.Enabled = False
        mrc.MoveNext            ''非常重要的一个步骤
    Else
        Call viewData
    End If
    cmdNext.Enabled = True
    cmdLast.Enabled = True
End Sub

这样的代码让用户的体验更好

详细解析

大家应该看见了我有注释的地方,虽然看起来就一行代码,但是在编程的时候可是难住了我半个小时啊。当时我优化完之后。自己还是比较满意的。但是还是有问题,举个例子,假如有两个数据。当在这两个数据中加入游标,一共有三种方法。第一种在第一个数据前,第二种在两个数据中间,第三种在第二个数据之后。当我这个程序运行之后,游标在第一个数据之前,现在显示的是第一个数据,这一点肯定毋庸质疑。当我点击”下一条记录“,根据代码(没有添加mrc.MovePrevious、mrc.MoveNext时),游标下移,就去了两个数据中间。此时显示第二个数据。当我再次点击”下一条记录“时,游标下移到了第二个数据之后,但是显示的还是第二个数据。那么此时点击这次按钮的就是多余的。

之后我开始想解决办法,因为知道原因,所以就慢慢的开始尝试添加一些代码。在失败了几次之后,我突然想起了在写删除按钮的代码那里有游标返回。于是我就抱着再次尝试的心态,在代码中,相应的添加mrc.MovePrevious、mrc.MoveNext,非常欣慰,功夫不负苦心人。解决了这种错误。

代码都有互通性。通过这几天的问题,我想起了高中时语文老师经常说的一句话。天下文章一大抄,看你会抄不会抄!代码也是一样。天下代码一大抄,看你会抄不会抄

猜你喜欢

转载自blog.csdn.net/liangjiabao5555/article/details/81360748
今日推荐