Access新手求助:能否用桥接表联合键在另一表生成第三个值?
Access桥接表双主键生成组合值并同步到其他表的方案
先搞清楚:复合键(Compound Key)和组合键(Composite Key)的区别
其实在Access的语境里,这俩术语基本是一个意思——都是用多个字段共同作为主键,用来唯一标识桥接表里的每条记录(确保同一个ProvCode+CountryCode的组合不会重复)。不用纠结术语差异,你要创建的就是Access里的「组合主键」。
怎么给桥接表创建组合主键
- 打开桥接表的设计视图
- 按住Ctrl键,同时选中
ProvCode和CountryCode两个字段 - 点击工具栏上的「主键」图标(钥匙形状),这俩字段就会被设为组合主键,确保它们的组合值唯一。
把双主键的组合值填充到TravelLocation表的方法
你的需求完全可以实现,下面是两种常用方案:
方案1:一次性批量更新(用更新查询)
如果只需要一次性把现有桥接表的组合值同步到TravelLocation表,用这个方法:
- 打开Access的「查询设计」,添加你的桥接表(比如
Province_Country)和TravelLocation表,通过关联字段把两个表连起来(比如如果TravelLocation表也有ProvCode和CountryCode,就用这两个字段建立关联) - 在查询设计网格里,选中
TravelLocation表的TravelLocation字段,在「更新到」行输入:
(中间的[Province_Country].[ProvCode] & "-" & [Province_Country].[CountryCode]-可以换成你想要的分隔符,比如空格、下划线都行) - 点击「运行」按钮,确认更新后,TravelLocation字段就会被填充为两个主键的组合值。
方案2:实时自动同步(用数据宏)
如果以后桥接表新增或修改记录时,希望TravelLocation表的字段自动更新,用Access的「数据宏」:
- 打开桥接表的设计视图,点击顶部「表格工具」选项卡的「创建数据宏」,选择「在插入后」和「在更新后」(两个都要加,确保新增和修改都同步)
- 在数据宏设计界面,添加「更新记录」操作:
- 选择要更新的表:
TravelLocation - 设置匹配条件:
[ProvCode] = [TravelLocation].[ProvCode] And [CountryCode] = [TravelLocation].[CountryCode] - 设置要更新的字段:
TravelLocation=[ProvCode] & "-" & [CountryCode]
- 选择要更新的表:
- 保存数据宏,以后桥接表的记录有变化时,TravelLocation表的对应字段会自动更新。
内容的提问来源于stack exchange,提问作者Arthwys Ironhand
相关产品推荐
相关产品推荐

