ms-access - MSAccess 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 命令按预期工作。
注意:我可以发誓这在最初的测试中就像上周一样工作,但我现在似乎无法弄清楚;这让我彻底疯了!也许我离这个太近了,我错过了一些明显的东西。
有任何想法吗?
解决方案
以下作品。我原来的 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/
推荐阅读
- spring-boot - Spring Boot REST服务Kafka主题无法使用指定数量的消息
- ios - 无法以编程方式将 UIImageView 对齐到 UICollectionViewCell 的中心
- python - 如何将分页作为 jsonify() 返回到前端
- xamarin.forms - 编辑器内的 Listview 不使用 xamarin 表单滚动文本
- jsp - 这是关于支付模块集成(JSP)的问题
- php - 传入消息具有意外的消息格式“原始”。该操作的预期消息格式为“Xml”
- amazon-s3 - AWS S3 生命周期配置过滤器以禁用存储类冰川到同一存储桶中的某个文件夹
- python - 用简单的 sympy.core.relational.Equality 求解方程
- macos - 如何在Mac终端搜索包含汉字的文件?
- java - 如何在提交操作期间仅在服务端向请求类添加验证