【发布时间】:2015-10-28 04:19:52
【问题描述】:
我在 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_CountryID 和 LanguageID。 tblTerritory_Country 只是一个一对多的表格,详细说明了属于每个领土的所有国家/地区。
问题:
对于新功能,我现在想从 tblTerritory_Country 引入 关联 CountryID,每个 LanguageID 都与 tblCountry_Language 配对
逻辑如下所示:
a)LanguageID 从tblCountry_Language 指向Territory_CountryID,
b) 我可以根据连接的Territory_CountryID 抓取CountryID Territory_CountryID
如何让 INSERT INTO 语句同时插入 LanguageID 和 CountryID ?
================================== 编辑#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,然后将其插入到 @ 987654344@.
【问题讨论】:
-
你不能。
insert只允许一个表。如果您想针对多个表,那么您将不得不使用多个插入 - 并且最好在事务中进行。 -
@MarcB - 我认为他将其插入到一个新表中,所以这是构建正确连接语句的问题。土豆汤,你能不能编辑这个问题来包含一些样本数据,即使它是编造的。我很难想象这些数据是如何相关的。
-
@JohnnyBones 我添加了表格的可视化,希望对您有所帮助。
-
有点不相关,但我看到人们经常这样做。
[Forms]![frmInput].[Form]![TerritoryID]- 里面的.Form是不必要的。这只是对frmInput的引用。你也可以Forms!frmInput.Form.Form.Form![TerritoryID],它也可以,但同样没必要。