【问题标题】:Access database engine stopped the process because you and another user are attempting to change the same dataAccess 数据库引擎停止了进程,因为您和另一个用户正在尝试更改相同的数据
【发布时间】:2013-02-28 07:27:24
【问题描述】:

我们最近将访问数据库迁移到 SQL 服务器上。完成后,我们开始使用我们拥有的前端访问数据库测试数据库(我们之前的设置涉及两个访问文件,一个用于前端,一个用于后端。)我们几乎立即收到了错误。

Microsoft access 数据库引擎停止了该进程,因为您和另一个用户正试图同时更改相同的数据。

现在我们确实有多个人在这些前端工作,但在收到此消息时,我是唯一访问数据的人。我测试它的一般过程是使用表单插入数据。然后尝试删除数据。我知道数据正在进入表中,并且我知道我是唯一查看或尝试编辑此信息的人,我们使用 ODBC 连接将 SQL 服务器连接到前端。非常感谢您提供任何建议或帮助,我将密切关注此线程,因此希望您提出的任何问题都能相对较快地得到答复。

【问题讨论】:

  • 您是否有机会同时通过代码和表单进行更新?
  • 另外,您最近是否进行了压缩和修复以确保您的副本干净。
  • 我没有更新代码,我只是更改表单新记录中的信息并允许访问以处理所有内容。我没有压实和修复。让我检查一下。
  • 另见support.microsoft.com/…重新位数据类型。大概你也有一个主键?
  • 我压缩并修复了,但无济于事。

标签: sql-server-2008 ms-access ms-access-2010


【解决方案1】:

我在 SQL Server 中的表中添加了一个时间戳字段,并在访问中重新链接它,这样就成功了。它还解决了我在使用表格时遇到的编辑问题。希望这对其他人也有帮助。该表已经有一个主键字段,但显然还需要时间戳字段。

【讨论】:

    【解决方案2】:

    即使我没有位字段和可空字段,我也收到此错误。当我将 DATETIME 字段更改为 SMALLDATETIME 时,我不再收到错误消息。我唯一能想到的是 Access 错误地解释了日期,然后欺骗自己认为其他东西已经更新了日期。我之所以这么认为,是因为我在另一个线程上看到了另一个评论,Access 可以与 SQL Server 不同地进行舍入。

    【讨论】:

    • 对 Access 的最新 Office 365 更新使我的不再工作。将 SQL 后端表列更改为 SMALLDATETIME 使其再次工作。感谢您的提示。
    【解决方案3】:

    在 sql 中创建表列时尽量不要使用 GetDate() 作为默认值。这解决了我的问题。

    【讨论】:

      【解决方案4】:

      this article,你会发现错误可能是bit数据类型引起的:

      如果 SQL 中的字段具有位数据类型,则会出现此问题 基于服务器的数据库一直留空。微软访问 将空白字段解释为包含 Null 值的字段,并且 Jet 数据库引擎不会释放它们。结果,记录 保持锁定状态,不可删除。

      请注意,您必须始终拥有一个主键或唯一键才能从 SQL Server 更新数据。

      【讨论】:

      • 这个答案解决了我的问题实例。我正在使用 ODBC 与 MySQL 进行通信。
      • 对此的支持文章位于:support.microsoft.com/en-us/kb/318882 -- 不确定这是否是您最初链接的内容。
      • 对我来说,问题是由没有默认值的位字段引起的。向位字段添加默认值解决了它。
      【解决方案5】:

      使用压缩和修复数据库

      【讨论】:

        【解决方案6】:

        如上所述,我也遇到了这个问题,我想我会发布回复,因为 Microsoft 链接不再有效。

        我将 Access 数据库的后端迁移到 AWS 服务器上的 MySQL,我尝试从中添加或删除记录的任何相关表都会生成此线程标题的错误。

        我的解决方案是删除类型为“BIT”的字段,幸运的是,这是我重新开发数据库之前使用的旧字段,因此可以删除。

        【讨论】:

          【解决方案7】:

          我刚刚安装了 Access 2016,但在尝试从 accdb 导入 access 2013 表时出现错误。

          显然 2016 年的后端引擎现在是 SQL Server。我删除了一个我打算使用但从未使用过的字段,因此它充满了 Null。之后就没有问题了。

          【讨论】:

          • 用于 Access 的默认数据库引擎没有变化。对于 Access 已经存在的 23 多年,从 JET/ACE 数据引擎到 SQL Server 的完全更改可以在没有大量问题的情况下发生,这将是令人震惊的。 SQL Server 的空位问题已记录多年。此问题不适用于基于 accDB 文件的后端。您当然有可能使用 SQL 服务器,但基本访问产品没有变化,并且 15 年前的代码和 sql 在 2016 年的工作方式相同(因此没有进行任何更改)。
          • 感谢您的回复阿尔伯特。我尊重您的 cmets,多年来您所写的内容已多次帮助我。我刚刚完成了与 Microsoft 聊天的复查,他们已经两次向我确认它是 SQL Server。您可能有更好的联系方式来澄清这一点
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-23
          • 2015-09-01
          相关资源
          最近更新 更多