Vba 用于将Microsoft Access查询或表导出到CSV文件的Powershell脚本

Vba 用于将Microsoft Access查询或表导出到CSV文件的Powershell脚本,vba,powershell,ms-access,Vba,Powershell,Ms Access,我有一个基本剧本的开头。理想情况下,它会在Access中运行查询,然后获取查询结果并输入CSV,但它似乎不会将任何内容写入我的CSV中,尽管修改的日期/时间正在更改 我错过了什么 $Acc = New-Object –Com Access.Application $Acc.OpenCurrentDataBase("H:\TEST.mdb") #Runs the query $Acc.DoCmd.OpenQuery("Query1") #Dealing with results $Resul

我有一个基本剧本的开头。理想情况下,它会在Access中运行查询,然后获取查询结果并输入CSV,但它似乎不会将任何内容写入我的CSV中,尽管修改的日期/时间正在更改

我错过了什么

$Acc = New-Object –Com Access.Application

$Acc.OpenCurrentDataBase("H:\TEST.mdb")

#Runs the query
$Acc.DoCmd.OpenQuery("Query1")

#Dealing with results
$Results = $Acc.DoCmd.OpenQuery("Query1")

$Results | Select-Object $Results | Export-Csv -Path H:\test.csv -Delimiter ";"
我也试着以这样的结尾:

$Results | Out-File -Append H:\test2.csv -Encoding UTF8
OpenQuery方法只是在Access中打开查询。它不会返回查询结果。您可以使用以下方法将查询定义的结果集保存为CSV:

$acc.DoCmd.Transfertext(2, [Type]::Missing, 'Query1', 'H:\test.csv', $true)
OpenQuery方法只是在Access中打开查询。它不会返回查询结果。您可以使用以下方法将查询定义的结果集保存为CSV:

$acc.DoCmd.Transfertext(2, [Type]::Missing, 'Query1', 'H:\test.csv', $true)

$Results是否为空?否,如果我手动运行查询,它至少会生成几个结果。@glass\u kites$Results是字符串数组还是可以表示为一个数组的东西$results.GetType.Fullname$结果|选择对象$Results对我来说似乎很奇怪。如果$results是一个对象,那么您可以完全删除select吗?您正在使用COM对象进行访问。您所做的工作相当于在word中打开一个.doc文件。您可能想尝试类似的方法,我将$Results命名为我的查询的输出最终作为Access中8列表的数据表视图。如果有帮助的话,$Results是否为空?否,如果我手动运行查询,它至少会生成几个结果。@glass\u kites$Results是字符串数组还是可以表示为一个的$results.GetType.Fullname$结果|选择对象$Results对我来说似乎很奇怪。如果$results是一个对象,那么您可以完全删除select吗?您正在使用COM对象进行访问。您所做的工作相当于在word中打开一个.doc文件。您可能想尝试类似的方法,我将$Results命名为我的查询的输出最终作为Access中8列表的数据表视图。如果有帮助的话?我试过这行代码。它确实打印到一个文件中,但对我来说有两个小问题。1.我想将定界符从逗号改为制表符,其次,我想删除值周围的双引号。很抱歉,对一个旧问题提出的问题太晚了。我尝试了这行代码。它确实打印到一个文件中,但对我来说有两个小问题。1.我想将定界符从逗号改为制表符,其次,我想删除值周围的双引号。对不起,我把刚才的问题改成了老问题