大家好,,好久不見,我們今天開始講述ADO,。 在很久以前的第2章,,我們說明了ADO的概念以及為什么學習ADO;同時也介紹了如何在VBA中引用ADO類庫,、創(chuàng)建同Excel文件的連接,,并分享了一個使用ADO執(zhí)行SQL語言的小套路等; 打個響指,,對面的女孩看過來……就像我們所熟悉的Workbook對象一樣,,大對象ADO內部也有多個小對象,不過我們經常用到的只有兩個,;一個是Connection,,另一個是Recordset。Connection,,顧名思義,,是到數(shù)據庫的連接,,管理應用程序和數(shù)據庫之間的通信;Recordset,,又稱記錄集,,是用來獲得數(shù)據,存放和處理SQL語句的查詢結果……另外,,我們可能會在系列教程的末尾稍微提下ADO的Command對象,,它的主要作用是用來處理帶參數(shù)值的或重復執(zhí)行的查詢。 …… 先來看下Connection對象,。它的語法如下: connection.Open ConnectionString, UserID,Password, Options 語法各參數(shù)的含義我們第2章時講過了,,這里不再重述。嗯,,我是真懶,,實在沒辦法把第2章的內容復制粘貼過來,所以建議你先看完第2章的前3節(jié)內容再繼續(xù)向下閱讀,。 踹一腳,,對面的男孩看過來……第2章時,我們說過,,雖然Connection對象對于不同的數(shù)據庫或文件會有不同的連接字符串,,但常用的數(shù)據庫或文件的連接字符串均是固定的。 下面是常用數(shù)據庫或文件的連接字符串,。 1,,Access數(shù)據庫 沒有密碼保護的Access數(shù)據庫 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=帶路徑的Access數(shù)據庫名稱; 有密碼保護的Access數(shù)據庫 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=帶路徑的Access數(shù)據庫完整名稱;JetOLEDB:Database Password=密碼; 2,Text文件 Provider=Microsoft.ACE.OLEDB.12.0; Data Source=文本文件路徑&'\';Extended Properties=’text;HDR=Yes;FMT=Delimied’; 3,,SQL Server數(shù)據庫 Provider =SQLOLEDB;Password=密碼;User ID= 用戶名; Data Source =SQL數(shù)據庫服務器名稱;Initial Catalog=數(shù)據庫名稱; 4,,Oracle 數(shù)據庫 Provider =madaora; PassWord=密碼; User ID=用戶名; Data Source =Oracle數(shù)據庫服務器名稱; 5,F(xiàn)oxPro數(shù)據庫 Provide=Microsoft.ACE.OLEDB.12.0;User ID=用戶名;Data Source=dbf文件路徑;Extended Properties=dBASEIV; 6,,Excel工作簿 03版本Excel Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=’Excel 8.0;HDR=yes;IMEX=0’;Data Source=帶路徑的Excel工作簿完整名稱 07~16版本Excel Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=’Excel 12.0; HDR=yes;IMEX=0’;Data Source=帶路徑的Excel工作簿完整名稱 …… …… 另外,,就像我們所熟悉的眾多的VBA對象一樣,Connection對象也有很多自己的屬性,、方法,,甚至事件;不過我們能用到的……同樣實在不多,,且也都有固定的套路,。 通過一小段代碼,有幾個屬性僅供大家了解,。 Sub test() Dim cnn As Object Set cnn = CreateObject('adodb.connection') cnn.Open 'provider=microsoft.ace.oledb.12.0;extended properties=excel 12.0;data source=' & ThisWorkbook.FullName If cnn.State = 1 Then MsgBox '連接成功!' & vbCrLf & 'ADO版本為:' & cnn.Version & vbCrLf & 'Connection對象提供者名稱:' & cnn.provider cnn.Close Set cnn = Nothing Else MsgBox '數(shù)據庫連接失敗' End If End Sub State屬性返回Connection對象的狀態(tài),;0是AdStateClosed,表示對象是關閉的,;1是AdStateOpen,,表示對象是打開的,;2是AdStateConnecting,表示對象正在連接等,。 Version屬性只讀,返回Connection對象的版本號,;Provider是Connection對象連接數(shù)據庫提供程序者的名稱,,當Connection對象關閉時,該屬性可讀寫,;否則為只讀,。 …… 重點是Connection對象的方法或函數(shù),我們最常用的也就四個,,分別是Open,、Close、Execute和OpenSchema,。 |
|