在程序运行的过程中,当用户单击窗体上的“第一条记录”按钮、“前一条记录”按钮、“后一条记录”按钮 和“最后一条记录”按钮时,就会激活控件的Private Sub Command1_Click()、Private Sub Command2_Click()、Private Sub Command3_Click()和Private Sub Command4_Click()事件,程序就会通过数据控件Recordset方法中的MoveFirst方法、MovePrevious方法、MoveNext方法和MoveLast方法在当前的数据库中分别显示第一条记录、前一条记录、后一条记录和最后一条记录。
注意:
@ 在窗体上放置有四个按钮,但是有两个按钮值得注意——“前一条记录”按钮和“后一条记录”按钮。
如果数据库的指针移动到数据库的开头或数据库的结尾,那么单击“前一条记录”按钮和“后一条记录”按钮时,程序就不能够正常的显示数据库中的内容。为了避免以上错误的发生,在程序设计的过程中,首先用鼠标激活程序设计的代码窗口,在代码窗口的对象列表中选择数据控件Data1,在对应的事件列表中选择数据控件响应事件Private Sub Data1_Validate(Action As Integer, Save As Integer),把光标移动到事件处理过程中,并且添加如下所示的响应代码:
Private Sub Data1_Validate(Action As Integer, Save As Integer)
If Form1.Data1.Recordset.BOF Then
Form1.Command2.Enabled = False
Else
Form1.Command2.Enabled = True
End If
If Form1.Data1.Recordset.EOF Then
Form1.Command3.Enabled = False
Else
Form1.Command3.Enabled = True
End If
End Sub
在程序运行的过程中,当用户完成一次对数据库的有效操作后,就会激活数据控件的Private Sub Data1_Validate(Action As Integer, Save As Integer)事件,然后程序通过两条条件语句来设置“前一条记录”按钮和“后一条记录”按钮的有效状态,由于实行了动态跟踪的技术,所以避免了数据库显示错误的发生。
按照附后的源程序清单添加剩余的程序代码。
用鼠标选择菜单“文件”中的“保存”来存储文件,然后在键盘上按下功能键F5运行程序,程序运行结果如图7-6所示。

图7-6 程序运行结果
附程序完整源代码如下所示:
程序清单
VERSION 6.00
Begin Visual Basic.Form Form1
BorderStyle = 3
Caption = "Form1"
ClientHeight = 4590
ClientLeft = 45
ClientTop = 330
ClientWidth = 6885
LinkTopic = "Form1"
MaxButton = 0
MinButton = 0
Moveable = 0
ScaleHeight = 4590
ScaleWidth = 6885
ShowInTaskbar = 0
StartUpPosition = 2
End
Attribute Visual Basic_Name = "Form1"
Attribute Visual Basic_GlobalNameSpace = False
Attribute Visual Basic_Creatable = False
Attribute Visual Basic_PredeclaredId = True
Attribute Visual Basic_Exposed = False
Private Sub Command1_Click()
Form1.Data1.Recordset.MoveFirst
'移动到第一条记录
End Sub
Private Sub Command2_Click()
If Not Form1.Data1.Recordset.BOF Then
'如果没有到达数据库开头
Form1.Data1.Recordset.MovePrevious
'移动到前一条记录
Else
'如果到达了数据库开头
Form1.Data1.Recordset.MoveFirst
'移动到第一条记录
End If
End Sub
Private Sub Command3_Click()
If Not Form1.Data1.Recordset.EOF Then
'如果没有到达数据库结尾
Form1.Data1.Recordset.MoveNext
'移动到下一条记录
Else
'如果到达了数据库结尾
Form1.Data1.Recordset.MoveLast
'移动到最后一条记录
End If
End Sub
Private Sub Command4_Click()
Form1.Data1.Recordset.MoveLast
'移动到最后一条记录
End Sub
Private Sub Data1_Validate(Action As Integer, Save As Integer)
If Form1.Data1.Recordset.BOF Then
Form1.Command2.Enabled = False
Else
Form1.Command2.Enabled = True
End If
'设置“前一条记录”按钮的有效状态
If Form1.Data1.Recordset.EOF Then
Form1.Command3.Enabled = False
Else
Form1.Command3.Enabled = True
End If
'设置“后一条记录”按钮的有效状态
End Sub
Private Sub Form_Load()
Form1.Data1.DatabaseName = "D:\Microsoft Visual Studio\Visual Basic98\Biblio.mdb"
'设置打开的数据库路径及名字
Form1.Data1.RecordSource = "Publishers"
'设置显示数据源
Form1.Text1.DataField = "name"
Form1.Text2.DataField = "company name"
Form1.Text3.DataField = "telephone"
Form1.Text4.DataField = "address"
'设置文本框显示字段名称
Form1.Command1.Enabled = True
Form1.Command2.Enabled = False
Form1.Command3.Enabled = True
Form1.Command4.Enabled = True
'设置控件的有效状态
End Sub
通过使用Visual Basic 6.0的数据控件,不但可以打开并浏览已经存在的各种数据库文件,在显示数据的同时还可以对数据进行编辑和修改,但是它的一个不足就是单独的利用并不能够生成一个新的数据库。
下面就是一个利用数据控件和文本框控件来制作数据库方面应用程序的示例,它的功能是打开一个已经存在的数据库,并且可以编辑其中的数据,实现此功能的程序的具体步骤如下所示: