Umjereni: zahtijeva osnovne vještine makronaredbe, kodiranje i međuoperabilnost. Ovaj se članak odnosi baze podataka Microsoft Access (.mdb ili .accdb) i Microsoft Access project (.adp).
Simptomi
Kada izbrišete zadnji zapis ili zapise u tablici ili u obrazac koji ima polje Samonumeriranje, a zatim sažmite bazu podataka, polje Samonumeriranje ne pokreće na sljedeću veći broj prilikom dodavanja novih zapisa.
Uzrok
Imate instaliran Microsoft Jet 4.0 Service Pack 4 (Msjet40.dll verzija 4.00.2927.4) ili noviji.
Rješenje
Da biste zaobišli taj problem, koristite jednu od sljedeće dvije metode.
Metodu 1
Stvaranje nove tablice i dodavanje postojeće zapise u novu tablicu. Nove zapise koji su dodani u ovu tablicu će započeti sa samonumeriranjem vrijednost jedne osim ako programski postavite vrijednost povećanje. Napomena Ako više ne trebate zapise, polje Samonumeriranje možete vratiti i tako da izbrišete sve zapise iz tablice i sažmete bazu podataka. Međutim, ako koristite ovu metodu, natrag nije moguće dohvatiti izbrisane zapise. Za stvaranje nove tablice i dodavanje postojeće zapise u novu tablicu u bazi podataka Microsoft Access (.mdb), slijedite ove korake:
-
Pritisnite tablicu u prozoru baze podataka.
-
Pritisnite CTRL + C.
-
Pritisnite CTRL + V.
-
U dijaloškom okviru Zalijepi tablicu kao kliknite Samo struktura, upišite naziv tblNewTablei klikniteu redu.
-
U Microsoft Office Access 2003 ili Microsoft Access 2002, na izborniku Prikaz pokažite na Objekte baze podataka , pritisnite upitii dvokliknite Stvori upit u prikazu dizajna. U Microsoft Office Access 2007, pritisnite karticu Napravi i pritisnite Dizajn upita u druge grupe.
-
U dijaloškom okviru Prikaz tablice pritisnite stare tablice, kliknite Dodaji kliknite Zatvori.
-
U programu Access 2003 ili Access 2002 izborniku upita pritisnite Upit s dodavanjem . U programu Access 2007 kliknite dodavanjemu grupu Vrsta upita na kartici Dizajn .
-
U dijaloškom okviru Dodavanje kliknite tblNewTable u okvir Naziv tablice , a zatim kliknite u redu.
-
Dodavanje svih polja u rešetku dizajna upita osim polje Samonumeriranje.
-
U programu Access 2003 ili Access 2002, na izborniku upita kliknite Pokreni za dodavanje zapisa novu tablicu. U programu Access 2007 kliknite Pokreni u grupi rezultata na kartici Dizajn za dodavanje zapisa novu tablicu.
-
Otvorite tablicu tblNewTable i dodavanje zapisa. Imajte na umu da na Samonumeriranje sljedeći veći broj.
Metodu 2
Sljedeća funkcija možete koristiti u bazi podataka Microsoft Access (.mdb) programski vratiti vrijednost Klijanje polje Samonumeriranje. Možete dodati funkcije modul i zatim je pokrenite u prozoru pogrešaka. Ili, funkciju možete pozvati iz naredbenog gumba ili makronaredba. Napomena Za ovu šifru ispravno pokretanje mora pozivati oba u Microsoft ActiveX Data Objects 2.x i ADO ŠIR Microsoft 2.x za DDL i sigurnost biblioteke (gdje 2.x je 2.1 ili noviji). Da biste to učinili, kliknite reference na izborniku Alati u Visual Basic Editor. Provjerite jesu li u Microsoft ActiveX objekte podataka 2.x i Microsoft ADO ŠIR 2.x za DDL i sigurnost biblioteke su označeni potvrdni okviri.
Function ChangeSeed(strTbl As String, strCol As String, lngSeed As Long) As Boolean'You must pass the following variables to this function.'strTbl = Table containing autonumber field'strCol = Name of the autonumber field'lngSeed = Long integer value you want to use for next AutoNumber.Dim cnn As ADODB.ConnectionDim cat As New ADOX.CatalogDim col As ADOX.Column'Set connection and catalog to current database.Set cnn = CurrentProject.Connectioncat.ActiveConnection = cnnSet col = cat.Tables(strTbl).Columns(strCol)col.Properties("Seed") = lngSeedcat.Tables(strTbl).Columns.RefreshIf col.Properties("seed") = lngSeed Then ChangeSeed = TrueElse ChangeSeed = FalseEnd IfSet col = NothingSet cat = NothingSet cnn = NothingEnd Function
Status
Microsoft je potvrdio da se taj problem pojavljuje u Microsoftovim proizvodima navedenima u odjeljku "Odnosi se na".
Dodatne informacije
Koraci za ponavljanje postupka problem
-
Instalirati Microsoft Jet 4.0 Service Pack 4 (SP4) ili noviji. Dodatne informacije o tome kako nabaviti najnoviji servisni paket za Microsoft Jet kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
239114 kako nabaviti najnoviji servisni paket za Microsoft Jet 4.0 modul baze podataka
-
Stvorite novu bazu podataka u programu Access 2003 ili Access 2002.
-
Stvaranje sljedeće tablice: Table: tblExample --------------------- Field Name: ID Data Type: AutoNumber Field Name: MyText Data Type: Text Table Properties: tblExample ---------------------------- PrimaryKey: ID
-
Spremite tablicu kaotblExample.
-
Na izborniku Prikaz kliknite Prikaz podatkovne tablice.
-
Dodajte 10 zapisa u tablicu.
-
Izbrisati posljednja tri zapise koje dodaju u tablicu.
-
Zatvorite tablicu.
-
Na izborniku Alati pokažite Uslužni programi baze podataka, a zatim kliknite Sažmi i popravi bazu podataka.
-
Otvorite tablicu tblExample.
-
Dodajte novi zapis u tablicu. Imajte na umu da na Samonumeriranje 11 umjesto 8, kako bi očekujete.
Napomena Nakon sažimanja projekt u Microsoft Access project (.adp), pogledajte broj koji očekujete u polju Samonumeriranje kada dodate zapis. Međutim, kada sačuvate zapis, promjene će se na Samonumeriranje. U ovom primjeru pogledajte 8 dok predano zapis. Zatim, broj mijenja 11. To se događa jer na Samonumeriranje dodijeliti na poslužitelju nakon predano zapis.
Za dodatne informacije kliknite sljedeći broj članka u Microsoftovoj bazi znanja:
202121 nije moguće promijeniti zadanu vrijednost Klijanje i povećanje u UI