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.

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

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:

  1. Starten Sie Den Zugriff.

  2. Öffnen Sie die Access-Datenbank.

    Hinweis

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

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

  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 SQL-Ansicht.

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

  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 unter Makro auf den Pfeil nach unten, und klicken Sie dann auf Modul.

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

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

  1. Erstellen einer neuen leeren Datenbank

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

    Field1: Autonumber (Primärschlüssel) Field2: Text

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

  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 SQL-Ansicht.

  8. Geben Sie Im Fenster Abfrage1 Folgendes 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 Table1, und versuchen Sie dann, einen neuen Datensatz hinzuzufügen. Sie erhalten die Fehlermeldung, die im Abschnitt "Symptome" erwähnt wird.