图25.2
在第23课和第24课中,我们已学会如何使用数据控件来建立VB数据库应用程序。然而,数据控件不是一个非常灵活的工具,因为它只可进行有限数据种类的处理及只能在Visual Basic环境中操作。为了克服这些局限性,我们可以使用一个更为强大的数据控件,它就是ADO控件。 ADO的全名是ActiveX Data Objects.。因为ADO是以ActiveX为基础的,所以它可以在不同的平台和不同的程序语言中操作。此外,它可以处理许多不同类型的数据,如互联网的数据,电子邮件,图形,甚至一般资料库的资料。
为了能够使用ADO数据控件,您需要把ActiveX Data Control插入到工具箱。为此,你只需按下CTRL +T 以打开组件对话框,并选择Microsoft ActiveX Data Control 6。接下来您就可以着手建立您的以ADO技术为基础的VB数据库应用程序。
下面的例子说明如何建立一个以ADO技术为基础的数据库应用程序。首先,把表单命名为frmbooktitle并改变其标题为书名数据库。其次,插入ADO数据控件,将它命名为adobooks并改变其标题为book。接下来,插入必要的标签,文本框和命令按钮, 运行时的界面如图25.1。它允许添加和删除记录,以及更新和浏览数据。
为了能够获取和管理数据库,你需要连接ADO数据控件到一个数据库档案。我们可使用VB6配来的数据库档案biblio.mdb
。为了连接ADO来此资料库档案,请按照下列步骤进行:
1 )点击一下该ADO控件以启开其属性页。
2 )接下来点击 ConnectionString 属性,下面的对话框就会出现。
3.)当上述对话框出现时,选择Use Connection String 的选项。下一步,在数据链接属性页中(Data Link Properties),选择Microsoft Jet 3.51 OLE DBprovider, 如图25.3 所示。
下一步是点击Next 按钮以选择biblo.mdb 文件。您可以按一下文本连接,以确保连接适当的数据库文件, 然后单击OK按钮以完成连接。
最后,在按一下 RecordSource 属性,并设定指挥型(Command Type)为 adcmdTable 和选择表名称(Titles), 如图25.4 所示。接下来你就可以使用该数据库文件了。
为了能读取数据库中的记录,你必须在有关的文本框的属性页中设定它的DataSource 和 Datafield, 如下图所示。 在我们的范例中,DataSource 是 adoBooks,书名的 DataField 是 Title,如图25.5 所示。
下面的表中列出所有控件的属性
控件 | 属性 |
---|---|
Form Name | frmBookTitle |
Form Caption | Book Titles -ADOApplication |
ADO Name | adoBooks |
Label1 Name | lblApp |
Label1 Caption | Book Titles |
Label 2 Name | lblTitle |
Label2 Caption | Title : |
Label3 Name | lblYear |
Label3 Caption | Year Published: |
Label4 Name | lblISBN |
Label4 Caption | ISBN: |
Labe5 Name | lblPubID |
Label5 Caption | Publisher's ID: |
Label6 Name | lblSubject |
Label6 Caption | Subject : |
TextBox1 Name | txtitle |
TextBox1 DataField | Title |
TextBox1 DataSource | adoBooks |
TextBox2 Name | txtPub |
TextBox2 DataField | Year Published |
TextBox2 DataSource | adoBooks |
TextBox3 Name | txtISBN |
TextBox3 DataField | ISBN |
TextBox3 DataSource | adoBooks |
TextBox4 Name | txtPubID |
TextBox4 DataField | PubID |
TextBox4 DataSource | adoBooks |
TextBox5 Name | txtSubject |
TextBox5 DataField | Subject |
TextBox5 DataSource | adoBooks |
Command Button1 Name | cmdSave |
Command Button1 Caption | &Save |
Command Button2 Name | cmdAdd |
Command Button2 Caption | &Add |
Command Button3 Name | cmdDelete |
Command Button3 Caption | &Delete |
Command Button4 Name | cmdCancel |
Command Button4 Caption | &Cancel |
Command Button5 Name | cmdPrev |
Command Button5 Caption | &< |
Command Button6 Name | cmdNext |
Command Button6 Caption | &> |
Command Button7 Name | cmdExit |
Command Button7 Caption | E&xit |
最后,您需要编写所有命令按钮的程序代码。
保存按钮的程序代码如下:
Private Sub cmdSave_Click()
adoBooks.Recordset.Fields("Title") = txtTitle.Text
adoBooks.Recordset.Fields("Year Published") = txtPub.Text
adoBooks.Recordset.Fields("ISBN") = txtISBN.Text
adoBooks.Recordset.Fields("PubID") = txtPubID.Text
adoBooks.Recordset.Fields("Subject") = txtSubject.Text
adoBooks.Recordset.Update
End Sub
添加按钮的程序代码如下:
Private Sub cmdAdd_Click()
adoBooks.Recordset.AddNew
End Sub
删除 按钮的程序代码如下:
Private Sub cmdDelete_Click()
Confirm = MsgBox("Are you sure you want to delete this record?", vbYesNo, "Deletion Confirmation")
If Confirm = vbYes Then
adoBooks.Recordset.Delete
MsgBox "Record Deleted!", , "Message"
Else
MsgBox "Record Not Deleted!", , "Message"End If
End Sub
取消 按钮的程序代码如下:
Private Sub cmdCancel_Click()
txtTitle.Text = ""
txtPub.Text = ""
txtPubID.Text = ""
txtISBN.Text = ""
txtSubject.Text = ""
End Sub
之前记录 (<) 按钮的程序代码如下:
Private Sub cmdPrev_Click()
If Not adoBooks.Recordset.BOF Then
adoBooks.Recordset.MovePrevious
If adoBooks.Recordset.BOF Then
adoBooks.Recordset.MoveNext
End If
End If
End Sub
下一个记录(>) 按钮的程序代码如下:
Private Sub cmdNext_Click()
If Not adoBooks.Recordset.EOF Then
adoBooks.Recordset.MoveNext
If adoBooks.Recordset.EOF Then
adoBooks.Recordset.MovePrevious
End If
End If
End Sub
图25.6是运行时的输出界面: