みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

2人が使用するaccessファイルを、使う人によってリンクテーブルマネージャを、
使い分けることは可能でしょうか。


1、Aさんが使用するときはCのリンクテーブルを参照する。
2、Bさんが使用するときはDのリンクテーブルを参照する。
3、Aさんが使用するときはDのリンクテーブルは参照しないようにする。
4、Bさんが使用するときはCのリンクテーブルは参照しないようにする。

このようなことが可能ならば、設定方法を教えていただけないでしょうか。

投稿日時 - 2012-01-09 23:21:54

QNo.7235462

困ってます

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

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は存在しないので再リンクされない。

以上の事を注意していただければ問題ないと思います。。

投稿日時 - 2012-01-10 16:32:04

お礼

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

投稿日時 - 2012-01-12 23:35:13

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問