您的位置:首頁>正文

VBA|資料庫操作01:使用ADO訪問資料庫

ADO(ActiveX Data Objects)是微軟推出的一種資料訪問技術。 它被設計用來提供通用資料訪問。

1 SQL結構化查詢

結構化查詢語言SQL(Structured Query Language)是目前各種關聯式資料庫系統中廣泛採用的標準語言, ADO物件通過SQL語言來操作資料庫的資料。

SQL語言的功能強大, 但其語言卻很簡單。 資料庫的基本操作主要是4個方面:“增”、“查”、“刪”、“改”, 對應下麵4個命令:

“增”, Insert:用於增加資料(記錄)到資料庫的表;

“查”, Select:用於檢索資料;

“刪”, Delete:用於從資料庫的表中刪除資料(記錄);

“改”, Update:用於從資料庫的表中修改現存資料(記錄);

除了上面4個最常用的命令以外, 還有:

Create:用於創建使用者和資料庫等;

Drop:用於刪除表及索引;

2 ADO物件模型

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-

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示