Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
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:
Indítsa el az Accesst.
Nyissa meg az Access-adatbázist.
Megjegyzés:
Ha megjelenik a Biztonsági figyelmeztetés párbeszédpanel, kattintson a Megnyitás gombra.
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:
A Létrehozás lapon kattintson a Lekérdezések csoport Lekérdezéstervező elemére.
A Tábla megjelenítése párbeszédpanelen kattintson a Bezárás gombra.
A Tervezés lapon kattintson az EREDMÉNYEK csoport SQL-nézet elemére.
Í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.
A Tervezés lapon kattintson a Futtatás gombra az Eredmények csoportban.
3. módszer: Visual Basic for Applications kód futtatása
A Létrehozás lapon kattintson a Makró alatti lefelé mutató nyílra, majd a Modul elemre.
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.
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
Új üres adatbázis létrehozása
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
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 Törölje azt a rekordot, amelyben a Field1 értéke 3.
A Létrehozás lapon kattintson a Lekérdezések csoport Lekérdezéstervező elemére.
A Tábla megjelenítése párbeszédpanelen kattintson a Bezárás gombra.
A Tervezés lapon kattintson az EREDMÉNYEK csoport SQL-nézet elemére.
Írja be a következőt a Lekérdezés1 ablakba:
INSERT INTO Table1 (Field1, Field2) SELECT 3 AS Field1, "C" AS Field2;
A Tervezés lapon kattintson a Futtatás gombra az Eredmények csoportban.
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.