【发布时间】:2017-01-18 16:25:40
【问题描述】:
我正在编写一个宏,它要求用户输入以更新 excel 数据连接的连接字符串中的目录和服务器字段。
Sub Connection_String()
Dim ConnectionString As String
Dim Catalog As String
Dim Server As String
Catalog = InputBox("Catalog", MsgTitle, "")
Server = InputBox("Server", MsgTitle, "")
ConnectionString = "Provider=MSOLAP;Persist Security Info=True;Initial Catalog=" & Catalog & _
";Data Source=" & Server & ";Auto Synch Period=10000;Cache Ratio=1;MDX Compatibility=1;MDX Unique Name Style=2;" & _
"Safety Options=2;MDX Missing Member Mode=Error;Disable Prefetch Facts=True"
With ActiveWorkbook.Connections("Example Connection").OLEDBConnection
.CommandText = "Example Command Text"
.CommandType = xlCmdCube
.Connection = ConnectionString
.RefreshOnFileOpen = False
.SavePassword = False
.SourceConnectionFile = ""
.MaxDrillthroughRecords = 1000
.ServerCredentialsMethod = xlCredentialsMethodIntegrated
.AlwaysUseConnectionFile = False
.RetrieveInOfficeUILang = True
End With
我遇到的问题是我得到一个“运行时错误 1004 应用程序定义或对象定义错误”,引用 with 语句中的 .Connection = ConnectionString 行。如果我将 .Connection 设置为完整的连接字符串本身,而不是 ConnectionString 变量,它就可以工作。
【问题讨论】: