【发布时间】:2020-01-13 01:55:16
【问题描述】:
我在 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].
我很确定我知道导致问题的代码在哪里,但我终其一生都无法弄清楚为什么应用程序会在这两台计算机上崩溃,而在其他计算机上却没有。
我怀疑会导致问题的 On Open 事件检查链接表,获取它们的连接字符串,然后查看后端数据库的该字符串的路径。如果在那里没有找到,程序会弹出一个文件选择器对话框并指示用户找到数据文件,然后重新链接所有表。
如果有人能指出我解决此问题的正确方向,我将不胜感激。
【问题讨论】:
-
如何重现该问题?告诉我更多关于成功/失败环境的信息。给我看失败的代码。或者我应该只是猜测。
-
谢谢,donPablo,但我自己目前正在猜测失败的代码,因为它在我自己的所有 4 台机器上都能完美运行,我无法重新创建错误。测试人员有不同的环境,安装了 32 位和 64 位 Office,没有安装 Office,但使用 Access 运行时。我找不到崩溃的计算机之间的环境一致性。我怀疑这可能与链接表的自动重新链接功能有关,这就是我今天早上花了几个小时完全重写和仔细测试该例程的原因。