- ベストアンサー
accessのリンクテーブルマネージャについて
2人が使用するaccessファイルを、使う人によってリンクテーブルマネージャを、 使い分けることは可能でしょうか。 1、Aさんが使用するときはCのリンクテーブルを参照する。 2、Bさんが使用するときはDのリンクテーブルを参照する。 3、Aさんが使用するときはDのリンクテーブルは参照しないようにする。 4、Bさんが使用するときはCのリンクテーブルは参照しないようにする。 このようなことが可能ならば、設定方法を教えていただけないでしょうか。
- みんなの回答 (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は存在しないので再リンクされない。 以上の事を注意していただければ問題ないと思います。。
お礼
遅くなりましたが、ありがとうございます。 方法や、注意点など詳しく説明していただき感謝しますm(_ _)m