In de praktijk komt het vaak voor dat periodiek bronbestanden uit primaire registratiesystemen - zoals bijvoorbeeld SAP - worden gehaald. Vaak is het doel om deze bronbestanden te laden, verrijken en te importeren naar een ander systeem.
Dit proces wordt ook wel ETL genoemd. Deze afkorting staat voor Extract Transform en Load.
In dit artikel wordt uitgelegd hoe drie fictieve Excel bronbestanden geladen, verrijkt en geïmporteerd kunnen worden naar één doeltabel in een Access database.
In een eerder verschenen artikel wordt beschreven hoe deze bestanden in Excel, met behulp van VBA, dynamisch naar een doel-werkmap geïmporteerd kunnen worden.
Afbeelding | Video instructie |
In de bovenstaande linker afbeelding is te zien dat de drie bronbestanden bestaan uit de kolommen: [Voorletter], [Voornaam], [Achternaam] en [Geboortedatum]. Daarnaast is te zien dat deze bronbestanden zijn geïmporteerd naar één doeltabel en verrijkt met het veld [Leeftijd]. De leeftijd is met behulp van een expressie berekend aan de hand van de geboortedatum.
Een expressie in Access is vergelijkbaar met een formule in Excel.
Via een doel- en brontabel in combinatie met een toevoegquery is dit proces in Access te automatiseren. In de bovenstaande linker afbeelding te zien dat deze objecten respectievelijk: [Doel], [Bron] en [Importeren] heten.
Om dit proces te automatiseren zijn de onderstaande fasen van belang. Deze fasen worden eveneens via de bovenstaande video instructie gevisualiseerd.
1. Voorbereiding
Vanuit Access kan een tabel gekoppeld worden naar een bronbestand. Deze verwijzing is absoluut waardoor het bronbestand op een vaste locatie dient te staan met een vaste generieke naam.
2. Doel
De eerste stap is om een doeltabel aan te maken. Deze tabel fungeert als master tabel waarnaar alle data naar toe wordt geïmporteerd. Het makkelijkste is om eenmalig een bronbestand te importeren. Op deze manier weet Access om hoeveel velden het gaat en om wat voor soort gegevenstypen.
Verrijkte velden
Om de gewenste indeling compleet te maken dienen vervolgens de verrijkte velden te worden toegevoegd. In dit voorbeeld is dat slechts het veld [Leeftijd].
Inhoud verwijderen
Het doel was om een doeltabel te maken met de juiste indeling, om die reden kan de inhoud verwijderd worden.
3. Bron
Nu is de volgende stap om de bron te koppelen in plaats van te importeren. Op deze manier kan straks - via een toevoegquery - de inhoud makkelijk geïmporteerd worden naar de doeltabel. Het voordeel van een koppeltabel is dat het bronbestand, buiten Access, makkelijk vervangen kan worden bij een periodieke update.
4. Importeren
Vervolgens dient er een toevoegquery gemaakt te worden die al het werk gaat doen.
Standaard velden
Alle bronvelden dienen één op één te worden geïmporteerd naar de doelvelden met dezelfde omschrijving: Bron.* naar Doel.*
Verrijkte velden
De leeftijd dient berekend en geïmporteerd te worden naar het eerder aangemaakte doelveld [Leeftijd]. Deze berekening is gebaseerd op de onderstaande expressie.
Leeftijd: (Now()-[Bron].[Geboortedatum])\365,25
Let op: deze expressie is voor 99% accuraat, in dit artikel wordt dit nader toegelicht.
Importeren naar doeltabel
Tot slot kunnen de drie bronbestanden geïmporteerd worden door de toevoegquery uit te voeren met telkens het juiste gekoppelde bronbestand.
Download hier het oefenbestand.