【发布时间】:2012-05-22 20:27:06
【问题描述】:
参考vbScript opens up excel but doesn't load macro/modules?
现在我尝试从 SQL 作业运行我的 vbscript。虽然我成功执行了作业,但它没有打开我的 excel 文件(检查任务计划程序)。我去查看这个工作的历史,发现
消息 以用户身份执行:GSOPS4\SYSTEM。 Microsoft (R) Windows Script Host 版本 5.7 版权所有 (C) Microsoft Corporation。保留所有权利。C:\WINDOWS\system32\TestTOPTMay307.vbs(5, 1) Microsoft Excel:Microsoft Excel 无法访问文件 '\gsops4\data_extracts\TestTOPTMay307.xlsm'。有几个可能的原因: 文件名或路径不存在。该文件正被另一个程序使用。您尝试保存的工作簿与当前打开的工作簿同名。处理退出代码 0。步骤成功。
我也遵循了这个帖子Run a C# Console Application from SQL Server Agent (Job)?中的建议
但是我无法让它工作。在过去的 48 小时里,这件事一直困扰着我。任何导致它的原因以及如何成功执行我的工作(从 SQL 运行我的 vbscript 文件)的任何线索都将受到高度赞赏。谢谢大家的建议!
有什么想法吗?
【问题讨论】:
-
您真的要使用 VBS 从 SQL Server 作业打开 Excel 吗?为什么?任何需要任何类型的对话框或 UI 的东西都不能在 SQL Server 中正常工作。您还应该检查您的路径,`\gsops4\...` 似乎不正确。
-
我敢打赌这是权限错误。但是@AaronBertrand 有第一个问题,没有有效的路径。除非该文件位于 C:\gsops4\data_extracts 中,即使如此,通常也始终指定完整路径。
-
一般来说,如果可能的话,我会尽量避免在任何无头进程中涉及 EXCEL.EXE。有关从电子表格中提取数据的替代方法的一些建议,请参阅下面的答案。
-
@Aaron- 我的 Excel vba 代码是完全自动化的,根本不需要人工干预。我运行 vbScript 代码以通过命令行成功执行我的 excel vba。文件路径存在。想知道我无法从 SQL 作业访问操作系统资源。我什至尝试创建代理帐户并使用它来访问文件路径但失败了。
-
@Nemo
\gsops4\是什么文件路径?不应该是\\gsops4\吗?或者更好的是本地路径(因为尝试通过网络执行此操作只是让您陷入痛苦的另一个变量)?
标签: excel vba sql-server-2008 vbscript sql-job