网络路径的 Microsoft Access DBEngine.OpenDatabase() 中断 - 错误 3050

Posted

技术标签:

【中文标题】网络路径的 Microsoft Access DBEngine.OpenDatabase() 中断 - 错误 3050【英文标题】:Microsoft Access DBEngine.OpenDatabase() breaks for Network-Paths - Error 3050 【发布时间】:2021-12-15 14:00:40 【问题描述】:

我们有一个运行多年的前端和后端数据库的 Access 数据库解决方案。

现在在过去两天内出现了问题。例如

        Set db = DBEngine.OpenDatabase(strDatabasePath, False, True, "MS Access;PWD=" & strPassword)

是否会导致错误 3050 - 无法锁定文件。仅当后端数据库在网络共享上时(如果它在本地驱动器上,一切都按预期工作)。

错误发生在任何共享上:

Windows PC 中的共享文件夹 NAS 上的共享 (Samba) 文件夹 独立是通过 UNC 路径 (\server\share) 还是映射的驱动器路径访问共享。

错误是由错误的 Office 补丁引入的(似乎是 V2111 - 14701.20240)

在这篇文章的第一个版本中,我认为是 Windows 更新 KB5008212 导致了问题。

感谢@Gustav 发现问题。

我们如何知道 MS 何时愿意解决问题?

【问题讨论】:

我找到了解决方法here 【参考方案1】:

来自微软:

这是由于今天(补丁星期二)对 Office 的更新。问题 由安全修复程序引入,因此它会影响所有活动版本 使用权。我们正在努力修复,并将尽快交付 可能。

更新只设置为自动更新很小 用户百分比,看起来我们可以暂停 自动更新,因此不会传播。

会有一个页面添加到

Fixes or workarounds for recent issues in Access (microsoft.com),

这将是去的地方 更新。

这些是引入问题的更新:

KB 5002104 for Office 2013
KB 5002099 for Office 2016
Office 2019 Version 1808, build 10381.20020
Office LTSC 2021 Version 2108, build 14332.20204
Microsoft 365 Apps:
    Current Channel Version 2111, build 14701.20248
    Monthly Enterprise Channel Version 2110, build 14527.20340
    Monthly Enterprise Channel Version 2109, build 14430.20380
    Semi-Annual Enterprise Channel (Preview) Version 2108, build 14326.20692
    Semi-Annual Enterprise Channel Version 2102, build 13801.21086
    Semi-Annual Enterprise Channel Version 2008, build 13127.21842

如果您确实更新到其中一个版本,唯一的解决方案是 目前是回到频道中较早的版本。

【讨论】:

没有了。 :( 以上内容是否在某处公开可用?- 感谢您提供信息,如果您获得新信息,请更新。 我不知道。该网站将是我发布的链接。我会留意的。 谢谢@Gustav。回到早期版本解决了这个问题。初始问题已更新。 该问题现在有一个页面:support.microsoft.com/en-us/office/…(状态:正在调查) 现在强制更新。这将获得问题已解决的版本 2111(构建 14701.20262 单击并运行)【参考方案2】:

我们遇到了同样的问题。

从 OfficeWeb-Portal 卸载 Office 365(32 位)并重新安装 Office 365(32 位)似乎可以解决问题。

【讨论】:

...直到再次安装更新。 此 MS KB article 解释了如何恢复到早期版本的 Office 并禁用自动更新。【参考方案3】:

实际上,安装 2008 版为我解决了这个问题。 Microsoft 昨天(2022 年 1 月 11 日)刚刚发布了版本 2108 和 2112 的新版本,这也为我解决了同样的问题。

【讨论】:

请不要破坏您的帖子。通过在 Stack Exchange 网络上发帖,您已在 CC BY-SA 4.0 license 下授予 Stack Exchange 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 Stack Exchange 政策,帖子的非破坏版本是分发的版本,因此,任何破坏行为都将被撤销。如果您想了解更多关于删除帖子的信息,请参阅:How does deleting work?【参考方案4】:

我们的表现方式不同。我似乎得到了很多孤立的锁文件。用户在进入数据库时​​遇到了一些问题,但通常如果我删除锁定文件并让他们等待 5 分钟,问题就会消失。自此开始以来,它一直是一个游戏,每天将备份运行到一个单独的文件以防万一。你知道什么是主要的痛苦。我会留意这里出现的情况。谢谢大家(是的,这更像是评论而不是答案,但我需要更多字符)

【讨论】:

以上是关于网络路径的 Microsoft Access DBEngine.OpenDatabase() 中断 - 错误 3050的主要内容,如果未能解决你的问题,请参考以下文章

使用Microsoft Access创建文档数据库

Microsoft Office 12.0 Access 数据库引擎 OLE DB Provider

(Necessitas)Microsoft sql db access在打开时出错

将 Java 连接到网络驱动器上的 Access DB

Microsoft Office 12.0 Access 数据库引擎 OLE DB 提供程序问题

使用 Microsoft.Jet.OLEDB.4.0 从 C# 将行插入 Access db,自动编号列设置为零