Wie behebt man den Access-Datenbankfehler 3022 “Die von Ihnen angeforderten Änderungen an der Tabelle waren nicht erfolgreich”?
Zusammenfassung: In diesem Blog wird über die verschiedenen Situationen und möglichen Ursachen gesprochen, die zu dem Access-Datenbankfehler 3022 führen können. Außerdem werden die Lösungen zur Behebung des Fehlers 3022 erörtert.
Der Zugriffsfehler 3022 “Die von Ihnen angeforderten Änderungen an der Tabelle waren nicht erfolgreich” kann in jeder dieser Situationen auftreten:
- Wenn Sie versuchen, einen neuen Datensatz in eine bestehende Tabelle mit einem “Autonummer”-Feld einzugeben
- Erstellen eines Formulars oder Berichts
- Beim Zugriff auf eine Datenbankdatei, die auf einer Netzwerkfreigabe gespeichert ist
Tipp! Wenn Sie Ihre unzugängliche Access-Datenbankdatei (.ACCDB/.MDB) schnell und ohne Datenverlust wiederherstellen möchten, verwenden Sie Stellar Repair for Access Software. Die Software hilft Ihnen, die Datenbankdatei zu reparieren und ihren gesamten Inhalt ohne Änderungen wiederherzustellen. Laden Sie das Access-Reparaturtool über den unten stehenden Link herunter, um seine Funktionalität zu überprüfen. |
Dies ist ein Microsoft Access-Laufzeitfehler, der mit der folgenden Meldung gemeldet wird:
Abbildung 1 – Microsoft Access-Fehler 3022
Mögliche Ursachen für den Zugriffsfehler 3022 und die Lösungen dafür
Nachfolgend finden Sie die möglichen Ursachen für den Fehler und die Lösungen:
Ursache 1 – Spezifikationssatz ist beschädigt
Nach Angaben von Microsoft kann der Access-Fehler 3022 aufgrund eines beschädigten Spezifikationssatzes auftreten.
Lösung – Verdichtung des Spezifikationssatzes
Versuchen Sie, den aktuellen Spezifikationssatz Ihrer Access-Datenbank zu komprimieren. Wenn die Komprimierung erfolgreich war, Sie aber immer noch den Access-Fehler 3022 beim Öffnen einer Berichtskomponente erhalten, exportieren Sie diese Komponente in einen neuen Spezifikationssatz oder erstellen Sie sie neu. Schlägt der Komprimierungsprozess jedoch fehl, versuchen Sie, die Datenbankdatei zu reparieren.
Ursache 2 – Problem mit der Access-Datenbank
Ihre Access-Datenbank kann sich aufgrund einer Beschädigung in der Tabelle anders verhalten.
Lösung – Komprimieren und Reparieren der Datenbank
Wenn Sie Ihre Datenbank kompaktieren und reparieren, kann das Problem behoben werden. Befolgen Sie diese Schritte:
- Öffnen Sie Ihre Access-Datenbank.
- Drücken Sie in dem nun erscheinenden Fenster auf das Kreuz (x), um die Datenbanktabelle zu schließen (siehe Abbildung unten).
Abbildung 2 – Schließen der Datenbanktabelle
- Klicken Sie auf die Registerkarte Datenbank-Tools und dann im Menü Tools auf Datenbank kompaktieren und reparieren.
Abbildung 3 – Wählen Sie Datenbank kompaktieren und reparieren
- Klicken Sie im Fenster Zu komprimierende Datenbank auf Durchsuchen, um die zu komprimierende und zu reparierende Datenbank auszuwählen. Doppelklicken Sie auf die Datenbank.
Sie finden die Kopie Ihrer komprimierten und reparierten Datenbank an demselben Ort wie die Originaldatenbank.
Ursache 3 – Das Autonummernfeld ist nicht korrekt belegt
Ein weiterer häufiger Grund, der zu MS Access-Fehler 3022 führen kann, ist, dass der Primärschlüssel Autonumber Feld nicht korrekt gesetzt ist.
Lösung – Manuelles Zurücksetzen des Autonummernfeldes
Es gibt zwei Methoden, um das Autonummernfeld manuell zurückzusetzen.
Methode 1: Verwendung einer Datendefinitionsabfrage
Sie können das Feld “Autonummer” zurücksetzen, indem Sie es löschen. Öffnen Sie dazu Ihre Tabelle in der Entwurfsansicht und fügen Sie sie dann erneut ein. Die detaillierten Schritte sind unten aufgeführt:
- Öffnen Sie eine Datenbank in Access, klicken Sie auf die Registerkarte Erstellen und wählen Sie in der Gruppe Abfragen die Option Abfrageentwurf.
Abbildung 4 – Abfrageentwurf auswählen
- Klicken Sie auf Schließen, wenn das Dialogfeld Tabelle anzeigen geöffnet wird.
Abbildung 5 – Schließen Sie das Feld Tabelle anzeigen
- Wählen Sie auf der Registerkarte Entwurf die Option SQL-Ansicht in der Gruppe Ergebnisse.
Abbildung 6 – SQL-Ansicht auswählen
- Geben Sie auf dem Bild Query1 den folgenden Code ein:
ALTER TABLE Table1 ALTER COLUMN AutoNumFieldName COUNTER(iMaxID,1);
Abbildung 7 – Abfrage in Access
- Führen Sie nun die obige Abfrage aus, indem Sie auf die Option Ausführen in der Gruppe Ergebnisse klicken.
Methode 2 – VBA-Code ausführen
Wenn Sie mit Visual Basic Application (VBA) neue Datensätze in eine Access-Tabelle eingegeben haben, gehen Sie wie folgt vor, um das Feld Autonummer zurückzusetzen.
- Klicken Sie in Access auf die Registerkarte Erstellen und dann auf Modul in der Gruppe Makros & Code.
Abbildung 8 – Modul auswählen
- Geben Sie nun den folgenden Code in den Visual Basic Editor ein.
Sub ResetAuto()
Dim iMaxID As Long
Dim sqlFixID As String
iMaxID = DMax(“”, “”) + 1
sqlFixID = “ALTER TABLE ALTER COLUMN COUNTER(” & & “,1)”
DoCmd.RunSQL sqlFixID
End Sub
Abbildung 9 – Code zum Zurücksetzen des AutoNumber-Feldes
- Klicken Sie auf Ausführen, um den obigen Code auszuführen.
Abbildung 10 – Option Ausführen
Öffnen Sie die Tabelle und versuchen Sie, einen neuen Datensatz einzufügen. Wenn dies den 3022-Laufzeitfehler nicht behebt, kann die Tabelle beschädigt sein. Verwenden Sie Stellar Repair for Access Software, um Ihre Datenbank zu reparieren und ihre Objekte, wie Tabelle, gelöschte Datensätze, Formulare, Module, etc. wiederherzustellen.
Schlussfolgerung
Der Access-Datenbankfehler 3022 kann auftreten, wenn Sie versuchen, einen neuen Datensatz in ein Autonummernfeld einzugeben. Der Fehler kann auch auftreten, wenn Sie versuchen, ein Formular oder eine Datenbankdatei zu öffnen. Vergewissern Sie sich, dass Sie die Ursache für diesen Fehler verstehen, bevor Sie die in diesem Blog besprochenen Lösungen umsetzen. Wenn Sie nicht in der Lage sind, auf die Datenbankdatei zuzugreifen, verwenden Sie die Software Stellar Repair for Access, um die Datenbank und ihre Objekte wiederherzustellen.