编译的访问程序在 7 台计算机上运行良好,但在另外 3 台计算机上崩溃



我在Microsoft Access中编写了一个相当复杂的应用程序。它分为前端和后端文件。为了保护我的代码,我编译了它并将其保存为运行时 .accde 文件,然后将其更改为 .accdr 文件以确保它作为运行时运行。我创建了该应用程序的两个版本:一个用于安装了 32 位 Office 的应用程序,另一个用于安装了 64 位 Office 的应用程序。我使用 Inno Setup 将应用程序、数据文件和其他文件(如图标文件、许可证文件等(打包到一个可安装的包中,效果很好。

在我的 27 名 beta 测试人员团队中,到目前为止,已有 6 人下载了它,我已经在自己的四台计算机上对其进行了测试。在其中七台计算机上,安装运行良好,应用程序运行没有问题。

在我的三个测试人员的计算机上,当他们尝试运行它时,他们会收到以下错误消息:

The expression On Open you entered as the event property setting produced the following error: Bad file name or number.
* The expression may not result in the name of a macro, the name of a user-defined function, or [Event Procedure].

我很确定我知道导致问题的代码在哪里,但终其一生都无法弄清楚为什么应用程序在这 2 台计算机上崩溃而不是在其他计算机上崩溃。

我怀疑导致问题的 On Open 事件会检查链接表,获取其连接字符串,然后查看后端数据库的该字符串的路径。如果在那里找不到它,该过程将弹出一个文件选择器对话框并指示用户查找数据文件,然后重新链接所有表。

如果有人能指出我解决这个问题的正确方向,我将不胜感激。

这通常是由标记为 MISSING 的引用引起的。

您有两(三(个选项:

  1. 使用完整版本的 Access 在有问题的计算机上运行应用程序,以便调试代码
  2. 创建一个小型测试应用程序,用于列出并验证您使用的引用,并在有问题的计算机上运行此应用程序
  3. 删除这两个客户

感谢这里的所有贡献者。由于这些人和其他在线研究,我能找到的最新答案是这样的:

此错误发生在安装了该应用程序的一小部分计算机上,并且还没有人弄清楚原因,原因导致它或如何修复它。解决方法是安装 2013 版本的 Access 运行时,因为更高版本仍会导致此问题。

至少有一台有问题的计算机正在运行即点即用版本的 Office。仍在收集信息,但这是目前的状态。

最新更新