2017-04-06 77 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 

文本文件,如: 初始目錄:數據庫名

並替換字符串這個值...