我只是想让 VBA 更新 OLEDB 连接字符串。当我单步执行代码时,我没有收到任何错误,但连接刷新失败,当我检查 UI 中的连接字符串时,很明显我的代码根本没有更改它(因此刷新失败)。我错过了什么?
代码如下:
Sub UpdateQueryConnectionString(ConnectionString As String)
With ActiveWorkbook.Connections("Connection Name"). _
OLEDBConnection
.Connection = StringToArray(ConnectionString)
End With
ActiveWorkbook.Connections("Connection Name").Refresh
End Sub
输入的 ConnectionString 是:
ConnectionString = = "Provider=SLXOLEDB.1;Data Source=SERVER;Initial Catalog=DATABASE" _
& ";User ID=" & Username & ";Password=" & Password & _
";Persist Security Info=True;Extended Properties=" _
& Chr(34) & "PORT=1706;LOG=ON;CASEINSENSITIVEFIND=ON;INCLUDECALCFIELDS=ON;" & Chr(34)
函数 StringToArray 是直接从 http://support.microsoft.com/kb/105416 上的示例 4 复制而来的
最佳答案
明白了。以下代码有效。
Sub UpdateQueryConnectionString(ConnectionString As String)
Dim cn As WorkbookConnection
Dim oledbCn As OLEDBConnection
Set cn = ThisWorkbook.Connections("Connection Name")
Set oledbCn = cn.OLEDBConnection
oledbCn.Connection = ConnectionString
End Sub
只需将 ConnectionString 作为字符串输入,就像我在最初的问题中说明的那样。
关于vba - Excel VBA;更新连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20521056/