Näyttöön voi tulla virhesanoma, kun yrität lisätä uuden tietueen taulukkoon, joka sisältää Laskuri-kentän Accessissa

Huomautus

Office 365 ProPlus nimetään uudelleen Microsoft 365 Apps for enterprise -sovellukseksi. Lisätietoja tästä muutoksesta on tässä blogikirjoituksessa.

Alkuperäinen KB-numero:   884185

Oireet

Kun yrität lisätä uuden tietueen taulukkoon, jossa on Laskuri-kenttä, näyttöön voi tulla seuraava virhesanoma:

Taulukkoon pyytämäsi muutokset eivät onnistuneet, koska ne luovat arvojen kaksoiskappaleita indeksiin, perusavaimeen tai suhteeseen. Muuta niiden kenttien tietoja, jotka sisältävät tietojen kaksoiskappaleita, poista indeksi tai määritä indeksi uudelleen niin, että arvojen kaksoiskappaleet sallitaan, ja yritä uudelleen.

laskurivirheen kuva

Huomautus

Taulukossa ei saa olla yhteyksiä tai indekseja.

Syy

Tämä ongelma ilmenee, kun Laskuri-kenttä on kirjoitettu virheellisesti.

Ratkaisu

Ongelman voi ratkaista useilla tavoilla.

Menetelmä 1: Järjestä ja korjaa -toiminnon suorittamisen

Järjestä tietokanta seuraavasti:

  1. Käynnistä Access.

  2. Avaa Access-tietokanta.

    Huomautus

    Jos näkyviin tulee Suojausvaroitus-valintaikkuna, valitse Avaa.

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

    Huomautus

    Accessin aiemmissa versioissa Järjestä ja korjaa tietokanta uudelleen -asetus saattaa sijaita muualla. Etsi tämä vaihtoehto oman Access-versiosi ohjeista.

Jos haluat palauttaa Laskuri-kentän alkunyden manuaalisesti, käytä yhtä seuraavista tavoista.

Menetelmä 2: Määrityskyselyn käyttäminen

Avaa Accessissa tietokanta, jossa on taulukko (taustatietokanta):

  1. Valitse Luo-välilehden Kyselyt-ryhmästä Kyselyn rakennenäkymä.

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

  3. Valitse Rakenne-välilehden Tulokset-ryhmässä SQL-näkymä.

  4. Kirjoita Kysely1-ikkunaan seuraava teksti:

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

    Huomautus

    <TableName>on laskurikentän nimen paikkamerkki. <table.AutoNumFieldName> iMaxID on paikkamerkki kentän nykyiselle enimmäisarvolle plus 1.

  5. Valitse Rakenne-välilehden Tulokset-ryhmästä Suorita.

Menetelmä 3: Visual Basic for Applications -koodin suorituksen

  1. Napsauta Luo-välilehden Makro-kohdan alla olevaa alanuolta ja valitse Moduuli.

  2. Liitä seuraava koodi Visual Basic Editoriin.

    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

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

  3. Valitse Suorita-valikossa Suorita ali-/käyttäjälomake.

    Huomautus

    Taulukko on suljettava ennen kumman tahansa menetelmän käyttöä. Sinun ei tarvitse tallentaa kyselyä tai moduulia kummankaan menetelmän onnistuneesti käytön jälkeen

Toimintavaiheet uudelleen

  1. Uuden tyhjän tietokannan luominen

  2. Luo uusi Taulukko1-niminen taulukko, joka sisältää seuraavat kaksi kenttää:

    Kenttä1: Laskuri (perusavain) Kenttä2: Teksti

  3. Lisää seuraavat kuusi tietuetta taulukkoon 1.

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

  5. Valitse Luo-välilehden Kyselyt-ryhmästä Kyselyn rakennenäkymä.

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

  7. Valitse Rakenne-välilehden Tulokset-ryhmässä SQL-näkymä.

  8. Kirjoita Kysely1-ikkunaan seuraava teksti:

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

  10. Avaa Taulukko1 ja yritä sitten lisätä uusi tietue. Näyttöön tulee virhesanoma, joka on mainittu "Oire"-osassa.