2017-06-20 77 views
0

所以我相信下面的查詢可以在除Access以外的任何其他數據庫中工作。我得到'必須是可更新的查詢'錯誤。我應該如何重做? (通常我會將INNER JOIN放在查詢的UPDATE部分,但我認爲我不能在這個例子中)。MS Access中必須是可更新的查詢錯誤

UPDATE MASTER_DATA 
    SET VS_ID = (SELECT VS_ID FROM MASTER_VS_AND_BUILDING WHERE VALUE_STREAM = 'TERMINAL') 
WHERE MATERIAL_NUMBER = 'Z12345678' 
+0

請介紹這兩個表的架構。事實上,這兩個表或其中一個查詢? * VS_ID *是主鍵嗎?這是一對一,一對多的行更新嗎? – Parfait

+0

MASTER_VS_AND_BUILDING保存VS_ID的主鍵。它與MASTER_DATA有一對多的關係。我需要根據VALUE_STREAM獲取VS_ID,並將VS_ID放在MASTER_DATA表中。 – JimT

+0

請舉例說明兩個表的示例數據。 – Parfait

回答

0

也許使用DLookup():

UPDATE MASTER_DATA 
    SET VS_ID = DLookup("VS_ID", "MASTER_VS_AND_BUILDING", "VALUE_STREAM = 'TERMINAL'") 
WHERE MATERIAL_NUMBER = 'Z12345678'