ADO(ActiveX Data Objects)是微軟推出的一種資料訪問技術。 它被設計用來提供通用資料訪問。
1 SQL結構化查詢結構化查詢語言SQL(Structured Query Language)是目前各種關聯式資料庫系統中廣泛採用的標準語言, ADO物件通過SQL語言來操作資料庫的資料。
SQL語言的功能強大, 但其語言卻很簡單。 資料庫的基本操作主要是4個方面:“增”、“查”、“刪”、“改”, 對應下麵4個命令:
“增”, Insert:用於增加資料(記錄)到資料庫的表;
“查”, Select:用於檢索資料;
“刪”, Delete:用於從資料庫的表中刪除資料(記錄);
“改”, Update:用於從資料庫的表中修改現存資料(記錄);
除了上面4個最常用的命令以外, 還有:
Create:用於創建使用者和資料庫等;
Drop:用於刪除表及索引;
2.1 要在VBA中使用ADO物件, 必須先為當前工程引用ADO物件程式庫
ALT+F11(打開VBE)→工具→引用, 打開“引用”對話方塊“, 在清單方塊中勾選”Microsoft ActiveX Data Objects 2.8 Library";
2.2 ADO物件模型組成
ADO物件模型定義了一個可程式設計的分層物件集合, 主要由3個對象成員(Connection、Command和Recordset)和集合物件Errors、Parameters及Fields等組成。
3 使用ADO物件程式設計訪問資料庫的步驟使用ADO物件程式設計訪問資料庫,
一般按以下4個步驟編寫代碼:
3.1 使用Connection物件連接到資料來源;
3.2 使用Recordset物件的打開記錄集方法獲得記錄集物件(也可使用Command物件執行SQL語句獲得記錄集物件)。
3.3 在程式中訪問記錄集中的資料(添加、更新和刪除等操作);
3.4 使用Connection物件中斷連接。
有如下資料庫:
有如下任務:在“人事管理”資料庫的表Emp中進行查詢, 將EmpID列為2008028人員的資料顯示到工作表“員工”中,
Sub 查詢員工資料()
Dim cnn As New Connection, rst As Recordset, fld As Field
Dim strSql As String, i As Long, strConn As String
strSql = "SELECT * FROM Emp WHERE EmpID='2008028'"
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='"
strConn = strConn & ActiveWorkbook.Path & "人事管理.accdb'"
cnn.ConnectionString = strConn '設置連接字串
cnn.Open '打開連接
Set rst = cnn.Execute(strSql) '執行SQL語句生成Recordset
With Worksheets("員工")
i = 1
For Each fld In rst.Fields '輸出表頭
.Cells(1, i) = fld.Name '每列為一個欄位名
i = i + 1
Next
j = 1
Do While Not rst.EOF '迴圈處理記錄集中的記錄本
i = 1
j = j + 1
For Each fld In rst.Fields '迴圈處理各欄位
.Cells(j, i) = fld.Value '顯示欄位的值
i = i + 1
Next
rst.MoveNext '下一記錄
Loop
End With
cnn.Close
Set rst = Nothing
Set cnn = Nothing
End Sub
上面代碼執行後,
即可在工作表“員工”中顯示如下資料:
-End-