分享

VBA|数据库操作01:使用ADO访问数据库

 云中明月亮 2019-07-04
小智雅汇 2017-11-12 15:48:35

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对象中断连接。

有如下数据库:

VBA|数据库操作01:使用ADO访问数据库

有如下任务:在“人事管理”数据库的表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

上面代码执行后,即可在工作表“员工”中显示如下数据:

VBA|数据库操作01:使用ADO访问数据库

-End-

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多