我維護在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爲你(是的,它存在:))
而且還設計正確渲染,所以沒有錯誤在這一側。但正如我所說,它似乎沒有更新任何東西。
不要猶豫,告訴我,如果你需要更多的信息。
'recordToUpdate'和'originalRecord'之間不應該有JOIN? (即我認爲你需要一個可以更新的查詢) – Andre
*「看起來它沒有更新任何東西。」* - 當你運行查詢時會發生什麼?訪問是否說「更新了0條記錄」或是否有另一條消息? – Andre
嗨安德烈,我不能做一個聯接,因爲他們之間沒有唯一的標識符。我首先嚐試去做,但是我被困在ON上,因爲它可能導致更新錯誤的記錄。 @編輯: 「當您運行查詢時會發生什麼?Access是否說」更新了0條記錄「或者是否有另一條消息? 當我運行查詢時,它向我顯示了所有應更新的列,但沒有數據。當我刷新表格時,應該更新的記錄不是。 – Nicolas