#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'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします


Copyright © T'sWare All rights reserved