ADO(ActiveX Data Objects)是微軟推出的一種數(shù)據(jù)訪問技術(shù)。它被設(shè)計用來提供通用數(shù)據(jù)訪問。
結(jié)構(gòu)化查詢語言SQL(Structured Query Language)是目前各種關(guān)系數(shù)據(jù)庫系統(tǒng)中廣泛采用的標準語言,ADO對象通過SQL語言來操作數(shù)據(jù)庫的數(shù)據(jù)。
SQL語言的功能強大,但其語言卻很簡單。數(shù)據(jù)庫的基本操作主要是4個方面:“增”、“查”、“刪”、“改”,對應(yīng)下面4個命令:
“增”,Insert:用于增加數(shù)據(jù)(記錄)到數(shù)據(jù)庫的表;
“查”,Select:用于檢索數(shù)據(jù);
“刪”,Delete:用于從數(shù)據(jù)庫的表中刪除數(shù)據(jù)(記錄);
“改”,Update:用于從數(shù)據(jù)庫的表中修改現(xiàn)存數(shù)據(jù)(記錄);
除了上面4個最常用的命令以外,還有:
Create:用于創(chuàng)建用戶和數(shù)據(jù)庫等;
Drop:用于刪除表及索引;
2.1 要在VBA中使用ADO對象,必須先為當(dāng)前工程引用ADO對象庫
ALT+F11(打開VBE)→工具→引用,打開“引用”對話框“,在列表框中勾選”Microsoft ActiveX Data Objects 2.8 Library";
2.2 ADO對象模型組成
ADO對象模型定義了一個可編程的分層對象集合,主要由3個對象成員(Connection、Command和Recordset)和集合對象Errors、Parameters及Fields等組成。
使用ADO對象編程訪問數(shù)據(jù)庫,一般按以下4個步驟編寫代碼:
3.1 使用Connection對象連接到數(shù)據(jù)源;
3.2 使用Recordset對象的打開記錄集方法獲得記錄集對象(也可使用Command對象執(zhí)行SQL語句獲得記錄集對象)。
3.3 在程序中訪問記錄集中的數(shù)據(jù)(添加、更新和刪除等操作);
3.4 使用Connection對象中斷連接。
有如下數(shù)據(jù)庫:
有如下任務(wù):在“人事管理”數(shù)據(jù)庫的表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 '設(shè)置連接字符串
cnn.Open '打開連接
Set rst = cnn.Execute(strSql) '執(zhí)行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 '循環(huán)處理記錄集中的記錄本
i = 1
j = j + 1
For Each fld In rst.Fields '循環(huán)處理各字段
.Cells(j, i) = fld.Value '顯示字段的值
i = i + 1
Next
rst.MoveNext '下一記錄
Loop
End With
cnn.Close
Set rst = Nothing
Set cnn = Nothing
End Sub
上面代碼執(zhí)行后,即可在工作表“員工”中顯示如下數(shù)據(jù):
-End-
聯(lián)系客服