最終更新日:2020 年 3 月 24 日
問題
Office 365 と以前のバージョンの Office の両方が MSI でインストールされていて、そのプログラムが OLEDB インターフェイスまたは ADO.Net インターフェイスを使用している場合、接続を終了した後でもデータベースがロックされていることを示すエラーが発生することがあります。
この問題は、Office 365 バージョン 2002 がインストールされており、以前のバージョンの Office が MSI 経由でインストールされている場合にのみ発生します。 たとえば、Office 365 および 2013 Access Runtime または 2010 Access データベース エンジン再頒布可能パッケージがインストールされている場合があります。
シナリオ
データベース ファイルへの接続を開いたり閉じたりした後に .Net プログラムのデータベース ファイルを削除しようとすると、次の例外が表示されることがあります。
System.IO.Exception:ファイルは別のプロセスで使用されているため、'このプロセスは'データベースへのパス' ファイルにアクセスできません。
データベースの場所を見ると、Ace データベース ロック ファイル (databasename.laccdb) は、引き続き存在しています。
通常は、数秒から数分の一定の時間が経過すると、ロック ファイルが削除され、データベースにアクセスできるようになります。
Office 365 のバージョン 2002 から、Office 365 に付属している Ace のバージョンは COM OLEDB インターフェイスのプロバイダーになりますが、以前のバージョンでは、MSI 製品に含まれる Ace のバージョンが使用されます。
動作には違いがあります。特にOffice 365では、接続は OLEDB リソース プールを使用するように既定で設定されますが、MSI では接続では既定ではプールが使用されていませんでした。 このような影響があるのは、接続が閉じたり破棄されたりした場合に、システムが再利用する可能性があり、接続がすぐに解除されないためです。 ただし、この場合は、プールが接続を解放するまでデータベース ファイルのロックが解除されないことがあります。
状態: 修正済み
この問題は修正されました。 Access を起動する場合は、[ファイル]、[アカウント]、[更新オプション]、[今すぐ更新] の順にクリックすると、最新バージョンであることが確認され、すべてのバージョンで利用可能な修正プログラムが適用されます。
バージョン 2002 (最新チャネル) を使用している場合、この問題はビルド 16.0.12527.20278 以降で修正されています。
バージョン 2003 (最新チャネル (プレビュー版)) を使用している場合、この問題はビルド16.0.12624.20176 以降で修正されています。
バージョン 2004 (ベータ チャンネル) を使用している場合、この問題はビルド 16.0.12705.10000 以降で修正されています。
その他のバージョンはこの問題の影響を受けません。