Avatar billede cmelchior Nybegynder
24. februar 2003 - 14:29 Der er 7 kommentarer og
1 løsning

Automatisk genering af primær nøgle

Hej

Jeg er igang med en hjemmeside som skal kobles op til en Access-database.

I den forbindelse skal brugeren have mulighed for at udfylde en formular, som skal tildeles et løbenummer, som skal fungere som primær nøgle.

Løbenummeret skal helst have formattet: yy-0000.
Altså årstallet + fire cifre, ala 03-0001, 03-0002, 03-0003 osv.

Autonummerering ser ikke ud til at kunne udføre denne funktion...men jeg vil da tro det er muligt...nogen forslag?

mange tak for hjælpen
24. februar 2003 - 14:46 #1
uniddelbart vil jeg foreslå at dele løbenr op i 2 felter: år og løbenr.
Derved er det let at finde den største værdi og blot lægge én til.

DMax("Løbenr", "DinTabel", "År = " & varÅr) + 1

hvor varÅr er det aktuelle år.

/Thomas
Avatar billede terry Ekspert
24. februar 2003 - 14:50 #2
You need to make your own function to do this. I would suggest that you have a field in another table which is used to "remember" the next number. It starts at 0001. Eacj time you create a new record in your table you make a select on this new table/field to get the NEXT value, the first time it is 0001. Then you have to update this value to 0002 ..... so it is rady for the next new record.

Now when you create a record you get theh next number and at the same time you find the YY part using some function. In VBSCript I think you can use Year(date) for this. You use this + th evalue you get from the new table/field to make you primary key.

Simple ikke?
Avatar billede cmelchior Nybegynder
24. februar 2003 - 14:51 #3
Lyder umiddelbart temlig logisk....men arbejder normalt ikke i Access, så du må nok skære det ud pap :)

Men mener du at jeg opretter to felter - et med årstal og et andet som bliver autogeneret, og så laver en sammensat primær nøgle eller er det en visual basic funktion du beskriver, og i så fald hvordan kobler man den sammen med tabellen.
Avatar billede terry Ekspert
24. februar 2003 - 15:02 #4
cmelchior>It mite sound "temlig logisk" but if you dont know much about access then you can NOT be sure that you can use Thomas's solutiuon, where as I KNOW my solution works!
Avatar billede terry Ekspert
24. februar 2003 - 15:02 #5
mite = might
Avatar billede cmelchior Nybegynder
24. februar 2003 - 18:23 #6
Fik løst problemet.....delte feltet op i 2: Dato og fejlnr.

Dato fik tildelt standardværdien: =Right(Year(Date());2)
Fejlnr blev autonummereret med formattet 0000

thomasjepsen > tak for input til løsning, selvom den blev lidt anderledes.
terry > også tak for input, men jeg synes måske din løsning bliver en smulle rodet. Både med flere SQL-sætninger og flere tabeller.
Avatar billede terry Ekspert
24. februar 2003 - 19:05 #7
No problem, whats important is you found a solution :o)
24. februar 2003 - 20:21 #8
thnx C :o)
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