人に聞けない痔の悩み、これでスッキリ >>

アクセスで
test.mdbからtest._bemdbへリンクテーブルしているのですが
いつも問題なくファイルが開けるのに
今日ファイルを開こうとしたら
「test._bemdbは既に使用されているので、使用できませんでした。」
と表示され、リンクしているテーブルが開けません。

何が起きてるのでしょうか?
ヴァージョン2010です。

いつもと同じ使い方(開き方)をしています。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

リンク元・リンク先ともにバックアップをとったうえで


「修復・最適化ツール」を実行してみる
    • good
    • 1
この回答へのお礼

ありがとうございました。

お礼日時:2013/11/04 11:05

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QACCESS2010の最適化が中断される

ACCESS2003で作成したデータをACCESS2010で使用しています。
問題なく使用できていたのですが、エラー(フォームやマクロが消去)が発生し、
再度、エラーについて、再登録し、不要なテーブルデータも削除しました。
最後に最適化をしようと実行すると、初回にエラーメッセージ(内容は不明)が表示され、
最適化が中断されました。
データ自体共有フォルダに保存しているため、他のPC(ACCESS2003)で、最適化しても
同様に中断されます。
データ容量が2GB近くあるため、それが原因なのか、もしくは他の要因なのかがわかりません。
不要なテーブルデータを削除したので、1.5GBくらいにはなるはずですが・・・
申し訳ございませんが、わかる方がいらっしゃいましたらご教授願います。

Aベストアンサー

最初の回答者の方と重複しますが
問題MDBを自身のPCにコピー。
Accessで空のMDB作成
(初期値はDatebase1.accdbになってますので拡張子をmdbに変更)
(Access2003以前では使用しないのならばaccdbでも可)

空のMDBの、ファイル→オプション→カレントデータベース
の名前の自動修正オプションのチェックは全て外す。
一旦MDBを閉じる。

再度開いて、リボンの外部データで問題MDBを全て、
この新規MDBにインポートする。

新規MDBでオブジェクト名が正しいか等、
VBAでは参照設定に参照不可になっているものがないかチェック。
その他諸々のチェック。

問題が無いのを確認したら、MDBを閉じる。
新規MDBのコピーを作成し(最適化の時に壊れる可能性を配慮)
新規コピーMDBを開いて最適化を試みる。
■解決するかどうかの保証は出来ません。■

※ファイルサイズが2GB近いならAccessの仕様の限界です。
テーブルにOLEオブジェクトの埋め込みでもしているのでしょうか?
もし問題が解決したとしても、ファイルサイズが2GB近いのなら
早晩また問題が発生する可能性があると思います。
また、Accessからも警告メッセージが出ていたはず。
なお、ファイルを共有しているので
「閉じる時に最適化」のオプションにチェックは入れないように。

最初の回答者の方と重複しますが
問題MDBを自身のPCにコピー。
Accessで空のMDB作成
(初期値はDatebase1.accdbになってますので拡張子をmdbに変更)
(Access2003以前では使用しないのならばaccdbでも可)

空のMDBの、ファイル→オプション→カレントデータベース
の名前の自動修正オプションのチェックは全て外す。
一旦MDBを閉じる。

再度開いて、リボンの外部データで問題MDBを全て、
この新規MDBにインポートする。

新規MDBでオブジェクト名が正しいか等、
VBAでは参照設定に参照不可になっているものがない...続きを読む

QAccess2003の排他モードで開くとファイルが開けません。その左側に表示されるレ点の意味は何でしょうか?

Access2000からAccess2003にインポートをしました。
そうしたらAccess2003の方を排他モードで開こうとするとファイルが開けません。
「排他モードで開く」の左側にレ点のチェックが入っているのです。他の誰かが開いているときは開けません。誰も開いていないときは開けます。
このレ点の意味は何だったでしょうか?
そのファイルのオプションの設定は「共有モード」になっています。
Access2000の方はその現象が起きません。
ということは、バージョン換えでインポートするときにおかしくなってしまったのでしょうか?
よろしければ教えてください。

Aベストアンサー

> このレ点の意味は何だったでしょうか?

LAN上ではなくStand Aloneでの確認結果ではありますが、このマークは、Accessのメニューで
「ツール(T)→オプション(O)」で表示される『オプション』ダイアログの『詳細』タブで、『既定の開く
モード』を「排他モードで開く」に設定した場合に表示されるもののようです。
(「共有モードで開く」にした場合に、「開く(O)」にチェックが入らないことを考えると、片手落ちな
 気もします・・・)

なお、この設定は、ファイルに対してではなく、アプリケーションに対してのものになります。
(Windowsのスタートメニューなどからアプリケーションのみを起動した場合には、Accessの
 メニュー上で「オプション(O)」が使えないようになっていたり、複数のAccessファイルを開くと、
 それぞれの『オプション』ダイアログで別々の値を指定できる(=他方での設定が、リアルタイム
 に反映されない)など、確かに誤解を招きかねない動作かと思いますが)


> Access2003の方を排他モードで開こうとするとファイルが開けません。
> (中略) 他の誰かが開いているときは開けません。誰も開いていないときは開けます。

私の知る限り、Accessには少なくとも2種類の「排他モード」があります。
ひとつは、上記『オプション』ダイアログで設定する『既定の開くモード』としての排他モードで、
もうひとつは、『ファイルを開く』ダイアログの『開く』ボタンで「排他モードで開く(V)」を指定した
場合の排他モードです。
(なお、上記『既定の開くモード』で「排他モードで開く」を指定した場合は、後者の操作をしても、
 前者と同じ「排他モード」になってしまうので注意が必要)

で、ご質問の内容からすると、375kさんが見慣れているのは「前者の排他モード」で、一方、
現在の状況は「後者の排他モード」と思われます。

<最初のユーザーが、「前者の排他モード」でファイルを開いていた場合>
 次のユーザーが、同じ排他モードでそのファイルを開こうとすると、「他のユーザーがこの
 データベースを開いているか、排他モードで開く権限がないため (中略) このデータベースを
 共有モードで開きます。」というメッセージが出ます。(→ファイル展開可)

<最初のユーザーが、「後者の排他モード」でファイルを開いていた場合>
 次のユーザーがそのファイルを開こうとすると、『既定の開くモード』の設定や、『ファイルを
 開く』ダイアログでの指定内容に関係なく、「'○○.mdb'は既に使用されているので、使用でき
 ませんでした。」というメッセージが出ます。(→ファイル展開不可)

*同一PC上で上記動作を確認する場合、2度目の展開時には、Windowsのスタートメニュー等
 からAccessを起動させてから、『ファイルを開く』ダイアログを使ってファイルを開いて下さい。
 (ファイルのダブルクリックによる起動だと、ウィンドウが切り替わるだけになる場合があります)


従って、他の方が使用中に開けなるということは、先に開いている方が「後者の排他モード」を
使用していると推測されますので、共有モードで開くように依頼してみて下さい。


※上記はAccess2003で確認しましたが、Access2000でも同様の仕様だったと思います。
  ですので、もし同じ条件下で2000と2003での動作が異なるのだとすると、仰るようにエラーを
  起こしているのかもしれません。


・・・長文、失礼致しました。

> このレ点の意味は何だったでしょうか?

LAN上ではなくStand Aloneでの確認結果ではありますが、このマークは、Accessのメニューで
「ツール(T)→オプション(O)」で表示される『オプション』ダイアログの『詳細』タブで、『既定の開く
モード』を「排他モードで開く」に設定した場合に表示されるもののようです。
(「共有モードで開く」にした場合に、「開く(O)」にチェックが入らないことを考えると、片手落ちな
 気もします・・・)

なお、この設定は、ファイルに対してではなく、アプリケーションに...続きを読む

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

Q「○○○.ldb」のAccess レコード ロック情報←このファイルが消えません

windows-nt、officeはAccess2003です。

Access97から2003に変換したファイルを、なんら問題なく、半年使っていました。
メンテナンスは「shift+enter」の排他モードで開き、度々行っていました。

ですが突然いつものように、メンテをして閉じたのですが、「Access レコード ロック情報」のファイルが消えません。
ファイルを全て閉じても、このファイルのユーザーが自分になったままになっています。
レコードロック情報のファイルを消したいのですが、どうしたらよいでしょうか??

もぅ、ギブアップです・・・

説明がうまくなくて、申し訳ありませんが、どなかた解決して頂けたらと思います。
宜しくお願い致します!!

Aベストアンサー

ldbファイルは共有データベースでロックされているレコードとロックしているユーザーを特定するために使用されます。最後のユーザーがデータベースを終了するとldbファイルは自動的に削除されますがmdbに損傷などある場合は残ってしまうことがあります。ldbファイルにはデータベースを開いているユーザーの一覧が含まれている程度なのでldb ファイルが存在する場合は対応するmdbファイルを閉じてから削除します。
削除が出来ない場合はPCを再起動してください。再起動して残っている場合。削除できるはずです。

QACCESSに同時アクセス(編集)をしたい

教えてください。
ACCESSのDBに複数のユーザが同時にアクセスして、
データを追加・編集したいのですが、
やはり、不可能でしょうか?

Aベストアンサー

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして
データベースを操作することは可能です。いくつかの方法がありますが、
昔私が簡便に行なっていた方法は「テーブルのリンク」です。

あるコンピュータにアクセスでdb1という名前のデータベースを作って
ここにデータを格納しておきます。

他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。

このdb2というデータベースのメニューで

「ファイル」->「外部データの取り込み」->「テーブルのリンク」

というのがありますから、最初に作ったdb1をたどり、リンクしたいテーブルを
選択します。

こうすることにより、db2にdb1のテーブルがリンクされ(リンクテーブルと
呼ばれます。アイコンが通常のテーブルと違います。)、db1に格納された
データをdb2で編集することができます。

db2で、db1からのリンクテーブルを元にクエリーを作成することもできます。
リンクテーブルに対してできないことはテーブル構造の変更くらいで
他のことはだいたいできると思っていいかと思います。

このような形をとれば、ローカルエリアネットワーク内の複数のコンピュータ
から同時に同じアクセスデータベースにアクセスすることは可能かと思います。

このやり方にはおそらく問題もあるだろうと思うのですが、昔私がやって
いた頃は、特段支障もなく業務を行なうことができました。問題は、これを
読んだ他の誰かが指摘してくださるかと思います。

同じレコードに複数ユーザが同じタイミングでアクセスするとややこしい
ことになります。これを回避するためには、db2にワークテーブルを備えておき、
リンクテーブルからレコードを一度db2に格納し、編集を終了したのちに
リンクテーブルのレコードを削除し、ワークテーブルで編集したレコードを
リンクテーブルに追加する、などのルーティンをマクロやVBAで構築するのが
よいかと思います。私はそのようにしていました。

他に、ADOを使う方法などもあります。方法はいくつかありますから、
少し研究してみるといいですよ。(^-^)

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして
データベースを操作することは可能です。いくつかの方法がありますが、
昔私が簡便に行なっていた方法は「テーブルのリンク」です。

あるコンピュータにアクセスでdb1という名前のデータベースを作って
ここにデータを格納しておきます。

他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。

このdb2というデータベースのメニューで

「ファイル」->「外部データの取り込み」->「テーブルのリンク」
...続きを読む

QAccessを開くと「排他モードじゃないので変更しても保存できない」との旨の表示が出てしまう。

「Access 2000」を使用して顧客管理用のデータベースを作成し、複数のパソコンで使用できるように原本を共有ドキュメントに入れて、ネットワーク上の他のパソコンではショートカットを作成し、それぞれがそのデータベースを開いたり編集したり出来るようにしています。

しかし、特定のパソコンだけそのデータベースを開く際に「現在、このデータベースは排他モードでアクセスしていません。変更しても、後で保存できない可能性があります。」と表示され、中身を編集したり保存出来ないようになっています。

たしかに、「規定の開くモード」は「共有モード」になっており、排他モードにはしていないです。

この設定で会社の大多数のパソコンでは上記メッセージが出ることなくちゃんと編集ができるのに、どうして特定のパソコンだけこのようなメッセージが表示されて編集を保存できないのでしょうか?
現在の設定のまま使えるようにするための方法はありますでしょうか?

まだAccessを使い始めたばかりで、記載した情報も少ないかもしれませんが、何か分かりましたら教えてください。

「Access 2000」を使用して顧客管理用のデータベースを作成し、複数のパソコンで使用できるように原本を共有ドキュメントに入れて、ネットワーク上の他のパソコンではショートカットを作成し、それぞれがそのデータベースを開いたり編集したり出来るようにしています。

しかし、特定のパソコンだけそのデータベースを開く際に「現在、このデータベースは排他モードでアクセスしていません。変更しても、後で保存できない可能性があります。」と表示され、中身を編集したり保存出来ないようになっています。

...続きを読む

Aベストアンサー

> 特定のパソコンだけそのデータベースを開く際に「現在、このデータベースは排他モードで
> アクセスしていません。変更しても、後で保存できない可能性があります。」と表示

<可能性・1>
ご質問の「特定のパソコン」の『既定の開くモード』が「共有モード」で、「大多数のパソコン」では
「排他モード」になっているのだとすると、「現在の設定のまま」というのは難しいと思います。
(逆にいうと、ご質問の現象が『既定の開くモード』に起因したものなら、その設定の変更で対応
 できるはず、ということ)

なお、Accessの「排他モード」には、私が知る限り少なくとも2種類あります。
で、『既定の開くモード』で指定する「排他モード」であれば、Access2000では、実際には他の
人が使用中であっても、同じファイルを開くことができたと思いますので、まずはその設定を
変更することで問題が解決できないか、確認されてみてはいかがでしょうか。

2種類の排他モードについての参考として、以前の回答へのリンクを載せておきます:
http://oshiete1.goo.ne.jp/qa3688575.html
※念のため今回再試したところ、『既定の開くモード』の「排他モード」でも、重複起動させると
  「使用できませんでした」とのメッセージが返されました。(Access2003にて確認)
  もしかしたら、Office2003 SP2でこの辺りは修正が掛かったかもしれません。
  ただ、今回のご質問のAccess2000では、従来の動作のままのはずですので、試してみる
  価値はあるかと思います。


<可能性・2>
他の大多数のパソコンでも『既定の開くモード』が「共有モード」だとすると、上記の話は
成り立ちません。
・・・というより、同時に使用している場合、他のパソコンでも「後で保存できない可能性が」
とのメッセージが出るはずの状況です。(Accessの仕様として、そうなっているはず、と)

この場合は、念のため、他のパソコンのショートカットのリンク先が、本当にネットワーク上の
原本を開く形になっているか、確認してみてください。
というのは、Accessによるの運用方法として、「データを保存するテーブルのみのファイル」と
「フォームなど、テーブル以外のものからなるファイル」の二つを作成して、後者から前者に
テーブルのリンクを張る(リンクテーブル)、というものがあり、他のパソコンのショートカットが、
実は各パソコンにコピーされたファイル(フォームなど+リンクテーブル)にリンクしたもの、
という可能性が考えられるためです。
※これは、shocola_ttさん以外の方がそのデータベースを作成されたと想像しての回答です。

この構成の場合は、「特定のパソコン」にその原本のコピーを作成して、作業はこのファイル
で行う、という形にすれば、問題が解決すると思います。
(上記の通りなら、原本内にあるのはテーブルではなくリンクテーブルなので、入力/編集の
 対象となるデータ自体は共有されていることになります)

> 特定のパソコンだけそのデータベースを開く際に「現在、このデータベースは排他モードで
> アクセスしていません。変更しても、後で保存できない可能性があります。」と表示

<可能性・1>
ご質問の「特定のパソコン」の『既定の開くモード』が「共有モード」で、「大多数のパソコン」では
「排他モード」になっているのだとすると、「現在の設定のまま」というのは難しいと思います。
(逆にいうと、ご質問の現象が『既定の開くモード』に起因したものなら、その設定の変更で対応
 できるはず、というこ...続きを読む

QAccessのマクロでモジュールを実行させたい。

Access2002を勉強中の初心者です。

AccessでDB1という名前のデータベースを作成し、その中で、モジュール1というモジュールを作成しました。これを実行するマクロを作成したく、次のようにマクロを作成しました。
マクロのデザイン画面でアクションに「プロージャの実行」を選択、プロージャ名入力覧の右側の...のボタンを押して式ビルダ画面を表示、ここの「関数」フォルダを開いてDB1を選択、表示されたモジュール1を貼り付けてOK。
しかし、このマクロを実行すると、次のエラーとなります。「DB1 指定されたDB1が見つけることができない関数名が含まれています」

根本的に方法が間違っているのでしょうか?
アドバイスをよろしくお願いします。

Aベストアンサー

#1です。

ちょっと時間ができたので、Accessのヘルプで、
 "RunCode/プロシージャの実行" アクション
についてのトピックを見てみました。

結論から言うと、基本的な考え方が間違っているみたいです^^;。

「プロシージャの実行」アクションでは、「Function」プロシージャを指定するようです。
Subプロシージャではエラーになります。


つまりご質問の件では、
「Subプロシージャを呼び出すFnctionプロシージャ」をまず書かなけれえばならない。
そして、マクロのアクションでは、あらためてこのFunctionプロシージャを指定しなければいけません。

QAccessの画面更新を一時的に停止する方法。

こんにちは。
Accessの画面更新を一時的に停止する方法を捜しています。
ExcelのScreenUpdatingと同様な機能です。

VBAでの更新処理時に画面がチラチラと動くのを防止したいと思っています。
(Ver:Access2000)
ご存知の方宜しくお願い致します。

Aベストアンサー

Application.Echo False '画面の描画を止める

・・・処理を実行する・・・

Application.Echo True '画面の描画を行う

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QDAOとADOの違いについて

Accessからイントラネット上のデータベースに接続するための接続方法で困っています。
DAOとADOの違いが分からず困っています。
メリット、デメリットが分かる方、どうか教えてください。

宜しくお願い致します。

Aベストアンサー

DAO(データアクセスオブジェクト)はAccessで使用されるMicrosoftJetデータベースエンジン を公開した最初のオブジェクト指向インターフェイスです。DAOは単一システムのアプリケーションや小規模でローカルなネットワークで使用するのに最も適しています。
とMSDNライブラリでは説明しています。
DAOはJetデータベースエンジンを対象にして開発されているのでJetのもつセキュリティ機能・データ定義機能などを十分に操作することができます。
ADO(ActiveXDataObjects)ではオブジェクトの種類が簡素化されているためJetデータベースエンジンの細かな機能を制御することができないといった点が不足している部分がありますがADOXやJROの各オブジェクトモデルで使用できる機能を使えばADOで不足している機能をほとんど補うことができます。
DAOはデータベースにAccessを使用するアプリケーションの場合、最大のパフォーマンスを得ることができます。しかしアプリケーションを運用していくうちに規模が大きくなってデータベースをSQLServerに移行することがあるかもしれません。
そのような可能性が含まれているのであれば最初からADOで開発しておいたほうが無難です。ADOはSQLServerに対する処理で良いパフォーマンスを得ることができます。

Jetデータベースエンジンを主なターゲットにしているならDAOで可。それ以外のデータベースを利用するのであればADOを選択する方が良いのではと思います。

DAO(データアクセスオブジェクト)はAccessで使用されるMicrosoftJetデータベースエンジン を公開した最初のオブジェクト指向インターフェイスです。DAOは単一システムのアプリケーションや小規模でローカルなネットワークで使用するのに最も適しています。
とMSDNライブラリでは説明しています。
DAOはJetデータベースエンジンを対象にして開発されているのでJetのもつセキュリティ機能・データ定義機能などを十分に操作することができます。
ADO(ActiveXDataObjects)ではオブジェクトの種類が簡素化されて...続きを読む


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

人気Q&Aランキング