2017-08-26 49 views
0

我有一個主表tblBudget包含了像操作必須使用一個可更新的查詢訪問錯誤

ProjID Type Budget Active 
101  ROM 100  No 
101  PLE 110  No 
101  DLE 120  Yes 
102  ROM 200  No 
102  PLE 210  Yes 

條目每個月我得到一個excel我導入並存儲到一個臨時表tblMonthlyBudget包含像

ProjID Type Budget Active 
101  EAC 100 Yes 
102  DLE 110 Yes 

條目我寫了嘗試更新tblBudget所有Active條目更新查詢更改爲否,以便插入最活躍的新記錄。我的查詢是

UPDATE tblBudget 
INNER JOIN tblMonthlyBudget 
     ON tblBudget.ProjectId = tblMonthlyBudget.ProjectID 
SET tblBudget.Active = false 

但是我得到的錯誤

操作必須使用一個可更新的查詢

即使查詢似乎在數據表和設計視圖顯示正確。我只在執行查詢時纔得到它。我試圖尋找錯誤,並嘗試了各種各樣的組合,但沒有成功。歡迎任何替代方法。 我懷疑這是因爲臨時表包含多個記錄。

+0

通常在兩個源表(沒有查詢),這樣的更新應該工作。這兩者必須有結構。你的意思是什麼*臨時表*? – Parfait

+0

'tblBudget'是否有主鍵?如果是,那是什麼? – Andre

+1

@非常感謝您的幫助。我想出了基於這個問題,我試圖更新基於與交叉表查詢聯接的表。當我將交叉表查詢的結果插入臨時表時,問題得到了解決。 – Anup

回答

0

我試圖使用您提供的數據和表結構複製您的問題。但更新按我的預期工作。如果tblMonthlyBudget中有重複的條目,它仍然可以工作 - 它只會更新過多的次數。請閱讀mcve,並使用實際產生錯誤的數據和表結構來更改您的問題。否則,我們幾乎沒有希望幫助你。

+0

感謝Jonathan,我想出了這個問題,tblMonthlyBudget是一個轉換另一個表的交叉表查詢。當我將交叉表查詢的結果插入臨時表時,問題得到了解決。出於某種原因,訪問不允許我使用交叉表查詢來更新基於聯合的表。 – Anup

+0

是在連接更新時訪問限制性很強。很高興你修好了它。 –

相關問題