自从我认真使用Access并且我正在努力解决问题以来,已经很长时间了!这些天我对SQL更加满意了!
我有两张桌子,让我们说顾客和RelationshipStatus(我为了说明的目的而制作这些表格!)。在我的Customer表中,我有一个RelationshipStatusID
列(类型:数字),它链接到RelationshipStatus表的ID
(主键,类型:自动编号)列。标准的一对多联接。
我还检查了Enforce Referential Integrity
框的联接,因为我不希望人们能够在RelationshipStatusID
列中输入一个不是RelationshipStatus中有效ID的值表,或者能够删除Customer表中相关记录的关系状态。
最后,在加入类型中,我已指定"包括来自'客户'的所有记录。并且只有来自关系状态'的记录。连接字段相等的位置"。
问题是这种关系是可选的。我希望能够创建没有链接RelationshipStatus记录的客户记录。但是,当我尝试编辑新客户记录的子表单中的数据时,我收到错误"您无法添加或更改记录,因为表格中需要相关记录' RelationshipStatus'。 / p>
我已经对此进行了一些搜索,我认为我的问题可能是我的客户(RelationshipStatusID
)中的外键列的默认值为0,这显然不是有效的ID。 RelationshipStatus表。但是,我无法删除表定义中的默认值,或将其设置为NULL。
我做错了什么?强制执行参照完整性是否强制要求链接记录?如果没有,我如何删除外键列的默认值(我认为)导致错误?
答案 0 :(得分:0)
在我的情况下,问题确实是表格设计中我的外键列的默认值0,但由于某些原因,我在编写问题时无法删除默认值。重新启动PC后(周末关闭,也许有帮助!)我能够删除外键列中的默认值,一切都很顺利。