access vba中的Shell cmd返回错误5-过程调用或参数无效
我在MS Access中使用Shell命令已有好几年了,它在不同版本的多个数据库中使用。最近,我收到了这个运行时错误5-我使用多年的Shell命令的过程调用或参数无效。有人能告诉我是否有最近的Windows更新或MS Office更新导致出现此错误吗?我目前正在使用Office 2010和Office 2013,在多台计算机上收到两个版本的相同错误。我甚至尝试过创建一个简单的空数据库,直接进入vba窗口,并在即时窗口中尝试了一个简单的Shell命令: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"
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可能是解决所有问题的方法。如果你尝试一下,我想听听你的结果。