vba - Excel VBA;更新连接字符串

标签 vba excel connection-string excel-2010

我只是想让 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/

相关文章:

excel - 如何获取列中的最后一个值?

arrays - 在vba中随机播放数组

html - 使用 XLSX Angular 导出到 excel 时如何保持文本格式(无格式)

javascript - "Unable to get property ' getData ' of undefined or null reference"在 IE 但不是 Chrome

ssis - 调试时如何查看平面文件连接的ConnectionString值?

c# - asp.net core 2.2 不使用 WebApp Azure 配置中设置的 ConnectionString

excel - VBA - 替换空白单元格

vba - 这些 VBA 代码有什么错误?

excel - 如何创建显示带有数字隐藏值的文本的 Excel 下拉列表

c# - 更改 WebJobs 连接字符串 AzureWebJobsStorage 和 AzureWebJobsDashboard 的默认名称