【问题标题】:What are the implications of running a Microsoft access database in both 2003 and 2007?在 2003 年和 2007 年运行 Microsoft 访问数据库有什么影响?
【发布时间】:2010-09-09 16:02:42
【问题描述】:

在 2003 年和 2007 年运行 Microsoft Access 数据库有什么影响?

有什么课我忘记上了吗?

该程序最初是在 office 2003 中构建的,然后在 2007 中运行。当运行它的机器上同时具有 2003 和 2007 时,似乎会发生问题。该问题似乎也源于对“Microsoft Access 12.0 Object Library”(或 2003 年的“Microsoft Access 11.0 Object Library”)的引用。要看到这一点,只需查看 VBA 屏幕上的工具:参考菜单。

错误的症状基本上是代码无法识别(几乎就像它无法识别我正在使用的编程语言一样)。它通常在此之后带有一个框,上面写着“您作为事件属性设置输入的加载表达式产生了以下错误:对象或类不支持事件集”。您还可以将“On Load”替换为按钮的“On Click”或文本框的“On Change”。

我个人怀疑计算机正在使用 Microsoft Access 11.0/12.0 对象库的一部分,然后将两者混合成一个无用的 VBA 引用。进一步证实了我的怀疑是在两者之间弹出的框,上面写着“配置 Microsoft Access” 另一个进一步证实我怀疑的问题是它将在首先打开的任何一个(例如 2007 年)上运行,然后不在另一个上运行(2003 继续示例)

唯一的另一个问题是我必须解决的问题是更改 DoCmd.OpenForm 的最后一部分 ,,,,, acFormReadOnly (或 acReadOnly,取决于机器在那一天的感觉 - 是的,它会工作一天,然后希望我再切换一次)以简单地锁定各个文本框

也许不是完全编码,但我认为它可能可以通过编码来解决。

希望这足以让某人想出一些东西。

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    微软的官方立场是不支持也不推荐在同一台电脑上安装多个office版本,而Access 2007似乎就是为了向我们证明这一点!

    也就是说,您可以通过执行以下操作来避免大多数问题:

    1 - 将数据库拆分为后端和前端。将后端(表和关系)放在网络文件夹中,并将前端(所有其他对象)的副本放在每个用户的桌面上。

    2 - 最好将前端设置为 mde,以避免每次在其他版本的 Access 中打开数据库时引用 shuffle。

    3 - 创建一个快捷方式以使用所需的 Access 版本打开前端,以便它始终使用该版本打开。 (记得使用快捷方式!)在快捷方式的目标中:

    “Access 12 msaccess.exe 的路径”“db.mdb 的路径”

    【讨论】:

    • 啊,这就是进步。可能不会实际使用,但下一次(哈,下一次......可能不会有下一次)我建立一个数据库,我会研究这个。
    【解决方案2】:

    我们有一个 MS-Acces 应用程序,使用 Access 2003 开发,可用于 Access 2003 和 Access 2007 的完整版或运行时版本(Access 2007 Runtime 是免费的,我们正在充分利用它!)。除了参考文献管理之外,没有什么特别的问题。我们的代码分析了电脑上安装的Office版本,并自动更新了对应的引用(不仅是Access,还有Excel、Outlook、Word等:代码很棘手但很有趣!)

    据我所知,Office 2003/VBA 中的任何主要对象、属性或方法在 Office 2007 中都已被弃用。一旦这些引用问题得到解决,Office 2003 代码将与 Access 2007 一起运行。 Office 2007 中引入了一些新对象,因此我不建议任何开发人员使用它来开发代码以进一步与 Access 2003 一起使用。

    但是您问题的主要和真正问题是:为什么要在同一台计算机上运行两个 Access 版本?如果我想确保我的应用程序崩溃,我会这样做。我认为,如果您的目标是开发软件,那么您绝对应该为您的机器找到更好的配置!

    【讨论】:

    • 大声笑,是的,我想我这样做是为了让它崩溃,但那是因为我试图让它工作。正如我的朋友所说的“告诉他们它只适用于_______版本”我想问题解决了
    【解决方案3】:

    一般来说,不支持在一台计算机上安装多个版本的 Access,这会导致您在对象引用中看到的问题。

    如果数据库是在 Access 2003 中编写的,编译为 .MDE,然后部署到运行 Access 2007 的单独 Windows 实例上,您应该不会有任何重大问题(除了 UI 更改,例如自定义工具栏被放入加载项功能区)。

    要在多个版本的 Access 上进行测试,您需要在每个版本之间进行某种形式的隔离。我使用多个虚拟机来完成此操作。我的主要 Windows 虚拟机运行 Office 2007 和 IE7,我还有第二个虚拟机,它有 Office 2003 和 IE6 用于测试。

    请注意,如果您只想将 Word、Excel 和 Outlook 2007 与 Access 2003 一起使用,您可以先自行安装 Access 2003,然后自定义安装 Office 2007 并取消选择 Access 2007。

    【讨论】:

    • 嗯,看起来不错,但似乎不适用于我。不过可能会帮助别人。哦,是的,第一个答案! (故意从 FirstBlood 分拆)
    猜你喜欢
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多