MSAccess VBA Shell:UNZIP

时间:2019-03-20 20:48:31

标签: vba ms-access access-vba

我正在使用从WScript.Shell调用的简单ZIP / UNZIP实用程序(http://infozip.sourceforge.net/)。

strPath = CurrentProject.Path & "\Backend_Databases\"
strPathUtil = CurrentProject.Path & "\Backend_Databases\DB_Utilities\"

ChDir strPath
strCMD = strPathUtil & "UNZIP.exe -o Item_4892.zip"
fShellRun (strCMD)

这种方法我没有结果,也没有抱怨。生成的strCMD如下所示:

C:\Users\Mark\Desktop\Backend_Databases\DB_Utilities\UNZIP.exe -o Item_4892.zip

此行完全按照预期在命令窗口中工作。 fShellRun可以按我的AccessDB中使用的其他Shell命令正常工作。

注意:在初始测试中,我可以保证这与上周一样有效,但现在看来我似乎还无法弄清楚。这让我彻底发呆了!也许我离这太近了,我缺少明显的东西。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

以下作品。我原来的fShellRun是很久以前为其他目的定制的,并且与该任务不兼容。

以下内容非常简单且实用,可以静默运行:

Private Sub UnzipTest_Click()

Dim oShell
Dim strFile As String
Dim strPath As String
Dim strPathUtil As String

Set oShell = CreateObject("WScript.shell")

strFile = Me!txtFilename
strPath = CurrentProject.Path & "\Backend_Databases\"
strPathUtil = CurrentProject.Path & "\Backend_Databases\DB_Utilities\"

strCMD = strPathUtil & "UNZIP.exe -o " & strPath & strFile & " -d " & strPath

oShell.Run strCMD, 0, True

Set oShell = Nothing

End Sub

注意:这指向第3方UNZIP实用程序,而不是std Windows ZIP实用程序。 UNZIP.exe保留在我的“ ... \ DB_Utilities”文件夹中。  http://infozip.sourceforge.net/