次の方法で共有

既存のデータベースクエリのデータソースをBookで一括変更する方法 EXCEL2003__

Anonymous
2010-08-03T09:08:31+00:00

当該Excelファイルは以前hogeというデータソース(ODBC)のhoge-db1というインスタンスを参照していました。

しかし、この度、このExcelファイルは別サーバに移行され、そこのデータソースhogeのhoge-db2という

インスタンスを参照しなければならなくなりました。

DB構造やテーブル名は同じですが、DBサーバが変わったためインスタンス名が変わってしまいました。

新サーバのデータソース名が旧と同じなのでそのまま使用できるかと思ったのですが、データ取得の際に、hoge-db1の

インスタンスのパスワードを問い合わせるダイアログが出てしまうようにになってしまいました。

そこで、Book内の各Sheetにあるデータベースクエリ全てのデータソースのインスタンス情報をhoge-db2へ変更したいのですが

一括変更方法の分かる方おられましたらご教示お願い致します。

尚、当該Excelファイルはあるシステムの補助的な扱いなので、DBのインスタンス名自体を変えることはできません。

以上、宜しくお願い致します

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2010-08-04T01:02:19+00:00

こんにちは。

マクロで下記コードのようにQueryTableオブジェクトのConnectionプロパティを

一括で変更してみてはいかがでしょうか。

(私の方では試していないので上手くいくかどうか確認していないのですが…)

Public Sub Sample()

  Dim ws As Worksheet

  Dim qt As QueryTable

  For Each ws In ActiveWorkbook.Worksheets

    For Each qt In ws.QueryTables

      qt.Connection = "ODBC;DATABASE=hoge-db2…………"

      qt.Refresh False

    Next

  Next

End Sub

Connectionプロパティに設定する値は、"hoge-db2"を設定した状態で

「Debug.Print ActiveSheet.QueryTables(1).Connection」(インデックス"1"は

適当に変更する)やイミディエイトウィンドウで

「?ActiveSheet.QueryTables(1).Connection」等とすれば確認できます。

また、Connectionプロパティ以外にも必要であればNameプロパティ等

他のプロパティも変更してください。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2010-08-04T03:22:53+00:00

    きぬあさ 様

    ご教示ありがとうございました。 たいへん助かりました。

    以上、お礼まで

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません