スポンサードリンク
リンクテーブルのリンク元を変更するVBAのサンプルプログラム
DAOを使用したプログラムなのでDAOオブジェクトライブラリの参照設定を忘れずに。 VBAの画面で、[ツール] - [参照設定]でDAOを指定してください。リンクテーブルを指定する場合のVBAのサンプルプログラム
任意のリンクテーブルを指定してリンク元を変更する場合のサンプルプログラムを以下に記載します。
Sub Sample01()
Dim db As DAO.Database, tb As DAO.TableDef
Set db = CurrentDb
Set tb = db.TableDefs("運送会社")
tb.Connect = ";DATABASE=C:\Northwind.mdb;TABLE=運送会社"
tb.RefreshLink ' リンク情報の更新
End Sub
プログラムの注意点
プログラムの注意点としては、Connectプロパティで指定する接続文字列の先頭に";"が入ること。 リンクテーブルをデザインで開いたときの接続文字列では、先頭に";"がついてないの忘れがちですが、VBAで指定する場合は忘れずに。 ちなみにもともとリンクしていたテーブルを変更することはできません。 つまり上の例で言えば、運送会社でリンクしていたテーブルを取引先など他のテーブルに変えることはできない。 リンクテーブルマネージャでもできないんだからVBAでもできるわけない。 リンク元のパスしか変更できないということね。データベースの全てのリンクテーブルのリンク元を一括で変更するVBAのサンプルプログラム
> "For Each"ステートメントを使ってテーブルオブジェクトを列挙し、全てのリンクテーブルパスを変更するサンプルプログラムを以下に記載します。1つのファイルからしかリンクしていない場合にリンクテーブルのリンク元を一括して変更することができる。
Sub Sample02()
Dim db As DAO.Database, tb As DAO.TableDef
Set db = CurrentDb
'テーブルオブジェクトを列挙
For Each tb In db.TableDefs
'リンクテーブルだけを処理
If tb.Connect <> "" Then
tb.Connect = ";DATABASE=C:\Northwind.mdb;TABLE=" & tb.Name
tb.RefreshLink ' リンク情報の更新
End If
Next tb
End Sub
スポンサードリンク