Er kan een foutbericht worden weergegeven wanneer u een nieuwe record probeert in te voegen in een tabel met een veld voor automatisch nummeren in Access

Origineel KB-nummer: 884185

Symptomen

Wanneer u probeert een nieuwe record in te voegen in een tabel met een veld Autonummering , wordt mogelijk het volgende foutbericht weergegeven:

De wijzigingen die u in de tabel hebt aangevraagd, zijn niet geslaagd omdat ze dubbele waarden in de index, primaire sleutel of relatie zouden maken. Wijzig de gegevens in het veld of de velden die dubbele gegevens bevatten, verwijder de index of herdefinieer de index om dubbele vermeldingen toe te staan en probeer het opnieuw.

Schermopname van het foutbericht na het invoegen van een nieuwe record in een tabel.

Opmerking

De tabel heeft mogelijk geen relaties of indexen.

Oorzaak

Dit probleem treedt op wanneer het veld Autonummering onjuist is gezaaid.

Oplossing

Er zijn meerdere methoden die dit probleem kunnen oplossen.

Methode 1: Comprimeren en herstellen uitvoeren

Voer de volgende stappen uit om de database te comprimeren:

  1. Start Access.

  2. Open de Access-database.

    Opmerking

    Als u het dialoogvenster Beveiligingswaarschuwing ziet, klikt u op Openen.

  3. Klik op het linttabblad Hulpmiddelen voor databases en klik vervolgens in de groep Hulpprogramma's op Database comprimeren en herstellen.

    Opmerking

    In eerdere versies van Access kan de optie Database comprimeren en herstellen zich elders bevinden. Raadpleeg de documentatie voor uw specifieke versie van Access om deze optie te vinden.

Gebruik een van de volgende methoden om het veld voor autonummering handmatig opnieuw in te stellen.

Methode 2: Een gegevensdefinitiequery gebruiken

Open de database met de tabel (back-enddatabase) in Access:

  1. Klik op het tabblad Maken op Queryontwerp in de groep Query's .

  2. Klik in het dialoogvenster Tabel weergeven op Sluiten.

  3. Klik op het tabblad Ontwerpen op SQL-weergave in de groep Resultaten .

  4. Typ het volgende in het venster Query1 :

    ALTER TABLE TableName ALTER COLUMN AutoNumFieldName COUNTER(iMaxID,1);
    

    Opmerking

    <TableName> is een tijdelijke aanduiding voor de naam van de <tabel. AutoNumFieldName> is een tijdelijke aanduiding voor de naam van het veld Autonummering . iMaxID is een tijdelijke aanduiding voor de huidige maximumwaarde in het veld plus 1.

  5. Klik op het tabblad Ontwerpen op Uitvoeren in de groep Resultaten .

Methode 3: Visual Basic for Applications-code uitvoeren

  1. Klik op het tabblad Maken op de pijl-omlaag onder Macro en klik vervolgens op Module.

  2. Plak de volgende code in de Visual Basic-Editor.

    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
    

    Opmerking

    De tijdelijke aanduiding <AutonumberFieldName> vertegenwoordigt de naam van het veld Autonummering. De tijdelijke aanduiding <TableName> vertegenwoordigt de naam van de tabel.

  3. Klik in het menu Uitvoeren op Sub/UserForm uitvoeren.

    Opmerking

    U moet de tabel sluiten voordat u een van beide methoden gebruikt. U hoeft de query of de module niet op te slaan nadat u een van de methoden hebt gebruikt

Stappen voor het reproduceren van het gedrag

  1. Een nieuwe lege database maken

  2. Maak een nieuwe tabel met de naam Table1 die de volgende twee velden bevat:

    Veld1: Veld autonummering (primaire sleutel) 2: Tekst

  3. Voeg de volgende zes records toe aan Table1.

    Veld1 Veld2
    1 A
    2 B
    3 C
    4 D
    5 E
    6 F
  4. Verwijder de record waarvan Veld1 de waarde 3 heeft.

  5. Klik op het tabblad Maken op Queryontwerp in de groep Query's .

  6. Klik in het dialoogvenster Tabel weergeven op Sluiten.

  7. Klik op het tabblad Ontwerpen op SQL-weergave in de groep Resultaten .

  8. Typ het volgende in het venster Query1 :

    INSERT INTO Table1 (Field1, Field2) SELECT 3 AS Field1, "C" AS Field2;
    
  9. Klik op het tabblad Ontwerpen op Uitvoeren in de groep Resultaten .

  10. Open Table1 en probeer een nieuwe record toe te voegen. U ontvangt het foutbericht dat wordt vermeld in de sectie Symptomen.