我有一个 access 2012 应用程序,它工作得很好,直到我在城里的对手试图运行它。我们共享一个服务器。当我编译它时,他无法运行它。当他编译它时,角色被颠倒了。他可以运行它,但我不能。Access的版本是一样的。我在这里想念什么?
1 回答
确定故障系统
首先,您应该在其他机器上测试每个编译版本,以找出您或您的同事中的哪一个可能是问题的根源。
如果您已经隔离了问题所在的单个特定机器,那么完全卸载 Office 并重新安装它可能是一件好事;其他东西可能已损坏。
共享数据库
当您说shared server时,我希望您不是从共享网络文件夹运行 Access 数据库,而是将其正确拆分为后端数据库(包含数据并位于共享网络文件夹中)和前端数据库(包含表单和报告,并在每个用户的机器上运行)。
如果您允许用户.accde
从网络文件夹运行文件,请立即停止并拆分您的数据库!
检查事项
最好在检查时禁用防病毒软件。它可能会阻止某些调用或对某些库的访问:
具有不同操作系统或 MSOffice 位数的系统(32 位与 64 位)。在 64 位 MS Office 上使用 Win32 API
存在问题。 如果您在为 32 位制作的表单上引用较旧的外部控件,它们将无法在 64 位机器上运行。MSOffice 补丁级别略有不同的机器。几个月前,在发布修复之前,SP1肯定存在这样的问题。
检查您的 MSAccess 确切版本:菜单文件 > 帮助。
我的说版本:14.0.6123.5001(32位)accda/mda
对不同版本或位置且在系统上找不到的外部库(或其他)的引用。
这可能很难跟踪和解决,但有一些关于如何最小化问题的提示。
您是否引用了任何由绝对路径定位的库?有些相关,使用未正确注册的第 3 方 ActiveX 组件,或者每台机器上的版本不完全相同。
数据库的细微损坏。
尝试反编译(备份后)。您是否对位于每台机器上不同位置的后端数据库使用链接表?
确保运行编译
accde
文件的文件夹已添加到受信任位置列表中。使用普通
addcb
数据库并在运行时模式下运行它(使用 msaccess.exe命令行选项/runtime
)。
你遇到同样的问题吗?如果问题来自您的代码而不是访问中的崩溃,则可能值得添加一些日志记录来跟踪代码的执行。
您还应该看看vbWatchdog和优秀的库来管理错误和跟踪您的代码(您可以免费试用)。
强烈推荐!