如何在Access 2016中创建查询和表之间的一对多关系?

问题描述 投票:0回答:2

enter image description here

上面是表“人物”

enter image description here

以上是基于表“人物”的查询“计数国家”的SQL视图

enter image description here

以上是基于表“人物”的查询“计数国家”的数据表视图

enter image description here

上面是另一张名为“城市名单”的表

enter image description here

为什么我不能在Query“Count Country”和Table“City List”之间创建一对多的关系?

ms-access ms-access-2016
2个回答
0
投票

你所描述的听起来像级联(依赖)组合框。因此,如果您没有States表,则cbxCountry的RowSource可以是SELECT DISTINCT Country FROM CityList;。然后由cbxCountry SELECT City FROM CityList WHERE Country=[cbxCountry];过滤cbxCities的RowSource。移动到另一条记录时和/或更改cbxCountry中的选择时,您将需要代码来重新查询cbxCity。

如果您希望表单显示不同的国家/地区,则RecordSource可以是相同的DISTINCT查询。然后代码打开关联城市的表单:

DoCmd.OpenForm "Cities", , , "Country='" & Me.Country & "'"


0
投票

您只能在表之间创建具有引用完整性的关系。此外,两个字段必须具有相同的数据类型,并且左侧的字段(拖动到另一侧的字段)必须是该表的主键(或者至少具有唯一的索引,不允许Null值)。

创建没有参照完整性的关系的唯一原因是告诉Access数据是如何相关的,因此当您将这两个表添加到查询时,Access将自动连接这两个表(或者就像表和查询一样)。此外,Access在处理数据表时可能会自动创建“子数据表”。

要“自动”构建跳转到城市的表单,请使用表单向导并添加查询和表格中的字段。

© www.soinside.com 2019 - 2024. All rights reserved.