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

たまにvbaコードをいじろうとした時や
フォームのデザインを変えて保存しようとしたときに

「ほかのユーザーによってファイルが開かれているため、変更したデザインを保存したり、新しいデータベース オブジェクトに保存したりできません。 デザインの変更を保存したり、新しいオブジェクトに保存したりするには、ファイルを排他モードにする必要があります。」

のエラーが出るのですが
「ほかのユーザー」とは誰のことかも調べる方法はありますか?
よろしくお願いします。

A 回答 (2件)

No.1です。



> なぜ3つも表示されてしまうのでしょうか?

・・・すみません、以前、同様の疑問を持ったのですが、
結局うやむやのままにしていました(汗)

改めて情報を探してみましたが、どうやらこのロック情報は、
ファイルに対してだけでなくレコードセットに対しての記録も
担っている、ということのようです:
http://support.microsoft.com/kb/208778/ja
(2項目『概要』のところに、「.ldb ファイルは、共有で使用
されているデータベースにおいて、どのレコードがだれに
よってロックされているかを判断するために使用されます 」
とあります)
※上記はAccess2000のものですが、Access2003のものは機械
 翻訳だったので・・・(概要はだいたい同じです。一応、
 『目次』のすぐ上にリンクがあるので、必要でしたら
 そちらもご覧下さい)

従って、一人でしか使用していなくても、複数のテーブルの
レコードを(クエリ等で大量に?:テストで数レコードのみの
テーブル2つで確認した限りでは再現せず)扱った場合は、
同じPC名とユーザー名が重複して記録されることになるのかと
思います。


なお、上記の機械翻訳の2003の方に、ログオン中のユーザーを
確認する方法(API関数は不要(汗))が説明されていましたので、
あわせてリンクを載せておきます:
http://support.microsoft.com/kb/285822/
    • good
    • 0
この回答へのお礼

なるほど!納得しました!リンク先もよく読んでみます!
ありがとうございます!!

お礼日時:2009/05/06 23:23

> 「ほかのユーザー」とは誰のことかも調べる方法はありますか?



本当に「使用者名」となると難しいかと思いますが、「使用中の端末名」なら
比較的簡単にわかります。

Accessのファイル(拡張子mdb)を開くと、同じフォルダに拡張子が「ldb」で
同名のファイルが自動的に作成されます。
(Accessのレコードロック情報ファイル。なお、排他モードで開いた場合は
 作成されません)

これを一旦どこかにコピーした後、その複製ファイルを右クリックして
『プログラムから開く(H)→WordPad』を選択すると、

「○○  Admin  △△  Admin」

と、データが表示されます。
この「○○」や「△△」が、端末名(PCName)です。
(ここで表示される端末名は、Windowsの「システムのプロパティ」の
 『コンピュータ名』タブにある「フル コンピュータ名」のデータに
 相当します)
なお、ここで表示される「Admin」というのが「ユーザー名」になります。
(但し、Accessのセキュリティ ウィザードなどを使用して、mdbファイル
 展開時にユーザー名を要求する形にしない限り、既定のユーザー名
 である「Admin」(Windowsの「管理者」とは全く別個)が表示されない
 ので、使用者の特定はできません)



※以上の説明は、こちらの環境(WinXP&Access2003)での確認結果に
 基づいています。
※VBAで確認する場合は、API関数を使用するのが一般的かと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
早速試してみました。
おっしゃるとおりになりました。

しかしちょっと追加で質問ですが

コンピューター名 Admin コンピューター名 Admin
コンピューター名 Admin

と3つ表示されました。全部同じコンピューター名です。
現在は自分ひとりで試用しているため
「コンピューター名 Admin 」
となるべきだと思ったのですが
なぜ3つも表示されてしまうのでしょうか?
(私の環境は、vista オフィス2003です)
再度ご回答いただけると助かります。

お礼日時:2009/05/06 19:59

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A