Möglicherweise wird eine Fehlermeldung angezeigt, wenn Sie versuchen, einen neuen Datensatz in eine Tabelle einzufügen, die ein Feld "Autowert" in Access enthält.

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.

Screenshot der Fehlermeldung nach dem Einfügen eines neuen Datensatzes in eine Tabelle.

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:

  1. Starten Sie Access.

  2. Öffnen Sie die Access-Datenbank.

    Hinweis

    Wenn das Dialogfeld "Sicherheitswarnung" angezeigt wird, klicken Sie auf "Öffnen".

  3. 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:

  1. Klicken Sie auf der Registerkarte "Erstellen" in der Gruppe "Abfragen" auf "Abfrageentwurf".

  2. Klicken Sie im Dialogfeld "Tabelle anzeigen " auf "Schließen".

  3. Klicken Sie auf der Registerkarte "Entwurf" in der Gruppe "Ergebnisse" auf die SQL-Ansicht.

  4. 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.

  5. Klicken Sie auf der Registerkarte "Entwurf" in der Gruppe "Ergebnisse" auf "Ausführen".

Methode 3: Ausführen von Visual Basic for Applications-Code

  1. Klicken Sie auf der Registerkarte " Erstellen " auf den Abwärtspfeil unter "Makro", und klicken Sie dann auf "Modul".

  2. 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 Sub
    

    Hinweis

    Der Platzhalter <AutonumberFieldName> stellt den Namen des Feldes "Autonummer" dar. Der Platzhalter <"TableName> " stellt den Namen der Tabelle dar.

  3. 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

  1. Erstellen einer neuen leeren Datenbank

  2. Erstellen Sie eine neue Tabelle mit dem Namen "Tabelle1 ", die die folgenden beiden Felder enthält:

    Feld1: Autonummer (Primärschlüssel) Feld2: Text

  3. 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
  4. Löschen Sie den Datensatz, in dem Field1 den Wert 3 hat.

  5. Klicken Sie auf der Registerkarte "Erstellen" in der Gruppe "Abfragen" auf "Abfrageentwurf".

  6. Klicken Sie im Dialogfeld "Tabelle anzeigen " auf "Schließen".

  7. Klicken Sie auf der Registerkarte "Entwurf" in der Gruppe "Ergebnisse" auf die SQL-Ansicht.

  8. Geben Sie Folgendes im Abfrage1-Fenster ein:

    INSERT INTO Table1 (Field1, Field2) SELECT 3 AS Field1, "C" AS Field2;
    
  9. Klicken Sie auf der Registerkarte "Entwurf" in der Gruppe "Ergebnisse" auf "Ausführen".

  10. Öffnen Sie Tabelle1, und versuchen Sie dann, einen neuen Datensatz hinzuzufügen. Sie erhalten die Fehlermeldung, die im Abschnitt "Symptome" erwähnt wird.