プロが教える店舗&オフィスのセキュリティ対策術

お世話になってます。
Access2007へ移行のため、移行用のmdbを作成し、移行する既存のmdb群のMSysObjectsを変更しようとしています。

以下のようにVBAで自分のリンクテーブルの接続パスワードは変更できたのですが、同じく他のMDBを指定してリンクテーブルを変更する事は出来るでしょうか?

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=";PWD=" & strPWD  '←リンクテーブルの接続PWDの変更
    tdf.RefreshLink
  End If
Next


よろしくお願い致します。

A 回答 (1件)

現在開いているデータベース自身を指定している「Set dbs = CurrentDb」の


部分を、他のデータベースを指定する形に変更すれば、できると思います。

Dim dbs As DAO.Database
Dim tdf As DAO.TableDef

'「OpenDatabase」により、他のデータベース(例はCドライブのTest.mdb)を指定
'(「Open~」となっていますが、別ウィンドウに表示されるわけではありません)
Set dbs = OpenDatabase("C:\Test.mdb")
'データベースパスワードが設定されている場合は以下の通り(パスワードはaaa)
'Set dbs = OpenDatabase("C:\Test.mdb", , , "MS Access;PWD=aaa")

For Each tdf In dbs.Tabledefs
  If Len(tdf.Connect > 0 Then
    tdf.Connect=";PWD=" & strPWD
    tdf.RefreshLink
  End If
Next

'対象データベースを閉じる
dbs.Close

'念のため、明示的にメモリを解放
Set tdf = Nothing
Set dbs = Nothing


・・・以上です。
OpenDatabaseの引数(特に上で省略している2番目と3番目)については
ヘルプで確認してみてください。
    • good
    • 1
この回答へのお礼

出来ました!
ご丁寧なコード&解説付のご回答ありがとうございました。

お礼日時:2009/01/14 16:32

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

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