VB连接数据库方式汇总

时间:2024-02-15 21:48:21

ADO(ActiveX Data Object,ActiveX数据对象)是继DAO、RDO之后微软新推出的最新的数据库连接技术,这里所示的都是采用ADO去连接数据库。常用的数据库有Access、SQL Server和Excel,下面做了连接方式的汇总,给出代码示意。

一、连接Access数据库

1、连接Access 2003数据库

‘连接名为test.mdb的数据库,读取其中的名为myuser的表中的数据,显示在MSHFlexGrid1中。

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset 

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.path & "\test.mdb"

rs.Open "myuser", cn, adOpenKeyset, adLockOptimistic 

Set MSHFlexGrid1.DataSource = rs

2、连接Access 2007数据库

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset 

cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & App.Path & "\" & "test.accdb;Persist Security Info=False"

rs.Open "select * from myuser", cn, adOpenKeyset, adLockOptimistic 

Set MSHFlexGrid1.DataSource = rs

3、连接设置了密码的Access 2003数据库

‘连接名为test.mdb的数据库,密码为111,读取其中的名为myuser的表中的数据。

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset 

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & App.path & ”\test.mdb;Jet OLEDB:Database Password=111"

 

 

rs.Open "myuser", cn, adOpenKeyset, adLockOptimistic 

 

Set MSHFlexGrid1.DataSource = rs

 二、连接SQL Server 2000数据库

1、用ODBC DSN(ODBC数据源)连接SQL server 2000

要想使用ODBC DSN访问SQL Server 2000数据库,就要先对ODBC数据源进行配置,步骤如下:

à在SQL的企业管理器中建立好名为test的数据库,其中有一个叫myuser的表à控制面板à管理工具à数据源(ODBC)à选择“用户DSN”选项卡à点“添加”à选中“SQL Server”,点“确定”à在“数据源名称”处根据自己的想法随便给目前正在建立的这个DSN取个名字,本例取为“TEST”;在“数据源描述”处写上一些提示信息,以便以后方便自己了解该DSN的用途;在“服务器”处写上你当要使用的SQL Server服务器,本例中为“ZHANG”à勾选“使用用户输入登录ID和密码的SQL Server验证”,并在“登录ID”和“密码”处填上在你安装SQL Server2000时设置的用户名和密码,本例为“sa”和“111”à勾选“更改默认的数据库为:”,在其中选中你要连接的数据库,本例为“test”数据库à默认选项直到“完成”à点“测试数据源”,若出现“测试成功!”,那么恭喜你,DSN配置成功了。配置好了DSN以后用下面的代码去连接数据库并将读取的数据显示在MSHFlexGrid1中。

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset 

cn.Open "DSN=TEST;UID=sa;PWD=111"

rs.Open "myuser", cn, adOpenKeyset, adLockOptimistic 

Set MSHFlexGrid1.DataSource = rs

注意:使用ODBC DSN连接数据库有自身的一些弊端:(1)每台电脑都必须配置DSN,并且有可能还要安装ODBC驱动;(2)一旦修改了DSN,则用户就需要为每台电脑重新配置ODBC。因此,一般还是不采用DSN连接数据库。

2、不使用ODBC DSN连接SQL server 2000

(1)、使用DAO对象进行连接

Dim db as Database

Set ws = CreateWorkspace("","admin", "")

Set db = ws.OpenDatabase("",dbDriverNoPeompt,True,“drvier={SQL Server};server=ZHANG;database=test;UID=sa;PWD=111”)

(2)、使用ADO对象进行连接

‘连接名为test的数据库,读取其中的名为myuser的表中的数据,显示在MSHFlexGrid1中。

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset 

cn.Open "Driver=SQL Server;Server=ZHANG;UID=sa;PWD=111;database=test"

rs.Open "myuser", cn, adOpenKeyset, adLockOptimistic 

Set MSHFlexGrid1.DataSource = rs

3、使用OLEDB连接SQL server 2000

       OLEDB是基于COM模型的数据库访问接口,是一种驱动程序级别的底层数据访问接口。它可以访问SQL Server,Access,Oracle,Excel,还可以访问文本文件、邮件服务器(Microsoft Exchange)等中的数据。OLEDB连接SQL Server2000,可以通过ADO对象(建立一个Connection对象后连接),也可以通过ADO控件(该控件即Adodc1,数据源为kfgl,在其属性窗口中或通过代码设置ConnectionString属性后连接)。

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset 

cn.Open "Provider=SQLOLEDB.1;User ID=sa;Password=111;Initial Catalog=test;Data Source=."

rs.Open "myuser", cn, adOpenKeyset, adLockOptimistic 

Set MSHFlexGrid1.DataSource = rs

三、连接Excel数据表格

1、连接Excel 2003

‘Excel表格是test.xls,数据放在Sheet1表单中。将读取到的数据放到MSHFlexGrid1中显示。

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset 

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=FALSE;data source=test.xls;extended properties=Excel 8.0"

rs.Open "select * from [Sheet1$]", cn, adOpenKeyset, adLockOptimistic 

Set MSHFlexGrid1.DataSource = rs

MSHFlexGrid1.ColWidth(0) = 10

2、连接Excel 2007

‘Excel表格是test.xlsx(Excel2007的文件格式为.xlsx),数据放在Sheet1表单中。将读取到的数据放到MSHFlexGrid1中显示。

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

 

cn.Open "Provider=MSDASQL.1;Persist Security Info=FALSE;data source=test.xls;extended properties="DSN=Excel Files;DBQ=" & App.path & "\test.xlsx";DriverID=1046;FIL=Excel 8.0"

rs.Open "select * from [Sheet1$]", cn, adOpenKeyset, adLockOptimistic 

Set MSHFlexGrid1.DataSource = rs

MSHFlexGrid1.ColWidth(0) = 10

四、连接Oracle数据库

       VB要连接Oracle数据库,首先要安装Visual Basic 6的SP6补丁,这样才能对Oracal有更好的支持。用ADO控件(即Adodc1,数据源为kfgl)进行连接,该控件的属性设置如下:CommandType设为1-adCmdText;RecordSource设为Select* from 数据库名.kf order by kf.列名;PassWord设为你想要的密码,如111;UserName设为System

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

Cn.ConnectionString = “Provider=OraOLEDB.Oracle.1;Persist Security Info=False;UserID=用户名;Password=密码;DataSource=数据源”

Rs.Open “Select* from 数据库名.kf order by kf.列名”,cn