1

因此,当我最初设置我的 Access 表并需要帮助修复它(尽可能容易)时,我犯了一个小错误。

我有一个表称为Locations(小表,10 行)和另一个Encounter Data表(大表,100,000 行)。Encounter Data有一个指向 的查找列Locations

我犯的错误是将位置名称而不是其主键存储在Encounter Data列中。现在,显然,如果我在Locations表中更改特定项目的名称,则查找Encounter Data失败。我应该做的是存储主键(然后我可以Locations自由编辑所有信息)。

我要解决这个问题。

但我不确定如何在新列中插入正确的 ID 来代替名称。

我的想法是简单地添加一个新列,正确创建查找(存储主键),然后执行以下任一操作:[1]Encounter Data按位置对我进行排序并像在 excel 中一样进行快速拖动/自动填充以匹配使用存储的名称查找正确的 ID 或 [2] 进行查找/替换...仅LocationWhoopsColumnLocationCorrectColumn.

但这些方法似乎都不可行。我的位置很少,但要修复很多行……我该如何快速做到这一点?手动逐行更改需要数小时甚至数天。

谢谢!~

4

2 回答 2

2

在其中创建新列LocationIdEncounter Data然后运行

UPDATE [Encounter Data] a INNER JOIN Locations b ON a.LocationName = b.Name
SET a.LocationId = b.id

检查结果,然后在满意时删除列 LocationName。

于 2013-01-04T21:10:17.237 回答
1

... 在 LocationWhoopsColumn 中找到一个值并在 LocationCorrectColumn 中输入正确的 ID

用于根据位置名称字段与 的匹配DLookup来检索主键值。 LocationsLocationWhoopsColumn

UPDATE YourBigTable
SET LocationCorrectColumn =
    DLookup(
        "pkey",
        "Locations",
        "location_name ='" & LocationWhoopsColumn & "'");

我猜“pkey”和“location_name”是Locations字段名;替换为您的真实姓名。

该更新可能不会很快,但希望这不会破坏交易,因为您只需要这样做一次。

于 2013-01-04T21:10:40.470 回答