扩展SQL INSERT INTO语句(MS Access)

时间:2015-10-27 19:19:33

标签: sql ms-access access-vba

我在Access VBA中有一个当前的INSERT INTO函数,如下所示:

INSERT INTO tblTest
SELECT  tblCountry_Language.Language ID
FROM    tblCountry_Language
        INNER JOIN tblTerritory_Country
            ON tblCountry_Language.Territory_CountryID = tblTerritory_Country.Territory_CountryID
WHERE   tblTerritory_Country.TerritoryID = "& [Forms]![frmInput].[Form]![TerritoryID]&";"

按预期工作;它基本上从tblCountry_Language中获取与用户表单的区域规范匹配的列出语言。

注意:tblCountry_Language具有唯一ID Country_LanguageID以及字段Territory_CountryIDLanguageIDtblTerritory_Country只是一对多表格,详细列出了属于每个地区的所有国家/地区。

问题: 对于新功能,我现在想要从CountryID引入关联的 tblTerritory_Country,其中每个LanguageID都与{tblCountry_Language配对1}}

逻辑看起来如下:

a)LanguageIDTerritory_CountryID指示tblCountry_Language

b)我可以根据已连接的CountryID

抓取Territory_CountryID Territory_CountryID

如何使INSERT INTO语句插入 LanguageIDCountryID

=================================编辑#1 =========== =====================

这是表格的可视化:

tblTerritory_Country
Territory_CountryID -----TerritoryID ----- CountryID
                      |                |

tblCountry_Language
Country_LanguageID ----- Territory_CountryID ----- LanguageID
                     |               |               


tblTest
TestID ----- LanguageID ----- CountryID -----.....(More Irrelevant IDS)
         |                |               | ............

我想在当前的INSERT INTO语句中添加一些内容,将匹配的Country_ID三角化为内连接中使用的Territory_CountryID,并使用该ID从tblTerritory_Country中获取CountryID然后将其插入tblTest

1 个答案:

答案 0 :(得分:0)

只需指定字段。

INSERT INTO tblTest (LanguageID, CountryID)
SELECT  tblCountry_Language.LanguageID, tblTerritory_Country.CountryID
FROM    tblCountry_Language
INNER JOIN tblTerritory_Country ON tblCountry_Language.Territory_CountryID = tblTerritory_Country.Territory_CountryID
WHERE   tblTerritory_Country.TerritoryID = "& [Forms]![frmInput].[Form]![TerritoryID]&";"