Avatar billede kawaki Nybegynder
27. marts 2001 - 13:39 Der er 5 kommentarer og
1 løsning

Autonummering

Hej allesammen, jeg har lige et spørgsmål, jeg er igang med at lave en hjemmeside sammen med en ven, vores mdb virker godt, også på webet, vi har også lavet div, asp sider så vi kan oprette redigere og slette poster, men når der bliver slettet en post og derefter oprettet en ny bliver det gamle nummer ikke brugt, den bruger bare en der er +1 over det højeste der ellerede er brugt

exemple: mdb
0 jkgjkfljk jklgfjklf
1 hfjdkfhjk hfjkdfhjk
2 hfjkdhfjd fhjfkhdjf
3 jkljkljkj jkjkjkjkj
4 jkjkljklj jkjkljklj
5 gjkflgjfk jgkjgkljk

så sletter jeg nr 3 og laver en ny men den heder så 6 og ikke 3 eller 5 for den sags skyld, hvorfor kan dn ikke finde ud af at enten bruge et ledeg nummer, eller også flytte nr 4 til 3 og nr 5 til 4 også skrive i nr 5?

på forhånd tak for hjælpen.

P.s. hvor mange nr går den optil? int long int sh_int eller hvad?
Avatar billede dna Nybegynder
27. marts 2001 - 13:42 #1
Det er access der skoder lidt, men det må man lære at leve med, der er så vidt jeg ved ikke noget at gøre ved det....

Jeg kan love dig for, at du ikke får problemer med hvor langt oppe den går.... for hvis du får så stor en hjemmeside, så skal du alligevel til at skifte til noget andet SQL-værk!!!
27. marts 2001 - 13:43 #2
En autonumber genbruger ALDRIG gamle numre.
Hvis det er det du vil, skal du kode det selv.

Med nedenstående sætning kan du lave din egen \'autonumber\' hver gang en ny post oprettes:
DMax(\"ID\", \"Tabel\") + 1

mvh Thomas
27. marts 2001 - 13:50 #3
(...fortsat)

Autonumber går vist op til 4 mia og lidt til (long integer), så...
Avatar billede ds-zim Nybegynder
27. marts 2001 - 13:59 #4
Med mindre dette autonum. felt er et nøglefelt, kan Du altid \"bare\" slette feltet, komprimere & reparere DB\'n for derefter at oprette det igen.
Så vil værdierne for hver enkelt post være fortløbende
27. marts 2001 - 14:02 #5
ds-zim:-> Autonummereringsfelter ER som regel nøgle-felter. Men ellers har du ret. Det er dog ikke nødvendigt at komprimere og reparere db\'en. Det er nok at fjerne og oprette igen.
Det løser jo heller ikke problemet på længere sigt, da der jo hurtigt vil opstå huller igen.

/Thomas
Avatar billede proaccess Nybegynder
27. marts 2001 - 18:04 #6
Jeg starter med at sige, at ideen om AUTO-felter går fløjten nu, men:

Ved at bruge følgende funktion kan du finde første ledige nummer:


Public Function NextID(Rec As String, Fld As String) As Long
  Dim ra As Recordset, lngDummy As Long
  Set ra = CurrentDb.OpenRecordset(Rec)
  While Not ra.EOF And NextID < 1
    lngDummy = lngDummy + 1
    If lngDummy <> ra(Fld) Then NextID = lngDummy
    ra.MoveNext
  Wend
  Set ra = Nothing
End Function

Den kaldes så med =NextID(\"tabelnavn\",\"feltnavn\")
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