錯誤 (在 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 中的錯誤號碼可能不同。