更新Excel宏中的多个SQL连接字符串

时间:2017-04-06 00:26:06

标签: sql-server excel vba excel-vba

我有一个包含多个(50+)嵌入式SQL查询的Excel文档,可以刷新并更新计数和查询结果。我需要更改这些查询运行的服务器和数据库,我希望有一种更简单的方法来做到这一点,而不是手动输入所有内容。我在这里搜索了一些其他问题,但我找不到符合我的目标。

我的大多数连接字符串都是这样的:

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

我需要添加的是我认为的数据库:

Initial Catalog=DatabaseName

非常感谢有关如何更新所有这些连接字符串的后续步骤的任何指导。

2 个答案:

答案 0 :(得分:1)

也许您应该使用文本文件来存储Miguel建议的值。在应用程序中,将值加载到字典中,因此它们将方便易用。例如:

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

文字文件如: 初始目录:DatabaseName

并在字符串中替换此值...

答案 1 :(得分:0)

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

这样的东西
Find: UID=ThisisMe;
Replace: UID=ThisisMe;Initial Catalog=DatabaseName;