Ik zie dat je de tabel letterlijk hebt geïmporteerd, en er een formulier overheen hebt gejast. Helemaal fout dus! Een tabel in Excel is totaal niet te vergelijken met een database in Access. Het is niet voor niks dat mensen na verloop van tijd zo'n tabel overzetten naar een Zelfs als je de tabel bekijkt, dan zie je al gelijk allerlei problemen die je moet oplossen in Access, voordat je maar mag dromen over formulieren.
Laten we eens een paar simpele zaken onder de loep nemen.
In een goede database maak je tabellen waarin geen dubbele gegevens(groepen) voorkomen. In jouw geval zijn die in ruime mate aanwezig; ik noem er een paar:
Plant Manager in Plant Manager out B Baum/R Muller in B Baum/R Muller Out Marco in Marco Out Rob B/ F D Greef/M Provoost in Rob B/ F D Greef/M Provoost Out Han VDH/P Therg/E Verw In Han VDH/P Therg/E Verw Out C Rigo In C Rigo Out Erwin In Erwin Out
Hierin sla je de datums op, waar het in al jouw vragen (deze vraag slaat wel degelijk op je eerdere vraag) om draait. Deze velden zijn herhalend, en dien je dus in een aparte tabel op te slaan. In die tabel heb je maar 4 velden nodig: een koppelveld naar je hoofdtabel, een veld MedewerkerID, een veld [DateIn] en een veld [DateOut]. Vervolgens vul je die tabel elke keer dat er een datum moet worden ingevuld vanuit je hoofdformulier. Op basis van die nieuwe tabel is het ook heel makkelijk om de laatste datum te vinden met MAX.
Volgende probleem: velden als [Factory], [Category] en [Department]. Dit zijn velden met herhalende waarden. En in jouw tabel kun je net zo makkelijk <Manufacturing> als <Manufakturing> invullen. Dat mag natuurlijk niet; voor dat soort gegevens maak je opzoektabellen die je koppelt op FactoryID, [CategoryID] en [DepartmentID]. Verandert de naam van de fabriek, dan verandert er niks in je database. En zo hoort het ook!
Wat is eigenlijk de grootste makke van jouw systeem? Nog niet eens de huidige structuur, al deugt die dus van geen kanten. Maar de manier waarop je die velden ook nog eens op je formulier gebruikt. In jouw systeem ga je er vanuit dat
a) Rigo, Erwin, Jean, Lioyd, Rick, David, en Dirk etc. het eeuwige leven hebben,
b) nooit bij het bedrijf zullen vertrekken
c) nooit een andere functie krijgen binnen het bedrijf
Want wat doe je als Rigo volgende maand onder een trein loopt, Jean op vakantie in Jamaica aan die leuke vent blijft hangen en coctails gaat verkopen op het strand, en Dirk directeur wordt en dus een hele andere functie krijgt binnen het proces? Dan ben je in de aap gelogeerd, want dan klopt er niks meer van je formulier. De simpele oplossing van de namen in de tabel en het formulier veranderen mag natuurlijk nooit, want dan heeft de vervanger nog voordat hij ook maar één vinger in het bedrijf heeft uitgestoken, al 20 jaar aan transacties getekend! Dus zit er niks anders op dan nieuwe velden aanmaken, en al je formulieren weer aanpassen.
Kortom: dit is de slechts mogelijke manier van een database maken. En dat is nu precies wat we je al een tijdje duidelijk proberen te maken..... En al die tijd had ik heerlijk in de zon kunnen zitten met een koel biertje onder handbereik
