【问题标题】:Access 2013 and other Office products to work in Office 2003访问 2013 和其他 Office 产品以在 Office 2003 中工作
【发布时间】:2015-03-09 21:38:42
【问题描述】:

我在 Access 2013 中有一个数据库。它引用了 Office 2013 的其余部分,例如Microsoft Outlook 15.0 对象库。我想以 mdb 格式保存一份副本,并将其和相关文件和文件夹发送给英国另一地区的同事。我已经制作了数据库的 mdb 副本,但引用仍然适用于 Office 2013,因为它是我系统的一部分。我可以使用 Office 2003 设置虚拟机,但我宁愿避免这样做。有没有办法在不使用安装了 Office 2003 的机器的情况下使数据库版本与 Office 2003 完全兼容?

【问题讨论】:

  • Excel 有一个“兼容性向导”来帮助检测无法以旧格式保存的新功能。也许 Access 有类似的东西?

标签: vba ms-access


【解决方案1】:

我可以使用 Office 2003 设置虚拟机

那么你应该这样做。最初可能需要更多时间,但您会确信最终结果将在您同事的机器上运行。

【讨论】:

    【解决方案2】:

    一般来说,兼容性实际上取决于您的数据库的复杂程度。与任何软件的更新一样,某些功能将不可用。只是生活中的事实!

    VBA 后期绑定

    为避免引用库不兼容,所有函数和子例程中的任何引用对象调用都是late binded。因此,将所有早期绑定转换为后期绑定,并取消选中除默认引用(通常是 VBA、Access 对象库、数据库引擎对象)之外的先前选择的引用。使用Option Explicit 强制显式声明。修改完成后,编译数据库代码并查看是否全部清除。现在,无论选择什么引用,应用程序都应该可用。

    向后兼容性

    即使使用 VBA 调整,表格和表单功能仍然存在兼容性问题。在这里您可以看到Access 2010 and 2007Allen Browne's mdb to accdb comparison 之间的向后兼容性。计算列、多值字段、数据宏等小项目将是需要解决的问题。可能会出现其他更广泛的 Windows 系统项目,例如服务包和 Windows 32/64 位。

    运行时版本

    如果修改对您或您的同事来说太麻烦,请考虑让他/她下载Access 2013 Runtime,它是免费的,但用户无法进行设计更改。因此,请确保在设计 Access 应用程序时考虑到这一点(即所有用户在表单上的交互,而不是通过导航窗格或功能区)。

    此外,请务必避免与完全安装的 Access 程序进行任何交互。但是您同事的 2003 版本无法识别 .accdb 扩展名。事实上,我记得曾与一位只有 Access 2003 但安装和使用 AC2010 运行时没有任何问题的客户合作过。

    【讨论】:

      【解决方案3】:

      当您将文件转换为 mdb 时,如果您以 2003 到 2013 年的任何版本打开应用程序,则打开数据库的每个版本都将替换并重新设置所需的引用。

      上面当然假设设置了最小引用。 (换句话说,存在的唯一引用是 Access 需要的引用,而不是对 Word 或 Excel 等应用程序的外部引用)。

      您可以通过简单地在 2013 年创建一个 BLANK 数据库,然后 ctrl-g 到 VBA 编辑器,然后转到工具-> 参考来“找出”最低要求。因此,这个“最小”列表应该是您的 2013 年数据库所拥有的。

      在您创建 2000-2003 mdb(文件->另存为)之后,您注意到引用再次是“最小”列表。

      当此类应用程序在 2010 年、2007 年甚至 2003 年打开时,“内部”使用的引用会即时更改。

      因此您不必也不需要更改引用。因此,具有 2003 的用户应该能够打开数据库。

      但是,这假设您的引用设置为如上所述的绝对最小值。

      如果您打算开发任何 VBA 代码,那么出于所有实际目的,您必须使用最低通用版本进行开发。一般来说,从高版本到低版本根本不会奏效。

      对于“一次性”数据导出和“最少”引用,您可以执行上述步骤。仅对于数据,引用无关紧要。但是,如果这是一个“正在进行的”应用程序,那么您需要使用 Access 2003 进行开发。此类应用程序可以在 2013 年之前使用,但在计算机行业中“倒退”是过去 25 年该行业通常不会而且效果不佳的事情。

      【讨论】:

      • 另一种解决方案是始终使用late bind 对象声明以避免引用不兼容。
      • 对,但我在上面所说的“最小”引用不能后期绑定。问题是当用户创建 mdb 时,他们“担心”引用指向 Access 14 或 15(它们是!!)。然而,这些内置的最小参考将自动更改。所以发帖人并不是真的在询问可以后期绑定的引用,而是那些现有的内置引用——它们不能被取消选中,也不能被删除。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 2010-11-22
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      相关资源
      最近更新 更多