8

私はMSAccessデータベースに取り組んでいます。モジュールの1つにいくつかの変更を加えました。昼食に出かけたいのですが、データベースを閉じようとすると、次のメッセージが表示されます。

「データベースへの排他的アクセス権がありません。現在、設計変更を保存できません。変更を保存せずに閉じますか?」

ネットワーク上の他の誰もデータベースファイルを開いていないことは間違いありません。また、他のAccessデータベースも開いていません。私はおそらく明らかな何かを見逃していますが、本当に助けていただければ幸いです!

アップデート:

最後に、すべてのコードをコピーし、保存せずにデータベースを閉じ、再度開いてコードを貼り付けました。その後、データベースを保存することができました。これが1回限りだったかどうかはわかりませんが、再度発生した場合は報告します。

4

4 に答える 4

6

あなた以外にデータベースに誰もいないと確信している場合、それはあなた自身のPCからあなたのデータベースへの追加の接続です. これは、Microsoft から無料でダウンロードできる JetUtils.exe でダウンロードできる LDB ビューアーで確認できます。

http://support.microsoft.com/kb/176670

コードを調べて、既定のワークスペースに 2 つの別個のデータベース オブジェクトがあるかどうか、または別のワークスペースに別のデータベース オブジェクトがあるかどうかを確認します。それがこの問題を引き起こします。

これを修正するには、スコープ外になる前にデータベース オブジェクトが何も設定されていないことを確認します。また、データベース オブジェクトをコードで開いた場合は、データベース オブジェクトを何も設定しない前にそれを閉じる必要もあります。

于 2008-10-01T03:58:06.713 に答える
1

データベースを閉じて、誰も開いていないことが確実な場合は、.ldb ファイルがあるかどうかを確認してください (データベース ファイルと同じ名前になります)。ファイルがそこにある場合は、まだ使用されている可能性があります。ウェブサイトなどのサービスからのアクセスですか?

データベースを別のサブディレクトリにコピーして、変更を加えることができます。それがうまくいかない場合は、それを調べる必要があります。もちろん、「データベースの修復と圧縮...」というデータベースツールは常にあります。

ファイルはファイル サーバー上にありますか? その場合は、ユーザーがファイル ハンドルを持っているかどうかを確認してください。

それでもうまくいかない場合は、新しい情報で投稿を更新してください。

更新 (9/26): vba コードを含む Access データベースで奇妙な問題が発生したときに私が行うもう 1 つのことは、逆コンパイルです。これがまだ文書化されているかどうかはわかりません。何年も調べていませんが、(少なくとも) 文書化されていない msaccess への切り替えでした。

コマンドラインから:

ディレクトリを msaccess.exe のある場所に変更します。
次のコマンドを実行します

msaccess \ファイルにアクセスするパス\databasefile.mdb /decompile

通常、非常に迅速に実行され、データベースが開きます。モジュールを開いてコンパイルします。
常に機能するとは限りませんが、奇妙な出来事を取り除くことができる場合があります。

データベースを別のディレクトリにコピーして編集しようとしたことがありますか? それはうまくいったはずです。その後、元のファイルの名前を変更して、ファイルをコピーして戻すことができます。
何はともあれ、また活躍してくれてうれしいです。

于 2008-09-26T01:44:15.963 に答える
0

とてもシンプルです。すべての MSaccess ファイルを閉じます。タスク マネージャーを開きます (タスク バーを右クリックします)。その中の [プロセス] タブを選択します。リストにmsaccess*32プロセスがある場合は、[プロセスの終了] をクリックして閉じます。

これは私にとってはうまくいきました。コードで閉じていない、または強制的に閉じられているすべてのレコードセットを閉じると思います。

于 2016-04-01T08:09:05.690 に答える