Avatar billede pelkjaer Nybegynder
23. april 2002 - 10:42 Der er 26 kommentarer og
2 løsninger

Nulstil autonummerering i db

Jeg har tidligere spurgt til dette, med succes http://www.eksperten.dk/spm/190537 - men nu kan jeg ikke få det til at virke :(

Jeg har slettet en del poster, komprimeret/repareret databasen, men alligevel fortsætter den nummereringen med 34 idstedet for 5.

Why?
Avatar billede terry Ekspert
23. april 2002 - 10:43 #1
compact and repair the database
Avatar billede terry Ekspert
23. april 2002 - 10:44 #2
If you have a record with 33 in the even if you compact repair it will start at 34!
Vacant numbers will NOT get re-used!
Avatar billede pelkjaer Nybegynder
23. april 2002 - 10:44 #3
Det er præcis det jeg gør.

<snip>
"Jeg har slettet en del poster, komprimeret/repareret databasen, men alligevel..."
</snip>
Avatar billede proaccess Nybegynder
23. april 2002 - 10:46 #4
Autonummer vil ALTID blive det højest brugte nummer +1

Hvis du har en record i din tabel med nummer 33, så er det nye ID (efter komprimering) 34 !!!
Avatar billede pelkjaer Nybegynder
23. april 2002 - 10:47 #5
I had a table with 34 post. Then I deleted the 29 of them, so now I only have 5 posts.

Then I compacted and repaired the database, but instead of starting the new posts with 5, it starts with 35.
Avatar billede terry Ekspert
23. april 2002 - 10:49 #6
but waht is the LAST number?
Avatar billede pelkjaer Nybegynder
23. april 2002 - 10:49 #7
proaccess>>Vil det sige at hvis jeg har en database med 20 poster og sletter de 10, kan jeg så ikke få den til at fortsætte med 11 igen?

Det kunne jeg ellers tidligere (se http://www.eksperten.dk/spm/190537 ), det er det jeg ikke forstår.
Avatar billede terry Ekspert
23. april 2002 - 10:52 #8
pelkjaer as proacess says it will start from the highest number + 1
you can NOT re-use empty numbers laying between existing numbers
Avatar billede pelkjaer Nybegynder
23. april 2002 - 10:56 #9
terry>>I'm not sure you get it.

If I have a table with 20 post (1-20), and I deleted the 10 of them (11-20) and then compact the database, is it then not possible to continue with the number 11?
Avatar billede terry Ekspert
23. april 2002 - 10:58 #10
yes it is, but you DID NOT say which ones you were deleting (I cant see from here) :o)

Send me the dB and I will take a look dktebrsa@europe.lego.com
Avatar billede terry Ekspert
23. april 2002 - 10:58 #11
Or try and import the objects (tables etc.) into a new dB
Avatar billede pelkjaer Nybegynder
23. april 2002 - 11:01 #12
Okay thanks. Please tell me the solution afterwards :)
Avatar billede terry Ekspert
23. april 2002 - 11:07 #13
OK!
Avatar billede proaccess Nybegynder
23. april 2002 - 11:13 #14
>pelkjaer:  Dit problem er hvis du har en tabel med posterne 1-30 og derefter sletter 1-15, så er 30 stadig højeste nummer, og næste ID (selv efter komprimering) vil blive 31 !!!
Avatar billede pelkjaer Nybegynder
23. april 2002 - 11:18 #15
proacces>>Nej, fordi jeg sletter kun de bagerste/sidste. Fx. 15-30 ud af 30.
Avatar billede pelkjaer Nybegynder
23. april 2002 - 11:27 #16
terry>>when do you think you can send it back?
Not to rush you, but I kind of need it :O)
Avatar billede terry Ekspert
23. april 2002 - 11:43 #17
hi! I have looked at the dB and I can NOT find out what the problem is :o( I have also a problem when I make anothe dB table!
Will get back as soon as possible, may need searching on the web
Avatar billede pelkjaer Nybegynder
23. april 2002 - 12:18 #18
Okay thanks Terry.

I think it is strange too, because I have done it before..
Avatar billede terry Ekspert
23. april 2002 - 12:21 #19
are youby any chance using XP? I can convert the dB to 97 and it works but NOT in XP!
Avatar billede pelkjaer Nybegynder
23. april 2002 - 12:28 #20
I AM using XP prof. :o)
Avatar billede pelkjaer Nybegynder
23. april 2002 - 12:28 #21
And Access 2000..
Avatar billede pelkjaer Nybegynder
23. april 2002 - 12:31 #22
But I think I might as well just create a new database. Otherwise I'll get behind...

But thanks anyway :o)
Avatar billede terry Ekspert
23. april 2002 - 12:41 #23
IF you delete ALL records then it works. If you only delete the some records then it doesnt. There is an error in XP, which I am checking up on. Will post a reply when I know some more :o)
thanks!
Avatar billede pelkjaer Nybegynder
29. april 2002 - 10:42 #25
Hey Terry. Did'nt receive an email :o(

Thank you.
Avatar billede terry Ekspert
29. april 2002 - 10:44 #26
This is what you need

    Function ChangeSeed(strTbl As String, strCol As String, lngSeed As Long) As Boolean
    'You must have a reference to ADO and MS ADO ext. 2.x for DDL and Security
   
    '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.Connection
    Dim cat As New ADOX.Catalog
    Dim col As ADOX.Column
   
    'Set connection and catalog to current database.
    Set cnn = CurrentProject.Connection
    cat.ActiveConnection = cnn
   
    Set col = cat.Tables(strTbl).Columns(strCol)
   
    col.Properties("Seed") = lngSeed
    cat.Tables(strTbl).Columns.Refresh
    If col.Properties("seed") = lngSeed Then
        ChangeSeed = True
    Else
        ChangeSeed = False
    End If
    Set col = Nothing
    Set cat = Nothing
    Set cnn = Nothing
   
    End Function
Avatar billede pelkjaer Nybegynder
29. april 2002 - 10:46 #27
Jep :o)
Avatar billede pelkjaer Nybegynder
29. april 2002 - 10:47 #28
I'll remember that next time. This time I just created a new db :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester