Möglicherweise erhalten Sie eine Fehlermeldung, wenn Sie versuchen, einen neuen Datensatz in eine Tabelle einzufügen, die ein Feld für die automatische Zahl in Access enthält.
Ursprüngliche KB-Nummer: 884185
Symptome
Wenn Sie versuchen, einen neuen Datensatz in eine Tabelle einzufügen, die ein Autowert-Feld enthält, wird möglicherweise die folgende Fehlermeldung angezeigt:
Die von Ihnen vorgenommenen Änderungen an der Tabelle konnten nicht vorgenommen werden, da der Index, Primärschlüssel oder die Beziehung mehrfach vorkommende Werte enthalten würde. Ändern Sie die Daten in den Feldern, die gleiche Daten enthalten, entfernen Sie den Index, oder definieren Sie den Index neu, damit doppelte Einträge möglich sind, und versuchen Sie es erneut.
Hinweis
Die Tabelle darf keine Beziehungen oder Indizes aufweisen.
Ursache
Dieses Problem tritt auf, wenn das Feld "Autowert " falsch seeded wurde.
Lösung
Es gibt mehrere Methoden, die dieses Problem beheben können.
Methode 1: Ausführen von Komprimieren und Reparieren
Führen Sie die folgenden Schritte aus, um die Datenbank zu komprimieren:
Starten Sie Den Zugriff.
Öffnen Sie die Access-Datenbank.
Hinweis
Wenn das Dialogfeld Sicherheitswarnung angezeigt wird, klicken Sie auf Öffnen.
Klicken Sie auf die Registerkarte Datenbanktools im Menüband, und klicken Sie dann in der Gruppe Extras auf Datenbank komprimierung und reparieren.
Hinweis
Frühere Versionen von Access verfügen möglicherweise über die Option Datenbank komprimieren und reparieren an anderer Stelle. Informationen zu dieser Option finden Sie in der Dokumentation für Ihre spezifische Version von Access.
Verwenden Sie eine der folgenden Methoden, um den Startwert des Felds "Autowert " manuell zurückzusetzen.
Methode 2: Verwenden einer Datendefinitionsabfrage
Öffnen Sie die Datenbank mit der Tabelle (Back-End-Datenbank) in Access:
Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.
Klicken Sie im Dialogfeld Tabelle anzeigen auf Schließen.
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf SQL-Ansicht.
Geben Sie Im Fenster Abfrage1 Folgendes ein:
ALTER TABLE TableName ALTER COLUMN AutoNumFieldName COUNTER(iMaxID,1);
Hinweis
<TableName> ist ein Platzhalter für den Namen der <Tabelle. AutoNumFieldName> ist ein Platzhalter für den Namen des Felds Autowert . iMaxID ist ein Platzhalter für den aktuellen Maximalwert im Feld plus 1.
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ausführen.
Methode 3: Ausführen von Visual Basic for Applications Code
Klicken Sie auf der Registerkarte Erstellen unter Makro auf den Pfeil nach unten, und klicken Sie dann auf Modul.
Fügen Sie den folgenden Code in die Visual Basic-Editor ein.
Sub ResetAuto() Dim iMaxID As Long Dim sqlFixID As String iMaxID = DMax("<AutonumberFieldName>", "<TableName>") + 1 sqlFixID = "ALTER TABLE <TableName> ALTER COLUMN <AutonumberFieldName> COUNTER(" & <iMaxID> & ",1)" DoCmd.RunSQL sqlFixID End Sub
Hinweis
Der Platzhalter <AutonumberFieldName> steht für den Namen des Felds Autowert. Der Platzhalter <TableName> stellt den Namen der Tabelle dar.
Klicken Sie im Menü Ausführen auf Ausführen Sub/UserForm ausführen.
Hinweis
Sie müssen die Tabelle schließen, bevor Sie eine der beiden Methoden verwenden. Sie müssen die Abfrage oder das Modul nicht speichern, nachdem Sie eine der beiden Methoden erfolgreich verwendet haben.
Schritte zum Reproduzieren des Verhaltens
Erstellen einer neuen leeren Datenbank
Erstellen Sie eine neue Tabelle mit dem Namen Table1 , die die folgenden beiden Felder enthält:
Field1: Autonumber (Primärschlüssel) Field2: Text
Fügen Sie die folgenden sechs Datensätze zu Tabelle1 hinzu.
Field1 Field2 1 Ein 2 B 3 C 4 D 5 E 6 F Löschen Sie den Datensatz, in dem Field1 den Wert 3 aufweist.
Klicken Sie auf der Registerkarte Erstellen in der Gruppe Abfragen auf Abfrageentwurf.
Klicken Sie im Dialogfeld Tabelle anzeigen auf Schließen.
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf SQL-Ansicht.
Geben Sie Im Fenster Abfrage1 Folgendes ein:
INSERT INTO Table1 (Field1, Field2) SELECT 3 AS Field1, "C" AS Field2;
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ausführen.
Öffnen Sie Table1, und versuchen Sie dann, einen neuen Datensatz hinzuzufügen. Sie erhalten die Fehlermeldung, die im Abschnitt "Symptome" erwähnt wird.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für