Ik ben bezig met een database te maken (factuur systeem). Factuur nummer moet beginnen met 2006... dan autonummer (bijv. 2006001). hoe kan ik het beginnummer aangeven???
Anoniem: 76854
Met een kleine omweg:
Maak een table aan met het Autonummer (table A)!
Maak een table aan met als fieldnaam dezelfde als in table B en maak hiervan int long
Geef de waarde 2005999 aan de eerste veld van B
Maak nu een append query waarbij je de waarde van B in A zet. Hierdoor krijgt het eerste veld van A de waarde 2005999.
Nu kun je willekeurig iets invullen bij table a en de autonummering zal automatisch doorgaan bij 2005999 +1 enz enz. Mocht je meer als 1000 waardes moeten invullen maar er dan 20059999 van!
Als je wil kun je de handmatig de waarde 2005999 verwijderen en zo ook table B want die doet verder helemaal niks meer.
Maak een table aan met het Autonummer (table A)!
Maak een table aan met als fieldnaam dezelfde als in table B en maak hiervan int long
Geef de waarde 2005999 aan de eerste veld van B
Maak nu een append query waarbij je de waarde van B in A zet. Hierdoor krijgt het eerste veld van A de waarde 2005999.
Nu kun je willekeurig iets invullen bij table a en de autonummering zal automatisch doorgaan bij 2005999 +1 enz enz. Mocht je meer als 1000 waardes moeten invullen maar er dan 20059999 van!
Als je wil kun je de handmatig de waarde 2005999 verwijderen en zo ook table B want die doet verder helemaal niks meer.
[ Voor 11% gewijzigd door Anoniem: 76854 op 18-03-2006 13:59 ]
In principe ben je er door de volgende sql uit te voeren:
Maar volgens mij wil je dat niet, om de volgende redenen:
Je krijgt dan keurig een volgnummer per jaar, met het jaartal als prefix.
SQL:
1
| INSERT INTO JouwFactuurtabel(FactuurNummerVeld) VALUES (2006000) |
Maar volgens mij wil je dat niet, om de volgende redenen:
- Een factuurnummer moet opeenvolgend blijven. Autonummering is daarvoor per definitie niet betrouwbaar genoeg.
- Volgend jaar moet het beginnen met 2007 waarschijnlijk. Dan moet je weer zo'n soort actie uitvoeren.
Visual Basic:
1
2
| FactuurNummer = Year(FactuurDatum) & _ Format(DCount("*","Factuur","Year(FactuurDatum)=" & FactuurDatum) + 1, "000") |
Je krijgt dan keurig een volgnummer per jaar, met het jaartal als prefix.
Autonummering zet je per definitie op een primaire sleutel, en primaire sleutels hebben maar één doel: uniek zijn. Dit soort cosmetische problemen moet je je helemaal niet mee bezig houden; ofwel je maakt een ander veld dat de waarde van het ID bevat, voorafgegaan door die 2006, ofwel je berekent het zelf in je queries of in je code. Je slaat zoiets in elk geval over het algemeen niet op in je database.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Pagina: 1