【前言】
在修改窗体,点击查看记录的时候,它是在数据库中循环查询的。简单来说就是点上一条记录,可以一直点下去,没有尽头,但是这样又和我们的逻辑有些矛盾。
【正文】
正常的逻辑是:
点击上一条记录可以一直查询到第一条记录,然后提示已经到了第一条记录,不能再查询了,这时这个按钮就已经失效了。还有就是可以点击第一条记录,直接查询到数据库的第一条记录,再点击上一条记录的时候,就会直接提示已经到了第一条记录,这时这两个按钮同时失效。当然,为了保证程序的正常运行,需要在点击事件下面先定义这几个按钮是可用的。
查看下一条记录和最后一条记录的道理同上,不再赘述。
'点击上一条记录
Private Sub cmdPrevious_Click()
'定义四个按钮是可用的。
cmdPrevious.Enabled = True
cmdFirst.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
mrc.MovePrevious
'判断是否到起始位置
'指针位于数据集的第一条记录。
If mrc.BOF Then
'本按钮失效。
cmdPrevious.Enabled = False
'弹出提示框。
MsgBox "已经是第一条记录了!", vbOKOnly + vbExclamation, "提示"
'第一条记录和上一条记录 两个按钮失效。
cmdPrevious.Enabled = False
cmdFirst.Enabled = False
Else
'显示各数据。
txtClassno.Text = mrc.Fields(0)
comboGrade.Text = mrc.Fields(1)
txtClassroom.Text = mrc.Fields(3)
txtDirector.Text = mrc.Fields(2)
End If
End Sub
'点击第一条记录。
Private Sub cmdFirst_Click()
'定义四个按钮是可用的。
cmdPrevious.Enabled = True
cmdFirst.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
'移动到数据集的第一条记录
mrc.MoveFirst
'调用显示数据的函数
txtClassno.Text = mrc.Fields(0)
comboGrade.Text = mrc.Fields(1)
txtClassroom.Text = mrc.Fields(3)
txtDirector.Text = mrc.Fields(2)
End Sub
拓展:
BOF代表的是——记录当前位置位于记录集中第一个记录之前
EOF代表的是——记录当前位置位于记录及中最后一个记录之后
BOF跟EOF的返回值为:
BOF:为True:表示的是当前指针的位置是在的第一行的前面。
为False:时表示的是指针的位置是在第一行,或者第一行的后面。
EOF:为True表示当前的是当前指针的位置是在最后一行的后面
为False表示指针的位置是在最后一行,或者在最后一行的前面。
【后记】
暂时只想到这一种方法,如果有更简单的方法,请联系我!