Applies ToMicrosoft 365 专属 Access Access 2021 Access 2019 Access 2016

上次更新时间:2020 年 1 月 23 日

问题

在 SQL Server 中创建指向包含标识列的表的链接时,Access 通常会将该列识别为自动编号列。

显示标识列被标识为自动编号字段

在 Office 365 和 Office 2016/2019 的 1912 版的当前频道内部版本 (16.0.12325.*) 中,不能正确识别标识列,反而是只会将其识别为数字。

标识列未被正确识别为自动编号

这种情况发生在通过用户界面或代码创建新链接时,但仅限于新链接。  现有链接不会受到影响,除非对链接进行刷新。

Access 使用正确的标识列标识来实现许多用途,因此这可能会以多种方式影响应用程序。

例如,标识列通常用于标识新添加的记录。  如果未使用标识列,Access 可能无法正确找到新添加的行,这将导致该行中的字段显示为 #Deleted。

显示系统表示已删除的字段的行

使用 RecordSet.LastModified 属性来检索上次添加的记录的值时,可能会看到类似的问题。 以下代码:

Set rst = CurrentDb().OpenRecordset("tblWithIdentityColumn")

rst.AddNew
rst!CompanyName = "Contoso"
rst.Update

rst.Bookmark = rst.LastModified
MsgBox rst!CompanyName

可能会导致错误 3167:

指示该记录已删除的错误。

在这两种情况下,系统将成功添加记录,但是 Access 将无法成功找到该记录。

Access 通常还会忽略直接更新标识列的尝试。 但是,在这些内部版本中,它会允许进行尝试但却无法成功,并且会生成一条错误消息:

[SQL Server] 当 IDENTITY_INSERT 设置为 OFF 时,无法在表 'tblOrders' 中插入标识列的显式值。(#544)

状态:已修复

版本 1912 现已提供此问题的修补程序。  可能需要显式强制更新以接收修补程序。  修复的内部版本号应为 12325.20344。

“预览体验计划 - 慢”(版本 2001)或“预览体验计划 - 快”(版本 2002)频道中尚未提供该修复程序, 如果你加入了这些频道,可能需要转到当前频道。

更改版本后,必须刷新任何受影响的链接,确保这些链接再次正常工作。

专家图标(大脑、齿轮)

询问专家

与专家联系,讨论最新资讯、更新和最佳做法,并阅读我们的博客。

Microsoft 技术社区

社区图标

在社区中获取帮助

提出问题,查找来自支持人员、MVP、工程师和其他 Office 用户的解决方案。

Office 论坛解答

功能请求图标(灯泡、想法)

推荐新功能

欢迎大家踊跃提出建议和反馈! 分享你的想法。 我们将认真听取你的建议。

提供反馈

另请参阅

Access 中最新问题的修补程序或变通方法

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。