Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ursprüngliche KB-Nummer: 884185
Symptome
Wenn Sie versuchen, einen neuen Datensatz in eine Tabelle mit einem Autowertfeld einzufügen, wird möglicherweise die folgende Fehlermeldung angezeigt:
Die änderungen, die Sie an der Tabelle angefordert haben, waren nicht erfolgreich, da sie doppelte Werte im Index, Primärschlüssel oder in der Beziehung erstellen würden. Ändern Sie die Daten in dem Feld oder den Feldern, die doppelte Daten enthalten, entfernen Sie den Index, oder definieren Sie den Index neu, um doppelte Einträge zuzulassen, und versuchen Sie es erneut.
Hinweis
Die Tabelle hat möglicherweise keine Beziehungen oder Indizes.
Ursache
Dieses Problem tritt auf, wenn das Feld "Autonummer" falsch initialisiert wurde.
Beschluss
Es gibt mehrere Methoden, die dieses Problem möglicherweise beheben können.
Methode 1: Komprimieren und Reparieren
Führen Sie die folgenden Schritte aus, um die Datenbank zu komprimieren:
Starten Sie Access.
Öffnen Sie die Access-Datenbank.
Hinweis
Wenn das Dialogfeld "Sicherheitswarnung" angezeigt wird, klicken Sie auf "Öffnen".
Klicken Sie auf die Registerkarte "Datenbanktools" und dann in der Gruppe "Werkzeuge" auf "Datenbank komprimieren und reparieren".
Hinweis
In früheren Versionen von Access befindet sich die Option "Datenbank komprimieren und reparieren" möglicherweise an einer anderen Stelle. Sie können in der Dokumentation Ihrer spezifischen Access-Version nach dieser Option suchen.
Verwenden Sie eine der folgenden Methoden, um den Startwert für das Autonummer-Feld 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 die SQL-Ansicht.
Geben Sie Folgendes im Abfrage1-Fenster 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 "Autonummer". 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 " auf den Abwärtspfeil unter "Makro", und klicken Sie dann auf "Modul".
Fügen Sie den folgenden Code in den 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 SubHinweis
Der Platzhalter <AutonumberFieldName> stellt den Namen des Feldes "Autonummer" dar. Der Platzhalter <"TableName> " stellt den Namen der Tabelle dar.
Klicken Sie im Menü "Ausführen" auf "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 beide Methoden erfolgreich verwendet haben.
Schritte zum Reproduzieren des Verhaltens
Erstellen einer neuen leeren Datenbank
Erstellen Sie eine neue Tabelle mit dem Namen "Tabelle1 ", die die folgenden beiden Felder enthält:
Feld1: Autonummer (Primärschlüssel) Feld2: Text
Fügen Sie die folgenden sechs Datensätze zu Tabelle1 hinzu.
Feld1 Feld2 1 Ein 2 B 3 C 4 D 5 E 6 F Löschen Sie den Datensatz, in dem Field1 den Wert 3 hat.
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 die SQL-Ansicht.
Geben Sie Folgendes im Abfrage1-Fenster 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 Tabelle1, und versuchen Sie dann, einen neuen Datensatz hinzuzufügen. Sie erhalten die Fehlermeldung, die im Abschnitt "Symptome" erwähnt wird.