• ベストアンサー

accessのリンクテーブルマネージャについて

2人が使用するaccessファイルを、使う人によってリンクテーブルマネージャを、 使い分けることは可能でしょうか。 1、Aさんが使用するときはCのリンクテーブルを参照する。 2、Bさんが使用するときはDのリンクテーブルを参照する。 3、Aさんが使用するときはDのリンクテーブルは参照しないようにする。 4、Bさんが使用するときはCのリンクテーブルは参照しないようにする。 このようなことが可能ならば、設定方法を教えていただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tom-3
  • ベストアンサー率32% (42/130)
回答No.1

1.mdb起動時にユーザIDを入力させるようにします。 2.入れられたユーザIDに対して以下のような構文を実行すれば  異なるACCESSファイルを参照しに行くことができます。 *----*----*----*----*----*----*----*----*----*----*     Dim MyDatabase As Database          Dim MyTable As TableDef          Dim intIdx As Integer          Set MyDatabase = CurrentDb() 'dbを今開いているデータベースと定義づけします。     For Each MyTable In MyDatabase.TableDefs 'ループを用いて、リンクの設定が存在する限り、                          'その設定をリンク元MDBに変更していく。             If Len(MyTable.Connect) <> 0 Then                 if Me.TxtUserID="C" then                    MyTable.Connect = ";database=D:\Cさん専用.MDB"                 else If Me.TxtUserID="D" then                    MyTable.Connect = ";database=D:\Dさん専用.MDB"                 End if                 MyTable.RefreshLink             End If         Next     MyDatabase.TableDefs.Refresh     MyDatabase.Close     Set MyDatabase = Nothing *----*----*----*----*----*----*----*----*----*----* 問題点としてはCさん専用.MDBもDさん専用.mdbもデータ内容はともかく mdb内に同一のテーブル名を必ず持っていることが必要です。 ※ 上記の設定はリンクを張りなおしているだけで、存在しないテーブルが削除されるとは限らない。   また、削除された場合(CさんのmdbにはテーブルAがある。DさんのmdbにはテーブルAがない)は   Dさんがログインした際、テーブルAが消え、次にCさんがリンクの張り直しをした際、   リンクテーブルにテーブルAは存在しないので再リンクされない。 以上の事を注意していただければ問題ないと思います。。

mailboro0312
質問者

お礼

遅くなりましたが、ありがとうございます。 方法や、注意点など詳しく説明していただき感謝しますm(_ _)m

関連するQ&A