删除SQL连接时,VBA运行时错误5

时间:2018-08-01 14:10:07

标签: sql-server vba

我正在编写一个宏,该宏将基于连接到SQL Server的文件创建一个静态文件。它应刷新Excel文件,删除与SQL Server的所有连接,将其另存为新文件,并将日期附加在末尾,然后关闭现有文件。

我遇到的问题是,当我清除连接时,会收到运行时错误5“无效的调用或参数”。奇怪的是,它昨晚和今天早上运行良好,然后似乎突然冒出这个错误。我认为我没有对文件进行任何更改以致于导致这种情况发生,所以我感到莫名其妙。

调试器在此处突出显示循环清除连接:

Do While ActiveWorkbook.Connections.Count > 0
ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete
Loop

这是我的代码:

Sub CreateTemplate()

Dim FilePath As String
Dim NewName As String

ActiveWorkbook.RefreshAll

Do While ActiveWorkbook.Connections.Count > 0
ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete
Loop

FilePath = "C:\": NewName = FilePath & "File" & Format(Date, "MM-DD-YYYY") & ".xlsb"

ActiveWorkbook.SaveAs Filename:=NewName, FileFormat _
:=xlExcel12, CreateBackup:=False

    MsgBox "Your new template is saved with today's date appended"

    ActiveWorkbook.Close False


End Sub

1 个答案:

答案 0 :(得分:0)

您似乎可能有一个基于数据模型(例如PowerPivot)的数据模型或数据透视表。在这种情况下,请尝试使用以下代码:

Dim xConnect As Object
For Each xConnect In ActiveWorkbook.Connections
If xConnect.Name <> "ThisWorkbookDataModel" Then xConnect.Delete
Next xConnect