MS Access - 根据不同列中的值更新另一个表中一个表中的列

时间:2016-07-06 18:38:22

标签: ms-access

一个表(名为Zip Table Definition)具有2位数或3位数的拉链及其相应的市场区域(POD),其样本值如下:

Zip    Market Area ID
350    AB_BIR
722    AR_LIT
850    AZ_PHO
T1     AB_CAL

另一个表(名为测试数据库)有一个名为 Origin Zip 的字段,带有完整的邮政编码(美国拉链为5位,加拿大拉链为6位),另一个名为 Origin POD 的字段需要从第一个表更新。基本上我们需要完整邮政编码的前三位数,然后使用该值从第一个表中查找相应的市场区域ID 。如果它没有返回值,那么我们将提取完整的zipcodes的前两位并进行查找。

我尝试在更新到行中使用带有 DLOOKUP 的更新查询(仅限前三位数字,不确定如何处理选择的逻辑2位数,如果3位数字没有返回值),但由于运行查询状态栏无法完成,查询似乎有问题。以下是我的询问:

  

字段:Origin POD

     

表:测试数据库

     

更新至:DLookUp([Zip Table Definition]。[Market Area ID]," Zip Table Definition",[Zip Table Definition]。[Zip] = Left([Test DB]。[Origin]拉链],3))

我知道在Excel中处理它会容易得多,但我想学习如何使用Access。任何见解和替代解决方案将不胜感激。

最好的问候。

1 个答案:

答案 0 :(得分:0)

如果你真的想将数据复制到第二个表并使用DLookup:

Update To: DLookUp("[Market Area ID]", "Zip Table Definition", "Zip='" & Left([Origin Zip], IIf(Len([Origin Zip])=5,3,2)) & "'")

相关问题