ACCESS 2003
Module 5 ECDL
Access 2003
Inhoud
Inhoud
1
Introductie Access ____________________________________________________ 1
2
Aan de slag met Access ________________________________________________ 3
3
Het gebruik van een database ___________________________________________ 5
4
Het afleiden en zoeken van informatie ___________________________________ 15
5
De structuur van een tabel _____________________________________________ 31
6
De opbouw van een database ___________________________________________ 37
7
Het maken van query’s _______________________________________________ 55
8
Het veranderen van informatie _________________________________________ 85
9
Het maken van een index ______________________________________________ 93
10
Objecten __________________________________________________________ 109
11
Formulieren _______________________________________________________ 115
12
Rapporten _________________________________________________________ 127
13
Relationele database ________________________________________________ 149 Case _____________________________________________________________ 170 Index ____________________________________________________________ 174
Access 2003 1
Inleiding
1
Wat is een Access-database?
Een database is een verzameling gegevens die betrekking heeft op een bepaald onderwerp of een bepaald doel. Het helpt ons informatie zodanig te structureren dat deze gemakkelijker te hanteren is. Bijvoorbeeld: - ledenbestand - artikelbestand - klantenbestand - telefoonbestand - leveranciersbestand Een database management system (DBMS) is een systeem dat informatie in een database opslaat en eruit ophaalt. Access is een relationele database management system (RDBMS), een systeem dat informatie opslaat en ophaalt aan de hand van relaties die we definiëren. In de voorbeelden hierboven kunnen we bijvoorbeeld een relatie leggen tussen de artikeltabel en de leverancierstabel. Van de artikeltabel kunnen we bijv. de volgende gegevens bijhouden: - artikelnummer - omschrijving - prijs - voorraad - leveranciersnummer Van de leverancierstabel kunnen we bijv. de volgende gegevens bijhouden: - leveranciersnummer - bedrijfsnaam - adres - plaats - contactpersoon - telefoonnummer Alle artikelen bij elkaar noemen we een tabel; Alle gegevens van één artikel noemen we een record; Elk gegeven van een artikelgegeven noemen we een veld. Een tabel bestaat dus uit één of meerdere records (artikelen). Een record (artikel) bevat één of meerdere velden (gegevens van één artikel).
1
1
Inleiding
Access 2003
De artikeltabel zou de volgende informatie kunnen bevatten;
De leverancierstabel zou er als volgt uit kunnen zien;
Tussen beide tabellen ligt een relatie. Deze is te vinden in het veld Leverancierscode afgekort als Levercode. De relatie kunnen we gebruiken in Access. Zo kunnen we deze relatie vastleggen en met Access overzichten laten maken waarbij de gegevens uit de tabellen, waartussen we een relatie hebben gelegd, worden gecombineerd. Vraag: Welke artikelen leveren de verschillende leveranciers en wat is de prijs van het artikel? Antwoord:
Vraag: Welke leverancier levert de fietspomp, wat is de voorraad en welk telefoonnummer moeten we bellen om te bestellen? Antwoord:
Op deze manier kunnen we zeer veel informatie uit het DBMS halen.
2
Access 2003 2
Aan de slag met Access
2
Aan de slag met Access
Access kunnen we starten vanuit de werkbalk, een snelkoppeling of via het startmenu. In dit lesmateriaal gaan we het programma starten vanuit de startknop 1
.
Start Access via de startknop Access wordt geopend en het volgende dialoogvenster komt op het beeldscherm.
Indien niet alle updates juist geïnstalleerd zijn kan er een foutmelding verschijnen met betrekking tot het installeren van Microsoft Jet Service Pack. Voor de werking moet hier gekozen worden voor Ja.
3
Access 2003 3
Het gebruik van een database
3
Het gebruik van een database
Als eerste zullen we een bestaande database gaan bekijken en hiermee een aantal basishandelingen verrichten. In een van de volgende hoofdstukken gaan we een database bouwen. 1
Klik in de databasewerkbalk op de knop Openen
Op het scherm verschijnt een dialoogvenster, waarmee we de mogelijkheid hebben om het juiste station aan te geven met, indien nodig, het pad en het juiste bestand. De volgende handelingen moeten we hiervoor verrichten. 2
Klik op het keuzelijstsymbool
Zoeken in: om het juiste station aan te geven
Op het scherm verschijnt een keuzelijst met drives.
5
Access 2003
Het gebruik van een database
De muisaanwijzer verandert in een open wit kruis kunnen selecteren en daarna aanpassen. 11
3
, waarmee we een heel veld
Klik op het ADRES-veld van 245, Dirk-Jan Jongmans, zodat het veld wordt geselecteerd Het adresveld wordt dan geheel geselecteerd.
Voor het record staat de status van het record. 12
wil zeggen dat dit record actief is.
Typ in: Jagerweg 25 en druk op [Enter] Tijdens het bewerken van het record wordt de status weergegeven in de vorm van een potlood Na de bewerking van het adresveld wordt het volgende veld (het postcode veld) geselecteerd.
13
Typ in: 5555 AD Vervolgens gaan we een nieuwe klant toevoegen. Hiervoor moeten we een opdracht geven.
14
Klik in de databasewerkbalk op de knop Nieuwe record knop Nieuwe record
of in de statusbalk op de
We zien dat record 47 is klaargezet. De invoegpositie staat nu onderaan in de tabel in dit nieuwe lege record. Hier kunnen we de gegevens van de nieuwe klant gaan invullen. De gegevens zijn: 770, Peter Smeets, Hertenweg 20, 4062 DD, Roermond, L, 0475-323456 15
Typ de volgende gegevens in: 770 [Enter] Peter [Enter] Smeets [Enter] Hertenweg 20 [Enter] 4062 DD [Enter] Roermond [Enter] L [Enter] 0475-323456 [Enter]
11
Access 2003 4
Het afleiden en zoeken van informatie
4
Het afleiden en zoeken van informatie
Gegevens die we verzameld hebben willen we vaak in een bepaalde volgorde zien. Vaak zijn we niet geïnteresseerd in alle gegevens, maar een aantal velden van een aantal records. In dit hoofdstuk zullen we informatie gaan opvragen uit een tabel. 1 2 3 4
Klik in de databasewerkbalk op de knop Openen Dubbelklik op Reizen in de map Access om de database te openen Klik op de knop Openen om de database te openen Dubbelklik op de tabel Boeking om de tabel te openen Op ons scherm verschijnt de volgende tabel:
Uit deze tabel gaan we informatie ophalen. Als eerste willen we de gegevens op volgorde van vertrekdatum. Hiervoor moeten we eerst de vertrekkolom selecteren.
5
Klik in de kolom VERTREK om deze kolom te activeren We gaan de records weergeven op vertrekdatum. De volgorde kan oplopend of aflopend zijn. We kiezen voor oplopend.
6
Klik in de databasewerkbalk op de knop Oplopend sorteren volgens de geselecteerde kolom worden gesorteerd
zodat alle records
15
4
Het afleiden en zoeken van informatie
Access 2003
We zien dat alle records nu op volgorde van vertrekdatum staan.
De boekingen van augustus kunnen alle verwijderd worden. Daarvoor gaan we deze selecteren en daarna verwijderen. We gaan de eerste 6 records (van augustus) selecteren. Hieronder staat aangegeven wat we gaan doen. We selecteren met de muis op de statusknop het eerste record en slepen de muis naar het zesde record. Hierbij moeten we de muisknop vasthouden.
7
Sleep de muis van het eerste naar het zesde record zoals hiervoor te zien is De 6 records zijn nu geselecteerd.
16
Access 2003
8
Het afleiden en zoeken van informatie
4
Druk op [Delete]
Op de achtergrond kunnen we al zien dat de 6 records van het scherm zijn verdwenen.
17
4
Het afleiden en zoeken van informatie 9
Access 2003
Klik op de knop Ja om deze definitief te verwijderen Hiermee zijn de 6 geselecteerde records definitief verwijderd. We kunnen op twee manieren een aangepaste weergave van gegevens in tabellen maken: een query of een filter voor een tabel. Een filter is eigenlijk een eenvoudige query die alleen op een geopende tabel kan worden toegepast. Een filter is het meest geschikt voor een tijdelijke wijziging in de samenstelling van de verzameling records die we bekijken. Als we echter weten dat we een bepaald deel van de records regelmatig in een bepaalde volgorde willen bekijken, kunnen we beter een query maken en opslaan. Een filter moeten we steeds weer opnieuw maken. Hierbij moeten we goed in de gaten houden dat de tabel de basis is. Hierin staan alle gegevens en hierin worden de veranderingen doorgevoerd. Een filter en een query zijn 2 verschillende manieren om gedeeltes van een tabel te bekijken. In de databasewerkbalk zien we een drietal knoppen die we kunnen gebruiken voor het maken van een filter.
Selectiefilter Formulierfilter Filter toepassen / Filter verwijderen kunnen we van de selectie alle records uit Met behulp van de knop Selectiefilter de tabel filteren die dezelfde waarde bezitten. Met behulp van de knop Formulierfilter kunnen we een formulier oproepen waarmee we exact kunnen aangeven waaraan de filter moet voldoen. Hierbij hebben we meer mogelijkheden. Met behulp van de knop Filter toepassen kunnen we de filter activeren of als knop Filter verwijderen ook weer ongedaan maken. Stel dat we willen weten welke boekingen met de vertrekdatum op de 23ste vallen. We kunnen dan in de tabel een veld selecteren met de waarde 23 en daarna de knop Selectiefilter gebruiken. We gaan dit eens proberen. 10
18
Dubbelklik in de kolom VERTREK op de waarde 23 om deze te selecteren
Access 2003 47
Het afleiden en zoeken van informatie
4
Klik op de knop OK Bij Zoeken naar kunnen we diverse combinaties ingeven. Hierna volgt een overzicht van de vele mogelijkheden die er zijn. Jokertekens worden gebruikt om naar gedeeltelijk of geheel overeenkomende waarden te zoeken. We kunnen in een zoekreeks jokertekens gebruiken als tijdelijke aanduiding voor andere tekens wanneer we een waarde zoeken en: ` we slechts een deel van de waarde kennen; ` we alle waarden willen zoeken die met een bepaalde letter beginnen of die een bepaald patroon hebben. In een Microsoft Access-database kunnen we in de dialoogvensters Zoeken en Vervangen, en in query's, opdrachten en expressies met behulp van de volgende tekens veldwaarden, records, bestandsnamen en dergelijke zoeken. Teken * ? [] ! -
#
Toepassing Komt overeen met een willekeurig aantal tekens. Kan worden gebruikt als eerste of laatste teken in de tekenreeks. Komt overeen met één willekeurig teken. Komt overeen met elk van de afzonderlijke tekens tussen de vierkante haakjes. Komt overeen met elk teken dat niet tussen de vierkante haakjes staat.
Voorbeeld Met we* vinden we: wel, wereld en weten.
Met b?l vinden we: bal, bel, bil, bol en bul. Met b[ae]l vinden we: bal en bel, maar niet bil, bol of bul. Met b[!ae]l vinden we: bil, bol en bul, maar niet bal of bel. Komt overeen met elk van de tekens Met b[a-c]d vinden we: binnen een bereik van tekens. We bad, bbd, en bcd moeten een bereik in oplopende volgorde opgeven (dus van A tot Z, niet van Z tot A). Komt overeen met één cijfer. Met 1#3 vinden we: 103, 113, 123, enz.
Aanvullende informatie ` Jokertekens worden in principe gebruikt voor gegevens van het type Tekst. We kunnen jokertekens soms ook gebruiken voor gegevens van een ander type, zoals datums, mits we de landinstellingen voor deze gegevenstypen niet hebben gewijzigd. ` Als we jokertekens gebruiken om tekens als een sterretje (*), een vraagteken (?), een hekje (#), een vierkant haakje openen ([) of een koppelteken (-) te zoeken, moeten we dit teken tussen vierkante haakjes plaatsen. Als we bijvoorbeeld een vraagteken zoeken, typen we [?] in het dialoogvenster Zoeken. Als we tegelijk naar een koppelteken en een aantal andere tekens zoeken, plaatsen we het koppelteken voor of na de andere tekens tussen de vierkante haakjes. Als we echter
27
Access 2003 5
De structuur van een tabel
5
De structuur van een tabel
Hoe is een tabel opgebouwd? Uit welke velden is een tabel opgebouwd, hoe groot is elk veld, wat voor een soort veld is het en waar moeten we nog meer op letten? Om dit te kunnen beantwoorden gaan we de huidige structuur van de tabel boeking bekijken. Daarna gaan we een nieuwe tabel maken. 1 2 3 4 5
Klik in de databasewerkbalk op de knop Openen Dubbelklik op Reizen Klik op de knop Openen om de database te openen Klik op de tabel Boeking om deze te selecteren Klik op de knop Ontwerpen om het ontwerp van de tabel Boeking te bekijken
Het bovenstaand venster geeft de velden aan die we gebruiken in de tabel Boeking. Van het veld KLANTNR kunnen we de structuur zien: het is een Numeriek veld (alleen getallen zijn toegestaan) met een Veldlengte van Integer, het Aantal decimalen Automatisch, het moet ingevuld worden en is niet Geïndexeerd. We zullen eens gaan kijken naar de andere velden. 6
Klik op REISCODE Hier zien we dat dit veld een Tekst veld is, dat wil zeggen dat alle karakters gebruikt mogen worden. De lengte is maximaal 4 tekens. Het invullen van het veld is niet vereist en het is niet Geïndexeerd.
31
5
De structuur van een tabel
Access 2003
Bij alle andere velden vinden we ongeveer dezelfde eigenschappen. In onderstaand overzicht vinden we de mogelijkheden van Access. Het gegevenstype:
Gegevenstype Tekst Memo
Inhoud
Grootte
Alfanumerieke tekens maximaal 255 tekens Alfanumerieke tekens (meestal een aantal zinnen of alinea’s) maximaal 65.535 tekens Numeriek Numerieke waarden (gehele getallen of breuken) Datum/tijd Datums en tijdstippen, van jaar 100 t/m 9999 Valuta Valutawaarden en numerieke gegevens tot 4 decimalen Auto-nummering Numeriek waarde die automatisch wordt verhoogd voor elke record dat we toevoegen Ja/Nee Ja/Nee of Aan/Uit OLE-object OLE-objecten, figuren of andere binaire gegevens maximaal 1 gigabyte Hyperlink tekst gebruikt als hyperlink adres Wizard opzoeken… m.b.v. een andere tabel wordt een veld en bijhorend type gezocht
32
Access 2003 6
De opbouw van een database
6
De opbouw van een database
We gaan een personeelstabel opzetten voor de personeelsadministratie. Om te beginnen moeten we ons goed afvragen welke gegevens we willen opnemen in de tabel. Welke gegevenstype het moet zijn, hoe lang, enz. We gaan nu niet alle velden opnemen, maar een selectie uit de mogelijk voorkomende velden in een dergelijke tabel. Personeelslidnummer Achternaam Voorletters geboortedatum woonplaats man burgerlijke staat afdeling salaris aantal kinderen
tekst tekst tekst datum tekst ja/nee tekst tekst valuta numeriek
3 20 10
posities posities posities
20
posities
1 10
positie posities
Er is geen beperking bij het geven van namen aan velden. Toch is het verstandig om een veldnaam niet te lang te maken. Bij alle bewerkingen zal men in aanraking komen met die lange naam. Beter is het om een bijschrift op te nemen bij de veldeigenschappen, om daarmee in overzichten toch de gewenste gegevens te zien. Bij het invullen van de veldnamen kunnen we afwijken van de volledige naam. We zullen beide mogelijkheden gebruiken om de verschillen te laten zien. Bij het gegevenstype tekst is ook de veldlengte van belang. Standaard vult Access 50 posities in. Vaak is dit te veel. Over de lengte kunnen we verschillende meningen hebben, maar soms liggen deze eigenlijk al vast. De postcode in Nederland heeft een lengte van 7 posities en niet meer. In bovenstaand voorbeeld is het nummer vastgelegd op drie posities. We kunnen dus combinaties maken van letters en cijfers tot maximaal 3 tekens. We kunnen nu een nieuwe database aanmaken. Dit is een eenmalige handeling. 1
Klik in de databasewerkbalk op de knop Nieuw Rechts verschijnt een lijst met mogelijke keuzes.
37
6
De opbouw van een database
Access 2003
Met behulp van het andere tabblad kunnen we voorgedefinieerde databases aanmaken. Wij willen zelf een database gaan samenstellen. 2
Klik op de keuze Lege database om een lege database te openen
Access vraagt naar een naam voor onze database. 3 4 5
Selecteer indien nodig de map Access in de map Computerlesmateriaal Typ in: Medewerkers Klik op de knop Maken om de lege database Medewerkers aan te maken De nieuwe database wordt nu aangemaakt. Een database is een verzameling informatie met betrekking tot een bepaald onderwerp of doel, zoals het bijhouden van klantorders of het onderhouden van een muziekverzameling. Als onze database niet op een
38
Access 2003
De opbouw van een database
6
computer is opgeslagen, of als slechts delen ervan op een computer zijn opgeslagen, moeten we de gegevens in verschillende bronnen bijhouden, die we zelf moeten coördineren en ordenen. De volgende stap is het aanmaken van een nieuwe tabel. Hierbij hebben we weer de keuze tussen het laten helpen door Access of door zelf alles vast te leggen. We doen het zelf.
6
Dubbelklik op
39
6
De opbouw van een database
Access 2003
We kunnen nu de velden gaan invullen met alle eigenschappen. 7 8
Typ in: Personeelsnummer Druk op [Enter] Access vult nu zelf het gegevenstype Tekst in. Voor dit veld is dit goed. We kunnen direct verder gaan met de Veldeigenschappen in het onderste gedeelte van het venster. De veldlengte staat op de standaardwaarde. Dit is teveel voor een personeelsnummer. We zullen dit gaan aanpassen.
9
Dubbelklik in het tekstkader Veldlengte om de huidige veldlengte te selecteren
10 11 12
Typ in: 3 Klik in het tekstkader Vereist Klik op het keuzelijstsymbool
40
Access 2003 7
Het maken van query’s
7
Het maken van query’s
We hebben al eerder gezien dat we met behulp van filters gegevens kunnen opvragen. We gaan in dit hoofdstuk in op het maken van query’s. Een query is een vraag die, in tegenstelling tot een filter, opgeslagen kan worden. Een query heeft ook meerdere mogelijkheden. Zo kunnen we zelf aangeven welke velden we willen zien, de sorteringsmogelijkheden zijn ruimer en de volgorde van de velden is makkelijker vast te leggen. Verder heeft een query geen invloed op het ontwerp van de tabel. Het toont alleen de in de vraag vastgelegde gegevens uit de tabel(len). 1 2 3 4
Klik in de databasewerkbalk op de knop Openen Dubbelklik op Reizen Klik op de knop Openen om de database te openen Klik bij Objecten op de keuze Query's in het venster Reizen : Database
Het venster geeft ons al 2 keuzemogelijkheden voor het maken van een query. Via de knop Nieuw krijgen we meerdere mogelijkheden te zien. 5
Klik op de knop Nieuw
in het venster Reizen : Database
Het dialoogvenster geeft ons nu de keuze tussen het zelf maken van een query met behulp van de keuze Ontwerpweergave en het volgen van een wizard (een hulpmiddel bij het selecteren van gegevens). We gaan zelf de query maken dus kiezen we voor de geselecteerde optie Ontwerpweergave.
55
7
Het maken van query’s
6
Access 2003
Klik op de knop OK om te kiezen voor Ontwerpweergave Nu moeten we aangeven welke tabel(len) we willen gebruiken.
7 8
56
Klik op Boeking om deze tabel te selecteren Klik op de knop Toevoegen zodat de tabel Boeking kan worden gebruikt in de query
Access 2003
Het maken van query’s
7
We zien dat de tabel Boeking in de query wordt opgenomen. 9
Klik op de knop Sluiten in het venster Tabel toevoegen Op het scherm verschijnt het dialoogvenster voor het maken van een selectiequery.
We gaan een overzicht maken van KLANTNR, REISCODE, VERTREK en AANTAL. We beginnen met het selecteren van de velden die we nodig hebben voor het maken van deze query. 10 11 12
Dubbelklik op het veld KLANTNR om dit veld te selecteren Dubbelklik op het veld REISCODE zodat het veld wordt toegevoegd aan de selectie Dubbelklik op het veld VERTREK zodat het veld wordt toegevoegd aan de selectie
57
7
Het maken van query’s
Access 2003
Om het veld AANTAL op te halen moeten we in de tabel Boeking met behulp van de schuifbalk naar beneden gaan.
13 14
Klik in de schuifbalk om in het overzicht naar beneden te gaan Dubbelklik op het veld AANTAL zodat het veld wordt toegevoegd aan de selectie Het volgende resultaat zien we op het scherm.
Van de tabel Boeking zijn de velden KLANTNR, REISCODE, VERTREK en AANTAL geselecteerd voor de query. Deze query kan nu worden uitgevoerd. Dit is mogelijk door gebruik te maken van de of de knop Beeld . Met behulp van deze knop kunnen we knop Uitvoeren bepalen hoe de query moet worden weergegeven. Zo kunnen we kiezen voor de Ontwerpweergave of de Gegevensbladweergave. De knop geeft nu een gegevensblad weer, zodat we vanuit de huidige ontwerpweergave kunnen overschakelen naar de gegevensbladweergave. 15
Klik in de databasewerkbalk op de knop Beeld
We zien nu alle 39 records met de 4 geselecteerde velden.
58
Access 2003 8
Het veranderen van informatie
8
Het veranderen van informatie
We hebben al gezien dat we bepaalde informatie kunnen veranderen. Willen we nu bij alle records of bij een bepaalde groep een zelfde verandering teweeg brengen dan kunnen we dat beperken tot één handeling. We willen bijvoorbeeld bij iedereen het salaris verhogen met 3 %. 1 2 3
Klik in de databasewerkbalk op de knop Openen Dubbelklik op Medewerkers om de database te openen Klik op de knop Openen om de database te openen We gaan eerst eens naar de inhoud van de tabel kijken.
4 5
Klik bij Objecten op Tabellen in het venster Medewerkers : Database Dubbelklik op Personeelsgegevens om de tabel te openen We zien nu de personeelsleden in deze tabel. We gaan even naar de salarissen kijken.
Bekijk de salarissen even, voordat we deze verhogen met 3 %. Het verhogen van de salarissen kunnen we door Access laten uitvoeren met behulp van een bijwerkquery zodat we niet zelf elk individueel veld hoeven aan te passen. Een query kunnen we aanmaken met behulp van het tabblad Query's in het venster Database zoals we tot nu toe telkens hebben gedaan. Ook is het mogelijk om gebruik te maken van de knop Nieuw Object: Autoformulier in de databasewerkbalk waarmee we verschillende nieuwe objecten zoals query's kunnen aanmaken. Zoals de naam van de knop al aangeeft zal standaard een autoformulier worden aangemaakt. Met behulp van het keuzelijstsymbool van deze knop kunnnen we echter ook kiezen voor een ander object, zoals de query. 6
Klik in de databasewerkbalk op het keuzelijstsymbool
van de knop Nieuw Object:
Autoformulier
85
8
Het veranderen van informatie
7
Klik op
Access 2003
Query
We kiezen weer voor de ontwerpweergave, wat al is geselecteerd. 8
Klik op de knop OK
Omdat de tabel Personeelsgegevens al is geopend is het niet nodig om aan te geven welke tabel we willen gebruiken voor de query. In het bovenste gedeelte van het venster Query1 : Selectiequery zien we dan ook de veldgegevens van de tabel Personeelsgegevens al staan. Tevens zien we aan de titel van dit venster dat we nog wel aan het werk zijn met een Selectiequery, waarmee alleen selectieoverzichten zijn te maken. Als we de inhoud van velden willen aanpassen moeten we werken met kunnen behulp van een Query bijwerken. Met behulp van de knop Querytype we dit aanpassen.
86
Access 2003 9
Het veranderen van informatie
Klik in de databasewerkbalk op het keuzelijstsymbool
8
van de knop Querytype
Hier zien we een zestal verschillende query’s. Selectiequery
Dit is een query zoals we deze al eerder gezien hebben. De selectiequery is het meest voorkomende querytype. Een selectiequery haalt gegevens op uit een of meer tabellen en geeft het resultaat weer in een gegevensblad waarin we de records kunnen bijwerken (met enkele beperkingen). Met een selectiequery kunnen we ook records groeperen en totalen, aantallen, gemiddelden en dergelijke waarden berekenen.
Kruistabelquery
In een kruistabelquery worden samenvattende waarden (totalen, aantallen en gemiddelden) van een veld weergegeven in een tabel, waarbij deze waarden worden gerangschikt in de vorm van een lijst met titels aan de linkerkant van het gegevensblad (de rijkoppen) en een lijst met titels aan de bovenkant van het gegevensblad (de kolomkoppen).
Tabelmaakquery
Met deze query’s maken we een nieuwe tabel van de gegevens of een deel van de gegevens in één of meer tabellen.
Query bijwerken
Hiermee brengen we in één keer wijzigingen aan in een groep records in één of meer tabellen. We kunnen bijvoorbeeld de prijzen van alle zuivelproducten met 10 procent verhogen, of de salarissen van iedereen in een bepaalde functiecategorie met 5 procent verhogen. Met een bijwerkquery kunnen we gegevens in bestaande tabellen wijzigen.
87
Access 2003 9
Het maken van een index
9
Het maken van een index
De gegevens worden in die volgorde op ons beeldscherm gezet waarin ze door ons zijn ingebracht. Vaak is het wenselijk om de gegevens in een andere volgorde gepresenteerd te krijgen. bijvoorbeeld: - alfabetisch - op nummer - op postcode - enz. Dit is mogelijk, zoals we al gezien hebben, met een filter. Door het ontwerp, de filter, op te slaan wordt de gekozen volgorde bewaard. Als we echter een nieuw record toevoegen is het mogelijk dat de volgorde niet meer klopt en moeten we er weer zelf voor zorgen dat deze aangepast wordt. Een andere mogelijkheid is het sorteren op het moment dat we de tabel gebruiken met behulp van de opdrachten oplopend of aflopend sorteren van de geselecteerde kolom (het veld). Willen we echter een sortering vasthouden en over meerdere velden laten lopen (bijv. op woonplaats en binnen de woonplaats op naam), dan zullen we moeten kiezen voor een andere optie. Een veel gebruikte vorm is het maken van een index (sleutelveld ofwel primaire sleutel). De volgorde ligt dan altijd vast. De index is ook belangrijk als we met meerdere gekoppelde tabellen werken. De sleutelvelden worden gebruikt voor de koppeling. Dit veld (index) moet uniek (eenmalig) zijn. Komt in een tabel een code vaker voor, dan zullen we moeten zoeken naar een combinatiesleutel (2 of meer velden). Niet alleen het maken van koppelingen is gebonden aan het maken van een index. De computer vindt ook sneller gegevens als een tabel geïndexeerd is. Bij een zoekopdracht kan een computer alle records een voor een aflopen totdat het gegeven gevonden is. Is een index aanwezig dan zal de computer bij het zoeken naar een geïndexeerd gegeven veel sneller klaar zijn. Vergelijk dit met het zoeken van iets in een boek. We bladeren dan ook niet iedere bladzijde door, maar zullen in de index kijken op welke bladzijde het staat.
93
9
Het maken van een index
Access 2003
In ons voorbeeld hebben we 3 tabellen. In de tabel Klanten is KLANTNR het unieke veld. In de tabel Bestemming is REISCODE het unieke veld. In de tabel Boeking is KLANTNR niet uniek (één klant kan meerdere reizen maken) en is REISCODE niet uniek (één reis kan door meerdere klanten zijn geboekt), echter de combinatie KLANTNR+REISCODE is wel uniek.
Klant 456 (John) heeft 2 reizen geboekt (CH22 en HO14). Het veld KLANTNR is dus niet uniek in de tabel Boeking. Reis CA10 is volgens bovenstaand overzicht 2 maal geboekt (door klant 456 en door 537). Het veld REISCODE is dus ook niet uniek in de tabel Boeking. De combinatie KLANTNR+REISCODE is dus wel (456 met CH22; 456 met HO14; 534 met CA10; 537 met CA10). 1 2 3 4
Klik op de knop Openen Dubbelklik op Reizen om de database te openen Klik op de knop Openen om de database te openen Dubbelklik op Klanten om de tabel te openen We hebben al gezien dat we een kolom (veld) kunnen selecteren en dat dan kunnen sorteren. Maar wat moeten we doen als we een sortering op meerdere velden willen gebruiken. Bijvoorbeeld de tabel moet gesorteerd worden op woonplaats en daarbinnen op adres. Dit kunnen we met behulp van een filter.
5 6
94
Klik in de menubalk op Records Wijs de menukeuze Filter aan met de muis zodat het submenu zichtbaar wordt
Access 2003 10
Objecten 10
Objecten
We hebben in de voorafgaande hoofdstukken een aantal tabellen gebruikt met de daarbij aanwezige structuur. In de windows-database pakketten is het ook mogelijk om een object in een tabel te plaatsen. Een object kan van alles zijn, bijv. - Lotus 1-2-3 werkblad - Geluid - Excel werkblad - Word document - PowerPoint presentatie - Paintbrush figuur - WordPerfect document - enz. We gaan met behulp van een bestaande tabel eens kijken naar het gebruik van een dergelijk object. We gebruiken in deze tabel tevens een andere opmaak, namelijk het formulier. Dit geeft ons de mogelijkheid om inderdaad het object ook te bekijken, wat in de tabel-vorm niet gaat. 1 2 3 4
Klik op de knop Openen Dubbelklik op Wibees_bv om de database te openen Klik op de knop Openen om de database te openen Dubbelklik op Werknemers om de tabel te openen De tabel werknemers wordt geopend en we zien een indeling in records en velden.
5
Verplaats met behulp van de schuifbalk het overzicht, zodat de volgende velden zichtbaar worden
109
10 Objecten
Access 2003
We zien in dit overzicht een veld Foto. In dit veld staat bijna overal het object Paintbrush Picture, behalve bij het eerste veld. Hier is een Bitmap-afbeelding gebruikt. We kunnen nu alleen zien waaraan de inhoud van het veld gekoppeld is, we zien echter niet de inhoud. Hiervoor hebben we een formulier nodig. We gaan eens kijken naar zo'n formulier. Met behulp van de knop Databasevenster kunnen we terugkeren naar het databasevenster. 6 7 8
Klik in de databasewerkbalk op de knop Databasevenster Klik bij Objecten op Formulieren in het venster Wibees_bv : Database Dubbelklik op Stamgegevens om het formulier te openen Access opent nu het formulier en laat het eerste record zien in een formulieropmaak.
110
Access 2003 12
Rapporten 12
Rapporten
We hebben in het voorgaande hoofdstuk een formulier gemaakt. Nu gaan we een rapport op een vergelijkbare manier maken. Met behulp van rapporten kunnen we gegevens ophalen en presenteren als betekenisvolle informatie die we kunnen gebruiken en verspreiden. Voorbeelden van rapporten zijn adreslabels, facturen, verkoopoverzichten, etiketten en telefoonlijsten. Hoe wordt een rapport gemaakt? In Access kunnen we dit op twee manieren gaan maken: Rapport AutoRapport wordt door Access een basisrapport gemaakt dat door de Met AutoRapport gebruiker kan worden aangepast. Met Rapport moet de gebruiker het hele formulier zelf bouwen of werken met de wizard. We gaan eerst eens kijken naar het basisrapport. 1
Klik bij Objecten op Tabellen in het venster Wibees_bv : Database De tabel Werknemers is geselecteerd. Van deze tabel gaan we een rapport maken.
2 3
Klik op het keuzelijstsymbool Klik op de menukeuze te maken
van de knop Nieuw object: AutoFormulier AutoRapport om automatisch een rapport
Access maakt een rapport, waarbij alle velden onder elkaar geplaatst worden. De opmaak kunnen we gaan aanpassen.
127
12 Rapporten
De muisaanwijzer is veranderd in een vergrootglas 4
128
Access 2003
.
Klik een aantal keren in het rapport om de weergave aan te passen
Access 2003 13
Relationele database 13
Relationele database
De database reizen bevat 3 tabellen; Klanten, Boeking en Bestemmingen. Tussen deze 3 tabellen bestaat een relatie. Zowel in de tabel Klanten als Boeking vinden we een gezamenlijk veld terug; KLANTNR. In de tabellen Boeking en Bestemmingen vinden we als gezamenlijk veld; REISCODE. Bij het hoofdstuk over het maken van een index hebben we gezien dat we in een tabel één veld of een combinatie van velden moeten hebben om een record uniek te maken. In de tabel Klanten is dat veld: KLANTNR; in Bestemmingen is dat: REISCODE en in Boeking is dat de combinatie: KLANTNR met REISCODE. Bij het maken van query’s kunnen we van de koppeling gebruik maken. We zullen in dit hoofdstuk een koppeling tot stand brengen tussen de aanwezige tabellen en we bekijken een eenvoudig query met betrekking tot Relationele database. 1 2 3
Klik in de databasewerkbalk op de knop Openen Dubbelklik op Reizen om deze database te openen Klik op de knop Openen om de database te openen Met behulp van de knop Relaties uit de databasewerkbalk kunnen we de relaties tussen de verschillende tabellen uit de database vastleggen. Voorwaarde is dat de indexen gemaakt zijn.
4
Klik in de databasewerkbalk op de knop Relaties Op het scherm verschijnen een tweetal vensters.
149
13 Relationele database
Access 2003
Het eerste venster Tabel toevoegen ligt over het tweede venster Relaties. In het venster Tabel toevoegen moeten we aangeven van welke tabellen we de relatie willen gaan aanmaken. 5 6
Klik op Klanten om de tabel te selecteren Klik op de knop Toevoegen in het venster Tabel toevoegen In het tweede venster verschijnt de tabel Klanten.
7 8
Klik op Boeking om de tabel te selecteren Klik op de knop Toevoegen in het venster Tabel toevoegen Ook nu verschijnt in het tweede venster deze tabel.
9 10
Klik op Bestemmingen om de tabel te selecteren Klik op de knop Toevoegen in het venster Tabel toevoegen Meer tabellen kunnen we niet toevoegen. Het venster Tabel toevoegen kunnen we nu sluiten.
11
Klik op de knop Sluiten in het venster Tabel toevoegen In het venster Relaties zijn nu de 3 tabellen te zien. We zien dat in de tabellen velden vet weergegeven worden. Hieraan kunnen we zien op welk veld of velden de tabel is geïndexeerd. Bij de tabel Klanten is dat KLANTNR, bij de tabel Boeking: KLANTNR+REISCODE en bij de tabel Bestemmingen: REISCODE.
150
Access 2003
Relationele database 13
Tussen de verschillende tabellen kunnen we nu zelf de relaties gaan vastleggen. Het veld REISCODE uit de tabel Reizen is al actief. Dit veld gaan we slepen naar hetzelfde veld in de tabel Boeking om zo de koppeling te maken. Om tabellen te kunnen koppelen moeten de tabellen een sleutelveld (index) hebben. Access kan alleen een record in een andere tabel lezen als er een unieke code aanwezig is. 12
Sleep het veld REISCODE uit de tabel Bestemmingen naar het veld REISCODE in de tabel Boeking
In het volgende dialoogvenster wordt gevraagd om de relatie tussen de velden REISCODE in de beide tabellen te maken.
151
13 Relationele database
Access 2003
In dit venster kunnen we nog instellingen meegeven. Referentiële integriteit afdwingen Referentiële integriteit afdwingen wil zeggen dat Access ervoor zorgt dat relaties tussen records in de gekoppelde tabellen geldig zijn en dat we niet per ongeluk gekoppelde gegevens verwijderen of wijzigen. We schakelen dit selectievakje in als we referentiële integriteit willen gebruiken voor deze relatie. We schakelen deze optie uitsluitend in als aan alle volgende voorwaarden wordt voldaan: het overeenkomende veld van de primaire tabel bevat een primaire sleutel, de gekoppelde velden zijn van hetzelfde gegevenstype en beide tabellen zijn opgeslagen in dezelfde Access database. Gerelateerde velden trapsgewijs bijwerken We schakelen Referentiële integriteit afdwingen in en we schakelen vervolgens Gerelateerde velden trapsgewijs bijwerken in als we overeenkomende waarden in de gekoppelde tabel automatisch willen laten bijwerken als we de waarde van een primaire sleutel in de primaire tabel wijzigen. We schakelen Referentiële integriteit afdwingen in en we schakelen vervolgens Gerelateerde velden trapsgewijs bijwerken uit als er geen wijzigingen mogen worden aangebracht in de waarde van een primaire sleutel in de primaire tabel als de gekoppelde tabel gekoppelde records bevat. Gerelateerde records trapsgewijs verwijderen We schakelen Referentiële integriteit afdwingen in en schakel vervolgens Gerelateerde records trapsgewijs verwijderen in als we gekoppelde records in de gekoppelde tabel automatisch willen laten verwijderen wanneer we een record verwijderen in de primaire tabel. We schakelen Referentiële integriteit afdwingen in en we schakelen vervolgens Gerelateerde records trapsgewijs verwijderen uit als er geen records mogen worden verwijderd uit de primaire tabel wanneer de gekoppelde tabel gekoppelde records bevat. 13
Klik op de knop Maken in het venster Relaties bewerken De relatie tussen de twee tabellen wordt middels een lijn tussen de twee gekoppelde velden uit de tabellen weergegeven. We gaan ook de relatie tussen de tabellen Klanten en Boeking maken.
152
Case
Access 2003
Case 1
1
Voor de tennisvereniging uit Eindhoven moet een ledenbestand worden bijgehouden. Men heeft gekozen om in Access een database op te zetten. De database moet de naam ACE krijgen. Maak een nieuwe database aan in de map: Computerlesmateriaal\Access.
2
Om de primaire gegevens van de clubleden bij te kunnen houden moet er tabel Leden worden gemaakt gebaseerd op de hieronder afgebeelde gegevens. Maak de tabel aan en voer de onderstaande gegevens in.
Let op! Dit is één tabel die in twee delen is weergegeven omdat niet alle kolommen naast elkaar op de pagina passen. Kies zelf de juiste veldtypes, veldlengte en stel een primaire sleutel in. 3
170
De wedstrijdleiding wil graag op ieder moment een actuele lijst kunnen uitdraaien waarop de spelers staan die uit Eindhoven komen. Deze spelers wonen in de buurt en kunnen eventueel worden gebeld als er een invaller nodig is. Op de lijst moeten alleen de spelers worden opgenomen die ook aan de competitie deelnemen. Maak een query waarin de onderstaande kolommen zijn opgenomen. Bewaar de query onder de naam qryInvallers
Index
Access 2003
A
J
adresetiketten...............................................142 afdrukken.......................................................68 afdrukvoorbeeld.............................................67 afvinkvak .................................................50, 65 and .........................................22, 59, 61, 73, 82 autoformulier ...............................................115 auto-nummering ............................................32 autorapport...................................................127
ja/nee............................................................. 32 jokerteken...................................................... 27 L
lengte nul toestaan......................................... 33 logisch-veld................................................... 44 M
bijschrift...................................................33, 44 bijwerkquery......................................85, 86, 90 byte ................................................................34
macro’s........................................................... 8 memo ............................................................ 32 menubalk......................................................... 4 middellange datumnotatie ............................. 44 modules ........................................................... 8
C
N
criteria......................................................64, 76
nieuw............................................................. 37 nieuw object: autoformulier.......................... 85 nieuwe record................................ 11, 167, 177 notatie...................................................... 33, 35 numeriek ....................................................... 32 numerieke velden .......................................... 34
B
D
database ...........................................................1 databasewerkbalk ............................................4 datum/tijd.......................................................32 decimal ..........................................................34 F
filter ...............................................................94 filter toepassen...............................................20 filter toepassen / filter verwijderen................18 filter/sorteervolgorde ongedaan maken .........98 filterformulier ................................................18 filters..............................................................55 formulier ......................................................115 formulieren ......................................................8 formulierfilter ................................................21 G
geavanceerde filter-/sorteeropties..................95 gegevensbladweergave ..................................58 gegevenstype .................................................32 geïndexeerd .............................................31, 98 groepsniveau................................................133 H
hyperlink........................................................32 I
index ..............................................................93 indexen ........................................................103 integer............................................................34 invoermasker .................................................33
174
O
object invoegen ................................... 111, 112 objecten ........................................................... 8 objecten en formulieren .............................. 109 OLE-object.................................................... 32 ontwerpweergave .............................. 55, 58, 78 or 22, 73, 82 P
pagina’s........................................................... 8 precisie .......................................................... 34 primaire sleutel.............................. 97, 102, 106 printerinstellingen ......................................... 68 Q
query’s ...................................................... 8, 55 R
rapport......................................................... 127 rapporten ......................................................... 8 record .............................................................. 1 recordselectieknoppen................................... 10 referentiële integriteit afdwingen ................ 168 relaties ......................................................... 149 relationele database..................................... 149 S
selectiefilter............................................. 18, 19 selectiequery ........................................... 57, 63
Access 2003 sleutel ..........................................................102 sorteren.................................................... 15, 93 standaardwaarde............................................33 statusbalk.........................................................4 statusknop...................................... 12, 166, 178 structuur................................................... 31, 66 T
tabel .................................................................1 tabvolgorde..................................................119 tekst ...............................................................32 titelbalk............................................................4 V
validatieregel .................................................33 validatietekst .................................................33 valuta .............................................................32
Index veld ................................................................. 1 veldeigenschappen.................................. 33, 40 veldlengte................................................ 31, 33 vereist ........................................................... 33 vergrootglas .................................................. 67 verwijderen record ........................................ 12 voorgedefinieerde databases......................... 38 voorwaarden ........................................... 22, 82 W
wijzigen in .................................................... 88 wizard adresetiketten .................................. 140 wizard rapport............................................. 131 Z
zoeken........................................................... 23
175