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

mdbのデータ更新をする再に、誰かがmdbを使用しておればデータ更新が行えませんよね。そこで、どのクライアントが使用しているのかを把握するためにAccessのADOを使用してどのような記述をすればよいのかご存知の方がいればお願いします。素人ですので・・・分かりやすくお願いします。

A 回答 (2件)

#1さんの方法で問題ないですが、


Accessに用意されているものとしては、
このようなものもあります。
Access2000は、
http://support.microsoft.com/kb/198755/

Access2002以降は、
http://support.microsoft.com/kb/285822/
    • good
    • 0

こんにちは。



> 誰かがmdbを使用しておればデータ更新が行えませんよね。

トランザクションについて調べて下さい。

 [ BeginTrans, CommitTrans, RollbackTrans ]

がキーワードです。

一応参考 URL を。
http://www.sanryu.net/acc/tips/tips169.htm


> どのクライアントが使用しているのかを把握するために

トランザクションで解決しそうな気がしますけど、これをどうしても
知りたいのなら、そのための仕組みを独自に作らねばなりません。

例えば、MDB ファイルを開いたときにユーザー名をどこかに保存して
おけば、次に開いた人はこれを参照することで使用中のユーザー名を
知ることができます。

もちろん最初に開いた人が処理を終えたら、この情報はクリアします。

簡単にやるなら同一フォルダにテキストファイルを書き出すのが良い
かもしれません。

以下は余談として聞いて下さい。

MDB ファイルを開くと自動生成される *.ldb ファイルがありますよね?
ぶっちゃけ、これはほぼ同じ働きをしています。

*.ldb ファイルにはそのデータベースを共有するすべてのユーザーの
ロック情報、つまり

  ・コンピュータ名
  ・セキュリティ名

等の情報が書き込まれています。テキストエディタなどで開いてみて
下さい。

ふと、ここから目的の情報が得られそうな気がするものですが...
残念ながらここに記載されている情報はあくまで

  「データベースを共有するユーザーの情報」

であって、過去の情報を含む可能性があります。つまり、

  「現在アクセス中のユーザー情報」

とは限りません。故に、実用には使えないのです。

先述のロジックを補足するためのイメージの話でした。
    • good
    • 0

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