プロが教えるわが家の防犯対策術!

Accessのリンクテーブルについて質問です。

この度、バックエンドとフロントエンドでのデータベースを作っています。
フロントエンドを会社のPC10台程度で利用しようと考えています。

ただ、作成するのが、自宅のPCと会社のPCで作っているのですが、
リンクテーブルのパスが変わってしまい、非常に困っています。
現在は自宅でデータ系を作成し、会社でフォーム等見た目に関するものを作っている次第です。

リンクテーブルを自動更新させる方法、または、ボタンで全てのリンクテーブルを更新させる方法はないでしょうか?
一つのテーブルをボタンで更新させる方法は、他サイトで見つけたのですが、複数テーブルを一挙に更新させる方法が見当たりません。
また、面倒な話なのですが、テーブル数は現在決まっておらず、今後増える予定です。(現在は7つ。)

出来れば参考サイトやソースコードを教えていただけると、非常に助かります。
何卒よろしくお願いいたします。m(_ _)m

A 回答 (2件)

Access2003であれば、下記コードで


すべてのリンクテーブルのパスを変更
できるハズです。

Sub test()
  On Error GoTo Err_test
  Dim strFile As String
  Dim intResult As Integer
  Dim tb As DAO.TableDef
  Const ENABLE_WIZHOOK = 51488399
  Const DISABLE_WIZHOOK = 0
  
  WizHook.Key = ENABLE_WIZHOOK
  intResult = WizHook.GetFileName(0, "", "データベースを指定して下さい", "" _
    , strFile, "", "mdbファイル (*.mdb)|*.mdb", 0, 0, 0, True)
  WizHook.Key = DISABLE_WIZHOOK
  If strFile = "" Then Exit Sub
  
  For Each tb In CurrentDb.TableDefs
    If tb.Connect <> "" And tb.Connect <> ";DATABASE=" & strFile Then
      tb.Connect = ";DATABASE=" & strFile
      tb.RefreshLink
    End If
  Next tb
  MsgBox "リンク更新が正常に終了しました", vbInformation
  Exit Sub
  
Err_test:
  MsgBox Err.Description, 16
End Sub
    • good
    • 0
この回答へのお礼

非常にわかりやすいソースありがとうございます。
読解できました。

いじる所も全くないのでこのまま利用させていただきます。
本当にありがとうございました。m(_ _)m

お礼日時:2010/02/27 18:11

こちらが最適かと。


http://www.nurs.or.jp/~ppoy/access/access/acM020 …
マイクロソフトにもありますが。
http://support.microsoft.com/kb/291264/ja
では。
    • good
    • 0
この回答へのお礼

非常に参考になりました。
今後の参考にさせていただきます。m(_ _)m

お礼日時:2010/02/27 18:12

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