在将记录添加到链接表时,访问VBA以避免与主键冲突

时间:2012-03-19 20:04:01

标签: linked-list access-vba primary-key-design

因此,这个问题的根源可能在于糟糕的数据库设计,其中一些设置方式是从旧版本继承而来。我无法找到更好的方法来做到这一点。

我有四个表由同一个字段链接:[OBJECTID]。每个表都链接到一个控制数据的Access窗体。重要的是这些表是分开的,因为数据是地理参考的并且需要单独映射,但是默认情况下它们会相互继承几个字段。

大多数情况下,这些表是一对一的一对一关系,但偶尔会有第一个表的数据,有时只有第二个表的数据,第三和第四种形式。

现在,第一个表中的[OBJECTID]字段设置为数据类型autonumber,以便其他表中的所有后续链接记录都可以继承该数字。对于未通过Form1输入Tbl1中的记录的情况,只需分配一个与当前数字不冲突的数字,但如何避免分配可能与将来产生的某些[OBJECTID]冲突的数字通过Tbl1中的自动编号字段?

很抱歉,如果这令人困惑!提前感谢帮助我思考......

1 个答案:

答案 0 :(得分:0)

如果设计正确,则应该在tbl1和表2/3/4之间存在与参照完整性的关系。既然你提到occasionally, there is only data for the second, third and fourth form这意味着我们在这里没有参照完整性: - /。

我会识别所有4个表共有的字段,并创建一个“主”表,这意味着主表必须填充。然后你创建一个1到0,1关系到其他4个表,与外部联接,他们的PK蜂鸣,然后是长整数。

对于表单1到4的源,请使用MainTable和T1 / 2/3/4之间的外部联接。然后“子表”将继承主表的PK。

希望我不会太晦涩。