[Microsoft Access 2007 – Een eigen database maken] 4 november 2009
Normaliseren van tabellen Praktische oefeningen Oefening 1 : Het gebruik van een OPZOEKTABEL
Maak eerst een backup van de werkende versie In onze eigen database moeten we het principe van een ‘opzoektabel’ gebruiken bij het invullen en het bewaren van het postnummer en gemeente van de persoon die we toevoegen aan de tblPersonen. Maar voor we belangrijke aanpassingen aanbrengen aan onze toepassing gaan we eerst een backup nemen. Klik op de
Access maakt nu een kopie van de database in dezelfde map waarin de originele database staat maar voegt in de naam de datum toe en eventueel een volgnummer wanneer je meerdere backups neemt op één dag.
Klik in het volgende venster gewoon op .
1
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009
In de map waar de database staat zie je nu het volgende :
- het eerste bestand is de toepassing waarin we werken - het tweede bestand is een tijdelijk bestand dat Access aanmaakt als je met de database werkt. Dit bestand wordt automatisch verwijderd wanneer je de database sluit. - het derde bestand is de backup van het eerste bestand. Je ziet dat de datum gewoon is toegevoegd aan de naam van de database. Maak ik dezelfde dag nog een backup wordt deze toegevoegd met dezelfde naam als de vorige backup maar met een toevoeging van een volgnummer – in ons voorbeeld : _(1).
2
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009
Nu kunnen we zonder problemen starten met de aanpassingen. Loopt het fout kunnen we gewoon terug keren naar de vorige versie want daarvoor hebben we de backup van deze ‘werkende versie’ gemaakt.
Invullen en opzoeken van een aanschrijftitel Bij het maken van etiketten is het ook wenselijk dat een aanspreektitel gebruikt wordt. Een etiket ziet er dan als volgt uit : De heer Van de Velde Stefaan Kerkstraat 34 9000 Gent Maar tot nu toe is nergens opgenomen hoe we iemand aanspreken. Vandaar dat we in ons formulier een invulveld gaan voorzien waarin we kunnen aangeven welke aanspreektitel moet gebruikt worden voor een bepaalde persoon. We kunnen dit uiteraard telkens intikken, maar dan weet je dat er tikfouten en dergelijke zullen optreden. Om uniformiteit te bewaren in de database zullen we een opzoektabel maken met aanspreektitels. Deze tabel kan dan gebruikt worden in een uitschuiflijstje waaruit de gebruiker dan gewoon maar hoeft te kiezen (uniformiteit en geen tikfouten). We maken eerst een nieuwe tabel aan : tblAanschrijftitels. <Maken> en bewaar de tabel als tblAanschrijftitels.
3
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009
Vul volgende velden in : A_AanschrijfTitelCode 1 2 3 4 5 6 7 8
A_AanschrijfTitel De heer Mevrouw E.H. Juffrouw Dr. De heer en mevrouw Mr. Jongeheer
A_Aanhef Heer Mevrouw Zeereerwaarde heer pastoor Juffrouw Dokter Geachte heer en mevrouw Meester Jongeheer
Deze tabel vormt de basis van een uitschuiflijst waaruit de gebruiker de juiste aanschrijftitel kan kiezen. We openen het formulier ‘frmInvoerenPersonen’ in ontwerpweergave en voegen boven het tekstvak ‘txtNaam’ een keuzelijst met invoervak in. Dat vind je op de liniaal onder - groep “Besturingselementen’ – ‘Keuzelijst met invoervak’ –
We klikken met de muiswijzer nu net boven het tekstvak ‘txtNaam’ en een Wizard start op … In het eerste venster kiezen we voor “De waarden voor de keuzelijst …. opgezocht in een tabel of query”. (figuren zie volgende bladzijde)
In het volgende venster kiezen we voor de tblAanschrijftitel en klik op . In het volgende venster kiezen we voor de waarden die in de uitschuiflijst moeten opgenomen worden. Dat zijn “A_AanschrijftitelCode” en “A_Aanschrijftitel”. Het veld “A_Aanhef” is niet nodig. De twee velden kunnen we naar rechts verplaatsen met te klikken op “>” en klik daarna op .
4
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009
5
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009 Om het opzoeken voor de gebruiker gemakkelijker te maken is het aangeraden om de sortering op A_Aanschrijftitel uit te voeren zodanig dat alle titels alfabetisch staan.
In onderstaand venster zie je het resultaat van de selectie die je gemaakt hebt en zie je ook dat één kolom (namelijk de A_AanschrijftitelCode) verborgen staat. Deze zal door de gebruiker niet gezien worden maar voor het programma ‘Access’ is deze wel “zichtbaar”. Het is ook deze primaire sleutel die we straks zullen bewaren in de tabel “tblPersonen”.
6
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009 Geef nu nog aan welk label op het formulier bij deze lijst moet geplaatst worden en ‘klaar is kees’. We tikken “Aanschrijftitel :” en druk op .
En dit is het eindresultaat.
We kunnen nu de uitschuiflijst wat breder maken door rechts op het oranje vierkantje te staan en met de linkermuisknop het blokje wat naar rechts te verplaatsen. Op die manier is de lijst breed genoeg om alle titels volledig te tonen .
7
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009 Dit veld geven we via het ‘Eigenschappenvenster’ in het tabblad ‘Alle’ de naam ‘lstAanschrijftitel’. Het label geven we als naam ‘lblAanschrijftitel’. In “Weergave” geeft dit het volgende :
De aanschrijftitels staan alfabetisch in de lijst :
Bewaren van de waarde uit een opzoektabel
Om dit nu te kunnen opslaan in onze tabel ‘tblPersonen’ moeten we een veld toevoegen aan deze tabel. We voegen het veld “P_Aanschrijftitel” toe net boven het veld “P_Actief”. Dit doen we door de tabel tblPersonen in ‘Ontwerpweergave’ te openen. Daar klik je op de rijkop voor P_Actief.
8
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009
In het lint “Ontwerpen” klik je op “Rijen invoegen” bij de groep <Extra>. Daar komt boven P_Actief een blanco lijn waar je de naam van het nieuwe veld kunt invullen. Dit veld moet numeriek zijn want in dit veld gaan we de ID van de gekozen aanschrijftitel van de persoon bewaren. A_AanschrijftitelCode is een primaire sleutel en bovendien ‘Autonummering’ want als gevolg heeft dat het veld in de tabel tblPersonen ook een numeriek veld moet zijn van het type ‘Lange integer’ (de standaard voor een numeriek veld).
We bewaren de wijzigingen en sluiten de tabel en het formulier. Op ons formulier drukken we op de knop en worden de ingevulde waarden op het formulier via een ‘toevoegquery’ bewaard. Er ontbreekt echter één veld nl. lstAanschrijftitel. Dit veld voegen we toe aan de toevoegquery ‘qryInvoerenPersonen’. We openen de query in ‘Ontwerpweergave’ en klikken met de rechtermuisknop in de bovenste cel naast de laatste ingevulde kolom en kiezen voor “Opbouwen”.
9
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009
De wizard “Opbouwfunctie van een expressie” opent zich. Daar kiezen we voor de volgende opties : - 2x klikken op ‘Forms’ - 2x klikken op “Alle formulieren” - 1x klikken op “frmInvoerenPersonen” - in tweede kolom – 2x klikken op ‘lstAanschrijftitel’ en druk op
Expr1 (niet het dubbel punt) vervangen we door ‘Titel’ en in ter hoogte van ‘Toevoegen’ aan kiezen we voor het veld dat we daarnet hebben aangemaakt “P_Aanschrijftitel”. Sluit de query en bewaar de wijzigingen.
10
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009
Op die manier wordt straks bij het klikken op de knop de waarde van het nieuwe veld op ons formulier bewaard in de tabel ‘tblPersonen’. Er is echter nog een schoonheidsfoutje. Op ons formulier worden alle velden leeg gemaakt na het bewaren van de persoon. Dit moeten we nu ook voorzien voor de keuzelijst. Tevens moet de cursor nu niet naar ‘txtNaam’ springen (vroeger het eerste veld op het formulier) maar moet deze nu naar ‘lstAanschrijftitel’ springen. We passen de macro achter de knop ‘Opslaan’ aan. Open het formulier in ontwerpweergave en zorg dat het ‘Eigenschappenvenster’ open staat. Klik op de knop ‘Opslaan’ en kies in het ‘Eigenschappenvenster’ voor het tabblad . Daar zie je ‘Bij klikken’ de *Ingesloten macro+. Klik ter hoogte van deze op het knop met de drie puntjes. De macro opent zich. We passen het volgende aan …
Klik op de rijknop voor “Naar besturingselement” en druk in het lint op “Rij invoegen”.
11
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009 We kopiëren de laatste lijn “WaardeInstellen” door op de rijknop te klikken en op Ctrl+C te drukken. Klik dan op de rijknop van de blancolijn (de nieuwe lijn die je net gemaakt hebt) en druk op Ctrl+V. Daardoor wordt de lijn gekopiëerd. Pas nu onderaan het scherm het volgende aan : [txtTelefoon] vervangen door [lstAanschrijftitel].
Pas in de lijn eronder (terug onderaan op het scherm) ‘NaarBesturingselementGaan’ aan. Vervang ‘txtNaam’ door ‘lstAanschrijftitel’. Sluit de macro en bewaar de wijzigingen. Doe de test .... vul het formulier in en druk op de knop . Het formulier moet volledig leeg gemaakt worden en de cursor moet bovenaan het formulier in het veld ‘Aanschrijftitel’ staan. Controleer ook of de gegevens allemaal (ook het nieuwe veld) in de tabel ‘tblPersonen’ onderaan zijn toegevoegd. Je kan nu ook nog de ‘tab-volgorde’ van het object ‘lstAanschrijftitel’ aanpassen. In het Eigenschappenvenster (nadat je op de uitschuiflijst hebt geklikt) ga je naar het tabblad en bij tabvolgorde verander je de waarde die er nu staat door “0” (nul). Daardoor wordt de cursor bij het openen van het formulier automatisch in de uitschuiflijst geplaatst.
12
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009
Nog een kleine aanpassing aan het formulier zelf : Recordkiezer, navigatieknoppen en schuifbalken uitschakelen in het ‘Eigenschappenvenster’. Selecteer het formulier door op het vierkantje te klikken in de kruising van de horizontale en verticale liniaal. In het ‘Eigenschappenvenster’ onder wijzig je :
Recordkiezers : Nee Navigatieknoppen : Nee Schuifbalken : Geen
13
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 4 november 2009
14
Frank Van Oost