错误代码91-集合VBA上的对象或变量

错误代码91-集合VBA上的对象或变量,vba,excel,Vba,Excel,我试图在vba中打开excel时执行以下代码,但它给了我错误对象或未设置块变量。我编写了以下函数来执行我的功能 Private Sub Workbook_Open() Dim FilePath As String Dim AccessPath As String FilePath = Application.ThisWorkbook.Path AccessPath = FilePath & "\ABC Data.accdb" With ActiveWorkbook.Connect

我试图在vba中打开excel时执行以下代码,但它给了我错误对象或未设置块变量。我编写了以下函数来执行我的功能

Private Sub Workbook_Open()

Dim FilePath As String
Dim AccessPath As String

FilePath = Application.ThisWorkbook.Path
AccessPath = FilePath & "\ABC Data.accdb"

 With ActiveWorkbook.Connections("ABC DATA_V1").OLEDBConnection
    .BackgroundQuery = True
    .CommandText = Array("ABCDataTest")
    .CommandType = xlCmdTable
    .Connection = Array( _
    "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & AccessPath & ";" _
    , _
    "Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";" _
    , _
    "Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;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 Da" _
    , _
    "tabase=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")
    .RefreshOnFileOpen = False
    .SavePassword = False
    .SourceConnectionFile = ""
    .ServerCredentialsMethod = xlCredentialsMethodIntegrated
    .AlwaysUseConnectionFile = False
End With
With ActiveWorkbook.Connections("ABC DATA_V1")
    .Name = "ABC DATA_V1"
    .Description = ""
End With
ActiveWorkbook.Connections("ABC DATA_V1").Refresh


End Sub

当我尝试调试时,如果逐行执行,它可以正常工作,但是在文件打开时,它会在第一个块中给我错误(使用ActiveWorkbook.Connections…。

工作簿上。打开
只要调用
ThisWorkbook.Connections(“ABC DATA_V1”)。刷新
。它正在尝试创建一个表吗?同时给出错误发生的确切行。我正在尝试将access db链接到透视表。确切的错误首先出现在块中。数据库在不同的系统中有不同的路径,因此我创建了一个代码来动态选择路径。是否与名称
“ABC DATA_V1”
有关联?您正在使用一个现有的,因此请确保它已创建。是的,存在连接。连接已创建。只有db的路径被更改。在
工作簿上。打开
只要调用
ThisWorkbook.Connections(“ABC数据”)即可。刷新
。它正在尝试创建一个表吗?同时给出错误发生的确切行。我正在尝试将access db链接到透视表。确切的错误首先出现在块中。数据库在不同的系统中有不同的路径,因此我创建了一个代码来动态选择路径。是否与名称
“ABC DATA_V1”
有关联?您正在使用一个现有的,因此请确保它已创建。是的,存在连接。连接已创建。只更改数据库的路径。