2017-04-06 14 views
2

複数の(50以上の)埋め込みSQLクエリを含むExcelドキュメントが更新され、カウントとクエリ結果が更新されます。これらのクエリが実行されるサーバーとデータベースを変更する必要があります。手動で入力するよりも簡単な方法があることを期待していました。ここで他のいくつかの質問を検索しましたが、私が探しているものとマッチしました。Excelマクロ内で複数のSQL接続文字列を更新

私の接続文字列のほとんどは、次のようになります。上の次のステップに

Initial Catalog=DatabaseName 

どれ指導:

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

私も追加する必要が何を、私はこのようになりますと信じていたデータベースですこれらの接続文字列をどのように更新するかは大変ありがたいです。

+0

私の個人的な意見は、アプリケーションの外部ファイルを作成することと読んでいましたファイルから接続文字列を取得します。このようにして、将来あなたはこれをもう一度扱わなければなりません。 – Miguel

+0

@Miguel - ODBCシステムやファイルdsnのように...? – Jeeped

+0

@Jeeped Kindaしかし、これは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 

テキストファイル: 初期カタログ:データベース名

や文字列で、この値を置き換え...

関連する問題