适用于:Access 2013、Office 2013
无论是使用 Visual Basic 还是使用 Visual Basic for Applications,在设置 ADO 项目和编写 ADO 代码时都类似。 本主题介绍了如何在 Visual Basic 和 Visual Basic for Applications 中使用 ADO,并注明了二者之间的区别。
引用 ADO 库
ADO 库必须由项目引用。
从 Microsoft Visual Basic 中引用 ADO
在 Visual Basic 中,从“工程”菜单中,选择“引用...”。
Select Microsoft ActiveX Data Objects x.x Library from the list. 检验是否至少还选择了以下库:
- Visual Basic for Applications
- Visual Basic 运行时对象和过程
- Visual Basic 对象和过程
- OLE 自动化
Click OK.
在 Visual Basic for Applications(如使用 Microsoft Access 时)中可以同样轻松地使用 ADO。
从 Microsoft Access 中引用 ADO
在 Microsoft Access 中,在数据库窗口的“模块”选项卡上选择或创建一个模块。
From the Tools menu, select References....
Select Microsoft ActiveX Data Objects x.x Library from the list. 检验是否至少还选择了以下库:
- Visual Basic for Applications
- Microsoft Access 11.0 对象库(或更高版本)
单击“确定”。
在 Visual Basic 中创建 ADO 对象
若要创建自动化变量以及该变量的对象实例,可以使用以下两个方法:Dim 或 CreateObject。
Dim
可以使用 New 关键字和 Dim,在一个步骤中同时声明和实例化 ADO 对象:
Dim conn As New ADODB.Connection
或者,也可以将 Dim 语句声明和对象实例化分为两个步骤:
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
注意
不需要将 ADODB progid 显式用于 Dim 语句,前提是已在项目中正确引用了 ADO 库。 不过,使用它可以确保不会与其他库产生命名冲突。
例如,如果同一个项目中同时包括针对 ADO 和 DAO 的引用,那么,您可以使用限定符来指定在实例化 Recordset 对象时所使用的对象模型,如以下代码所示:
Dim adoRS As ADODB.Recordset
Dim adoRS As DAO.Recordset
CreateObject
采用 CreateObject 方法时,声明和对象实例化必须是两个独立的步骤:
Dim conn1
Set conn1 = CreateObject("ADODB.Connection") As Object
用 CreateObject 实例化的对象是后期绑定的,这表明这些对象不是强类型的,且命令行完成被禁用。 不过,允许您在项目中跳过对 ADO 库的引用,并实例化对象的特定版本。 例如:
Set conn1 = CreateObject("ADODB.Connection.2.0") As Object
您也可以通过专门创建一个针对 ADO 版本 2.0 类型库的引用并创建对象来完成此操作。
用 CreateObject 方法实例化对象通常要比用 Dim 语句慢。
正在处理事件
若要在 Microsoft Visual Basic 中处理 ADO 事件,必须使用 WithEvents 关键字 (keyword) 声明模块级变量。 该变量只能声明为类模块的一部分,并且必须在模块级别声明。 有关处理 ADO 事件的更完整讨论,请参阅 第 7 章:处理 ADO 事件。
Visual Basic 示例
ADO 文档中附带了许多 Visual Basic 示例。 有关详细信息,请参阅 Microsoft Visual Basic 中的 ADO 代码示例。