Deel 1
0. Inleiding deel 2
Even opfrissen: wat is een database? en hoe zit het ook alweer met Access? Lees het hier na.
Database en tabel
Access
Microsoft Access is een programma voor het opzetten en gebruiken van databases.
Database
Een database dient voor het ordenen van gegevens. Dat ordenen dient ervoor om de gegevens weer gemakkelijk te kunnen raadplegen en gebruiken. Je kunt een database dan ook zien als een soort archief, maar dan in digitale vorm. (of denk aan een bibliotheek: de boeken zijn daar zo geordend dat je ze snel terugvindt).
In Microsoft Access is een database het totaal van alle tabellen, formulieren, queries, relaties, rapporten etc. + de ingevoerde gegevens.
Tabel
De gegevens worden in groepen geordend: groepen die bij elkaar horen. In Microsoft Access noem je zo’n geordende groep gegevens een tabel. Zo’n tabel is in feite een lijst met rijen en kolommen zoals je ook op ruitjespapier of in een Excel-spreadsheet zou kunnen maken. Iedere tabel heeft een tabelnaam die uniek is voor de tabellen binnen de database. Een geordende groep zou bijvoorbeeld kunnen gaan over boeken in een bibliotheek.
Opbouw tabel
Een rij in de tabel noem je een record. In een record vind je betekenisvolle informatie over één iets, bijv. over één boek, over één leerling, over één klas.
Een kolom in de tabel noem je een veld. Een veld gaat over één item, bijv. de prijs van ieder boek. Ieder veld heeft een veldnaam die uniek is binnen de tabel.
Ieder veld is van een bepaald type. Zo kun je bijvoorbeeld tekstvelden benoemen, numerieke velden, ja/nee-velden, een invoervak met keuzelijst etc. Het type veld bepaalt welke gegevens kunnen worden ingevoerd. In een numeriek veld kun je bijvoorbeeld geen tekst invoeren.
Opzet database
In een database komen in het algemeen meerdere tabellen voor.
Meerdere tabellen
Bij het opzetten van een database gelden regels.
- regel is dat dubbele gegevens in de database niet zouden moeten voorkomen. Dit is nl. foutgevoelig, tijdrovend en (maar dat is tegenwoordig niet meer zo belangrijk) het kost ook ruimte.
- De gegevens in de database moeten correct zijn.
Om dubbele gegevens te voorkomen, is het nodig om de gegevens per onderwerp op te nemen in verschillende tabellen.
Sleutel
Een sleutel (primaire sleutel) is een veld waarin de waardes binnen een bepaalde tabel uniek zijn, dus maar één keer mogen voorkomen. De sleutel wordt gebruikt om een bepaald record uniek te kunnen aanduiden en voor verwijzingen tussen verschillende tabellen. Denk aan school: op school kunnen natuurlijk best mensen zitten met dezelfde naam. Dat is onhandig: dan zou jij de cijfers kunnen krijgen van een andere Jan Janssen. Op school heb je daarom een uniek leerlingnummer dat niemand anders heeft. Dat leerlingnummer is een sleutel in de leerlingtabel.
Als je een tabel maakt, geeft Access je automatisch een primaire sleutel mee via ‘autonummering’. Bij ieder record dat je invoert, zet Access dan vanzelf een uniek nummer. Wil je dit niet gebruiken, dan kun je dit veld weghalen en vervangen door je eigen oplossing.
Het is ook mogelijk om te werken met een samengestelde sleutel. Dan is de combinatie van twee of meer velden uniek.
Relaties
(zie presentatie relaties voor 1 op 1, 1 op meer, meer op meer relaties)
Binnen een database komen vaak meerdere tabellen voor die onderling wel iets met elkaar te maken hebben. De gegevens in de verschillende tabellen hebben een relatie.
Binnen Acces kun je die relatie tussen de verschillende tabellen aangeven. Het is heel belangrijk om dat op een goede manier te doen. Heb je de relatie tussen verschillende tabellen op de goede manier gelegd, dan kun je gegevens uit de combinatie van de verschillende tabellen tonen in één query, in één rapport en in één formulier.
Via ‘hulpmiddelen voor databases’ en via ‘query’ kun je relaties leggen.
Stel je bijvoorbeeld een luchthaven voor. Ieder vliegtuig wordt uniek aangeduid met een nummer. Het vliegtuignummer is dus een sleutelveld binnen de tabel ‘vliegtuigen’. Daarnaast staat er allerlei informatie in deze tabel over merk/type vliegtuig, vlieguren etc.
Er zijn natuurlijk ook piloten. Iedere piloot wordt ook uniek aangeduid met een pilotennummer. Het pilotennummer is dus een sleutelveld binnen de tabel ‘piloten’. Verder staat in deze tabel allerlei informatie over de piloot, aantal vlieguren, adres enzovoorts.
Op iedere vlucht heb je een vliegtuig nodig en ook een piloot. In de tabel ‘vluchten’ ga je dus opnemen welke piloot en welk vliegtuig wordt gebruikt. Door in deze tabel het sleutelveld uit de tabel ‘piloten’ en het sleutelveld uit de tabel ‘vliegtuigen’ op te nemen weet je precies welke piloot welk vliegtuig gaat besturen. Maar: in de tabel ‘vluchten’ is het pilotennummer geen sleutelveld. Een piloot gaat natuurlijk nog wel eens vaker een vlucht maken. Het vliegtuignummer is ook geen sleutelveld. Een vliegtuig maakt ook vaker dan één keer een vlucht.
We moeten dus op zoek naar een nieuwe sleutel voor de tabel ‘vluchten’. Dat kan op verschillende manieren:
- Het benoemen van een nieuwe sleutel, bijvoorbeeld een uniek vluchtnummer
- Het bepalen van een unieke samengestelde sleutel, bijvoorbeeld door pilotennummer, vliegtuignummer en vertrektijd samen als samengestelde sleutel te benoemen. (De kans dat hetzelfde vliegtuig met dezelfde piloot meerdere keren op hetzelfde moment vertrekt is 0)
Queries
Relaties in een database zijn heel erg belangrijk. Er zijn 1 op 1, 1 op meer, en meer op meer relaties. Neem de presentatie goed door.
Een query is een stuk gereedschap om gegevens mee op te vragen en te bewerken. Er zijn verschillende soorten queries:
-
Selectiequery: je gebruikt een selectiequery om gegevens mee op te vragen. In de query kun je instellen dat je alleen bepaalde records wilt zien. Dit doe je door criteria op te geven. Het resultaat is een overzicht van alle records die aan je selectiecriteria voldoen. Dit resultaat noem je een dynaset. Je kunt gegevens uit de dynaset wijzigen: je wijzigt dan direct de oorspronkelijke tabelgegevens.
-
Toevoegquery: met een toevoegquery kun je in één klap een serie records vanuit tabel1 toevoegen aan tabel2.
-
Bijwerkquery: met een bijwerkquery kun je een bepaald veld in een tabel in één klap met een waarde vullen.
Formulier en rapport
Formulieren
Een formulier maak je op basis van een tabel. Met een formulier kun je de gegevens van één record op je scherm bekijken, wijzigen, verwijderen of toevoegen.
Binnen een formulier kun je een subformulier aanmaken. In dat subformulier kun je gegevens tonen uit een gerelateerde tabel.
Rapporten
Met rapporten kun je gegevens vanuit de database laten afdrukken. Je kunt zelf instellen welke velden van de records getoond moeten worden op het rapport, en hoe de gegevens moeten worden opgemaakt (denk aan lettergrootte, lettertype, kleur enz.). Je kunt op een rapport bijvoorbeeld ook velden laten optellen (bijvoorbeeld op een lijst met verkochte auto’s ook het totaal van de verkopen laten afdrukken)
Wat komt in de database?
Wat komt er in de database?
Stel je voor dat je een database moet gaan ontwerpen. Wat moet er in komen? Met die vraag zitten systeemontwerpers bij bedrijven ook. Je begint niet zomaar met het bouwen van een database. Zo’n systeemontwerper heeft een klant die hem of haar heeft gevraagd om een database te bouwen. Die klant heeft daar natuurlijk een reden voor. De systeemontwerper zal dan ook beginnen met vragen stellen, zoals:
- Waar is de database voor bedoeld?
- Wat gebeurt er precies? Hoe ziet het werk van de klant er uit?
- Waarom wil de klant een (andere) database?
- Welk systeem gebruikt de klant nu?
- Wat is daar goed aan? En wat juist niet?
- Wil de klant misschien hele nieuwe dingen gaan doen?
Pas daarna heeft de systeemontwerper een idee welke gegevens er in de database moeten worden opgenomen.
1. Herhaling
Lees de opdracht eerst helemaal goed door. De informatie die je nodig hebt staat verspreid.
|
- Maak een tabel met:
- naw-gegevens van leerlingen. Naw staat voor Naam, Adres, Woonplaats.
- Ook moet een foto van de leerling kunnen worden opgeslagen.
- Zorg voor een primaire sleutel
- De tabel moet zo worden ingericht dat er kan worden gesorteerd op voornaam, achternaam, leeftijd en klas.
- Wanneer je de tabel af hebt, maak je er een formulier voor. Niet met de wizard maar gewoon in ontwerpweergave.
- Verander de formulierkoptekst in‘leerlinggegevens’
- Zorg dat de lengte van de invoervelden past bij de gegevens die erin komen te staan.
- Zorg dat de foto onderaan komt te staan en groter wordt getoond.
- Zorg ervoor dat je bij het invoeren van de gegevens via het formulier als laatste de foto moet toevoegen
- De klas van de leerling moet kunnen worden gekozen uit een keuzelijst met invoervak. Dit kan op twee manieren. Kies zelf de geschikste manier en onderbouw je keuze.
- Het veld IPAD (heeft de leerling er één?) is een selectievakje.
- De datum ziet er als volgt uit: 1 januari 2011, wanneer een leerling ouder is dan 14 jaar dan moet de tekst groen worden (anders zwart)
- Ouderbijdrage: Dit is normaal gesproken € 10,00, in bijzondere gevallen betalen ouders minder of niets.
- Vul bij het navigatiebijschrift de tekst Bladeren: in (eigenschappen formulier)
- Maak in de formuliervoettekst een knop om een record af te drukken.
- Vul minimaal één record volledig in om te controleren of alles goed werkt.
2. Uitleg relaties
In onderstaande presentatie worden 1 op 1 relaties, 1 op meer relaties en meer op meer relaties nog eens uitgelegd.
3. Opdracht relaties
Opdracht: Tabellen en relaties
Maak de twee volgende tabellen:
- Leerlingen met de velden leerlingnr, Naam, geslacht (ja/nee veld- je hebt maar twee geslachten)
- Vakken met de velden Vakcode en Vakomschrijving
Deze twee tabellen hebben een meer op meer relatie. Dit kan niet rechtstreeks in Access worden opgelost. Maak dus nog een tabel om dit probleem op te lossen. Bedenk dat de meer op meer relatie wordt opgesplitst in twee één op meer relaties.
Zorg ervoor dat de juiste sleutelvelden worden gedefinieerd.
Leg de relaties in het Relatiescherm.
Formulier
Maak een formulier met de leerlinggegevens. Gebruik formulierontwerp!
Zorg met behulp van een subformulier (dit is een keuze in formulierontwerp) dat per leerling de bijbehorende vakken getoond worden. (zowel de afkorting als de hele naam). In eerste instantie zie je (waarschijnlijk) dat het leerlingen nummer per vak herhaald wordt. Haal dit veld weg uit het subformulier.
Je ziet nu de vakafkortingen van de vakken die de leerling heeft.
Maak van het tekstvak vakcode een keuzelijst met invoervak die gekoppeld is aan de tabel vakken zodanig dat de vakomschrijving wordt getoond en de vakcode wordt opgeslagen.
Het resultaat is nu een formulier waar drie verschillende tabellen worden getoond.
Is dit allemaal gelukt, maak dan van het veld geslacht een groepsvak die er als volgt uitziet:
De waarden die je moet invullen zijn waar/onwaar in plaats van de 1 en 2 die er staan. Dat doe je omdat je van het veld ‘geslacht’ volgens de opdracht een ja/nee veld hebt moeten maken. Bij een ja/nee veld hoort de waarde -1 (waar) of 0 (onwaar).
Je mag zelf kiezen of je bij ‘man’ ‘waar’ intypt of bij ‘vrouw’ (bij het andere geslacht komt dan ‘onwaar’ te staan)
Van het woord ‘waar’ maakt Access zelf -1 en van ‘onwaar’ maakt Access 0. Je kunt ook direct de cijfers intypen als je wilt.
BELANGRIJK: je moet wel onthouden of -1 in jouw geval ‘man’ of ‘vrouw’ betekent.
4. Cursus
Zoek in het document 'videocursus Access' opdracht 2A, 2C en 2D en voer deze uit.even ui
Download de database 'contacten'. Hierin vind je de tabel tblPersoonsgegevens die je nodig hebt om de opdracht te kunnen maken.
Pas op, het is een zipfile: even uitpakken en opslaan.
5. Belgisch bier
1. Download het bestand 'Belgisch bier'. Pas op: dit is een zipfile: even uitpakken dus en opslaan in je eigen map.
2. Leg de correcte relaties.
3. Maak nu het volgende:
- Een query waaruit blijkt welke type bier (inclusief naam) welke brouwerij maakt.
- Een query waarin alleen bieren worden getoond met een alcoholpercentage groter of gelijk aan 5,5%
- Een query waarin je kunt zien tot welke groep ieder bier behoort
- Kijk je opdrachten na en zorg dat er nergens meer dubbele waarden worden getoond.TIP: instelling bij de eigenschappen van de query.
6. Eindopdracht