为什么处理 MS ACCESS 数据的 vbscript 不能在一台服务器上以我的名义运行,而在另一台服务器上却不能运行?
MS Office 365 ProPlus,Access 2007 - 2016
我有一个简单的 vbs 脚本,它在 MSACCESS DB 中运行一个宏...
set accessApp = CreateObject("Access.Application")
accessApp.OpenCurrentDatabase "\\sharedfileserver\somedir\mydb.accdb"
accessApp.Visible = false
accessApp.Run "Update_Burndown_Metrics"
accessApp.Quit
当我在笔记本电脑上(用户 = 我)时,此脚本运行良好。但是当我登录另一台 Windows 服务器并尝试运行相同的脚本时,我得到了...
Script C:\Users\dgauthie\Desktop\dbg.vbs
Line 4
Char 1
Error: Unknown runtime error
Code: 800A9D9F
Source: Microsoft VBScript runtime error
我希望知道 800A9D9F 是什么意思。谷歌上没有太多关于这个的信息。
这感觉像是权限问题。但我以我的身份登录了我的笔记本电脑和另一台 Windows 服务器。(如果出现差异,我会使用“远程桌面连接”登录另一台服务器)。
有什么想法吗?
附录: 问题是否可能根源于存在问题的服务器上的设置...防止运行操纵外部数据库的代码的保护措施?我是一名 Linux 用户,对 Windows 不太熟悉,所以我只是在瞎猜。
您一定会喜欢这个....
我准备了一份 vbs 脚本,将其指向 DB 的调试副本。我打算将这份副本交给 IT 人员,让他进行调试。当我测试它时,我很惊讶地发现它运行正常。我将副本指向主非调试 DB 并尝试了该操作。它运行良好。我将原始 vbs 重命名为“aside”,并将副本重命名为原始名称,它运行良好。我将“aside”与工作副本进行比较,发现它们完全相同。
Windows 永远不会停止令人惊叹。
我建议遇到这种情况的任何人都复制并运行它。根据需要重命名!
使用新 DB 时,问题再次出现。 解决方案(对于遇到此问题的其他任何人)是 Access DB 以交互方式提示“启用宏”,不知何故这体现在 800A9D9F 错误代码中。一旦我将路径添加到受信任的源,问题就解决了。
教训是... 在 Access 中,800A9D9F 有时等同于宏启用/禁用问题