2017-04-01 40 views
0

试图在Access VB中创建用于Shell命令的字符串。如果字符串全部写入,则字符串有效,但如果尝试在字符串中使用变量,则即使使用变量生成完整字符串(在直接窗口中),该命令也不起作用。访问VB - Shell字符串问题

我怀疑在解释代码的字符串版本时发生了一些事情,但无法解决什么问题。

下面是代码,我用CHR(34)生成了我想在字符串中显示的引号。建议将非常感谢 - 我没有太多的头发了!

私人小组温度()

昏暗strFilePath作为字符串
昏暗strFileName作为字符串
昏暗strZipFilename作为字符串
昏暗strPDFfilename作为字符串
昏暗strShellString作为字符串
昏暗壳作为对象
昏暗结果As Long

Set shell = CreateObject("WScript.shell") 

strFilePath = "E:\Documents\Excel Spreadsheets\Roz Theremas\Access\PDFs" 
strFileName = "17-03-31temp" 
strZipFilename = strFilePath & "\" & strFileName & ".zip" 
strZipFilename = Chr(34) & strZipFilename & Chr(34) 
strPDFfilename = strFilePath & "\" & strFileName & ".pdf" 
strPDFfilename = Chr(34) & strPDFfilename & Chr(34) 
strShellString = Chr(34) & Chr(34) & Chr(34) & "C:\Program Files\7-Zip\7z.exe" & Chr(34) & Chr(34) & " a -tzip " & Chr(34) & strZipFilename & Chr(34) & " " & Chr(34) & strPDFfilename & Chr(34) & Chr(34) 

'非工作外壳命令

结果= shell.Run(strShellString,0,假)

' 工作外壳命令

result = shell.Run("""C:\Program Files\7-Zip\7z.exe"" a -tzip ""E:\Documents\Excel Spreadsheets\Roz Theremas\Access\PDFs\17-03-31temp.zip"" ""E:\Documents\Excel Spreadsheets\Roz Theremas\Access\PDFs\17-03-31temp.pdf""", 0, False) 

'strShellString

的立即窗口输出

'“' “C:\ Program Files \ 7-Zip \ 7z.exe”“a -tzip”“E:\ Documents \ Excel Spreadsheets \ Roz Theremas \ Access \ PDFs \ 17-03-31temp.zip”“”“E:\ Documents \ Excel Spreadsheets \ Roz Theremas \ Access \ PDFs \ 17-03-31temp.pdf“”“”

末次

回答

0

我的头发被保存 - 我摸索出了答案!所以,后代在这里。

我修改了strFilePath以在两个单词文件夹名称周围加上引号,并从strZipFilename和strPDFFilename行周围删除引号。我猜壳牌公司正在遭受过多的报价。

虽然修改它,但我在zip文件中添加了一个密码,并在字符串命令末尾将false更改为true,以便它返回错误代码。

感谢任何花时间试图解决我所做过的事情的人。

公用Sub温度()

昏暗strFilePath作为字符串
昏暗strFileName作为字符串
昏暗strZipFilename作为字符串
昏暗strPDFfilename作为字符串
昏暗strPassword作为字符串
昏暗壳作为对象
昏暗结果As Long

Set shell = CreateObject("WScript.shell") 

strPassword = "frog" 
strFilePath = "E:\Documents\""Excel Spreadsheets""\""Roz Theremas""\Access\PDFs" 
strFileName = "17-03-31temp" 
strZipFilename = strFilePath & "\" & strFileName & ".zip" 
strPDFfilename = strFilePath & "\" & strFileName & ".pdf" 

result = shell.Run("""C:\Program Files\7-Zip\7z.exe"" a -tzip " & "-p" & strPassword & " " & strZipFilename & " " & strPDFfilename, 0, True)