2017-04-06 39 views
2

我有一个Excel文档,其中包含几个(50+)嵌入式SQL查询,可以刷新并更新计数和查询结果。我需要更改服务器和数据库,这些查询运行,我希望有一个更简单的方法来做到这一点,而不是手动输入一切。我已经通过其他一些问题在这里搜索,但我无法找到的东西与我期待的相匹配。更新Excel宏中的多个SQL连接字符串

大多数我的连接字符串如下所示:

DRIVER=SQL Server;SERVER=ServerName;UID=ThisisMe;Trusted_Connection=Yes;APP=Microsoft Office 2013;WSID=CEPC098JJN 

我还需要补充,是我认为是这样的数据库:

Initial Catalog=DatabaseName 

对下一步的任何指导非常感谢如何更新所有这些连接字符串。

+0

我个人的看法是创建一个文件的应用程序之外,读从文件中获取连接字符串。以这种方式,你将来不得不再次处理这个问题。 – Miguel

+0

@Miguel - 就像一个ODBC系统或文件dsn ...? – Jeeped

+0

@Jeeped有点,但有点粗俗,因为这是VBA,你可以在技术上,把文件看作一个配置文件,甚至有'dbname-values',这样你就可以简单地检索文件,找到名称并将其用作连接字符串。 – Miguel

回答

0

使用查找和替换并选择整个项目。

喜欢的东西

Find: UID=ThisisMe; 
Replace: UID=ThisisMe;Initial Catalog=DatabaseName; 
1

也许你应该使用一个文本文件中存储的值由米格尔的建议。在应用程序中,将值加载到字典中,以便它们方便易用。例如:

Sub test() 
Dim d, key 
    Set d = FileLoad("c:\soft\1.txt") 
    For Each key In d.Keys 
     Debug.Print ("key = " & key & " Value = " & d(key)) 
    Next key 
End Sub 


Function FileLoad(path As String) As Variant 
Dim str, arr, dict 
Open path For Input As #1 
Set dict = CreateObject("Scripting.Dictionary") 
Do Until EOF(1) 
    Line Input #1, str 
    arr = Split(str, ":") 
    dict.Add arr(0), arr(1) 
Loop 
Close #1 
Set FileLoad = dict 
End Function 

文本文件,如: 初始目录:数据库名

并替换字符串这个值...