我是MS Access的新手,希望我的问题很简单,但我还没能通过Google搜索找到明确的答案。
我有一个带有表的简单数据库,并且有一个必须具有唯一内容的字段子集。我了解如何进行设置,以便所有记录中的特定字段必须是唯一的,但我需要所有记录中的几个字段才能拥有唯一的内容。
例如,在一个记录中,只有一个字段,跨越字段4 - 10,在所有记录中,可以具有数字' 1'在里面。如果' 1'在记录A的字段5中,它也不能在记录F的字段8中。
作为类比,假设我们正在构建计算机,每台计算机都有1或2个视频卡。在数据库中,一些字段存储安装在该插槽中的视频卡的序列号。显然,序列号是唯一的,并且相同的卡不能安装在两个插槽中,无论是在同一台计算机中,还是在两台不同的计算机中。我需要数据库来防止用户输入重复的序列号。在示例图像中,在不同记录的不同字段中存在相同序列号的副本。不应该允许这样做。 example
是否有内置方法来实现此类用户输入检查?如果没有,我该如何实施呢?
答案 0 :(得分:2)
您需要一个唯一的复合索引。要做到这一点
Indexes
编辑器窗口Field Name
Unique
属性更改为Yes
Field Name
完成
编辑:
真正的问题是您需要规范化数据。 Slot #1
和Slot #2
不是真正的列。您需要像这样设置表格
并非我将所有三列都设为复合主键并且我将VideoCard
列编入索引以不允许重复
然后,当您输入错误数据时,您会收到此消息 在输入好的数据之前,它不会让你提交。
如果您需要像原始示例一样呈现您的数据,那么您可以在交叉表查询中执行此操作
将产生这样的结果