比较VBA中的两个表并插入值

时间:2016-10-20 06:44:55

标签: vba ms-access access-vba

我想比较来自两个不同数据库的数据,并在原始数据库中插入缺失值。

tableA我有姓名,姓氏和地址,在其他表中,tableB我有姓名,姓氏,地址,电话,邮编,标题,唯一代码。我需要将tableA的姓名和地址与tableB进行比较,如果我找到了匹配项,我需要在tableA中添加一个字段,并将该字段值存储在该特定记录中。

澄清一下,如果我想要匹配" John"," Smith"," 23 May Road"从tableAtableB找到匹配,我需要更新来自tableA的John Smith记录,并添加字段标题,电话,邮编和唯一代码。我尝试了内连接,但没有运气,花了差不多一天的时间用不同的组合。

有更好抓住加入的人请帮助我。

此致..

1 个答案:

答案 0 :(得分:0)

您可以在不使用任何代码/ VBA的情况下执行此操作。只需构建一个合适的查询。

请按照以下步骤操作:

  1. 创建新查询并添加两个表
  2. 拖动您想要的字段 从tableA匹配到tableB
  3. 中的相应字段
  4. 将查询类型更改为"查询"下的更新查询。菜单
  5. 通过从表格中向下拖动,将需要更新的字段从tableB(NOT tableA)添加到数据行
  6. 在"更新至:"在table中输入字段名,其中包含您希望用于更新tableB的数据。您需要包含文件名。例如,在电话下,键入" tableA.phone"。访问权限将更改为" [TableA]。[手机]。
  7. 从菜单中选择“查询”|“运行”来执行查询。
  8. 如果您有兴趣,这里是生成的Access SQL:

    UPDATE tableA 
    LEFT JOIN tableB ON (tableA.Address = tableB.Address) AND 
    (tableA.Surname = tableB.Surname) AND (tableA.Name = tableB.Name) 
    SET tableB.Phone = [tableA].[phone], 
    tableB.Zip = [tableA].[zip], 
    tableB.Title = [tableA].[title], 
    tableB.UniqueCode = [tableA].[uniqueCode];
    

    当然,您可以使用VBA解决方案,但这似乎是最简单的方法。