錯誤 (在 ForEachRecord 內,當您在 Access 中執行 ForEachRecord 數據宏時,只能編輯或刪除最外層 ForEachRecord 的記錄。)
原始 KB 編號: 982781
徵狀
當您在 Microsoft Access 中執行 ForEachRecord 數據宏時,您會收到下列訊息:
在 ForEachRecord 中,只能編輯或刪除最外層 ForEachRecord 的記錄。
按兩下 [ 確定] 之後,您會看到 [ 宏單一步驟 ] 視窗顯示有問題宏的名稱,以及 錯誤號碼:2950。
此外,您無法在 ForEachRecord 數據宏的內部迴圈中使用 EditRecord 宏或 CreateRecord 宏。
原因
之所以會發生此問題,是因為只有在下列記錄集上執行EditRecord資料宏指令和DeleteRecord資料宏指令時,才支援這些宏指令:
- 父記錄集。
- 父系/子系關聯性的最外層記錄集。
這是設計上的限制。 這是因為數據宏不是巢狀為交易,如果在 ForEachRecord 循環期間發生系統失敗,ForEachRecord 迴圈可能會在資料庫重新啟動時於不正確的位置重新啟動。 此問題可能會導致在 Access 資料庫中輸入重複的值,或可能導致意外引發另一個宏。
因應措施
若要解決此問題,請變更數據宏,讓巢狀 ForEachRecord 數據宏不會使用 EditRecord 宏指令或 CreateRecord 宏指令。
其他相關資訊
[徵兆] 區段中所描述的錯誤也會列在 USysApplicationLog 的 [ 描述 ] 數據行中。 不過,USysApplicationLog 中的錯誤號碼可能不同。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應