2017-06-12 52 views
0

我遇到了我的代碼問題。我希望使用PowerShell打開一個Access文件,然後將一個表導出到Excel文件。到目前爲止,這是我的代碼。類型通過Powershell運行Access.Application.DoCmd時不匹配

$MsAccess = New-object -com Access.Application 
$MsAccess.OpenCurrentDatabase('<Filepath>',$false) 
$MsAccess.Application.DoCmd.OpenTable("<TableName>") 
$MsAccess.Application.DoCmd.OutputTo('acOutputTable, "<TableName>" , acFormatXLS , "OutputName.xls", true') 
$MsAccess.CloseCurrentDatabase() 
$MsAccess.Quit() 

它總是錯誤的:

$MsAccess.Application.DoCmd.OutputTo('acOutputTable, "TableName" , acFormatXLS , "OutputName.xls", true') 

一個錯誤,指出:

$MsAccess.Application.DoCmd.OutputTo('acOutputTable, "TableName" , acFormatXLS , "OutputName.xls", true') 
Exception calling "OutputTo" with "1" argument(s): "Type mismatch. (Exception 
from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))" 

我一直在試圖導出表到EXCEL進行了一些時間,但我似乎找不到有關通過PowerShell使用Excel的許多文檔。有沒有人有任何建議如何解決這個問題?

note: placeholders such as TableName, filepath, etc are not actual names, just replacements 
+0

看起來你只是將一個字符串傳遞給你的參數。而不是一個多元素的數組。這工作嗎?'$ MsAccess.Application.DoCmd.OutputTo(「acOutputTable」,「TableName」,acFormatXLS,「OutputName.xls」,「true」)' – BenH

+0

@BenH我剛剛嘗試過,但它似乎有與數據不匹配相同的問題。 – tattmoney76

回答

0

試試這個:

$MsAccess.Application.DoCmd.OutputTo(0, "<TableName>" , 0, "OutputName.xls", $true) 
0

我結束了在爲了解決這個問題,使用docmd.transfer電子表格命令。我猜powershell不喜歡outputto。