Access 2010多列索引中不允许多个Null值

时间:2016-08-19 16:24:42

标签: indexing ms-access-2010

我正在尝试在 Access 2010 中创建一个表,该表不允许在两个字段中重复,但在其中一个字段中允许空值,前提是只有一个空值(所以没有重复值/ null)。

我的表格字段如下,ID字段设置为主键,计划是不允许CostCode/TeamID中的重复项,但TeamID对于每个实例都可以为空CostCode

Index Set Up

下面的图片显示,如果两个都有值,我就无法添加CostCodeTeamID两次,但我可以在{{1}中添加两次CostCode Null值}}。

enter image description here

无论如何要实现这个目标吗? 我已经读过我可以给TeamID一个空字符串的默认值(或者0,因为它永远不会是TeamID)但是我想尽可能使用Null,因为这是空字符串或0代表的。

修改
在JJ32的评论和周末思考之后我将TeamID值放入一个单独的表中。
然后,我会在TeamIDtbl_BranchDetail之间加入一对多人加入,并且在tbl_CostCodestbl_CostCodeM2MJoin之间加入许多2加入。

enter image description here

这将删除在Many-2-Many表中出现的Null值,我的查询现在将读作:

tbl_Teams

1 个答案:

答案 0 :(得分:0)

我不相信可以在唯一的复合索引中禁止重复的空值,因为没有两个Null被认为是相等的。

因此,在上面的示例中,您有三个唯一的行,一个是TBC / 1的组合,另外两个是TBC / null的组合。

遗憾的是,我知道的唯一答案是选择一些非空值来表示TeamID中的null,然后在应用程序中将结果显示为空。