Fel (I en ForEachRecord kan endast de poster för det understa ForEachRecord redigeras eller tas bort.) när du kör ForEachRecord-datamakro i Access

Ursprungligt KB-nummer:   982781

Symptom

När du kör makrot ForEachRecord-data i Microsoft Access visas följande meddelande:

I ForEachRecord kan endast de poster för det yttersta ForEachRecord redigeras eller tas bort.

När du har klickat på OK ser du att namnet på det problematiska makrot visas i fönstret Stega genom makrot tillsammans med Felnummer: 2950.

Dessutom kan du inte använda ett EditRecord-makro eller ett CreateRecord-makro i en inre slinga i ForEachRecord-datamakroet.

Orsak

Det här problemet uppstår eftersom makroinstruktionen RedigeraPost-data och makroinstruktionen Ta BortPost-data bara stöds när de körs på följande postuppsättningar:

  • En överordnad postuppsättning.
  • Den översta postuppsättningen som är av en överordnad/underordnad relation.

Den här begränsningen är enligt design. Det beror på att datamakro inte är kapslade som transaktioner. Om ett systemfel uppstår under en ForEachRecord-slinga kan ForEachRecord-loopen starta om på fel ställe när databasen startas om. Det här problemet kan leda till att dubblettvärden anges i Access-databasen eller att ett annat makro oavsiktligt tas bort.

Lösning

Du kan komma runt det här problemet genom att ändra datamakro så att det kapslade Makrot ForEachRecord-data inte använder åtgärden RedigeraPost eller SkapaPost.

Mer information

Felet som beskrivs i avsnittet "Symptom" visas också i kolumnen Beskrivning i USysApplicationLog. Felnumret kan se annorlunda ut i USysApplicationLog.