PRB:错误 80004005 "Microsoft Jet 数据库引擎无法打开文件" (未知) "
2020/9/28
适用于:
Microsoft Access
本文内容
备注
Office 365 ProPlus 正在重命名为 适用于企业的 Microsoft 365 应用。 有关此更改的详细信息, 请阅读此博客文章。
症状
使用 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 数据库。
此错误可能是由委派问题导致的。 检查身份验证方法 (基本与 NTLM) (如果有)。 如果连接字符串使用 (UNC) 的通用命名约定,请尝试使用基本身份验证或绝对路径(如 C:\Mydata\Data.mdb.)。 即使 UNC 指向 IIS 计算机的本地资源,也会出现此问题。
当您访问的本地 Microsoft Access 数据库链接到网络服务器上的 Access 数据库中的表时,也可能会发生此错误。
解决方案
以下项目对应于前面的原因列表:
检查对文件和文件夹的权限。 请确保您能够创建和/或销毁任何临时文件。 临时文件通常在与数据库相同的文件夹中创建,但也可以在其他文件夹(如 WINNT 文件夹)中创建文件。
如果使用的是数据库 (UNC 或映射驱动器) 的网络路径,请检查对共享、文件和文件夹的权限。
验证文件和数据源名称 (DSN) 未标记为 "独占"。
"其他用户" 可能是 Microsoft Visual InterDev。 关闭任何包含到数据库的数据连接的 Visual InterDev 项目。
简单. 使用使用本地驱动器号的系统 DSN。 如有必要,请将数据库移动到要测试的本地驱动器。
参考
若要检查文件访问失败,请使用 Windows NT 文件监视器。 若要下载文件监视器,请参阅下面的 Sysinternals 网站: