アプリ版:「スタンプのみでお礼する」機能のリリースについて

Accessで処理mdbとデータmdbに分けて、データmdbをリンクテーブルとして読み込んでいるのですが、データmdbのパスが変わったとき、処理mdbでデータmdbのパスを変更しなければなりません。
それが、面倒なので、手軽に変更できるように作っているのですが、「MSysObjects」の「Database」を書き換えるようと、VBAでADODB処理をしているのですが、アップデートすると「更新可能なクエリであることが必要です。」となり、書き換えることが出来ません。

strSQL = "SELECT * FROM MSysObjects;"
~
data.open strSQL ~
data("Database") = NewDatabase
data.Update

といった感じの処理です。因みに環境はAccess2000です。

何か、リンクテーブルを自動で書き換える簡単な方法は無いものでしょうか。

A 回答 (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
    • good
    • 0
この回答へのお礼

bonaronさん早速の回答ありがとうございました。
外部的に処理をしたかったので、コモンダイアログなんかで、mdbを開いたて、そのmdbのリンクファイルを指定したPathに変更するというようなことをしたかったのですが、外部mdbからMSysObjectsを変更することは出来ないようですね。(他に方法があるかもしれませんが)
CurrentDbだと、自分のMSysObjectsを見に行くので、希望通りの処理は出来ないようです。
それぞれのmdbに上記のような処理をさせていくことで対応したいと思います。
ありがとうございました。

お礼日時:2006/08/03 14:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A