- 締切済み
Accessでリンクテーブルのパス変更
Accessで処理mdbとデータmdbに分けて、データmdbをリンクテーブルとして読み込んでいるのですが、データmdbのパスが変わったとき、処理mdbでデータmdbのパスを変更しなければなりません。 それが、面倒なので、手軽に変更できるように作っているのですが、「MSysObjects」の「Database」を書き換えるようと、VBAでADODB処理をしているのですが、アップデートすると「更新可能なクエリであることが必要です。」となり、書き換えることが出来ません。 strSQL = "SELECT * FROM MSysObjects;" ~ data.open strSQL ~ data("Database") = NewDatabase data.Update といった感じの処理です。因みに環境はAccess2000です。 何か、リンクテーブルを自動で書き換える簡単な方法は無いものでしょうか。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- bonaron
- ベストアンサー率64% (482/745)
回答No.1
'DAO3.x の参照設定が必要です。 Dim dbs As DAO.Database Dim tdf As DAO.TableDef Set dbs = CurrentDb For Each tdf In dbs.Tabledefs If Len(tdf.Connect > 0 Then tdf.Connect=";DATABASE=" & strPath '新mdbのフルパス tdf.RefreshLink End If Next
お礼
bonaronさん早速の回答ありがとうございました。 外部的に処理をしたかったので、コモンダイアログなんかで、mdbを開いたて、そのmdbのリンクファイルを指定したPathに変更するというようなことをしたかったのですが、外部mdbからMSysObjectsを変更することは出来ないようですね。(他に方法があるかもしれませんが) CurrentDbだと、自分のMSysObjectsを見に行くので、希望通りの処理は出来ないようです。 それぞれのmdbに上記のような処理をさせていくことで対応したいと思います。 ありがとうございました。