服务器移动,现在MS Excel 2003查询将无法正常工作

我们使用MS Query从各种数据库检索数据来创buildpipe理指标(即在Excel中,转到数据…导入外部数据…新build数据库查询)。 SQL查询和参数(主要是connstring)由Excel自动存储在电子表格中。

不过,我们最近把我们的一个数据库移到了新的服务器上。 因此,Excel在尝试刷新数据时会提示我们提供新的ODBC连接,但不会接受新值。 我们可以很好地创build新的查询,所以ODBC连接设置正确,但是我们不能改变任何查询。

有没有办法以编程方式或以其他方式更改这些设置中的IP地址? 我尝试更改hex编辑器中的xls文件(IP地址在那里可见),但它然后说工作簿已损坏。

如果您需要更改查询的连接string,该macros将更改它在活动工作簿中的所有查询(您不必将代码存储在要更改的工作簿中)。

我包含两个示例连接string – 一个提供dsn,一个提供服务器/数据库。 如果您的DSN在创build新的查询时很好,请先尝试DSN。 调整SQL Server版本,如果您使用那一个。

另外,有一个标准的安全(uid,pwd),另一个使用基于windows的安全(可信连接)。 根据情况混合搭配。

Sub ChangeAddress() Dim qt As QueryTable Dim wks As Worksheet Const strNEW_CONN_DSN As String = "ODBC;DSN=MyDSN;Description=MyDescription;UID=myid;PWD=mypwd;" Const strNEW_CONN_SQL as String = "Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDB;Trusted_Connection=yes;" For Each wks In ActiveWorkbook.Worksheets For Each qt In wks.QueryTables qt.Connection = strNEW_CONN_DSN Next qt Next wks End Sub