PRB: エラー 80004005 "Microsoft Jet データベース エンジンでファイル '(unknown)' を開くことができません"

現象

ActiveX データ オブジェクト (ADO) または ODBC を使用して Microsoft Access データベースに接続すると、次のエラー メッセージが表示されることがあります。

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.

原因

このエラー メッセージには、いくつかの原因があります。

  • Microsoft Internet Information Server (IIS) が使用しているアカウント (通常は IUSR) には、ファイル ベースのデータベースまたはファイルを含むフォルダーに対する正しいWindows NTアクセス許可がありません。
  • ファイルとデータ ソース名は、排他としてマークされます。
  • 別のプロセスまたはユーザーが Access データベースを開いています。
  • このエラーは、委任の問題が原因である可能性があります。 認証方法 (Basic と NTLM) (存在する場合) を確認します。 接続文字列で汎用名前付け規則 (UNC) を使用する場合は、基本認証または C:\Mydata\Data.mdb などの絶対パスを使用してみてください。 この問題は、UNC が IIS コンピューターに対してローカルなリソースを指している場合でも発生する可能性があります。
  • このエラーは、テーブルがネットワーク サーバー上の Access データベース内にあるテーブルにリンクされているローカルの Microsoft Access データベースにアクセスする場合にも発生する可能性があります。

解決方法

次の項目は、前の原因の一覧に対応しています。

  • ファイルとフォルダーのアクセス許可を確認します。 一時ファイルを作成または破棄する機能があることを確認します。 通常、一時ファイルはデータベースと同じフォルダーに作成されますが、ファイルは WINNT フォルダーなどの他のフォルダーにも作成される場合があります。

    データベース (UNC またはマップされたドライブ) へのネットワーク パスを使用する場合は、共有、ファイル、およびフォルダーに対するアクセス許可をチェックします。

  • ファイルとデータ ソース名 (DSN) が排他としてマークされていないことを確認します。

  • "他のユーザー" は Microsoft Visual InterDev です。 データベースへのデータ接続を含む Visual InterDev プロジェクトを閉じます。

  • 簡素 化。 ローカル ドライブ文字を使用するシステム DSN を使用します。 必要に応じて、データベースをローカル ドライブに移動してテストします。

関連情報

ファイル アクセスエラーをチェックするには、Windows NT ファイル モニターを使用します。 ファイル モニターをダウンロードするには、「 Windows Sysinternals」を参照してください。