使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

上次更新时间: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 中最新问题的修补程序或变通方法

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×