2 Database SNOEP verkennen
De cursus is opgebouwd rond het voorbeeldbestand snoep365.accdb
. In dit hoofdstuk komt aan bod uit welke tabellen deze database is opgebouwd en waarvoor deze tabellen dienen. Met deze voorbeelddatabase ga je wat experimenteren om een aantal aspecten over het werken met Access te ontdekken. Sommige functies worden in andere hoofdstukken verder uitgediept.
2.1 Voorbeelddatabase SNOEP
De voorbeelddatabase snoep365.accdb
bevat gegevens over SNOOPY, een bedrijf dat bonbondozen verkoopt aan klanten. In de dozen zitten verschillende soorten bonbons. De informatie wordt in 6 tabellen bijgehouden:
- Klanten
- Orders
- Orderdetails
- Dozen
- Doosdetails
- Bonbons
De klantgegevens staan in de tabel Klanten. De orders van de klanten worden opgeslagen in de tabellen Orders en Orderdetails. De gegevens van een doos bonbons, bijvoorbeeld naam en prijs, staan in de tabel Dozen. In de tabel Doosdetails staat welke bonbons en hoeveel daarvan in elke doos zitten. De tabel Bonbons bevat gegevens over de naam van de bonbons, het chocoladetype, de vulling en bevat zelfs een plaatje.
Iedere tabel in de database moet een veld of een combinatie van velden hebben waarmee je elke regel in de tabel uniek kunt identificeren. Dit is vaak een nummer, zoals artikelnummer, personeelsnummer. In de database terminologie wordt deze informatie de primaire sleutel van de tabel genoemd. De waarde van de primaire sleutel kan maar één keer voorkomen in de tabel. Dubbele waarden voor de primaire sleutel zijn dus verboden. De meeste tabellen hebben een primaire sleutel die uit één veld bestaat, maar soms is een combinatie van velden nodig om tot een unieke combinatie te komen. In de tabellen Klanten, Orders, Dozen en Bonbons bestaat de sleutel uit 1 veld. En in de tabellen Orderdetails en Doosdetails vormen twee velden samen de sleutel. Zie Figuur 2.1.
De zes tabellen worden hierna kort besproken.
2.1.1 Tabel Klanten
In de tabel Klanten worden verschillende gegevens van een klant bijgehouden. Iedere klant heeft een unieke klantcode. Het veld Klantcode is de primaire sleutel van de tabel. Iedere regel uit een tabel heet ook wel een record. De klanten zijn gesorteerd op de waarden in het sleutelveld.
Ga na dat er 325 klanten in de tabel Klanten zitten.
2.1.2 Tabel Orders
In de tabel Orders is Ordercode de primaire sleutel, de waarde van Ordercode is uniek. Een bepaalde klantcode kan in deze tabel wel vaker voorkomen omdat een klant meerdere orders kan plaatsen. Een order hoort altijd bij één klant.
Ga na dat er 784 orders in de tabel Orders zitten.
2.1.3 Tabel Orderdetails
Een order kan meerdere dozen bevatten, maar in een order kan elke dooscode slechts één keer voorkomen. Wel kan een bepaalde doos in meerdere orders besteld zijn, zodat een dooscode bij meerdere ordercodes kan horen. De tabel Orderdetails bevat 1537 records (orderregels).
Ga na dat op de order met ordercode 3 twee verschillende dozen besteld zijn, want de tabel bevat twee regels met ordercode 3. In totaal zijn drie dozen besteld op deze order, twee dozen met de dooscode KERS en 1 doos met de dooscode NORT.
De combinatie van Ordercode en Dooscode is steeds uniek. Daarom bestaat de sleutel in de tabel Orderdetails uit de combinatie van deze twee velden.
Het totale aantal bestelde dozen op alle orders is de som van alle getallen uit de kolom Hoeveelheid. Dit aantal is in de tabel niet af te lezen. In een ander onderdeel in deze cursus wordt uitgelegd hoe je dit kunt laten berekenen.
2.1.4 Tabel Dozen
In de tabel Dozen is Dooscode de sleutel. Er zijn in totaal 18 soorten dozen die ieder een unieke dooscode hebben. Deze tabel vormt het artikelbestand van het bedrijf Snoopy.
2.1.5 Tabel Doosdetails
In de tabel Doosdetails wordt bijgehouden welke soorten bonbons en hoeveel daarvan in een bepaalde doos zitten. Zo kun je aflezen dat in de doos ALLS zes soorten bonbons zitten, van elk twee stuks, totaal dus twaalf bonbons. In deze tabel bestaat de sleutel uit de combinatie van de velden Dooscode en Bonboncode.
2.1.6 Tabel Bonbons
In de tabel Bonbons wordt van elke bonbonsoort een aantal eigenschappen bijgehouden. De sleutel is het veld Bonboncode. De tabel bevat 41 records (bonbonsoorten).
Aan de hand van de gegevens uit de tabellen kun je gemakkelijk een aantal berekeningen maken.
Wat is het gemiddelde aantal bonbonsoorten per doos? Hiervoor moet je het totaal aantal records in de tabel Doosdetails delen door het totaal aantal doossoorten. Dus \(\frac{84}{18}= 4,7\).
Wat is het gemiddelde aantal doossoorten per order? Hiervoor moet je het totaal aantal orderregels delen door het totaal aantal orders. Dus \(\frac{1537}{784}\) = 2,0.
Het gemiddeld aantal bonbons in een doos kun je niet zomaar uitrekenen. Hiervoor zou je het totaal aantal bonbons in alle dozen moeten weten. Dit is de som van alle getallen in de kolom Hoeveelheid in de tabel Doosdetails.
2.2 Beveiliging en macro’s
Sommige databases zoals snoep365.accdb
bevatten macro’s. Deze zijn in de meeste gevallen gemaakt om bepaalde taken in de database uit te voeren. Maar virusmakers kunnen deze mogelijkheden ook gebruiken om een virus te verspreiden. Wanneer een dergelijke database niet op een vertrouwde locatie staat of ondertekend is door een vertrouwde uitgever, dan toont Access bij het openen van de database een beveiligingswaarschuwing. De macro’s in de database zijn dan uitgeschakeld.
Je kunt de macro’s op een van de volgende manieren inschakelen.
Macro’s eenmalig inschakelen
Klik in het gebied met de beveiligingswaarschuwing op de knop Inhoud inschakelen.
Deze methode wordt niet aanbevolen omdat je iedere keer wanneer je de database opent deze waarschuwing krijgt en steeds weer opnieuw moet aangeven dat de macro’s ingeschakeld moeten worden.
Uitgever toevoegen aan lijst met vertrouwde uitgevers
Wanneer de maker van de database deze van een digitaal certificaat heeft voorzien, dan kun je de maker toevoegen aan de lijst met Vertrouwde uitgevers. Access schakelt dan automatisch alle macro’s in die door deze maker gemaakt zijn, in alle databases. Dit is een heel veilige methode, maar meestal gebruiken alleen de grotere bedrijven een digitaal certificaat. De database snoep365.accdb
is niet van een certificaat voorzien.
Database op een vertrouwde locatie plaatsen
Access kent vertrouwde locaties (mappen). Access schakelt automatisch alle macro’s in van alle databases die op een vertrouwde locatie staan. Dit is de meest gemakkelijke manier om veilig te werken en niet voortdurend door beveiligingswaarschuwingen gestoord te worden en wordt ook aanbevolen voor de database snoep365.accdb
. Voer deze actie als volgt uit.
Kies Bestand > Opties > Vertrouwenscentrum > Instellingen voor het Vertrouwenscentrum > Vertrouwde locaties > Nieuwe locatie toevoegen.
In het voorbeeldscherm wordt de map C:\temp
als vertrouwde locatie toegevoegd..
Beveiliging voor alle macro’s instellen
Eventueel kun je de manier wijzigen waarop Access met alle macro’s in alle databases omgaat. Voer deze actie als volgt uit.
Kies Bestand > Opties > Vertrouwenscentrum > Instellingen voor het Vertrouwenscentrum > Macro-instellingen.
Het wordt niet aanbevolen om alle macro’s in te schakelen, je bent dan de controle over de beveiliging kwijt.
2.3 Database verkennen
Voor deze verkenning moet je het bestand snoep365.accdb
geopend hebben.
Wanneer er een beveiligingswaarschuwing getoond wordt moet je actie ondernemen, zie hiervoor Paragraaf 2.2.
Het navigatievenster staat links en hierin zijn alle objecten van de database te vinden. De objecten worden onderverdeeld in groepen: Tabellen, Query’s, Formulieren, Rapporten, Macro’s. In Figuur 2.11 is het venster van de groep Tabellen opengevouwen. Het navigatievenster zelf en de vensters voor de groepen kunnen open- en dichtgevouwen worden.
- selectie getoonde objecten
- groep openvouwen
- groep dichtvouwen
- navigatievenster dichtvouwen
- navigatievenster openvouwen
Door dubbelklikken op een object in het navigatievenster wordt het object geopend en in het documentvenster getoond. Wanneer je nog meer objecten opent, dan toont Access deze standaard in de vorm van tabbladen.
Je kunt de manier waarop de objecten getoond worden wijzigen via Bestand > Opties > Huidige database. In figuur Figuur 2.13 zie je de mogelijkheden voor de documentvensters.
Wanneer je voor Overlappende vensters kiest, dan worden de objecten in een eigen venster getoond, waarbij de vensters boven elkaar liggen.
Wanneer je meer ruimte in de breedte nodig hebt dan kun je het navigatievenster dichtvouwen. Heb je meer ruimte in de lengte nodig, dan kun je het lint verbergen door dubbel te klikken op een tab. Opnieuw dubbelklikken zorgt er voor dat het lint weer zichtbaar wordt.
2.4 Tabel verkennen
Tabellen zijn de belangrijkste onderdelen van een database, want hierin zijn alle gegevens opgeslagen.
De twee belangrijkste weergaven van een tabel zijn:
- Gegevensbladweergave
-
In deze weergave kun je de inhoud van de records zien, deze wijzigen en ook kun je nieuwe records toevoegen.
- Ontwerpweergave
-
In deze weergave kun je het ontwerp van de tabel zien en deze aanpassen.
Taak 2.1 Bestand: snoep365.accdb
Open de database.
Open de tabel Klanten. De tabel wordt in de Gegevensbladweergave geopend.
Zet de tabel Klanten in de Ontwerpweergave op een van de volgende manieren:
- Klik rechtsonder in het programmavenster op de knop .
- Kies tab Start > Weergave (groep Weergaven) > Ontwerpweergave.
- Rechter muisklik op de tabelnaam in het navigatievenster en dan Ontwerpweergave.
Zet de tabel Klanten weer in de Gegevensbladweergave op een van de volgende manieren:
- Klik rechtsonder in het programmavenster op de knop .
- Kies tab Start > Weergave (groep Weergaven) > Gegevensbladweergave.
- Rechter muisklik op de tabelnaam in het navigatievenster en dan Openen.
Sluit de tabel Klanten via de sluitknop X rechtsboven in het documentvenster.
Open de tabel Orders in de Gegevensbladweergave.
In de tabel Orders staat voor de records een uitklapknopje +. Door hierop de klikken worden de detailgegevens van de order zichtbaar. Deze detailgegevens komen uit de tabel Orderdetails. Dat bij een bepaalde order de bijbehorende orderdetails gevonden kunnen worden komt omdat in beide tabellen het veld Ordercode voorkomt.
- Klik voor een paar records op het uitklapknopje om te zien welke dozen en hoeveel daarvan op deze order geleverd zijn.
- Sluit de tabel Orders.
2.5 Formulier verkennen
Formulieren zijn vooral van belang bij het tonen, toevoegen en bewerken van gegevens.
De belangrijkste weergaven van een formulier zijn:
- Formulierweergave
-
In deze weergave worden de gegevens getoond en kun je deze bewerken en invoeren.
- Gegevensbladweergave
-
Een weergave die op die van de tabel lijkt.
- Ontwerpweergave
-
In deze weergave kun je het ontwerp van het formulier zien en deze aanpassen.
Taak 2.2 Bestand: snoep365.accdb
Open de database.
Open het formulier Bonbons. Het formulier wordt in de Formulierweergave geopend.
Zet het formulier Bonbons in de Ontwerpweergave op een van de volgende manieren:
- Klik rechtsonder in het programmavenster op de knop .
- Kies tab Start > Weergave (groep Weergaven) > Ontwerpweergave.
- Rechter muisklik op de formuliernaam in het navigatievenster en dan Ontwerpweergave.
In de ontwerpweergave kun je het formulier opmaken en besturingselementen toevoegen zoals tekstvakken, labelvakken, keuzelijsten, aankruisvakjes, enz.
Zet het formulier Bonbons weer in de Formulierweergave.
Blader door de records met de navigatieknoppen linksonder in het documentvenster.
-Eerste record
- Vorige record
- Volgende record
- Laatste record
- Nieuw (leeg) record
Sluit het formulier.
2.7 Record zoeken
Een formulier kan ook gebruikt worden om een record te zoeken. In de volgende stappen worden dozen met “herfst” in de naam opgezocht.
Taak 2.4 Bestand: snoep365.accdb
Open de database.
Open het formulier Dozen.
Klik in het veld Doosnaam en kies in het lint tab Start > Zoeken (groep Zoeken). Het dialoogvenster Zoeken en vervangen verschijnt.
Typ
herfst
in het vak Zoeken naar en selecteer bij Waar: de keuze Gedeelte van veld.
Klik op Volgende zoeken. De inhoud van de doos Herfstverrassing wordt getoond.
Klik op Annuleren om het zoekvenster te sluiten.
Sluit het formulier.
2.8 Query verkennen
Query’s zijn van belang wanneer je gegevens uit tabellen wil selecteren of samenvatten. Een query is eigenlijk een gespecificeerde vraag aan de database om bepaalde informatie aan te leveren.
De twee belangrijkste weergaven van een query zijn:
- Gegevensbladweergave
-
In deze weergave kun je de inhoud van de query zien.
- Ontwerpweergave
-
In deze weergave kun je het ontwerp van de query zien en deze aanpassen.
Taak 2.5 Bestand: snoep365.accdb
Open de database.
Open de query Bonbons per doos.
Access voert de query uit en produceert een gegevensblad met daarin de resultaten van de query, zie Figuur 2.18.
De resultaten van deze query zijn uit meerdere tabellen afkomstig. Om te weten welke tabellen gebruikt worden moet de query in de ontwerpweergave gezet worden.
Zet de query Bonbons per doos in de Ontwerpweergave op een van de volgende manieren:
- Klik rechtsonder in het programmavenster op de knop .
- Kies tab Start > Weergave (groep Weergaven) > Ontwerpweergave.
- Rechter muisklik op de querynaam in het navigatievenster en dan Ontwerpweergave.
In het bovenste deel van het venster zie je de tabellen die voor deze query gebruikt zijn. De lijn met pijltjes verbinden de veldnamen waarmee de tabellen aan elkaar gerelateerd zijn.
In het onderste deel van het venster tref je in de eerste rij de namen van de gebruikte velden aan. In de derde kolom staat een expressie, een soort formule waarmee bewerkingen op de velden worden uitgevoerd. De hier geformuleerde expressie is Som([Bonbons].[Bonbonkosten]*[Doosdetails].[Hoeveelheid])
. Tussen de blokhaken staan de namen van de tabellen en velden.
Om de expressie in zijn geheel te kunnen zien kun je de kolom breder maken door de kolomrand naar rechts te slepen.
Zet de query in de Gegevensbladweergave.
Sluit de query.
2.9 Rapport verkennen
Met rapporten kun je de informatie uit de tabellen mooi opgemaakt op het scherm tonen of op papier afdrukken. De getoonde gegevens kunnen afkomstig zijn uit meerdere tabellen en/of query’s. Ook berekende waarden zijn mogelijk. Verder kun je een rapport opmaken met titels, kopjes en kop- en voetregels.
De belangrijkste weergaven van een rapport zijn:
- Rapportweergave
-
In deze weergave kun je de inhoud van het rapport zien.
- Afdrukvoorbeeld
-
De weergave van het rapport wanneer deze wordt afgedrukt.
- Ontwerpweergave
-
In deze weergave kun je het ontwerp van het rapport zien en deze aanpassen.
Taak 2.6 Bestand: snoep365.accdb
Open de database.
Open het rapport Bonbons per doos. Het rapport wordt in de Rapportweergave geopend.
Zet het rapport Bonbons per doos in Afdrukvoorbeeld op een van de volgende manieren:
- Klik rechtsonder in het programmavenster op de knop .
- Kiestab Start > Weergave (groep Weergaven) > Afdrukvoorbeeld.
- Rechter muisklik op de rapportnaam in het navigatievenster en dan Afdrukvoorbeeld.
Zet het rapport Bonbons per doos in de Ontwerpweergave.
In de ontwerpweergave lijkt het rapport veel op een formulier en kun je het rapport opmaken en besturingselementen toevoegen zoals tekstvakken, labelvakken, keuzelijsten, aankruisvakjes, enz.
Zet het rapport weer in de Rapportweergave.
Sluit het rapport
2.10 Sorteren
Je kunt de records in een tabel sorteren op basis van de waarden in een of meerdere velden. Het sorteren kan zowel in oplopende als aflopende volgorde.
In de volgende oefening moet de tabel Klanten gewijzigd worden zodat een overzicht ontstaat van eerst de plaats, dan de achternaam en dan de voornaam.
Taak 2.7 Bestand: snoep365.accdb
Open de database.
Open de tabel Klanten. De tabel wordt in de Gegevensbladweergave geopend.
Selecteer de kolom Plaats via een klik op de kop van de kolom en sleep de kolom naar links zodat dit de eerste kolom in de tabel wordt.
Verplaats op dezelfde manier de kolommen Achternaam en Voornaam naar respectievelijk de 2e en 3e positie in de tabel.
Klik in de kolom Plaats op het pijltje aan de rechterkant van de kolomkop en kies uit het snelmenu voor Sorteren van A naar Z.
Access reorganiseert de records in alfabetische volgorde op plaatsnaam en toont een klein naar boven wijzend pijltje () aan de rechterkant van de kolomkop om de sorteervolgorde aan te geven.
Hef de sortering op via tab Start > Sorteeracties verwijderen (groep Sorteren en filteren).
Om op meerdere velden te sorteren selecteer je de kolommen Plaats, Achternaam en Voornaam.
Kies tab Start > Oplopend (groep Sorteren en filteren).
Access reorganiseert nu de records in oplopende alfabetische volgorde eerst op plaatsnaam, dan op achternaam en dan op voornaam. Aan de rechterkant van elk van deze drie kolomkoppen is nu het kleine naar boven wijzende pijltje te zien, zie Figuur 2.22.
- Sluit de tabel Klanten en kies bij de vraag om de wijzigingen op te slaan voor Nee.
2.11 Taak: Filteren
Filteren is een actie waarbij records in een tabel getoond worden die aan bepaalde voorwaarden voldoen. Er zijn meerdere manieren om een filter in een tabel toe te passen. Een paar methodes komen in de volgende oefeningen aan de orde.
2.11.1 Eenvoudig filter
Informatiebehoefte: Toon alle bonbons met het chocoladetype Wit.
Taak 2.8 Bestand: snoep365.accdb
Open de database.
Open de tabel Bonbons. De tabel wordt in de Gegevensbladweergave geopend.
Klik in de kolom Chocoladetype op een waarde Wit.
Kies tab Start > knop Selectie (groep Sorteren en filteren) > Is gelijk aan Wit.
Access toont nu de records (4 stuks) waarvan het chocoladetype Wit is. Dat op de tabel een filtering is toegepast kun je zien:
- Aan de rechterkant van de kolomkop Chocoladetype staat een symbool van een filter:
- In de statusbalk zie je
2.11.2 Wijziging filter
Informatiebehoefte: Toon alle bonbons met het chocoladetype Melk.
Hiervoor wordt het vorige filter gewijzigd.
Taak 2.9 Bestand: snoep365.accdb
- Klik op het filtersymbool aan de rechterkant in de kolomkop Chocoladetype.
- Selecteer in het dialoogvenster type Melk en deselecteer type Wit. Klik dan op OK. Er worden nu 18 records getoond met chocoladetype Melk.
De opties die in Figuur 2.23 getoond worden hangen af van het type veld. Bij een tekstveld is er een submenu Tekstfilters en bij een numeriek veld is er een submenu Getalfilters.
2.11.3 Filter op 2 criteria
Informatiebehoefte: Toon alle bonbons met het chocoladetype Melk en vullingtype Marsepein.
Hiervoor wordt een tweede selectiecriterium toegevoegd.
Taak 2.10 Bestand: snoep365.accdb
Klik in de kolom Vullingtype op een waarde Marsepein.
Kies tab Start > knop Selectie (groep Sorteren en filteren) > Is gelijk aan Marsepein.
Access toont nu 3 records met chocoladetype Melk en met vullingtype Marsepein.
Maak filtering ongedaan via tab Start > knop (groep Sorteren en filteren).
De filtering is nu opgeheven en alle records worden weer getoond.
De filtering wordt ook opgeheven door klikken op de knop Gefilterd in de statusbalk. De tekst op de knop verandert dan in Niet gefilterd. Door hier weer op te klikken wordt het laatst gebruikte filter toegepast.
2.11.4 Getalfilter
Informatiebehoefte: Toon alle bonbons met kosten van € 0,25 t/m € 0,35.
Taak 2.11 Bestand: snoep365.accdb
- Klik op het pijlpuntje aan de rechterkant in de kolomkop Bonbonkosten en kies dan Getalfilters > Tussen….
Voer in bij Kleinste 0,25 en bij Grootste 0,35 en klik dan op OK. Er worden nu 22 records getoond met bonbonkosten van 0,25 t/m 0,35.
Sluit de tabel Bonbons en kies bij de vraag om de wijzigingen op te slaan voor Nee.
2.12 Afdrukken
Voor het afdrukken maakt Access gebruik van de printers die onder Windows beschikbaar zijn.
Afhankelijk van de gebruikte weergave van een Access object kan het resultaat afgedrukt worden. Zo kan bij tabellen en query’s de gegevensbladweergave afgedrukt worden, bij rapporten de rapportweergave en bij formulieren de formulierweergave.
Er is geen optie voor het afdrukken van de ontwerpweergave, maar Access heeft een hulpmiddel genaamd Databasedocumentatie waarmee je de ontwerp eigenschappen van de database objecten kunt afdrukken.
De afdrukopties zijn beschikbaar via Bestand > Afdrukken. Je hebt dan de volgende mogelijkheden:
Via de keuze Afdrukvoorbeeld zijn er een aantal instellingen mogelijk, zoals paginaformaat, afdrukstand en marges.
2.13 Opgaven
Oefening 2.1 Selectie Bonbons (expl001)
Maak via filteren een selectie van de bonbons met een Chocoladetype melk of puur waarvan de prijs hoogstens 0,30 is.
Bij de selectie van numerieke velden heb je ook mogelijkheden om getalbereiken aan te geven:
Het resultaat bestaat uit 18 records.
Oefening 2.2 Selectie Klanten op plaatsnaam (expl002)
Maak een selectie van de klanten die in Enschede, Hengelo of Almelo wonen.
Het resultaat bestaat uit 12 records.
Oefening 2.3 Selectie Klanten op postcode (expl003)
Maak een selectie van de klanten waarvan de postcode met 20 begint en die in Amsterdam wonen.
Postcode is een tekstveld zodat je van Tekstfilters gebruik kunt maken:
Het resultaat bestaat uit 3 records.