
本文共 1697 字,大约阅读时间需要 5 分钟。
背景
第一次验项目漏洞百出,有一个问题给我留下了深刻的印象,如下图是我的查询信息窗体
问题
我的代码运行起来之后,数据库里的信息设成了一个循环,当记录到达最后一条时,点击下一条就会返回到第一条记录,同理,记录到第一条时,点击上一条记录会回到最后一条记录。师傅这时候问我,如果软件是这样的,那么要第一条记录和最后一条记录还有什么用。我觉得师父说的有道理。所以回来之后我就开始更改我的代码。并且将“查看按钮”有了更深一步的优化。
下面是我的代码
解决方法
Private Sub cmdFirst_Click() mrc.MoveFirst Call viewData cmdNext.Enabled = True cmdLast.Enabled = TrueEnd SubPrivate Sub cmdLast_Click() mrc.MoveLast Call viewData cmdPrevious.Enabled = True cmdFirst.Enabled = TrueEnd SubPrivate 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 = TrueEnd SubPrivate 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 = TrueEnd Sub
这样的代码让用户的体验更好
详细解析
大家应该看见了我有注释的地方,虽然看起来就一行代码,但是在编程的时候可是难住了我半个小时啊。当时我优化完之后。自己还是比较满意的。但是还是有问题,举个例子,假如有两个数据。当在这两个数据中加入游标,一共有三种方法。第一种在第一个数据前,第二种在两个数据中间,第三种在第二个数据之后。当我这个程序运行之后,游标在第一个数据之前,现在显示的是第一个数据,这一点肯定毋庸质疑。当我点击”下一条记录“,根据代码(没有添加mrc.MovePrevious、mrc.MoveNext时),游标下移,就去了两个数据中间。此时显示第二个数据。当我再次点击”下一条记录“时,游标下移到了第二个数据之后,但是显示的还是第二个数据。那么此时点击这次按钮的就是多余的。
之后我开始想解决办法,因为知道原因,所以就慢慢的开始尝试添加一些代码。在失败了几次之后,我突然想起了在写删除按钮的代码那里有游标返回。于是我就抱着再次尝试的心态,在代码中,相应的添加mrc.MovePrevious、mrc.MoveNext,非常欣慰,功夫不负苦心人。解决了这种错误。
代码都有互通性。通过这几天的问题,我想起了高中时语文老师经常说的一句话。天下文章一大抄,看你会抄不会抄!代码也是一样。天下代码一大抄,看你会抄不会抄
发表评论
最新留言
关于作者
