Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
access vba中的Shell cmd返回错误5-过程调用或参数无效_Vba_Shell_Batch File_Ms Access_Cmd - Fatal编程技术网

access vba中的Shell cmd返回错误5-过程调用或参数无效

access vba中的Shell cmd返回错误5-过程调用或参数无效,vba,shell,batch-file,ms-access,cmd,Vba,Shell,Batch File,Ms Access,Cmd,我在MS Access中使用Shell命令已有好几年了,它在不同版本的多个数据库中使用。最近,我收到了这个运行时错误5-我使用多年的Shell命令的过程调用或参数无效。有人能告诉我是否有最近的Windows更新或MS Office更新导致出现此错误吗?我目前正在使用Office 2010和Office 2013,在多台计算机上收到两个版本的相同错误。我甚至尝试过创建一个简单的空数据库,直接进入vba窗口,并在即时窗口中尝试了一个简单的Shell命令: Shell "C:\Notepad.bat"

我在MS Access中使用Shell命令已有好几年了,它在不同版本的多个数据库中使用。最近,我收到了这个运行时错误5-我使用多年的Shell命令的过程调用或参数无效。有人能告诉我是否有最近的Windows更新或MS Office更新导致出现此错误吗?我目前正在使用Office 2010和Office 2013,在多台计算机上收到两个版本的相同错误。我甚至尝试过创建一个简单的空数据库,直接进入vba窗口,并在即时窗口中尝试了一个简单的Shell命令:

Shell "C:\Notepad.bat", vbNormalFocus  
Notepad.bat是其中的一个简单命令:

cmd /C "Notepad.exe"
守则:

Shell "Notepad.exe", vbNormalFocus 
确实有效,但:

Shell "Cmd.exe", vbNormalFocus 

仍然在我测试它的每台机器上给出相同的错误5消息。从Windows资源管理器运行批处理文件工作正常。非常感谢您的帮助。

经过更多的调查,我偶然发现了一个由我们的网络软件工程师安装的新软件,它可以维护我们的McAfee保护。上周,一个名为Adaptive Threat Protection的新应用程序进行了盲安装,该应用程序将检查运行shell命令的MS office应用程序,尤其是CMD类型的应用程序。该选项设置为自动阻止所有这些命令。我最后得出结论,查看我电脑上最近安装或更新的任何东西,碰巧发现在上周的日期范围内安装了一些不同的东西。感谢您迄今为止的帮助和回答。thx1138v2提供的答案是我在发布之前也尝试过的,但我认为对于我的第一个问题,我试图将我的帖子限制在最低限度。

测试了Excel 2003中的所有三个,它们都按预期工作。检查输入的运行代码。您也可以尝试使用一(1)而不是vbNormalFocus。他们可能已经将声明移动到了您没有引用的某个库中,尽管这似乎不太可能。您也可以尝试所有的Shell(…),意思是调用Shell(…)或SomeVar=Shell(…),但不允许我编辑。如果您熟悉Windows API调用,ShellExecute可能是您的一个解决方法。今年我做了更多的研究,在Win10和/或32-64位不兼容的情况下,Shell似乎也有困难。所以ShellExecute可能是解决所有问题的方法。如果你尝试一下,我想听听你的结果。