Avatar billede dont Nybegynder
27. september 2003 - 15:13 Der er 10 kommentarer og
2 løsninger

Problem med autonummerering

Jeg har en database hvor jeg bruger autonummerering som primærnøgle i første kolonne. I databasen sletter jeg ofte forskellige rækker og har i den forbindelse to spørgsmål:
1. Hvordan undgår jeg at der kommer "huller" i talrækkefølgen?
2. Hvordan får jeg autonummereringen til at tælle fra sidste post (efter sletning af de fx. 5 nederste rækker) frem for at den starter fra det nummer den oprindeligt var nået til?
Håber der er nogle der kan hjælpe. Jeg uddyber gerne hvis ovenstående ikke er klart nok.
Avatar billede mugs Novice
27. september 2003 - 15:16 #1
1. Du kan ike undgå "huller".

2. Det kan du heller ikke.
Avatar billede stry Nybegynder
27. september 2003 - 15:17 #2
Det er ikke smart at genbruge id numre.
Avatar billede mugs Novice
27. september 2003 - 15:18 #3
Et autonummerfelt kan faktisk ikke "redigeres på anden måde, end at komprimere databasen og så vil den tælle fra den højeste værdi +1. Og det vil du jo netop undgå. Men det skitserede kan du ikke.

Så skal du en helt anden vej, og ikke bruge autonummerering, men kode dig ud af det i VBA.
Avatar billede mugs Novice
27. september 2003 - 15:20 #4
Men hvorfor vil du egentlig det? Normalt bruger man ikke autonumrer til andet end at holde styr på posterne (hvilket jo også er en vigtig ting), men det er da fuldstændig ligegyldigt hvilket nummer db er nået til. Du skal ikke brugere nummeret - Db skal.

Men kan du uddyber lidt nærmere, så kan det være, at der muligvis er en alternativ løsning.
Avatar billede terry Ekspert
27. september 2003 - 17:25 #5
dont>If you are using an autonumber as your primary key then there is NO reason at all to "fill" holes. You should never have to think about what values each record has. You could say they are just values used for putting in foreign keys of related tables.
If you deleted the last five records then you can re-use these values by compacting the dB.
Avatar billede mugs Novice
27. september 2003 - 17:33 #6
Som tidligere skrevet.
Avatar billede terry Ekspert
27. september 2003 - 17:42 #7
I'm after some of the points mugs, otherwise you may catch me :o)
Actually didnt see you last comment, sorry!
Avatar billede mugs Novice
27. september 2003 - 17:52 #8
terry -> Rolig, I have no intension to catch You :o)
Avatar billede dont Nybegynder
27. september 2003 - 18:36 #9
tak fordi I gjorde Jer besværet.
Jeg har fjernet autonummereringen fra databasen og bruger istedet asp til bare at sætte et tal ind for hver række, da databasen skal vises på en webside. Det virker fint. Grunden til at jeg ikke ville have huller og samtidig ville have tælleren til at starte +1 efter sidste værdi var at jeg skulle bruge overblik over hvor mange rækker der var......Anyway, jeg har hvad jeg skal bruge nu, men tak for hjælpen alligevel.
Avatar billede mugs Novice
27. september 2003 - 18:39 #10
"hvor mange rækker der var"

Kan du i Access benytte funktionen DCount:

MsgBox DCount( "*","Tabelnavn")
Avatar billede dont Nybegynder
27. september 2003 - 18:49 #11
ok, tak. Men jeg ønskede på en web-side at kunne se hvad nr. hver enkelt række har. Det kan jeg nu, da asp-koden bare sørger for at sætte et nr. ud for hver række og pludse med én hver gang. Det virker perfekt.
Avatar billede dont Nybegynder
27. september 2003 - 18:50 #12
pludse......tsk tsk!!!
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