Avatar billede labj Nybegynder
25. november 2013 - 23:04 Der er 1 kommentar og
1 løsning

Autonummer med låste positioner

Jeg skal bruge et autonummer, der består af 6 låste postioner og 3 genererede fortløbende nummere.

AAAAYYNNN

AAA er tre bogstaver, der giver afdelingen, det kunne være PCS, det vælges ved opstart af Mainmenu, ved opstart.
YY er tocifferet form for året, i år ville det selvfølgelige være 13.
NNN er det fortløbende nummer, der hvert år starter fra 001 og tæller op.

Jeg kan selvfølgelig vælge at generere delene seperat, afdelingen kan vælges ved opstart, året kan hentes ved at hive årstallet frem og autonummer genereres nemt, men så vil autonummeret ikke starte ved 001 når vi skifter til år 14.

Er der nogen der kan hjælpe mig med den nød?
Avatar billede bvirk Guru
26. november 2013 - 16:45 #1
Hvis du kan finde plads til AAA et andet sted, kan en påhægtet hændelse til nye poster klare det. Følgende første sql udtryk skal tilpasses din tabel struktur.

eksempel tabel: T2(id autonumber,tekst text)

Sub checkAndSetYearPartOfCounter()
    Dim maxId, y2dig, sql
    maxId = DMax("id", "T2")
    y2dig = Year(Now()) - 2000
    If Int(maxId / 1000) < y2dig Then
        sql = "insert into T2 (id,tekst) select " & 1000 * y2dig & " as id, tekst from T2 where id=" & maxId
        CurrentDb.Execute sql
        sql = "delete from T2 where id=" & maxId
        CurrentDb.Execute sql
    End If
End Sub

Det der udnyttes er:
*Det forhold at et nyt autonumber altid sættes til 1+max af eksisterende data
*Det er muligt manuelt at tildele autonumber værdi ved postoprettelse
Avatar billede labj Nybegynder
26. november 2013 - 19:54 #2
Hej Bvirk

Mange tak for svaret, jo jeg kan godt flytte AAA, men det vil jo give det problem, at der ikke både kan være en

DMH14001 og en PCS14001,

idet Afdelingen som AAA repræsentere ikke indgår i autonummer genereringen.

Den lange forklaring er at jeg vil have databasen til at generere et indkøbsnummer, hvor vi er flere afdelinger der gerne skulle kunne bruge systemet, og derved lade vores fælles admin trække info om vores indkøb. Ingen af afdelingerne har behov for at kigge med i de andres indkøb, men den fælles admin har, hver afdeling vil jo gerne have deres nummere fortløbene, og ikke med de huller som de andre afdelingers indkøb ville give.

Dog kan jeg se en ide i din løsning, som jeg lige skal afprøve, en "programeret" autonummering, hvor jeg først trækker en liste af brugte nummere for en aktuel afdeling, lægger et til højeste nummer for den afdeling, med dit ilustreret eksempel på at tage højde for årstallet.
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