Voorraadbeheer

Als het over voorraaddatabases in Access gaat, ontstaat er vaak een discussie over de vraag of je naast de voorraadmutaties ook de voorraad in een tabel moet bijhouden.

Je zal over het algemeen alle voorraadmutaties willen vastleggen om bijvoorbeeld achteraf controles uit kunnen voeren ten opzichte van verantwoordingsdocumenten. De vraag is dan of je de voorraad nog apart in een tabel moet bijhouden.

Naar mijn idee is dat niet nodig. De actuele voorraad van een artikel is op ieder moment af te leiden uit de vastgelegde voorraadmutaties. Het daarnaast nog bijhouden van de voorraad is lastig (bij elke boeking moet je extra handelingen doen om de voorraad bij te werken) en foutgevoelig (als er iets misgaat is de som van de voorraadmutaties niet overeenstemming met de voorraad en wat is dan juist?).

Als nadeel van het bepalen van de voorraad op basis van de voorraadmutaties wordt de mogelijk slechte performance genoemd. Door een index op de voorraadmutaties te zetten is dat probleem echter te ondervangen.

Ik heb een heel eenvoudige voorraadadministratie gemaakt om het principe te demonstreren. Voor degenene die toch performace-beren op de weg zien heb ik ter geruststelling een archiveringsfunctie ingebouwd. Die zorgt ervoor dat alle voorraadmutaties naar een historische tabel verplaatst worden en alle voorraadsaldi (groter dan nul) als nieuwe voorraadmutatie (nieuwe startvoorraad) opgeslagen worden.

Klik hier om de voorbeelddatabase te downloaden en te besnuffelen.