通过Powershell

时间:2017-06-12 19:15:38

标签: excel vba powershell ms-access com

我的代码存在问题。我希望使用PowerShell打开Access文件,然后将表导出到Excel文件。到目前为止,这是我的代码。

$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))"

我一直试图将表格导出为ex​​cel一段时间,但我似乎找不到有关通过PowerShell使用excel的大量文档。有人会就如何解决这个问题提出任何建议吗?

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

2 个答案:

答案 0 :(得分:0)

试试这个:

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

答案 1 :(得分:0)

我最终使用docmd.transfer电子表格命令来解决此问题。我觉得powershell并不喜欢outputto。