将 ADO 与 Microsoft Visual Basic 和 Visual Basic for Applications 结合使用

无论是使用 Visual Basic 还是 Visual Basic for Applications,设置 ADO 项目和编写 ADO 代码的操作都是类似的。 本主题介绍如何将 ADO 与 Visual Basic 和 Visual Basic for Applications 结合使用,并对任何差异进行说明。

引用 ADO 库

项目必须引用 ADO 库。

从 Microsoft Visual Basic 引用 ADO

  1. 在 Visual Basic 中,从“项目”菜单中选择“引用...”。

  2. 从列表中选择“Microsoft ActiveX 数据对象 x.x 库”。 验证是否至少选择了以下库:

    • Visual Basic for Applications

    • Visual Basic 运行时对象和过程

    • Visual Basic 对象和过程

    • OLE 自动化

  3. 单击" 确定"。

例如,可通过 Microsoft Access 使用 ADO,就像能使用 Visual Basic for Applications 轻松做到一样。

从 Microsoft Access 引用 ADO

  1. 在 Microsoft Access 中,从“数据库”窗口的“模块”选项卡中选择或创建模块。

  2. 在“工具”菜单中选择“引用...”。

  3. 从列表中选择“Microsoft ActiveX 数据对象 x.x 库”。 验证是否至少选择了以下库:

    • Visual Basic for Applications

    • Microsoft Access 8.0 对象库(或更高版本)

    • Microsoft DAO 3.5 对象库(或更高版本)

  4. 单击" 确定"。

在 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 daoRS 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 关键字声明模块级变量。 变量只能声明为类模块的一部分,并且必须在模块级别声明。 有关处理 ADO 事件的更深入讨论,请参阅处理 ADO 事件

Visual Basic 示例

ADO 文档中包含很多 Visual Basic 示例。 有关详细信息,请参阅 Microsoft Visual Basic 中的 ADO 代码示例

另请参阅

Microsoft ActiveX 数据对象 (ADO)将 ADO 与 Microsoft Visual C++ 结合使用将 ADO 与脚本语言结合使用