所以我遇到了一个问题/问题(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来匹配一个电子表格中的两个表格,但如果有人有更好的程序,我愿意接受建议。
如果它确实有效,我的想法是我可以重新建立两个表之间的关系。
我不确定我是否会采用最佳方法,或者即使这是正确的方法。
如果有人提出意见,我愿意接受建议。如果有的话,我会发布我的进展。
答案 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_ID
到Boats.Owner_ID
。
之后你应该删除Boats.Boat_Owner
列,它现在没用了。