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-