Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access microsoft office/access-使用vba中的调用shell时出现文件路径问题_Ms Access_Vba_Ms Office - Fatal编程技术网

Ms access microsoft office/access-使用vba中的调用shell时出现文件路径问题

Ms access microsoft office/access-使用vba中的调用shell时出现文件路径问题,ms-access,vba,ms-office,Ms Access,Vba,Ms Office,我在MS-Access97-frontend中有以下vba代码,用于打开存储在服务器上的word文档: Call Shell("winword ""\\Fileserver\Contabilita\Crucial deadlines\Bonifico97.doc""", 1) 文档是一个合并文档(从查询中获取数据并从检索到的数据填充文档) 现在,我已经将数据库前端放在另一台计算机上(仍然使用MS Access 97,但是在PC上安装了MS Word 2003-MS Access 97仍然可以很

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

Call Shell("winword ""\\Fileserver\Contabilita\Crucial deadlines\Bonifico97.doc""", 1)
文档是一个合并文档(从查询中获取数据并从检索到的数据填充文档)

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

有什么问题吗?文件路径?VBA 97和VBA2003中是否有任何关于文件路径的更改?我知道文件路径中有一个文件夹,其中有一个空格,但它在安装了office97的PC上运行良好


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

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

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

使用SHELL和为Word指定的完整路径的替代方法是:

  • Application.FollowHyperlink

  • ShellExecute


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

    使用Shell并为Word指定完整路径的替代方法是:

  • Application.FollowHyperlink

  • ShellExecute


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

    我想知道word是否在您的路径中?我还没见过shell用于如此短的word引用。类似的shell命令是否适用于普通(非合并)文档?我想您可能需要shellexecute:@Remou。它不喜欢winword(它在Access97中工作)。我通过使用Word 2003的整个路径解决了这个问题,即“Call Shell(“C:\Programmi\Microsoft Office2003\OFFICE11\WINWORD.EXE”“\\Fileserver\Contabilita\Critical Dailtides\Bonifico97.doc”“”,1)”如果您将其作为答案,我可以将其作为公认的答案。谢谢。@HansUp-不,如果文档是合并类型与否,没有区别。我已经试过了。反正是Thx。我想知道你是否有消息?我还没见过shell用于如此短的word引用。类似的shell命令是否适用于普通(非合并)文档?我想您可能需要shellexecute:@Remou。它不喜欢winword(它在Access97中工作)。我通过使用Word 2003的整个路径解决了这个问题,即“Call Shell(“C:\Programmi\Microsoft Office2003\OFFICE11\WINWORD.EXE”“\\Fileserver\Contabilita\Critical Dailtides\Bonifico97.doc”“”,1)”如果您将其作为答案,我可以将其作为公认的答案。谢谢。@HansUp-不,如果文档是合并类型与否,没有区别。我已经试过了。反正是Thx。