“Access 数据库引擎对象库”和“Access 对象库”有什么区别?

New*_*tes 0 ms-access vba

Stack Overflow 问题“将 Outlook 链接到 Access”一个详细的答案,首先添加对“Microsoft Office x.0 Access 数据库引擎对象库”的引用。在 Outlook VBA 中,我的参考列表有两项:

  • Microsoft Office 16.0 Access 数据库引擎对象库
    • C:\Program Files\Common Files\Microsoft Shared\OFFICE16\ACEDAO.DLL
  • Microsoft Access 16.0 对象库
    • C:\Program Files\Microsoft Office\root\Office16\MSACC.OLB

第一个显然是 Thomas G 的答案所指的,但第二个看起来非常相似。它们都适用于同一版本的 Microsoft Access。

请注意,Excel 和 Outlook 的参考仅:

  • Microsoft Excel 16.0 对象库
    • C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE
  • Microsoft Outlook 16.0 对象库
    • C:\Program Files\Microsoft Office\root\Office16\MSOUTL.OLB

除了 Access 的库之外,没有其他库的名称以“Microsoft Office 16.0”开头。

这两个库有什么区别?在什么情况下我会使用其中之一?

And*_*dre 5

您链接的问题讨论了使用Outlook VBA 中的.accdb 。

从您的问题中不清楚您是否想要执行相同的操作,但由于您没有标记 Outlook,我假设您正在谈论 MS-Access 中的 VBA 项目。

不管怎样,简短的回答是:在 Access 项目中,您总是需要两个引用。

Microsoft Access 16.0 对象库是 Access 中的所有前端内容 - 表单、报告等。
在任何正常的 Access 项目中,您甚至无法取消选择它,因为它始终被使用。

在 Access 之外,仅当您想要自动化 Access 前端(例如从 Excel)时才需要它。

Microsoft Office 16.0 Access 数据库引擎对象库数据库引擎
也称为 ACE,或 DAO 的后继者(包括所有 DAO 功能)。您需要它来处理任何类型的 DAO 对象,例如常规的DAO.Recordset.

在 Access 之外,您可以使用它来处理 Access 数据库中的表。就像链接的问题一样。

  • *“... 两个用于 Access 的库,但只有一个用于 Excel 和 Outlook ...”* 您的 Access 库:一个用于 Access 应用程序;一个用于 Access 应用程序;一个用于 Access 应用程序。另一个是数据库引擎。Excel 和 Outlook 不提供数据库引擎,因此仅提供其应用程序的库。 (3认同)