ADO(ActiveX Data Object,ActiveX數(shù)據(jù)對象)是繼DAO、RDO之后微軟新推出的最新的數(shù)據(jù)庫連接技術,這里所示的都是采用ADO去連接數(shù)據(jù)庫。常用的數(shù)據(jù)庫有Access、SQL Server和Excel,下面做了連接方式的匯總,給出代碼示意。
一、連接Access數(shù)據(jù)庫
1、連接Access 2003數(shù)據(jù)庫
‘連接名為test.mdb的數(shù)據(jù)庫,讀取其中的名為myuser的表中的數(shù)據(jù),顯示在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數(shù)據(jù)庫
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數(shù)據(jù)庫
‘連接名為test.mdb的數(shù)據(jù)庫,密碼為111,讀取其中的名為myuser的表中的數(shù)據(jù)。
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數(shù)據(jù)庫
1、用ODBC DSN(ODBC數(shù)據(jù)源)連接SQL server 2000
要想使用ODBC DSN訪問SQL Server 2000數(shù)據(jù)庫,就要先對ODBC數(shù)據(jù)源進行配置,步驟如下:
à在SQL的企業(yè)管理器中建立好名為test的數(shù)據(jù)庫,其中有一個叫myuser的表à控制面板à管理工具à數(shù)據(jù)源(ODBC)à選擇“用戶DSN”選項卡à點“添加”à選中“SQL Server”,點“確定”à在“數(shù)據(jù)源名稱”處根據(jù)自己的想法隨便給目前正在建立的這個DSN取個名字,本例取為“TEST”;在“數(shù)據(jù)源描述”處寫上一些提示信息,以便以后方便自己了解該DSN的用途;在“服務器”處寫上你當要使用的SQL Server服務器,本例中為“ZHANG”à勾選“使用用戶輸入登錄ID和密碼的SQL Server驗證”,并在“登錄ID”和“密碼”處填上在你安裝SQL Server2000時設置的用戶名和密碼,本例為“sa”和“111”à勾選“更改默認的數(shù)據(jù)庫為:”,在其中選中你要連接的數(shù)據(jù)庫,本例為“test”數(shù)據(jù)庫à默認選項直到“完成”à點“測試數(shù)據(jù)源”,若出現(xiàn)“測試成功!”,那么恭喜你,DSN配置成功了。配置好了DSN以后用下面的代碼去連接數(shù)據(jù)庫并將讀取的數(shù)據(jù)顯示在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連接數(shù)據(jù)庫有自身的一些弊端:(1)每臺電腦都必須配置DSN,并且有可能還要安裝ODBC驅動;(2)一旦修改了DSN,則用戶就需要為每臺電腦重新配置ODBC。因此,一般還是不采用DSN連接數(shù)據(jù)庫。
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的數(shù)據(jù)庫,讀取其中的名為myuser的表中的數(shù)據(jù),顯示在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模型的數(shù)據(jù)庫訪問接口,是一種驅動程序級別的底層數(shù)據(jù)訪問接口。它可以訪問SQL Server,Access,Oracle,Excel,還可以訪問文本文件、郵件服務器(Microsoft Exchange)等中的數(shù)據(jù)。OLEDB連接SQL Server2000,可以通過ADO對象(建立一個Connection對象后連接),也可以通過ADO控件(該控件即Adodc1,數(shù)據(jù)源為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數(shù)據(jù)表格
1、連接Excel 2003
‘Excel表格是test.xls,數(shù)據(jù)放在Sheet1表單中。將讀取到的數(shù)據(jù)放到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),數(shù)據(jù)放在Sheet1表單中。將讀取到的數(shù)據(jù)放到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數(shù)據(jù)庫
VB要連接Oracle數(shù)據(jù)庫,首先要安裝Visual Basic 6的SP6補丁,這樣才能對Oracal有更好的支持。用ADO控件(即Adodc1,數(shù)據(jù)源為kfgl)進行連接,該控件的屬性設置如下:CommandType設為1-adCmdText;RecordSource設為Select* from 數(shù)據(jù)庫名.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=數(shù)據(jù)源”
Rs.Open “Select* from 數(shù)據(jù)庫名.kf order by kf.列名”,cn





