excel - workbooks.connections.add2 给出运行时错误 5 : Invalid procedure call or argument

标签 excel ms-access vba

我已经从通过 excel 手动创建的现有连接中复制了所有参数,并进入 -> 连接 -> 连接 -> 属性。

我的代码在下面,我正在尝试执行与我的 Access 数据库的简单连接。但我不断收到错误消息:运行时错误 5:无效的过程调用或参数。

代码

Sub CustomPivotConnection()

    Dim connstring As String: connstring = "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Users\username\Desktop\DataBase.accdb;Mode=ReadWrite;Extended Properties=;Jet OLEDB:System database=;Jet OLEDB:Registry Path=;Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=;Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False"
    Dim cmdstring As String: cmdstring = "'AZN','BOL','Dates','Instruments'"

    Workbooks("WorkbookTester.xlsm").Connections.Add2 _
    "Testing", "Testing", connstring, cmdstring, 6, True, True
End sub

最佳答案

不确定这是否会对您有所帮助,但我今天早些时候遇到了类似的错误,并通过键入以下内容进行了修复:OLEDB;在连接字符串的开头。所以它读到:
OLEDB;Provider=Microsoft...
首先使用向导并查看它生成的连接字符串可能会有所帮助;然后您可以在 VBA 代码中使用它。

关于excel - workbooks.connections.add2 给出运行时错误 5 : Invalid procedure call or argument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28582123/

相关文章:

database - 限制允许的记录数

mysql - (ASP) MS Access -> MySQL : Error in Select, 其中 [..] 字符串

excel - 检索计算机的充电状态和当前电池电量

excel - 如何从 VBA 更改列名

VBA - 当单元格值 = 1 时打开消息框

arrays - ThisWorksheet 上的数组在 Sheet1 上不可用

vba - 具有与列中的下一个值匹配的 float 条件的 COUNTIFS

excel - 非常大的 CSV 阅读器应用程序(GUI)

excel - 为什么这里似乎忽略了 VBA 错误处理?

excel - 按日期复制和粘贴数据 - excel vba