MS Access从主表单

时间:2015-09-16 20:59:04

标签: sql forms ms-access

背景资料

我的两个表在我的数据库问题中相互作用; tblCountry_LanguagetblTerritory_Country

tblCountry_Language是一种母婴关系,其中一个国家/地区可以使用多种语言。

tblCountry_Language包含CountryIDLanguageIDTerritoryID列。

tblTerritory_Country也是一个父母与子女的关系,其中一个地区可以有多个国家。

tblTerritory_Country只有TerritoryIDCountryID列。

记住这些信息,让我们看一下我构建的表单

enter image description here

外部表单位于国家/地区地区的前两个组合框中,是tblTerritoryCountry中记录的轮播。

其中的子表单来自tblCountry_Language,并且当前由CountryID连接到主表单。 I.E.,我在子表单中填写的每种语言都将记录与容器表单所在的国家/地区tblCountry_Language

我的问题

正如我所说,CountryID的关联关系在我的tblCountry_Language中成功记录了该国家。

我如何制作以便区域也可以记录在我的tblCountry_Language IE中,我可以同时获得国家领土记录在表格中。

1 个答案:

答案 0 :(得分:0)

没有必要在tblCountry_Language中记录TerritoryID,实际上这样做是错误的,因为它违反了数据库规范化原则。您可以使用查询来显示语言区域信息。 SQL如下

Select Distinct LanguageID,TerritoryID  from
tblCountry_Language INNER JOIN tblTerritory_Country
ON tblTerritory_Country.CountryID=tblCountry_Language.CountryID

另外,我建议将tblTerritory_Country重命名为tblCountry

我假设您还有tblLanguage和tblTerritory作为您在问题中提到的其他两个表的查找表。如果不是,我强烈建议您创建它们并将tblCountry_Language和tblTerritory_Country中的LanguageID和TerritoryID分别更改为查找字段。