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.
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:
Käynnistä Access.
Avaa Access-tietokanta.
Huomautus
Jos näet Suojausvaroitus-valintaikkunan, valitse Avaa.
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:
Valitse Luo-välilehdenKyselyrakenneKyselyt-ryhmästä.
Valitse Näytä taulukko -valintaikkunassa Sulje.
Valitse Rakenne-välilehdenTulokset-ryhmästäSQL-näkymä.
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ä.
Valitse Rakenne-välilehdenTulokset-ryhmästäSuorita.
Tapa 3: Suorita Visual Basic for Applications koodi
Napsauta Luo-välilehdenMakro-kohdan alla olevaa alanuolta ja valitse sitten Moduuli.
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ä.
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
Luo uusi tyhjä tietokanta
Luo uusi taulukko nimeltä Table1 , joka sisältää seuraavat kaksi kenttää:
Kenttä1: Laskurin (perusavaimen) kenttä2: teksti
Lisää seuraavat kuusi tietuetta Taulukko1:een.
Kenttä1 Kenttä2 1 A 2 B 3 C 4 D 5 E 6 F Poista tietue, jossa Field1:n arvo on 3.
Valitse Luo-välilehdenKyselyrakenneKyselyt-ryhmästä.
Valitse Näytä taulukko -valintaikkunassa Sulje.
Valitse Rakenne-välilehdenTulokset-ryhmästäSQL-näkymä.
Kirjoita Kysely1-ikkunaan seuraava:
INSERT INTO Table1 (Field1, Field2) SELECT 3 AS Field1, "C" AS Field2;
Valitse Rakenne-välilehdenTulokset-ryhmästäSuorita.
Avaa Table1 ja yritä sitten lisätä uusi tietue. Näyttöön tulee virhesanoma, joka mainitaan "Oireet"-osiossa.
Palaute
https://aka.ms/ContentUserFeedback.
Tulossa pian: Vuoden 2024 aikana poistamme asteittain GitHub Issuesin käytöstä sisällön palautemekanismina ja korvaamme sen uudella palautejärjestelmällä. Lisätietoja on täällä:Lähetä ja näytä palaute kohteelle