Access VBA:リンクテーブルのリンク元をVBAで変更する方法

Access VBA:リンクテーブルのリンク元をVBAで変更する方法

AccessのVBAを使ってリンクテーブルのリンク元をVBAで変更する方法について覚書。

リンクしているテーブルを持つリンク元ファイルの保存場所が変更になったときなどに一括してリンクテーブルのパスを変更先のパスに書き換える方法。

最近何回か使ったので覚書しておく。

以下にサンプルプログラムを記述。

リンクテーブルのリンク元を変更するVBAのサンプルプログラム

DAOを使用したプログラムなのでDAOオブジェクトライブラリの参照設定を忘れずに。

VBAの画面で、[ツール] – [参照設定]でDAOを指定してください。

リンクテーブルを指定する場合のVBAのサンプルプログラム

任意のリンクテーブルを指定してリンク元を変更する場合のサンプルプログラムを以下に記載します。

プログラムの注意点

プログラムの注意点としては、Connectプロパティで指定する接続文字列の先頭に”;”が入ること。

リンクテーブルをデザインで開いたときの接続文字列では、先頭に”;”がついてないの忘れがちですが、VBAで指定する場合は忘れずに。

ちなみにもともとリンクしていたテーブルを変更することはできません。

つまり上の例で言えば、運送会社でリンクしていたテーブルを取引先など他のテーブルに変えることはできない。

リンクテーブルマネージャでもできないんだからVBAでもできるわけない。

リンク元のパスしか変更できないということね。

データベースの全てのリンクテーブルのリンク元を一括で変更するVBAのサンプルプログラム

“For Each”ステートメントを使ってテーブルオブジェクトを列挙し、全てのリンクテーブルパスを変更するサンプルプログラムを以下に記載します。

1つのファイルからしかリンクしていない場合にリンクテーブルのリンク元を一括して変更することができる。