Powershell DoCmd.RunSQL查询无法更新MS Access

Powershell DoCmd.RunSQL查询无法更新MS Access,sql,ms-access,powershell,Sql,Ms Access,Powershell,我正在尝试通过从Powershell运行查询来更新MS Access表。我将代码简化如下: Write-Host "Start Access ..." $Acc = New-Object –com Access.Application Write-Host "Open database ..." $Acc.OpenCurrentDataBase("C:\Users\Administrator\Documents\redacted\imh-test.accdb") Write-Host "co

我正在尝试通过从Powershell运行查询来更新MS Access表。我将代码简化如下:

Write-Host "Start Access ..."
$Acc = New-Object –com Access.Application

Write-Host "Open database ..."
$Acc.OpenCurrentDataBase("C:\Users\Administrator\Documents\redacted\imh-test.accdb")

Write-Host "connected ..."
$Acc.DoCmd.RunSQL("update DeepcleanEntryDoor set Title = 'Mrs'")

Write-Host "Data appended, close Access ..."
$Acc.Quit()

Write-Host "... process complete!"
Start Access ...
Open database ...
connected ...
Exception calling "RunSQL" with "1" argument(s): "The RunSQL action was canceled."
At line:8 char:1
+ $Acc.DoCmd.RunSQL("update DeepcleanEntryDoor set Title = 'Mrs'")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ComMethodTargetInvocation

Data appended, close Access ...
... process complete!
我收到一个通知,RunSQL操作已取消。详情如下:

Write-Host "Start Access ..."
$Acc = New-Object –com Access.Application

Write-Host "Open database ..."
$Acc.OpenCurrentDataBase("C:\Users\Administrator\Documents\redacted\imh-test.accdb")

Write-Host "connected ..."
$Acc.DoCmd.RunSQL("update DeepcleanEntryDoor set Title = 'Mrs'")

Write-Host "Data appended, close Access ..."
$Acc.Quit()

Write-Host "... process complete!"
Start Access ...
Open database ...
connected ...
Exception calling "RunSQL" with "1" argument(s): "The RunSQL action was canceled."
At line:8 char:1
+ $Acc.DoCmd.RunSQL("update DeepcleanEntryDoor set Title = 'Mrs'")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ComMethodTargetInvocation

Data appended, close Access ...
... process complete!
我还尝试了使用现有查询DoCmd.OpenQuery,但得到了相同的结果

我错过了什么

谢谢


DB

为什么不使用Access数据库作为ODBC数据源,并通过ADO.NET直接执行查询?@alroc我要冒险说,他不知道自己可以。DiamondBeezer,看看alroc关于直接连接到数据库而不必作为代理运行Access的建议。一旦你习惯了,从长远来看,你可能会更快乐。谢谢大家。我知道另一种连接方法,但愚蠢地认为Access.application是一种选择,因为它似乎没有ODBC那么通用。。。我已经为此挣扎了几天,所以我会检查一下你的ADO想法并向你汇报。Cheers@alroc,@TheMadTechnician-你说得很对。下载并安装了ACE驱动程序,我的更新查询工作!当然没有那么简单-必须解决32位和64位问题、Powerpoint版本、Access版本、Microsoft.ACE.OLEDB.12.0“提供程序未在本地计算机上注册”等。所有这些都是从Powershell_ISE运行的,但它不会从Powershell本身运行。为了实现自动化,我需要这样做。尽管实际运行的是64位Access 2013,但运行32位Access 2010组件似乎是使其工作的唯一方法!