索引或主键不能包含一个空 NULL 值(错误 3058)

适用于:Access 2013 | Access 2016

可能的原因:

  • 您尝试添加新记录,但是未在包含主键的字段中输入值。

  • 您尝试将 Null 值添加到主键字段。

  • 您执行的查询尝试将 Null 值放入主键字段。

什么是主键?

主键是 Microsoft Access 表中的一个字段或一组字段,用于为表中每一行都提供一个唯一标识符。 在 Access 数据库等关系数据库中,您可将信息按主题划分到多个独立的表中。 随后,可利用表关系和主键告诉 Access 如何将该信息重新组合起来。 Access 使用主键字段可快速将多个表中的数据关联起来,并按照某种有意义的方式组合这些数据。

通常,唯一的标识号(如 ID 号、序列号或代码)充当表中的主键。 例如,你可能有一个“客户”表,其中每位客户具有唯一的客户 ID 编号。 客户 ID 字段就是主键。

例如,将名称或地址作为主键就是不恰当的选择。 这两个字段包含的信息可能会随时间而发生更改。

Access 确保每个记录在主键字段中都有一个值,并且该值始终是唯一的。

什么是 Null?

Null 是一个可在字段中输入或在表达式或查询中使用的值,用于表示缺少数据或数据未知。 在 Microsoft Visual Basic 中,Null 关键字指明 Null 值。 诸如主键字段之类的某些字段不能包含 Null

解决方案

为解决此问题,必须先在主键字段中输入值,然后再移至另一记录。

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。