[英]Correcting Run-Time Error 3554 MS Access
我在MS Access表單上運行VBA驅動的SQL。
在此測試語句中,我試圖基於另一個表引導的Territory_CountryID
插入LanguageID
信息。
以下是我的代碼:
INSERT INTO tblTest
SELECT tblCountry_Language.LanguageID
FROM tblCountry_Language
WHERE Territory_CountryID =
(SELECT tblTerritory_Country.Territory_CountryID
FROM tblTerritory_Country
WHERE tblTerritory_Country.TerritoryID = "& [Forms]![frmInput]![frmInput_Terms].[Form]![CountryID] &");"
運行SQL時,我收到運行時錯誤3554,說
“此子查詢最多可以返回一條記錄”
我了解此錯誤意味着什么; 一個查詢只能在其子查詢中使用一個“鍵”進行搜索。
如果我想返回所有連接到Territory_CountryID
的語言,該怎么辦? IE,根據返回的所有Territory_CountryID
搜索?
謝謝。
SQL關鍵字IN
允許您通過逗號分隔列表(例如: (512, 513, 514)
)或返回多個值的子查詢來指定一組數據作為過濾條件,如上所述。
您的第四行應更改為:
WHERE Territory_CountryID IN
我希望這有幫助。
-C§
當簡單的JOIN
可以滿足條件時,為什么還要在WHERE
子句中運行子查詢:
INSERT INTO tblTest
SELECT tblCountry_Language.LanguageID
FROM tblCountry_Language
INNER JOIN tblTerritory_Country
ON tblCountry_Language.Territory_CountryID =
tblTerritory_Country.Territory_CountryID
WHERE tblTerritory_Country.TerritoryID =
"& [Forms]![frmInput]![frmInput_Terms].[Form]![CountryID] &";"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.