2017-07-18 149 views
-1

我維護在Access中開發的應用程序。我必須實施更新查詢,但目前我很困難,我不明白爲什麼。Access數據庫更新查詢

基本上,查詢必須更新來自表X的另一條記錄之後的記錄,但是我寫的查詢不做任何事情,我單獨測試了更新和select,它們都工作,但一起,不。

我希望你們中的一些人可能會發現我的問題。

這裏是我寫的查詢(我做了刪除某些領域,以避免過長,當然,你會看到測試查詢,以確保它不是缺場的問題)

UPDATE 
    TABLE_X AS recordToUpdate, 
    (
    SELECT 
     DUP_C2B_From_CPL.[NUM-GrpHdr], 
     DUP_C2B_From_CPL.[NUM-LOT], 
     DUP_C2B_From_CPL.[SINGLE-SCENARIO], 
     DUP_C2B_From_CPL.EqvtAmt, 
     DUP_C2B_From_CPL.EqvtAmtCur, 
     DUP_C2B_From_CPL.EqvtAmtCurTft, 
     DUP_C2B_From_CPL.XchgRateInfExchangeRate, 
     DUP_C2B_From_CPL.XchgRateInfRateType, 
     DUP_C2B_From_CPL.XchgRateInfContractId, 
     DUP_C2B_From_CPL.ChqTp 

     FROM DUP_C2B_From_CPL 
    ) AS originalRecord 

SET 
    recordToUpdate.EqvtAmt = originalRecord.EqvtAmt, 
    recordToUpdate.EqvtAmtCur = originalRecord.EqvtAmtCur, 
    recordToUpdate.EqvtAmtCurTft = originalRecord.EqvtAmtCurTft, 
    recordToUpdate.XchgRateInfExchangeRate = originalRecord.XchgRateInfExchangeRate, 
    recordToUpdate.XchgRateInfRateType = originalRecord.XchgRateInfRateType, 
    recordToUpdate.XchgRateInfContractId = originalRecord.XchgRateInfContractId, 
    recordToUpdate.ChqTp = originalRecord.ChqTp 

WHERE 
    recordToUpdate.[SINGLE-SCENARIO] = 112811 

DUP_C2B_From_CPL這是一個檢索我感興趣的記錄的子查詢,所以我可以通過它的值來更新另一個。

在過去的WHERE關閉,我硬編碼更多的可讀性id爲你(是的,它存在:))

而且還設計正確渲染,所以沒有錯誤在這一側。但正如我所說,它似乎沒有更新任何東西。

不要猶豫,告訴我,如果你需要更多的信息。

+0

'recordToUpdate'和'originalRecord'之間不應該有JOIN? (即我認爲你需要一個可以更新的查詢) – Andre

+1

*「看起來它沒有更新任何東西。」* - 當你運行查詢時會發生什麼?訪問是否說「更新了0條記錄」或是否有另一條消息? – Andre

+0

嗨安德烈,我不能做一個聯接,因爲他們之間沒有唯一的標識符。我首先嚐試去做,但是我被困在ON上,因爲它可能導致更新錯誤的記錄。 @編輯: 「當您運行查詢時會發生什麼?Access是否說」更新了0條記錄「或者是否有另一條消息? 當我運行查詢時,它向我顯示了所有應更新的列,但沒有數據。當我刷新表格時,應該更新的記錄不是。 – Nicolas

回答

1

你可以嘗試下面的東西。

UPDATE 
    Table1 AS t1 
    INNER JOIN Table1 AS t2 
    ON t1.Field1 = t2.Field2 
SET 
    T1.Field1 = t2.field1 

如果沒有任何連接,那麼你可以嘗試像下面

UPDATE Table1 t1 , Table1 t2 
SET T1.Field1 = t2.field1 
where t1.field1 = 'aa' and t2.field1 = 'bb' 
+0

謝謝Jatin爲你輸入,但它不起作用,它仍然是相同的結果,沒有什麼改變,我嘗試去適應你的第二個查詢的SELECT,並且我有正確的結果,但隨着更新,不。 – Nicolas

0

那麼,出於某種原因,我不得不重新啓動我的筆記本電腦,並且查詢工作了。

謝謝你的幫助。