利用ADO的Connection對象來連接數(shù)據(jù)庫作者:bengdeng | 來源:Excel吧 | 時(shí)間:2008-09-22 | 閱讀權(quán)限:游客 | 會員幣:0 | 【大 中 小】
在SQL語言教程 - 序
http://www.excelba.com/Art/Html/289.html 中我們說到這一篇要介紹利用ADO的Connection對象來連接數(shù)據(jù)庫,目地就是讓大家了解后,就可以便于以后的其它SQL語言教程里的代碼,大家可以動(dòng)手運(yùn)行一下,看一下效果,之后的大部份例子中,這篇文章介紹的都是要用到的,就像我們要使用Excel文件時(shí),要先用Workbooks對象的Open方法打開Excel文件一樣。關(guān)于Workbooks對象的Open方法的幫助說明,大家可以參考一下:
http://www.excelba.com/Art/Html/290.html下面進(jìn)入正題。首先要說的是ADO是什么?ADO的全稱是:Microsoft ActiveX Data Objects ,它使您的客戶端應(yīng)用程序能夠通過 OLE DB 提供者訪問和操作數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)。它的主要優(yōu)點(diǎn)是易于使用、速度快、內(nèi)存支出低和占用磁盤空間少。ADO 支持用于建立客戶端/服務(wù)器和基于 Web 的應(yīng)用程序的主要功能。
第二個(gè)問題是如何使用ADO?ADO有不少版本,不同的電腦里可能就有不同的版本,在VBA中使用ADO的方法是,在VBE編輯器中工具菜單的引用項(xiàng)里,引用Microsoft activex date objects x.x,其中x.x為版本號,可能會因?yàn)槟惆惭b的office的版本不同而不同,我用的例子,大多引用了2.5版。
認(rèn)識了ADO,那開始說Connection 對象,Connection 對象表示數(shù)據(jù)源的唯一會話。ADO提供這個(gè)對象,來讓我們連接數(shù)據(jù)庫。
而Connection 對象的ConnectionString 屬性,就是用來指示用于建立到數(shù)據(jù)源的連接的信息。ConnectionString 屬性有五個(gè)參數(shù):
參數(shù) | 說明
Provider= : 指定用于連接的提供者的名稱。
File Name= : 指定提供者特有的文件(例如,持久保留的數(shù)據(jù)源對象)的名稱,這些文件中包含預(yù)置的連接信息。
Remote Provider= : 指定當(dāng)打開客戶端連接時(shí)使用的提供者的名稱。(僅限于遠(yuǎn)程數(shù)據(jù)服務(wù)。)
Remote Server= : 指定當(dāng)打開客戶端連接時(shí)使用的服務(wù)器的路徑名稱。(僅限于遠(yuǎn)程數(shù)據(jù)服務(wù)。)
URL= : 指定連接字符串為標(biāo)識資源(如文件或目錄)的絕對 URL。
設(shè)置 ConnectionString 屬性后,就可以用 Connection 對象Open方法來接連數(shù)據(jù)庫了。
能看到這,可能你已有點(diǎn)暈了,不過不要緊,下面的幾個(gè)例子,就能讓你更好地理解上面這樣比較無味的文字,首先是一段連接ACCESS數(shù)據(jù)庫的程序。
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & WN '& ";Jet OLEDB:Database Password=" & "123"
conn.Open
If conn.State = adStateOpen Then
MsgBox "連接成功!", , "
conn.Close
End If
Set conn = Nothing
End Sub上面程序的紅色部分,是為了打開帶密碼的Access的數(shù)據(jù)庫文件時(shí),需要指定密碼的代碼,下面再來一段程序,來連接一個(gè)Excel文件!
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.Oledb.4.0;" & _
"Extended Properties=Excel 8.0;" & _
"Data Source=" & ThisWorkbook.Path & "\" & WN
If conn.State = adStateOpen Then
MsgBox "連接成功!", , "
conn.Close
End If
Set conn = Nothing
End Sub上面的與第一段程序?qū)Ρ?,需要多設(shè)定一個(gè)參數(shù)——“Extended Properties”,這是指定Excel文件的版本,現(xiàn)在已經(jīng)有的版本為5.0、7.0、8.0等,分別對應(yīng)的是95版,97版與2000~2003版的XLS文件格式,我用的是2003版,所以設(shè)定為=Excel 8.0。
最后需要說明的是,第二段程序是不能像第一段程序中,用Jet OLEDB:Database Password="密碼"來打開與連接帶有密碼的Excel文件的,如果需要處理這樣的文件,就要用Workbooks對象的Open方法先打開這個(gè)Excel文件后再處理,關(guān)于Workbooks對象的Open方法上面說過,可以參一下:
http://www.excelba.com/Art/Html/290.html ,下面的這個(gè)程序就是這樣的例子:
這篇文章到這就完了,有點(diǎn)長,有三個(gè)程序,大家可以復(fù)制到VBA編輯器中,運(yùn)行一下代碼,好好的對比與理解一下,相信,很快你就會踏這第一步了,而后面的世界還很多精彩,看到這的你,應(yīng)該可以看出一點(diǎn)點(diǎn)SQL與ADO與Excel的聯(lián)系了,那就讓我們一起繼續(xù)向行吧??!