Welcome

首页 / 软件开发 / VB / vb神童教程(续)--vb连接Access数据库实例

vb神童教程(续)--vb连接Access数据库实例2008-12-15 本站专稿 小二黑本文欢迎非商业用途的转载,但需要注明出自“编程入门网”及相应的网址链接。

下面我们给出一个连接到Access数据库的实例,此例中用到的数据库为Access 2003。首先在e盘建立一个名为vb的文件夹,然后打开Access 2003,单击“文件”→“新建”,在右侧出现的任务窗格中单击“空数据库”,在出现的对话框中,我们在"文件名"项后输入给新数据库起的名称并选择保存位置,这里我们为新数据库命名为Access_db并保存到我们刚才建立的文件夹中,如下图,单击"创建"按钮后,系统就生成了一个新的Access空数据库。

在空数据库中,还没有任何用户所创建的表,接下来我们就要使用设计器(如下图)为Access_db数据库建立表。

首先我们为Access_db创建一个名为“wzdz”的表,该表由以下4个字段组成:

(1)编号:此为Access自动添加的主键字段,我们直接拿来使用。我们可直接设置后三个字段,在输入完了wzdz表的各个字段之后,此时关闭表设计器,Access会提示是否要进行保存表,选择“是”,然后为表起名为“wzdz”。因为没有定义主键(primary Key),Access会提示为表加上一个主键,按提示将编号设置为主键即可。

(2)后三个字段分别为网站名称、网站地址和网站描述,三个字段的属性是相同的,如下:

▲数据类型:文本。

▲字段大小:50

▲有效性规则:无。

▲必填字段:否

▲允许空字符串:否

▲索引:无

设置完以上字段后,再重新在设计视图中打开wzdz表(方法:在设计器中右击wzdz表名,选“设计视图”命令),应如下图所示:

有了数据库和表之后,如果想让VB应用程序访问数据库,还需进行数据源的配置。只有在配置完成了数据源之后,才能让VB应用程序同数据库进行正确的连接工作,在VB应用程序中才可以通过ADO对象来进行具体数据的操作,如果在建立了数据库之后没有对数据源进行配置或者对数据源的配置工作出现错误,则在此之前所做的一切工作都是白费的。

我们按上一章所述的步骤进行ODBC数据源的配置,建立一个名为Access_db的用户DSN,接下来我们使用VB去具体地连接到Access_db数据库。

首先打开VB,新建一个标准exe工程,在工程的form1中我们输入如下的代码:

Private Sub Form_Load()Dim cnn As ADODB.ConnectionDim my_recordset As ADODB.RecordsetDim connect_string As StringDim statestring As StringSet cnn=New ADODB.ConnectionSet my_recordset=New ADODB.Recordset"连接Access数据库connect_string="DSN=Access_db;UID=;PSW="cnn.Open connect_stringSelect Case cnn.StateCase adStateClose statestring="adStateClosed"Case adStateOpen statestring="adStateOpen"End Select"显示连接的状态MsgBox "连接成功!",,statestring"对wzdz表进行查询操作my_recordset.Open "Select * from wzdz",cnnmy_recordset.CloseEnd Sub
本段连接数据库的代码是写在窗体的Form_Load()子过程中的,对数据库的连接工作是在程序一开始即窗体的加载过程中进行的。在Form_Load()中,首先定义了一个Connection对象cnn和一个RecordSet对象my_recordset,以及两个字符串类型的变量connect_string和statestring,接下来的两个Set语句是为了生成一个Connection对象cnn和一个RecordSet对象my_recordset。然后是连接Access数据库,先把连接字符串“DSN=Access_db;UID=;PSW="赋给字符串变量connect_string。连接字符串中的具体各项内容是根据ODBC数据源的配置而定的,不同的配置方式和配置内容就会有不同的连接字符串。cnn的Open事件用来执行与数据库的连接工作。为了验证与数据库的连接是否正确,这里我们读取了cnn的State属性。State属性可用用来说明其对象状态是打开或关闭的。在使用了State属性后,通过系统函数MsgBox把与数据库的连接状态显示给用户。如果连接状态是打开的,对话框标题栏的文字是“adStateOpen",如下图:

如果连接状态是关闭,则对话框标题栏显示“adStateClose”。

其后的语句my_recordset.Open "Select * from wzdz ",cnn则示范了如何从数据库中查询所需要的数据。

注意:在程序中每当用一个Set语句来生成一个Connection或RecordSet对象时,最后使用完毕之后应操作使用Close方法对其进行关闭操作。

例程调试中可能出现的问题:

上述代码运行时可能会显示"用户定义类型未定义",错误定位在“Dim cnn As ADODB.Connection”这一句上。

解决方法:单击“工程”→“引用”,勾选“Microsoft ActiveX Data Object 2.6”,再运行程序即无此问题。