• ベストアンサー

【アクセス】「ほかのユーザー」を調べる方法

たまにvbaコードをいじろうとした時や フォームのデザインを変えて保存しようとしたときに 「ほかのユーザーによってファイルが開かれているため、変更したデザインを保存したり、新しいデータベース オブジェクトに保存したりできません。 デザインの変更を保存したり、新しいオブジェクトに保存したりするには、ファイルを排他モードにする必要があります。」 のエラーが出るのですが 「ほかのユーザー」とは誰のことかも調べる方法はありますか? よろしくお願いします。

  • ijuhyg
  • お礼率99% (460/462)

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.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/

ijuhyg
質問者

お礼

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

その他の回答 (1)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

> 「ほかのユーザー」とは誰のことかも調べる方法はありますか? 本当に「使用者名」となると難しいかと思いますが、「使用中の端末名」なら 比較的簡単にわかります。 Accessのファイル(拡張子mdb)を開くと、同じフォルダに拡張子が「ldb」で 同名のファイルが自動的に作成されます。 (Accessのレコードロック情報ファイル。なお、排他モードで開いた場合は  作成されません) これを一旦どこかにコピーした後、その複製ファイルを右クリックして 『プログラムから開く(H)→WordPad』を選択すると、 「○○  Admin  △△  Admin」 と、データが表示されます。 この「○○」や「△△」が、端末名(PCName)です。 (ここで表示される端末名は、Windowsの「システムのプロパティ」の  『コンピュータ名』タブにある「フル コンピュータ名」のデータに  相当します) なお、ここで表示される「Admin」というのが「ユーザー名」になります。 (但し、Accessのセキュリティ ウィザードなどを使用して、mdbファイル  展開時にユーザー名を要求する形にしない限り、既定のユーザー名  である「Admin」(Windowsの「管理者」とは全く別個)が表示されない  ので、使用者の特定はできません) ※以上の説明は、こちらの環境(WinXP&Access2003)での確認結果に  基づいています。 ※VBAで確認する場合は、API関数を使用するのが一般的かと思います。

ijuhyg
質問者

お礼

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

関連するQ&A

  • ファイルを開いている状態で排他モードに変更する事は

    ファイルを開いている状態で排他モードに変更する事は可能なのですか? 一人で使っているMDBファイルですがVBAコードを修正していたら、 なぜか 『ほかのユーザーによってファイルが開かれているため、変更したデザインを 保存したり、新しいデータベースオブジェクトに保存したりできません。 デザインの変更を保存したり、新しいオブジェクトに保存したりするには、 ファイルを排他モードにする必要があります』 と出てしまいました。 とりあえず一度ファイルを閉じようとしても、この表示が出てしまいます。 修正したコードは保存したいのですが、どうすればいいのでしょうか? このまま排他モードに切り替えてVBAコードを保存したいです。

  • 「ほかのユーザー」とはどのファイルの事?

    複数のアクセスファイル同士をテーブルリンクで繋いでいるのですが ファイル1.accdbを開いて、デザインを修正して保存しようとすると 「ほかのユーザーによってファイルが開かれているため、変更したデザインを保存したり、 新しいデータベースオブジェクトに保存したりできません。 デザインの変更を保存したり、 新しいオブジェクトに保存したりするには、 ファイルを排他モードにする必要があります」 となり、保存できません。 この場合の「ほかのユーザー」とはどのファイルの事を指してるのかはどうやって調べればよいでしょうか? ファイルは一人で使っていますが、 別ファイル(accdb)にリンクしています。 どのaccdbファイルを閉じれば保存できるのかを調べる方法を教えてください。

  • アクセス データは保存される?排他モード???

    レコードのデータを変更したり、新規にデータを入力した後に、 CTRL+Sを押すと、 『ほかのユーザーによってファイルが開かれているため、 変更したデザインを 保存したり、新しいデータベースオブジェクトに保存したりできません。 デザインの変更を保存したり、新しいオブジェクトに保存したりするには、ファイルを排他モードにする必要があります』 と表示されますが、 これはデータは保存されてるのでしょうか? デザインが保存されないだけでしょうか? でもデザインビューなどでいじってません。 また上記のメッセージから、今は排他モードでは開いてないことがわかりますが、 であれば何モードで開いてるのでしょうか? 共有モードでしょうか? それを開いてる状態で確認することは可能ですか?

  • ファイルを保存できない

    vba付きのアクセスファイルを保存して閉じたいのですが、 右上の罰ボタンを押すと、 「ほかのユーザーによってファイルが開かれているため、変更したデザインを保存したり、新しいデータベース オブジェクトに保存したりできません。 デザインの変更を保存したり、新しいオブジェクトに保存したりするには、ファイルを排他モードにする必要があります。」 とでて、OKボタンしかないのでOKボタンを押すと、画像のように 「保存できませんでした」と出ます。 そしてまた「保存できませんでした」と出て、とじれないのですが、どうすればいいでしょう?

  • 変更を保存したい

    共有はしていません。一人で使用しています。 アクセスファイルのADOをいじって保存しようとすると、 『ほかのユーザーによってファイルが開かれているため 変更したデザインを 保存したり、新しいデータベースオブジェクトに保存したりできません。 デザインの変更を保存したり、新しいオブジェクトに保存したりするには、ファイルを排他モードにする必要があります』 となるのですが、このまま変更を保存するにはどうすればいいでしょうか? この状態から排他モードにすることは可能なのですか?2007です。ご回答よろしくお願いします。

  • Accessのオブジェクトがインポートできません

     Accessで作成中のアプリケーションに、他の作成済みAccessアプリから、 流用したいオブジェクトをインポートしようとするのですが、うまくいきません。  具体的には、作成中のAccessアプリ(以下「アプリA」と表記します)にて、 ファイル(F)-外部データの取り込み(G)-インポート(I)を選択し、 開いたインポートウィンドウから、作成済みのAccessアプリ(以下「アプリB」 と表記します)を指定し、オブジェクトのインポートウィンドウから、 取り込みたいオブジェクト(フォーム)等を選択のうえ、OKを押下すると 以下のメッセージウィンドウが表示され、うまくいきません。 『ほかのユーザーによってファイルが開かれているため、変更したデザインを 保存したり、新しいデータベースオブジェクトに保存したりできません。 デザインの変更を保存したり、新しいオブジェクトに保存したりするには、 ファイルを排他モードにする必要があります』  ちなみに「アプリA」は、セキュリティウィザード適用により自動生成された ショートカットからのみ起動できるもの、「アプリB」はセキュリティは未設定の ファイルです。  このため「アプリA」は、ファイル-開く からモードを指定して開くことが できない為、代わりにツール-オプションの詳細タブで、既定のモードを 「排他モード」に変更して試してみるものの、うまくいきません。  どなたか助けていただきたく、よろしくお願いいたします。 以上

  • ACCESSで排他モードにするには

    ACCESS97からACCESS2000に移行しました。 ネットワーク上にデータベースを置いて複数で使っています。 私がフォームやレポートをデザインで開こうとしているとき、他の人が同じデータベースを開いていると(同じフォームやレポートを開いてなくても) 「現在、このデータベースには排他モードでアクセスしていません。デザインの変更は保存できません。」 と表示されてしまいます。 そこで「ツール」「オプション」「詳細」で「排他モード」を選んだり、「開く」で「「排他モードで開く」を選んでみたのですが、メッセージは変わりません。 ヘルプやマイクロソフトのHPも読んでみましたが、「共有モード」にすべきか「排他モード」にすべきか、いまひとつわかりません。 ACCESS97の時はこんなことはなかったのですが、2000って「こうゆうもの」なんでしょうか。 よろしくお願いします。

  • 排他モードで開けない

    こんにちは。 os:vista、office:2003です。 自分で作成したアクセスのmdbファイルに フォームを新規で作成しようとしたところ、 「現在、このデータベースは排他モードでアクセスしていません。 変更しても、後で保存できない可能性があります。」 となってしまいます。 なので排他モードで開こうと思い、 ファイル→開く→ファイルを選択→排他モードで開く をやっても 「他のユーザーがこのデータベースを開いているか、 排他モードで開く権限がないため。○○を排他モードで開くことはできません。 このデータベースを共有モードで開きます。」 となってしまい、結局フォームを作ることができません。 ・パソコンはインターネットとしか繋いでないです。(共有はしていない) ・mdbと同じフォルダ内にldbと言う拡張子のファイルがあり、鍵マークが付いています。これが原因でしょうか? 何かわかる方なんでもいいのでご回答よろしくお願いします。

  • VB.Netソリューションでフォームが開けない

    こんにちわ。 いまVB.Net2003で開発をしている者です。 ソリューションであるフォームをデザインモードで開こうとしたところ,コードウィンドウしか表示されません。 ちなみに,このフォームは「*.vb」と「*.resx」の2ファイルとも, 他のユーザによる排他チェックアウトがされています。 これは「排他チェックアウト中」だからフォームをデザインモードで開くことができないのでしょうか? もしそうだとしたら「排他チェックアウト中」でもフォームをデザインモードで開くにはどうすれば良いでしょうか? 教えてください。よろしくお願いします。

  • 保存をすると再開できる時とできない時がある

    VBAコードを編集し保存せずに フォームビューでコマンドボタンを押しADOを含むコードを実行しようとすると 「マシン '<マシン名>' のユーザー 'Admin' が データベースを開けない状態、またはロックできない状態にしています。」 のエラーが出ます。 その時保存をすると再開できる時とできない時があるのですが どういう場合ができないときなのかわかりません。 ただ、フォームのデザインをいじると 確実に保存しただけでは再開できずファイルを一度閉じなければいけないのですが VBAコードだけをいじっても再起動しなければいけない場合があります。 このファイルは自分しか使ってないです。 わかりづらくてすいません。 宜しくお願い致します。

専門家に質問してみよう