- 締切済み
Accessでusername及びcomputernameの取得
mdbのデータ更新をする再に、誰かがmdbを使用しておればデータ更新が行えませんよね。そこで、どのクライアントが使用しているのかを把握するためにAccessのADOを使用してどのような記述をすればよいのかご存知の方がいればお願いします。素人ですので・・・分かりやすくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ese_ee
- ベストアンサー率48% (68/139)
#1さんの方法で問題ないですが、 Accessに用意されているものとしては、 このようなものもあります。 Access2000は、 http://support.microsoft.com/kb/198755/ Access2002以降は、 http://support.microsoft.com/kb/285822/
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。 > 誰かがmdbを使用しておればデータ更新が行えませんよね。 トランザクションについて調べて下さい。 [ BeginTrans, CommitTrans, RollbackTrans ] がキーワードです。 一応参考 URL を。 http://www.sanryu.net/acc/tips/tips169.htm > どのクライアントが使用しているのかを把握するために トランザクションで解決しそうな気がしますけど、これをどうしても 知りたいのなら、そのための仕組みを独自に作らねばなりません。 例えば、MDB ファイルを開いたときにユーザー名をどこかに保存して おけば、次に開いた人はこれを参照することで使用中のユーザー名を 知ることができます。 もちろん最初に開いた人が処理を終えたら、この情報はクリアします。 簡単にやるなら同一フォルダにテキストファイルを書き出すのが良い かもしれません。 以下は余談として聞いて下さい。 MDB ファイルを開くと自動生成される *.ldb ファイルがありますよね? ぶっちゃけ、これはほぼ同じ働きをしています。 *.ldb ファイルにはそのデータベースを共有するすべてのユーザーの ロック情報、つまり ・コンピュータ名 ・セキュリティ名 等の情報が書き込まれています。テキストエディタなどで開いてみて 下さい。 ふと、ここから目的の情報が得られそうな気がするものですが... 残念ながらここに記載されている情報はあくまで 「データベースを共有するユーザーの情報」 であって、過去の情報を含む可能性があります。つまり、 「現在アクセス中のユーザー情報」 とは限りません。故に、実用には使えないのです。 先述のロジックを補足するためのイメージの話でした。