Autonummer veld aanvullen

Status
Niet open voor verdere reacties.

remcop1989

Gebruiker
Lid geworden
29 mrt 2012
Berichten
492
Ik heb een tabel met een veld als autonummer ingesteld. Als ik nu uit de reeks records van 1 t/m 7 record 4 weghaal, wil ik dat deze ook weer automatisch gevuld word. Is dit mogelijk?
 
Nee, want nummers worden niet hergebruikt bij autonummering. [Wacht voor de zekerheid even af wat anderen ervan zeggen.]

Tijs.
 
Het klopt wat dnties zegt, automatische nummers kun je niet meer hergebruiken. Maar er is één uitzondering: de laatste nummers die zijn toegevoegd en verwijderd kun je weer beschikbaar maken door de database te comprimeren en herstellen. Als je dus nummers 1-56 hebt gebruikt voor een factuur, en je voegt voor testen wat extra records toe (zeg 57-62) en je verwijdert ze, dan gaat Access normaal gesproken verder bij een nieuw record verder met 63, maar als je de db comprimeert en herstelt, dan is nummer 57 weer beschikbaar.
Dit gaat alleen op voor records die geen koppelingen hebben naar andere tabellen. Offertenummer 60 met records in de tabel OfferteRegels zal vermoedelijk niet eens verwijderd kunnen worden; in dat geval is na comrpimeren nummer 61 weer beschikbaar.
Nummers 1-7 kun je in die situatie nog wel verwijderen, maar die nummers zijn nog steeds niet beschikbaar. Overigens moet je dat ook niet willen :)
 
Omdat je oude nummers ooit zijn gebruikt, en dus betekenis hebben in de db. In beginsel moet je in de database niks weg willen gooien, want daarmee raak je de historie kwijt. Als Klant 321 ooit artikelen heeft gekocht, heb je daarvoor records gemaakt in de tabel Verkopen. Gaat klant 321 failliet, dan is de kans klein dat die nog iets gaat bestellen, dus de gedachte is dan al snel: om vervuiling van de database te voorkomen, gooien we alle niet-relevante actieve klanten weg. Gevolg: in je tabel heb je dan records voor een klant die niet meer in je klantentabel bestaat. Hoe weet je nu nog wie die artikelen gekocht heeft? Je kunt je tabel Klanten dan niet meer fatsoenlijk koppelen aan Verkopen, want de relatie tussen de twee heeft geen referentiële integriteit meer. Ga je een stap verder, en verwijder je dan de verkooprecords van 321 om die integriteit te herstellen, dan heb je ook je verkoopgegevens, en daarmee je omzetcijfers, om zeep geholpen!
Laat je alles in tact, en gebruik je record 321 voor een nieuwe klant, dan heeft die klant ineens, zonder ook maar iets te bestellen, een historie bij het bedrijf!

Kortom: unieke ID's zijn altijd gekoppeld aan één entiteit, en blijven dat tot de db de prullenbak in gaat. Ergo: er is geen enkele wenselijkheid of noodzaak om een eerder gebruikt nummer te hergebruiken. Met dus als uitzondering dat je per abuis gemaakte (nieuwe) records die verder geen consequenties hebben (lees gekoppelde records) nog wèl zou kunnen verwijderen om de nummering enigszins natuurlijk te houden.
De oplossing voor oude, niet-relevante records (zie voorbeeldje hierboven) is natuurlijk om die te archiveren, bijvoorbeeld middels een extra Ja/Nee veld, of een aparte tabel.
 
Iets bondiger to the point geformuleerd:

Autonummering is puur en alleen bedoeld om gegevens in tabellen uniek te identificeren.
Als je volgnummers voor transacties wilt gebruiken zoals order of facturen dan gebruik je daarvoor een zelf gedefinieerd volgnummer, nooit een autonummer.
Dat wil je ook niet omdat in autonummering gaten kunnen vallen terwijl je wilt dat transacties opeenvolgend genummerd worden.
In geval van facturen is dat zelfs een wettelijk vereiste.

Tardis
 
De tips van Tardis getuigen van gezond verstand, want handmatige nummers zijn beter te beheren dan een autonummer. Maar oplopend nummeren zonder gaten staat gelukkig niet in de wet. Dit zegt de Belastingdienst er over:

Verplichte gegevens op uw factuur

U vermeldt op uw facturen altijd minimaal de volgende basisgegevens:

uw naam, adres en btw-nummer
uw KvK-nummer (als u bent ingeschreven bij de Kamer van Koophandel)
een uniek volgnummer
de datum waarop de factuur gemaakt is
de naam en het adres van uw afnemer
de datum waarop, of het tijdvak waarin de goederen of diensten zijn geleverd
het aantal geleverde goederen of diensten
een omschrijving van de goederen of diensten die u hebt geleverd
het btw-tarief dat u in rekening brengt
het bedrag dat u in rekening brengt, exclusief btw
het btw-bedrag
Er staat dus alleen dat het nummer uniek moet ziijn.
 
Ik zou zeggen: boter bij de vis en het wetsartikel graag :)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan