2017-04-01 38 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)