Saatat saada virhesanoman, kun yrität lisätä uuden tietueen taulukkoon, joka sisältää Laskurin kentän Accessissa

Alkuperäinen KT-numero: 884185

Oireet

Kun yrität lisätä uuden tietueen taulukkoon, jossa on laskurin kenttä, näyttöön saattaa tulla seuraava virhesanoma:

Pyytämäsi muutokset eivät onnistuneet, koska ne loisivat kaksoisarvoja indeksiin, perusavaimeen tai suhteeseen. Muuta tietoja kentässä tai kentissä, jotka sisältävät tietojen kaksoiskappaleita, poista indeksi tai määritä indeksi uudelleen niin, että se sallii päällekkäiset merkinnät, ja yritä uudelleen.

Näyttökuva virhesanomasta, kun taulukkoon on lisätty uusi tietue.

Huomautus

Taulukolla ei ehkä ole suhteita tai indeksejä.

Syy

Tämä ongelma ilmenee, kun laskurin kentän alkuarvo on virheellinen.

Ratkaisu

On useita menetelmiä, jotka voivat ratkaista tämän ongelman.

Tapa 1: Järjestä ja korjaa

Voit järjestää tietokannan uudelleen seuraavasti:

  1. Käynnistä Access.

  2. Avaa Access-tietokanta.

    Huomautus

    Jos näet Suojausvaroitus-valintaikkunan, valitse Avaa.

  3. Valitse Tietokantatyökalut-valintanauhan välilehti ja valitse sitten Työkalut-ryhmästä Järjestä ja korjaa tietokanta.

    Huomautus

    Aiemmissa Access-versioissa voi olla Järjestä ja korjaa tietokanta -asetus muualla. Löydät tämän vaihtoehdon Accessin tietyn versiosi ohjeista.

Voit palauttaa laskurin kentän alkuarvon manuaalisesti jollakin seuraavista tavoista.

Tapa 2: Tietomäärityskyselyn käyttäminen

Avaa tietokanta, jossa on taulukko (taustatietokanta) Accessissa:

  1. Valitse Luo-välilehdenKyselyrakenneKyselyt-ryhmästä.

  2. Valitse Näytä taulukko -valintaikkunassa Sulje.

  3. Valitse Rakenne-välilehdenTulokset-ryhmästäSQL-näkymä.

  4. Kirjoita Kysely1-ikkunaan seuraava:

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

    Huomautus

    <TableName> on taulukon nimen <paikkamerkki. AutoNumFieldName> on laskurin kentän nimen paikkamerkki. iMaxID on paikkamerkki kentän nykyiselle maksimiarvolle 1 lisättynä.

  5. Valitse Rakenne-välilehdenTulokset-ryhmästäSuorita.

Tapa 3: Suorita Visual Basic for Applications koodi

  1. Napsauta Luo-välilehdenMakro-kohdan alla olevaa alanuolta ja valitse sitten Moduuli.

  2. Liitä seuraava koodi Visual Basic -Kirjoitusavustaja.

    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
    

    Huomautus

    AutonumberFieldName-paikkamerkki <> edustaa Laskurin kentän nimeä. Paikkamerkki <TableName> edustaa taulukon nimeä.

  3. Valitse Suorita-valikosta Suorita ali-/Käyttäjälomake.

    Huomautus

    Taulukko on suljettava ennen kumpaakaan menetelmää. Sinun ei tarvitse tallentaa kyselyä tai moduulia sen jälkeen, kun olet käyttänyt kumpaakaan menetelmää

Toiminnan toistamisen vaiheet

  1. Luo uusi tyhjä tietokanta

  2. Luo uusi taulukko nimeltä Table1 , joka sisältää seuraavat kaksi kenttää:

    Kenttä1: Laskurin (perusavaimen) kenttä2: teksti

  3. Lisää seuraavat kuusi tietuetta Taulukko1:een.

    Kenttä1 Kenttä2
    1 A
    2 B
    3 C
    4 D
    5 E
    6 F
  4. Poista tietue, jossa Field1:n arvo on 3.

  5. Valitse Luo-välilehdenKyselyrakenneKyselyt-ryhmästä.

  6. Valitse Näytä taulukko -valintaikkunassa Sulje.

  7. Valitse Rakenne-välilehdenTulokset-ryhmästäSQL-näkymä.

  8. Kirjoita Kysely1-ikkunaan seuraava:

    INSERT INTO Table1 (Field1, Field2) SELECT 3 AS Field1, "C" AS Field2;
    
  9. Valitse Rakenne-välilehdenTulokset-ryhmästäSuorita.

  10. Avaa Table1 ja yritä sitten lisätä uusi tietue. Näyttöön tulee virhesanoma, joka mainitaan "Oireet"-osiossa.