#111 Connectプロパティを使ったテーブルの再リンク VBA

リンクテーブルのリンク元データベースを変更したい場合、いちばん簡単な方法はDocmdオブジェクトの"TransferDatabaseメソッド""acLink"定数を指定して実行することです。しかし、テーブルの再リンクを行うには別の方法もあります。ここで紹介する方法は、テーブルのリンク情報が格納されているプロパティ「Connect」を直接更新する方法です。

リンクテーブルのプロパティウィンドウを開いてみて下さい。
テーブルプロパティの例

説明欄のところを見ると、リンク元のデータベースファイルのフルパスとテーブル名が"DATABASE="で始まる文字列式で表示されているのが分かると思います。これがリンクテーブルのリンク情報です。この文字列を直接書き換えることによってリンク元を変更します。

次のコードでは、現在のリンク元「C:\My Documents\db1.mdb」をサーバー"MyServer"の共有名"DATA"にある"db2.mdb"に切り替えます。些細なことですが、Connectプロパティに指定する文字列の先頭にある";"を忘れないようにして下さい。テーブルのプロパティウィンドウではこの";"は表示されていませんが、VBAでこれを操作する場合にはこれが抜けているとエラーとなります。
Dim dbs As Database
Dim tdf As TableDef

Set dbs = CurrentDb
Set tdf = dbs.TableDefs("生徒名簿")
With tdf
  .Connect = ";DATABASE=\\MyServer\DATA\db2.mdb;TABLE=生徒名簿"
  .RefreshLink
End With
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved