![](/img/trans.png)
[英]EXCEL VBA close all open Workbook connections to external Excel Files
[英]Excel VBA change just the Server name in all data connections in a workbook
下午好,
我一直在寻找各种方法来更改/更新工作簿中的数据连接字符串,以仅更新服务器名称,并保持字符串的其他部分不变。
基本上,我们已经迁移了服务器,并且服务器名称已更改,现在我们有许多需要更新的报告。 有些连接到不同的数据库时具有多个连接。
我发现了一篇有用的文章,但这将所有数据连接的字符串替换为一个全新的字符串(由于数据库不同而无法使用) excel-macro-to-change-external-data-query-connections-eg-point-从一个数据
是否有人必须经过此过程并找到一种轻松更新连接字符串的方法?
亲切的问候
假设数据库名称尚未更改,而只是服务器,以下将为您工作。 未测试
Sub ChangeAllConnections()
Dim q As QueryTable, w As Worksheet, oldserverName As String, newServerName As String
Dim con As Variant
oldserverName = "onlsrvr" 'Change here
newServerName = "newsrvr" ' change here
For Each w In ThisWorkbook.Worksheets
For Each q In w.QueryTables
q.Connection = Replace(q.Connection, oldserverName, newServerName)
Next
Next
On Error Resume Next
For Each con In ThisWorkbook.Connections
con.ODBCConnection.Connection = Replace(con.ODBCConnection.Connection, oldserverName, newServerName)
con.OLEDBConnection.Connection = Replace(con.OLEDBConnection.Connection, oldserverName, newServerName)
Next
On Error GoTo 0
End Sub
我会考虑将类似的内容放置在sameNameAsWorkbook.ini文件中。 将文件保留在与工作簿相同的位置。 然后让您的代码读取ini文件并以这种方式建立连接。 然后,如果需要更改,则可以很容易地在一个位置进行更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.