Zoeken in MS Access 2010-cursus:

Inleiding

1. Leerdoel

De student moet de essentiële begrippen kennen, die bij het werken met Microsoft Access 2010 van het grootste belang zijn.

2. Toelichting

Volgende begrippen worden bij wijze van introductie toegelicht: database, databasemanager, tabellen, veldnamen, records, relationele databases, primaire sleutels en  databaseobjecten.

2.1. Database

Een database is een georganiseerde verzameling van informatie betreffende een bepaald onderwerp, groep personen, thema's, enzovoort. In Deel II van deze syllabus, aangaande Microsoft Excel, werd het begrip database reeds geïntroduceerd, toen de verwerkingsmogelijkheden van Excel met betrekking tot tabellen werden toegelicht.  

Voorbeelden van databases zijn: namenlijsten, puntenlijsten, productcatalogus, telefoonlijst, boekenbestand van een bibliotheek, enzovoort.

2.2. Databasemanager

Een databasemanager of databasemanagementsysteem (DBMS) is de elektronische opvolger van de vroegere houten kaartenbak, die onder meer in bibliotheken werd gebruikt.  Daarbij werd voor elk boek een kartonnen fiche ingevuld met vermelding van onder meer naam van de auteur, titel van het boek, uitgever, jaar van uitgave, trefwoorden ter omschrijving van het onderwerp, enzovoort.  Door al deze kartonnen fiches op een geordende wijze (alfabetisch op auteursnaam of alfabetisch op trefwoord) in de kaartenbak te stoppen, kon relatief snel een boek van een bepaalde auteur of betreffende een bepaald onderwerp worden opgezocht.

Een databasemanager laat op vergelijkbare wijze toe om informatie te ordenen.  Het is een computerprogramma dat helpt bij het:

2.3. Tabellen

Daar waar vroeger gebruik werd gemaakt van een houten kaartenbak om kartonnen fiches in te bewaren, gebruikt een databasemanager thans een tabel om elektronische fiches in op te slaan. Een tabel is dus een verzameling van elektronische fiches aangaande gelijkaardige gegevens (personen, onderwerpen, telefoonnummers, boeken,...).

2.4. Veldnamen

Een databasemanager is in zekere mate vergelijkbaar met een rekenblad van Excel omdat deze de informatie eveneens ordent in kolommen.  De koppen van deze kolommen worden (eveneens) veldnamen (variabelen) genoemd en de kolommen zelf heten velden.  Elke kolom bevat een specifiek kenmerk (attribuut) van de gegevenseenheid die in de tabel wordt opgeslagen: naam, voornaam, boektitel, omschrijving van een onderwerp, cursusnaam, enzovoort.

2.5. Records

Alle attributen van een gegevenseenheid samen vormen in de tabel een rij, die in databasetermen een record wordt genoemd.  Voor elke gegevenseenheid in de tabel wordt bijgevolg een nieuwe record toegevoegd ter beschrijving van alle op te slagen attributen.

Zo zal een tabel waarin de attributen van 10 studenten zijn opgenomen, tien records bevatten (voor elke student één), en worden in elke record dezelfde kenmerken van een student beschreven: volgnummer, naam, voornaam, geboortejaar, klas, lesgroep, optie, enzovoort.

Indien voor elk van de tien studenten zes attributen worden beschreven, bevat de tabel dus 10 records die elk zes dezelfde veldnamen bevatten in evenveel kolommen.

Tabel: Studenten
Volgnummer Naam Voornaam Geboortedatum Jaar Optie
1 Janssens Jan 01/04/1980 3 PW
2 Pieters Piet 13/05/1979 2 MW
3 Martens Maarten 21/12/1978 3 SKW
Enzovoort          

2.6. Relationele databases

Microsoft Access is een relationeel databasesysteem.  Dit betekent dat attributen betreffende eenzelfde gegevenseenheid in meerdere, verschillende tabellen kunnen worden opgeslagen en dat er tussen deze verschillende tabellen relaties kunnen gelegd worden, ten einde bijvoorbeeld alle attributen - afkomstig van verschillende onderling verbonden tabellen - in één enkel overzicht weer te geven.

Een voordeel van een relationele databasestructuur is onder meer dat dezelfde gegevens (bijvoorbeeld namen en voornamen) niet meermaals in verschillende tabellen moeten ingevoerd worden.

Voorbeeld

Onderstel dat we de bovenstaande tabel 'Studenten' willen uitbreiden met een overzicht van de computercursussen die door deze studenten op vrijwillige basis kunnen gevolgd worden.  Het handelt daarbij om een cursus 'Word', 'Excel', 'Powerpoint' en 'Access' die al dan niet door een student gevolgd werd.

Het lijkt logisch om aan de tabel 'Studenten' vier velden toe te voegen, voor elke cursus één.  Maar dit zou ertoe leiden dat heel wat schijfruimte onnodig verspild wordt omdat quasi geen enkele student de vier computerlessen inderdaad gevolgd heeft.

Een andere mogelijkheid zou er in bestaan een tweede tabel te construeren, waarin we voor elke gevolgde cursus een record toevoegen, met vermelding van een volgnummer, naam en voornaam van de student, alsook de naam van de gevolgde cursus.

Tabel: Computercursussen

Volgnummer Naam Voornaam Cursus
1 Pieters Piet MS Word
2 Pieters Piet MS Powerpoint
3 Martens  Maarten MS Word
4 Janssens Jan MS Excel
Enzovoort      

Deze oplossing heeft echter als nadeel dat - omwille van de noodzakelijke identificatie van de student - de naam en voornaam van elke student een tweede keer moet worden ingevoerd in deze tweede tabel.  Dit is niet enkel verspilling van schijfruimte, maar ook van (invoer) tijd.

De beste oplossing bestaat er in dit geval in een relatie te leggen tussen de tabel 'Studenten' en de tabel 'Computercursussen', waarbij het volgnummer in de tabel 'Studenten' en het volgnummer in de tabel 'Computercursussen' als gemeenschappelijk element worden gebruikt om de records uit de twee tabellen aan elkaar te koppelen.  De tabel 'Studenten' kan dan ongewijzigd blijven:

Tabel: Studenten
Volgnummer Naam Voornaam Geboortedatum Jaar Optie
1 Janssens Jan 01/04/1980 3 PW
2 Pieters Piet 13/05/1979 2 MW
3 Martens Maarten 21/12/1978 3 SCW
Enzovoort          

Terwijl de tabel 'Computercursussen' er dan als volgt kan uitzien:

Tabel: Computercursussen

Volgnummer Cursus
2 MS Word
2 MS Powerpoint
3 MS Word
1 MS Excel
Enzovoort  

Hierbij verwijst het volgnummer in de tabel 'Studenten' naar hetzelfde volgnummer in de tabel 'Computercursussen'.  Bij het samenstellen van een rapport waarin, naast de studentgegevens ook de computercursussen worden weergegeven, kan dan onder elke student de naam van de gevolgde computercursus worden weergegeven op basis van het gemeenschappelijk volgnummer:

Naam: Pieters Piet     (Volgnummer: 2)

Gevolgde cursussen:

MS Word     (Volgnummer: 2)

MS Powerpoint    (Volgnummer: 2)

De relatie die tussen de twee tabellen wordt gelegd op grond van een gemeenschappelijk veld (volgnummer) leidt dus tot minder tikwerk, geen nodeloze herhaling van dezelfde gegevens en minder gebruikte schijfruimte.

2.7. Primaire sleutels

Een primaire sleutel is een attribuut (veld, variabele of kenmerk) waarmee gegevens in een tabel eenduidig kunnen gedefinieerd worden.

In bovenstaand voorbeeld is in de tabellen 'Studenten' en 'Computercursussen' het gemeenschappelijke veld 'Volgnummer' waarmee elke student eenduidig van elke andere student kan onderscheiden worden.

Een primaire sleutel hoeft niet noodzakelijk een nummer te zijn: ook een naam (of de combinatie van een naam met een voornaam) kan als primaire sleutel gebruikt worden.

Vermits de verwerkingssnelheid van Access mede bepaald wordt door de lengte van de primaire sleutel in een tabel, kan deze best zo kort mogelijk worden gehouden.

Dit is meteen de reden waarom vaak een (automatisch toegekend) volgnummer als primaire sleutel aan een tabel wordt toegevoegd.

Access vereist niet dat door de gebruiker voor elke tabel een primaire sleutel wordt opgegeven.  Daarentegen biedt het bepalen van een primaire sleutel een aantal voordelen:

2.7.1. Snelheid

Access maakt op basis van de primaire sleutel een index (een bestand waarin de volgorde van de records in een tabel is vastgelegd) waardoor de verwerking van query's (zie verder) en andere functies kan versnellen.

2.7.2. Volgorde

De records in een tabel worden door Access getoond in de volgorde die in de primaire sleutel is vastgesteld (alfabetisch, oplopend naar grootte, oplopend in de tijd,...).

2.7.3. Geen dubbele registratie

Access laat niet toe dat gebruikers aan twee records dezelfde primaire sleutel toekennen, waardoor deze records niet langer eenduidig gedefinieerd zouden zijn: een primaire sleutel moet voor elke record een uniek gegeven (nummer, naam,...) bevatten.

2.7.4. Relaties

Primaire sleutels zijn ook handige velden om tabellen onderling aan elkaar te koppelen via relaties, zoals uit bovenstaand voorbeeld mag blijken.

2.8. Databaseobjecten

Microsoft Access kent 6 verschillende objecten (objecttypes), die elk - vaak, maar niet noodzakelijk - samen deel kunnen uitmaken van een database:

2.8.1. Tabel

Een tabel is zoals gezegd een opslagplaats voor gegevens in rijen en kolommen op enigszins vergelijkbare wijze als een werkblad in Excel.

2.8.2. Query

Een query zoekt gegevens op in een tabel aan de hand van door de gebruiker gedefinieerde criteria.  Met query's kunnen ook gegevens afkomstig uit meerdere aan elkaar gerelateerde tabellen worden weergegeven. Een query zou er bijvoorbeeld voor kunnen zorgen dat alle studenten, van wie de voornaam 'Jan' is, worden opgezocht in een tabel en vervolgens weergegeven in een lijst.

Er zijn ook zogenaamde actiequery's waarmee onder meer kruistabellen en statistieken kunnen worden berekend, bepaalde gegevens in een tabel worden aangepast of verwijderd, op basis van een bestaande tabel een nieuwe tabel wordt gemaakt, ...

2.8.3. Formulier

Een formulier toont de gegevens uit een tabel of query op een door de  gebruiker gedefinieerde manier. Via een formulier kunnen tevens gegevens worden ingevoerd, gewijzigd en afgedrukt.  Een formulier kan eveneens de gegevens uit verschillende (gerelateerde) tabellen bevatten.

2.8.4. Rapport

Een rapport toont gegevens op het beeldscherm of print gegevens uit een tabel of query af, op een door de gebruiker bepaalde wijze.  Ook een rapport kan gegevens afkomstig uit verschillende (gerelateerde) tabellen bevatten.

2.8.5. Macro

Een macro is een geautomatiseerde databaseverwerking aan de hand van door de gebruiker gedefinieerde opdrachten en gebeurtenissen.

2.8.6. Module

Een module automatiseert complexe bewerkingen waarbij de programmeur over méér besturingsmogelijkheden beschikt dan bij macro's.  Modules zijn procedures die worden geschreven in de programmeertaal Visual Basic for Applications (VBA).

3. Bronnen

    Helpprogramma bij Microsoft Access 2010: zoek op 'Aan de slag met Access'.