2017-07-03 69 views
0

我已經在MS Access中使用Shell命令幾年,在多個版本的多個數據庫中。最近,我收到了這個運行時錯誤5 - 我在多年使用的Shell命令上無效的過程調用或參數。任何人都可以告訴我,如果有最近的Windows更新或可能MS Office更新導致此錯誤出現?我目前正在使用Office 2010和Office 2013,並在多臺計算機的兩個版本中收到相同的錯誤。我甚至試圖創建一個簡單的空數據庫,然後直接去了VBA窗口和即時窗口中嘗試一個簡單的Shell命令這樣:訪問vba中的Shell cmd返回錯誤5 - 無效的過程調用或參數

Shell "C:\Notepad.bat", vbNormalFocus 

Notepad.bat是裏面一個簡單的命令:

cmd /C "Notepad.exe" 

代碼:

Shell "Notepad.exe", vbNormalFocus 

的工作,但:

Shell "Cmd.exe", vbNormalFocus 

在我測試的每臺機器上仍然給出相同的錯誤5消息。從Windows資源管理器運行批處理文件的工作就好了。任何幫助深表感謝。

+0

從Excel 2003測試所有三個,他們都按預期工作。檢查你的運行代碼的輸入。你也可以嘗試使用一個(1)而不是vbNormalFocus。他們可能已經把聲明移到了一些你不參考的圖書館,儘管這似乎不大可能。你也可以嘗試所有的殼牌(...) – thx1138v2

+0

想要說殼牌(...)或SomeVar =殼牌(...)但是SO不會讓我編輯。 – thx1138v2

回答

1

經過很多調查,我發現我們的網絡軟件工程師安裝了一個新軟件,用於維護我們的邁克菲防護。上週,一個稱爲自適應威脅防護的新應用程序被盲目安裝,並被設置爲檢查運行shell命令的MS Office應用程序,尤其是CMD類型。這被設置爲自動阻止所有這些命令。我終於得出結論,查看最近在我的電腦上安裝或更新的任何內容,並在上週的日期範圍內發現安裝了一些不同的東西。感謝您的幫助和答覆。 thx1138v2提供的答案是我之前在我的帖子中嘗試過的,但我想到了我的第一個問題,我試圖讓我的帖子保持在最低限度。

+0

如果您熟悉Windows API調用,ShellExecute可能是您的一項工作。我在AM上做了更多的研究,並且在Win10和/或32-64位不兼容方面似乎也遇到了困難。因此,ShellExecute可能是解決所有問題的方法。如果你嘗試過,我想聽聽你的結果。 – thx1138v2

相關問題