2011-06-15 35 views
0

问题我已经在MS-ACCESS97-前端下面的VBA代码将打开存储在服务器上一个字的文件:的Microsoft Office /访问 - 使用电话外壳文件路径从VBA

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

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

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

可能是什么问题?文件路径? VBA 97和VBA2003中有什么更改关于文件路径?我知道在文件路径中有一个文件夹与一个空间,但它在装有office97的PC上很好地工作。

我将不胜感激任何帮助,我可以得到。谢谢。

+1

我想知道单词是否在你的道路上?我还没有看到使用这个简短的参考文字的外壳。 – Fionnuala 2011-06-15 19:32:27

+0

类似的Shell命令是否可以处理普通(不是合并)文档? – HansUp 2011-06-15 19:44:34

+0

我想你可能需要shellexecute:http://www.developerfusion.com/article/9/shell-and-shellexecute-function/2/ – Fionnuala 2011-06-15 19:47:20

回答

2

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

2

替代使用shell与Word中指定的完整路径将是:

  1. Application.FollowHyperlink

  2. 的ShellExecute

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