gpt4 book ai didi

powershell - 在 Powershell 中运行 Access 宏

转载 作者:行者123 更新时间:2023-12-03 08:15:34 25 4
gpt4 key购买 nike

我正在尝试使用以下代码在 PowerShell (v4.0 Windows 8.1) 中运行 Access 2010 宏:

$Access = New-Object -com Access.Application

$Access.OpenCurrentDatabase("SomePath", $False, "Password")
$Access.Run("SomeProc")
$Access.CloseCurrentDatabase()
$Access.Quit()

[System.Runtime.InteropServices.Marshal]::ReleaseComObject($Access)
Remove-Variable Access

我在线上收到错误消息 $Access.Run("SomeProc")没有指定足够的参数:

Exception calling "Run" with "1" argument(s): "Invalid number of parameters. (Exception from HRESULT: 0x8002000E (DISP_E_BADPARAMCOUNT))"



程序 SomeProc不需要任何参数。

我已阅读 msdn article在 run 方法上,只需要一个参数。

我也试过 this workaround这也因不相关的原因而无法正常工作。

有谁知道错误的原因可能是什么以及如何使该方法起作用?

最佳答案

这是 OLEDB 库未正确加载的驱动程序问题。

我能够准确地重现您的错误,并且能够通过从您的 SysWow 目录而不是 System32 打开 Powershell 来解决它。

尝试打开这个版本的 Powershell(你必须再次运行 set-executionpolicy),看看它是否会执行你的脚本。

%SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe

有用的链接:https://social.msdn.microsoft.com/Forums/en-US/4500877f-0031-426e-869d-bda33d9fe254/microsoftaceoledb120-provider-cannot-be-found-it-may-not-be-properly-installed?forum=adodotnetdataproviders

关于powershell - 在 Powershell 中运行 Access 宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31518043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com