【问题标题】:microsoft office/access - problem with filepath using call shell from vbamicrosoft office/access - 使用来自 vba 的调用 shell 的文件路径问题
【发布时间】:2011-06-15 18:45:28
【问题描述】:

我在 MS-Access97 前端中有以下 vba 代码,它打开存储在服务器上的 word 文档:

Call Shell("winword ""\\Fileserver\Contabilita\Crucial deadlines\Bonifico97.doc""", 1)

文档是一个合并文档(从查询中获取数据并从检索到的数据中填充文档)

现在,我已将数据库前端放在另一台计算机上(仍在使用 MS-Access 97,但在 PC 上安装了 MS-Word 2003 - MS-Access 97 仍然运行良好,因为它安装在不同的目录中)但是现在当上面的代码使用调用 shell 被执行时,我总是得到“找不到文档”。如果我在 Start/execute 中启动上述 shell 命令,则文档正在正确打开。

可能是什么问题?文件路径? VBA 97 和 VBA2003 关于文件路径有什么变化吗?我知道文件路径中有一个带有空格的文件夹,但它在安装了 office97 的 PC 上运行良好。

如果能得到任何帮助,我将不胜感激。谢谢。

【问题讨论】:

  • 我想知道你的路径中是否有单词?我还没有见过 shell 与这么短的单词引用一起使用。
  • 类似的 Shell 命令是否适用于普通(非合并)文档?
  • @Remou。它不喜欢 winword(在 Access97 中工作)。我通过使用 Word 2003 的整个路径解决了,即 "Call Shell("C:\Programmi\Microsoft Office2003\OFFICE11\WINWORD.EXE ""\\Fileserver\Contabilita\Crucial deads\Bonifico97.doc""", 1)"如果您将其作为答案,我可以将其作为已接受的答案。谢谢。
  • @HansUp - 不,文档是否为合并类型没有区别。我已经试过了。无论如何谢谢。

标签: ms-access vba ms-office


【解决方案1】:

您需要使用 Word 的完整路径。

【讨论】:

    【解决方案2】:

    将 SHELL 与为 Word 指定的完整路径一起使用的替代方法是:

    1. Application.FollowHyperlink

    2. ShellExecute

    在任何一种情况下,您都将使用与您正在打开的文件的文件关联相关联的应用程序打开文件。坚持使用 Shell() 的唯一原因是,如果您使用 Shell() 函数返回的 PID 来控制运行后的应用程序。但是您的原始代码使用了Call Shell...,所以这不是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多