Sql 在MS Access中使用更新查询跨5个表更新1个字段

Sql 在MS Access中使用更新查询跨5个表更新1个字段,sql,ms-access,multiple-tables,Sql,Ms Access,Multiple Tables,我有5个表,它们都有一个共同的字段,我想写一个查询,让我一次更新5个表中的1个字段。这可能吗? 这5个表名如下所示,都包含一个名为[Firm Name]的列 [Firm Contacts] [Firm Addresses] [Firms Last Updated] [Firm Size] [Marketing Groups] 到目前为止,我在MS Access中使用了更新查询设计视图,在5个表中内部联接[Firm Name]字段,但是它们仅联接到第一个表[Fir

我有5个表,它们都有一个共同的字段,我想写一个查询,让我一次更新5个表中的1个字段。这可能吗? 这5个表名如下所示,都包含一个名为[Firm Name]的列

[Firm Contacts]    
[Firm Addresses]    
[Firms Last Updated]    
[Firm Size]    
[Marketing Groups]
到目前为止,我在MS Access中使用了更新查询设计视图,在5个表中内部联接[Firm Name]字段,但是它们仅联接到第一个表[Firm Contacts]。我使用了下面的SQL代码来更新第一个表[Firm Contacts]中的记录,但是我不知道如何添加语言,使我能够同时更新下面4个表中的记录。公司名称经常变化,每个公司的名称都会发生变化,这是一件很麻烦的事情,所以我希望有一种方法可以一次完成所有的变更。在下面的例子中,我刚刚编造了公司名称“ABCDE”,但应该注意的是,公司名称“ABCDE”在所有5个表中都是相同的

UPDATE ((([Firm Contacts] INNER JOIN [Marketing Groups] ON [Firm Contacts].[Firm Name] = [Marketing Groups].[Firm Name]) INNER JOIN [Firms Last Updated] ON [Firm Contacts].[Firm Name] = [Firms Last Updated].[Firm Name]) INNER JOIN [Firm Size] ON [Firm Contacts].[Firm Name] = [Firm Size].[Firm Name]) INNER JOIN [Firm Addresses] ON [Firm Contacts].[Firm Name] = [Firm Addresses].[Firm Name] 
SET [Firm Contacts].[Law Firm] = "ABC"
WHERE ((([Firm Contacts].[Firm Name])="ABCDE"));

作为背景,在[Firm Contact]表中可能有数百条记录共享相同的[Firm Name],在[Firm Address]表中有几条记录,在其余表中有一条记录。我不确定这是否重要。非常感谢您抽出时间帮助我解决问题,因为我不习惯使用MS Access的更高级功能或SQL语言

表之间是否已经定义了关系?如果是这样,只需将关系设置为级联更新并更改父表中的公司名称,大概是
公司联系人
,您刚刚学到了一个关于使用自然主键而不是代理主键的宝贵经验:-)非常感谢!成功了。我不知道表之间的关系是如何工作的。由于您提供的链接,我能够修改我的Access数据库,因此它更具组织性和效率。非常感谢。