重建关系链接

时间:2017-06-28 15:00:01

标签: ms-access ms-access-2010

所以我遇到了一个问题/问题(Sorting error in one field of Report),这导致了我当前的问题。

我有两个表(Owners and Boats)曾经通过字段Boat_Owner - (Boat Table上的数字字段)和Owner_ID - (所有者表上的主键自动编号)加入了一个关系。由于问题,Boat Table上的数字字段中的数据类型已从数字更改为短文本。

所以现在关系不再有效,结果我得到'数据类型不匹配'错误。

两张桌子都是完好无损的,桌子船只有355个独特的条目,桌子拥有295个独特的条目,有些业主拥有不止一条船。两个表中的自动编号ID仍然完好无损,例如我知道Boat 401找到了所有者33的所有权。遗憾的是,由于上述字段数据类型问题,我无法弄清楚如何重新建立表关系。

我想我可以运行一个追加查询,将一个owner_ID字段作为数字字段重新建立到Boat表中。

从这一点开始,我将手动输入所有owner_ID。远非理想,因为其中有295个。我一直在使用excel来匹配一个电子表格中的两个表格,但如果有人有更好的程序,我愿意接受建议。

如果它确实有效,我的想法是我可以重新建立两个表之间的关系。

我不确定我是否会采用最佳方法,或者即使这是正确的方法。

如果有人提出意见,我愿意接受建议。如果有的话,我会发布我的进展。

1 个答案:

答案 0 :(得分:0)

  

现在该列包含文本形式的名称。

然后您可以执行以下操作:

Boats中创建一个新列:Owner_ID数字,长整数。

然后通过所有者名称从连接中填充此列以及UPDATE查询:

UPDATE Boats INNER JOIN Owners
  ON Boats.Boat_Owner = Owners.Owner_Name
SET Boats.Owner_ID = Owners.Owner_ID

如果名称重复(John Smith),则会有错误的分配,您必须手动更正这些名称。

如果正确分配了所有Owner_ID,您可以创建新的1:n关系,现在从Owners.Owner_IDBoats.Owner_ID

之后你应该删除Boats.Boat_Owner列,它现在没用了。