Megosztás a következőn keresztül:


Hibaüzenet jelenhet meg, amikor új rekordot próbál beszúrni egy olyan táblába, amely tartalmaz egy Számláló mezőt az Accessben

Eredeti tudásbáziscikk száma: 884185

Jelenségek

Amikor új rekordot próbál beszúrni egy Számláló mezőt tartalmazó táblába, a következő hibaüzenet jelenhet meg:

A táblához kért módosítások nem voltak sikeresek, mert duplikált értékeket hoznak létre az indexben, az elsődleges kulcsban vagy a kapcsolatban. Módosítsa az ismétlődő adatokat tartalmazó mező vagy mezők adatait, távolítsa el az indexet, vagy definiálja újra az indexet, hogy engedélyezze a duplikált bejegyzéseket, majd próbálkozzon újra.

Képernyőkép a hibaüzenetről, miután beszúrt egy új rekordot egy táblába.

Megjegyzés:

Előfordulhat, hogy a tábla nem rendelkezik kapcsolatokkal vagy indexekkel.

A probléma oka

Ez a probléma akkor fordul elő, ha a Számláló mező helytelenül lett beállítva.

Megoldás

A problémát több módszer is megoldhatja.

1. módszer: Tömörítés és javítás végrehajtása

Az adatbázis tömörítéséhez kövesse az alábbi lépéseket:

  1. Indítsa el az Accesst.

  2. Nyissa meg az Access-adatbázist.

    Megjegyzés:

    Ha megjelenik a Biztonsági figyelmeztetés párbeszédpanel, kattintson a Megnyitás gombra.

  3. Kattintson az Adatbáziseszközök menüszalagfülre, majd az Eszközök csoport Adatbázis tömörítése és javítása elemére.

    Megjegyzés:

    Előfordulhat, hogy az Access korábbi verzióiban máshol található az Adatbázis tömörítése és helyreállítása lehetőség. A beállítás megkereséséhez tekintse meg az Access adott verziójának dokumentációját.

A Számláló mező kezdőértékének manuális alaphelyzetbe állításához használja az alábbi módszerek egyikét.

2. módszer: Adatdefiníciós lekérdezés használata

Nyissa meg a táblát tartalmazó adatbázist (háttéradatbázis) az Accessben:

  1. A Létrehozás lapon kattintson a Lekérdezések csoport Lekérdezéstervező elemére.

  2. A Tábla megjelenítése párbeszédpanelen kattintson a Bezárás gombra.

  3. A Tervezés lapon kattintson az EREDMÉNYEK csoport SQL-nézet elemére.

  4. Írja be a következőt a Lekérdezés1 ablakba:

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

    Megjegyzés:

    <A TableName> a tábla nevének helyőrzője <. Az AutoNumFieldName> a Számláló mező nevének helyőrzője. Az iMaxID a mező aktuális maximális értékének helyőrzője, plusz 1.

  5. A Tervezés lapon kattintson a Futtatás gombra az Eredmények csoportban.

3. módszer: Visual Basic for Applications kód futtatása

  1. A Létrehozás lapon kattintson a Makró alatti lefelé mutató nyílra, majd a Modul elemre.

  2. Illessze be a következő kódot a Visual Basic Szerkesztő.

    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
    

    Megjegyzés:

    Az AutonumberFieldName> helyőrző <a Számláló mező nevét jelöli. A TableName> helyőrző <a tábla nevét jelöli.

  3. A Futtatás menüben kattintson a Sub/UserForm futtatása elemre.

    Megjegyzés:

    Mindkét módszer használata előtt be kell zárnia a táblát. A lekérdezést vagy a modult nem kell mentenie a metódus sikeres használata után

A viselkedés reprodukálásának lépései

  1. Új üres adatbázis létrehozása

  2. Hozzon létre egy table1 nevű új táblát, amely a következő két mezőt tartalmazza:

    Mező1: Számláló (elsődleges kulcs) Mező2: Szöveg

  3. Adja hozzá a következő hat rekordot a Table1 táblához.

    Mező1 Mező2
    1 A
    2 B
    3 C
    4 D
    5 E
    6 F
  4. Törölje azt a rekordot, amelyben a Field1 értéke 3.

  5. A Létrehozás lapon kattintson a Lekérdezések csoport Lekérdezéstervező elemére.

  6. A Tábla megjelenítése párbeszédpanelen kattintson a Bezárás gombra.

  7. A Tervezés lapon kattintson az EREDMÉNYEK csoport SQL-nézet elemére.

  8. Írja be a következőt a Lekérdezés1 ablakba:

    INSERT INTO Table1 (Field1, Field2) SELECT 3 AS Field1, "C" AS Field2;
    
  9. A Tervezés lapon kattintson a Futtatás gombra az Eredmények csoportban.

  10. Nyissa meg a Table1 táblát, majd próbáljon meg hozzáadni egy új rekordot. A "Tünetek" szakaszban említett hibaüzenet jelenik meg.