Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen...
Transcript of Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen...
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
1 Frank Van Oost
Klantendatabase aanmaken
Invulformulier voor een klant te maken en op te slaan
Voor dit project maken we een nieuwe database aan. Voor bepaalde acties zoals het maken van een
nieuwe database en het maken van een nieuwe tabel verwijzen we graag naar de nota’s van vorige
semester (H1 – Een nieuwe database maken).
We noemen de database “kassa.accdb”. We maken een eerste tabel aan met de volgden velden :
Veldnaam Gegevenstype Beschrijving
KL-KlantID Autonummering KL-FirmaNaam Tekst KL-Contactpersoon Tekst KL-Adres Tekst KL-GemeenteNummer Numeriek KL-Telefoon Tekst KL-Email Hyperlink KL-BTW-nummer Tekst
In het veld KL-GemeenteNummer verwijzen we naar de tabel Postcodes die we in het vorige
semester hebben geïmporteerd vanuit een Excel-bestand die we van de Belgische Post –website
gedownload hadden.
We importeren deze tabel uit de database “Contactpersonen” die we vorig semester hebben
aangemaakt. We klikken op <Externe gegevens><Access>
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
2 Frank Van Oost
Via <Bladeren> gaan we op zoek naar de database waarin de tabel zich bevindt. Daarna kiezen we
voor de eerste optie “Tabellen, query’s, …” en drukken op <OK>.
In het volgende scherm duiden we de tabel tblPostcodes aan en drukken op <OK>.
In het volgende scherm klik je gewoon op <Sluiten>. Het is niet de bedoeling dat we deze import-
actie nog herhalen.
Daardoor wordt te tabel integraal geïmporteerd in onze nieuwe database.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
3 Frank Van Oost
We bekijken even de verschillende velden door de tabel in “Ontwerpweergave “ te openen.
Nu deze beide tabellen zijn gemaakt kunnen we van start gaan met het maken van ons
invulformulier. Ook hier verwijs ik naar het eerste semester – maar geven we kort de verschillende
stappen terug.
<Maken><FormulierOntwerp>. Daarna klikken we op het icoontje <Tekstvak> en verplaatsen onze
cursor naar het formulier waar we klikken op de plaats waar we het tekstvak willen hebben. Er
wordt een tekstvak en label gemaakt.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
4 Frank Van Oost
We gaan de lay-out van deze elementen aanpassen omdat we deze straks gaan kopiëren voor andere
velden te maken.
We verbreden het label door te klikken op het label en aan de rechterkant het oranje blokje naar
rechts te verplaatsen tot enkele mm van het tekstvak.
Omdat we een compact formulier wensen zullen we het tekstlabel boven op het tekstvak zetten en
het lettertype verkleinen tot “Calibri – 8”. Wijzig in je liniaal op het <Start>-tabblad de lettergrootte
naar ‘8’. Doe hetzelfde bij het tekstvak maar kies daar voor een lettertypegrootte van ‘9’.
De beide objecten mogen in de hoogte ook wat aangepast worden. Dat doe je door op het
geselecteerde object het oranjeblokje middenonder naar boven te verschuiven zodanig dat het
kadertje rond de tekst wat minder hoog wordt. Dit doe je ook met het tekstvak.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
5 Frank Van Oost
Verplaats nu het het label (met het bruine blokje linksboven van het label) bovenop het tekstobject,
zodanig dat de beide objecten minder plaats innemen. Daarna verbreden we het tekstvak ook wat
omdat het nogal smal is voor bijvoorbeeld de naam van een firma in te tikken.
Nu moeten we de beide objecten nog een naam geven en dat doen we, zoals je weet, in het
Eigenschappenvenster. Als het ‘Eigenschappenvenster” niet zichtbaar klik je op
<Ontwerpen><Eigenschappenvenster>.
We selecteren het tekstvak en kiezen in het Eigenschappenvenster het tabblad <Alle>. Daar vullen
we volgende eigenschappen in :
Eigenschap Waarde
Naam txtFirmaNaam
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
6 Frank Van Oost
Daarna selecteren we het label en vullen volgende eigenschappen in :
Eigenschap Waarde
Naam lblFirmaNaam Bijschrift Firmanaam :
Met dit als eindresultaat :
Op ons formulier hebben we nu nog 7 extra velden nodig om alle gegevens van een klant te kunnen
opslaan. Om deze velden te maken selecteren we de beide velden. Drukken op Ctrl+C en drukken
daarna 7x op Ctrl-V om deze velden te plakken. Dit is het resultaat.
Al deze objecten moeten hun eigen naam en bijschrift hebben. We gaan voor de verschillende
objecten in het ‘Eigenschappenvenster’ volgende eigenschappen aanpassen.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
7 Frank Van Oost
Objectnummer Eigenschap Waarde
2 Naam lblContactpersoon Bijschrift Contactpersoon:
Objectnummer Eigenschap Waarde
3 Naam txtContactpersoon
Objectnummer Eigenschap Waarde
4 Naam lblAdres Bijschrift Adres: 5 Naam txtAdres 6 Naam lblPostnummer Bijschrift Postnummer: 7 Naam txtPostnummer 8 Naam lblGemeente Bijschrift Gemeente: 9 Naam txtGemeente 10 Naam lblTelefoon Bijschrift Telefoon 11 Naam txtTelefoon 12 Naam lblEmail Bijschrift Email 13 Naam txtEmail
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
8 Frank Van Oost
14 Naam lblBTWnummer Bijschrift BTW-nummer: 15 Naam txtBTWnummer
Met als dit als resultaat :
We bewaren dit formulier door op het disketje bovenaan links te drukken en noemen het :
KL-frmInvoerenKlanten. Alle objecten die verband houden met het beheren van onze klanten geven
we als beginletters steeds “KL-“.
Om het formulier een compactere vorm te geven gaan we de velden nu één voor één verplaatsen tot
we het volgende formulier hebben.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
9 Frank Van Oost
Daarbij hebben we het tekstveld “Postnummer” wat smaller gemaakt en de onderste rand van het
formulier naar boven verplaatst om een smaller rechthoekig formulier te krijgen.
Om het nu nog een extra tintje te geven gaan we met de knop “Rechthoek” nog een rechthoek rond
alle velden trekken. Deze knop vindt je op het tabblad <Ontwerpen> <Besturingselementen>
<Rechthoek>
Dit is het eindresultaat :
In het Eigenschappenvenster van het formulier wijzigen we nog volgende eigenschappen. Selecteer
het formulier. Klik op het vakje op het snijpunt van de horizontale liniaal en de verticale liniaal en klik
op de knop “Eigenschappenvenster” mocht deze niet open staan.
Tabblad Eigenschap Waarde
Opmaak Bijschrift Invoeren klanten … Autocentreren Ja
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
10 Frank Van Oost
Randstijl Dialoog Recordkiezer Nee Navigatieknoppen Nee Schuifbalken Geen Systeemknoppen Nee
Dit kan ook het formulier zijn waarbij ik straks de gegevens van een klant kan weergeven. Vandaar
dat we dit formulier ook bewaren als : KL-frmWeergevenKlantGegevens. Dit doen we door dit
formulier eerst te sluiten en het te selecteren in ons navigatiecentrum (linkerkolom). Dan drukken
we op Ctrl+C en daarna op Ctrl-V. Hier geven we de nieuwe naam in en drukken op <OK>.
Daardoor hebben we nu ook al een formulier om straks de ingevoerde gegevens weer te geven. Let
op : hier moeten nog verschillende acties ondernomen worden om dit formulier te laten werken.
Maar daar later meer over …
Uitschuiflijst met waarden als resultaat van een query
We openen terug ons formulier KL-frmInvoerenKlanten en zien dat daar we zowel de postnummer
als de gemeente manueel moeten invullen. Dit veroorzaakt tikfouten vandaar dat we een keuzelijst
gaan maken op basis van het ingetikte postnummer. De gebruiker zal dan uit de keuzelijst de juiste
gemeente moeten kiezen. Deze wordt dan samen met de andere gegevens van de klant bewaard.
Om de gemeentes te selecteren die op basis van het ingetikt postnummer moeten getoond worden
moeten we een selectiequery maken op basis van de tabel ‘Postcodes’ en het veld ‘txtPostnummer’
van dit formulier.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
11 Frank Van Oost
<Maken><QueryOntwerp> en we selecteren in het eerste schermpje de tabel ‘tblPostcodes’.
In het queryrooster slepen we volgende velden :
PST_Gemeentenummer
PST_Postnummer
PST_GemeenteNaam
Onder het veld PST_Postnummer in het queryrooster klikken we met de rechtermuisknop in het
vakje ‘Criteria’ en maken we een criterium op basis van het veld ‘txtPostnummer’. Daarvoor kiezen
we <Opbouwen>. In het daaropvolgende venster klikken we op :
2x Forms – 2x Alle formulieren – 1x KL-frmInvoerenKlanten en in de tweede kolom dubbelklikken we
op “txtPostnummer” en drukken op <OK> . Daardoor komt de volgende tekst in het bovenste kader
te staan. Hiermee is het criterium voor de query gemaakt.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
12 Frank Van Oost
Daardoor komt de volgende formule in het query-raster :
We bewaren de query als “KL-qryOpzoekenGemeente”.
We testen de query. We openen het formulier “KL-frmInvoerenKlanten” en vullen een postnummer
in – bvb. 9700. Daarna dubbelklikken we in het navigatievenster “KL-qryOpzoekenGemeente”.
En dit is het resultaat waaruit blijkt dat de query goed werkt. Nu deze nog verwerken in een
keuzelijst.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
13 Frank Van Oost
Op het formulier plaatsen we nu een ‘keuzelijst met invoervak’ die we vinden onder het tabblad
<Ontwerpen><Besturingselementen>. Ik klik op de knop en verplaats mijn muiswijzer net naast de
kader die we op het formulier gemaakt hebben. Daardoor vergroot het formulier terug, maar dat
passen we later wel aan.
De Wizard start op en we vullen volgende gegevens in :
<Volgende>
We kiezen voor ‘Query’s’ en kiezen de enige query die er is <Volgende>.
We selecteren achtereenvolgens de velden PST_GemeenteNummer en PST_GemeenteNaam en
drukken telkens op het knopje met de pijl naar rechts. Het veld “PST_Postnummer” was enkel nodig
voor de selectie en moet niet in de lijst zichtbaar zijn.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
14 Frank Van Oost
We sorteren de gemeentes alfabetisch op Gemeentenaam in het volgende venster :
In het volgende venster kunt u de breedte van de kolommen nog aanpassen. De twee kolom mag
wat breder gemaakt worden voor langere gemeentenamen . Daarna druk je op <Volgende>.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
15 Frank Van Oost
Het veld dat later zal gebruikt worden om in de tabel tblKlanten op te slaan is het eerste veld
‘PST_GemeenteNummer’.
Welk label wil je nog bij deze keuzelijst : “Gemeente:”
met als resultaat :
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
16 Frank Van Oost
We nemen de lay-out van het object ‘lblGemeente’ over op het nieuwe label door het ‘oude label’ te
selecteren en op het verfborsteltje te klikken in de liniaal. Vervolgens klik je op het ‘nieuwe label’ en
het krijgt dezelfde lay-out van het ‘oude label’. We versmallen het label wat en plaatsen het boven
de keuzelijst. Bij de keuzelijst zelf wijzigen we ook de lettergrootte naar ‘9’ en versmallen we het
object.
We passen de “Eigenschappen” van de keuzelijst aan :
Tabblad Eigenschap Waarde
Label ‘Gemeente’ : Alle Naam lblGemeente Keuzelijst ‘Gemeente’ Naam LstGemeente Kolombreedten 0 cm;4,76 cm
We verwijderen het oude label en oud tekstvak Gemeente door het te selecteren en “Delete” te
drukken en verplaatsen de keuzelijst met zijn label op de plaats die vrij gekomen is.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
17 Frank Van Oost
Om nu te zorgen dat na het invullen van het postnummer automatisch de juiste gemeente(s) in de
keuzelijst voorkomen moeten we telkens de lijst opnieuw laten samenstellen en dat doen we door de
query die achter de lijst zit steeds opnieuw te laten lopen. Dit gebeurt door een macro.
We selecteren ‘txtPostnummer’ en gaan naar het tabblad “Gebeurtenissen” in het
Eigenschappenvenster. Daar klikken we in het vakje “Na bijwerken” en klikken daar op het knopje
met de drie puntjes. In het volgende venster kiezen we voor “Opbouwfunctie voor macro’s”.
In het macro-venster klikken we op de knop <Alle acties weergeven> en vullen we volgende
parameters in :
Bij actie vullen we in : QueryOpnieuwUitvoeren
Bij bestuurselementnaam (onderaan het scherm) : LstGemeente (het is de lijst met gemeentes die
opnieuw moeten worden samengesteld). We sluiten de macro en bewaren de wijzigingen.
Er is nu een [Ingesloten macro] gedefinieerd. We bewaren het formulier en tonen het in “Weergave”
(linksboven op de liniaal).
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
18 Frank Van Oost
Bewaren van de ingevulde gegevens met een toevoegquery
Om de gegevens te bewaren die we ingevuld hebben op het formulier moeten we een toevoegquery
maken. Dit doen we door te klikken op <Maken><QueryOntwerp> en in het venster dat getoond
wordt op <Sluiten> te drukken.
We kiezen op de liniaal bij Querytype voor <Toevoegen> en zeggen in het volgende scherm dat de
gegevens moeten weggeschreven worden naar de tblKlanten.
In het queryrooster gaan we voor elk formulierveld bepalen naar waar de inhoud moeten worden
weggeschreven.
Klik met de rechtermuis in het eerste veld van het queryrooster en kies daar voor <Opbouwen>.
In het volgende scherm klik je 2x Forms – 2x Alle formulieren – 1x frmKlantenGegevens. In de
middelste kolom kies je dan voor ‘txtFirmaNaam’ door er 2x op te klikken – de formule komt
bovenaan in het venster te staan en we klikken op <OK> om af te sluiten.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
19 Frank Van Oost
De formule wordt als Expr1: in het queryrooster weergegeven. ‘Expr1:’ veranderen we in
“Firmanaam:”. Het veld naar waar dit gegeven moet worden weggeschreven kiezen we in het veld
naast “Toevoegen aan” voor ‘KL-Firmanaam’.
Dit herhalen we voor alle velden op het formulier.
Veld : Toevoegen aan : Firmanaam: [Forms]![KL-frmInvoerenKlanten]![txtFirmaNaam] KL-Firmanaam Contactpersoon: [Forms]![KL-frmInvoerenKlanten]![txtContactpersoon] KL-Contactpersoon Adres: [Forms]![KL-frmInvoerenKlanten]![txtAdres] KL- Adres Gemeente: [Forms]![KL-frmInvoerenKlanten]![LstGemeente] KL-GemeenteNummer Telefoon: [Forms]![KL-frmInvoerenKlanten]![txt Telefoon] KL- Telefoon
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
20 Frank Van Oost
Email: [Forms]![KL-frmInvoerenKlanten]![txtEmail] KL-Email BTW-nummer: [Forms]![KL-frmInvoerenKlanten]![txtBTWnummer] KL-BTW-nummer
We bewaren de query als : KL-qryOpslaanKlantenGegevens. Deze query moet nu nog verbonden
worden aan een knop <Opslaan>. Daarvoor voegen we een knop aan het formulier toe en gaan we
aan de knop een macro verbinden.
Macro maken
Tot nu toe hebben we steeds gewerkt met een ‘ingesloten macro’. Vanaf nu gaan we de macro’s per
onderdeel van het programma verzamelen in een hoofdmacro met submacro’s.
We kiezen voor <Maken> <Macro’s>. In het volgende venster klikken we op de knoppen <Alle acties
weergeven> en <Macronamen>.
Er is nu in het macroscherm één kolom bijgekomen :’MacroNaam’. Daarin geven we telkens de
naam van de submacro. Een submacro begint bij de lijn van zijn naam en eindigt bij de eerstvolgende
blanco regel.
We tikken in de eerste kolom als naam ‘Opslaan KlantenGegevens’, in de tweede kolom
‘QueryOpenen’ en als argument onderaan geven we de query op die moet uitgevoerd worden : ‘KL-
qryOpslaanKlantenGegevens’.
We bewaren de hoofdquery als “KL-mcrKlantenBeheer”.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
21 Frank Van Oost
We kiezen voor het tabblad <Ontwerpen> en in de groep <Besturingselementen> kiezen we voor
<Knop> en klikken op het formulier. We sluiten de wizard en gaan nu de eigenschappen van de knop
aanpassen in het ‘Eigenschappenvenster’.
Tabblad Eigenschap Waarde
Alle Naam cmdOpslaan Bijschrift Opslaan Schikking van bijschrift … Rechts Afbeelding Opslaan (via de wizard het icoontje opzoeken Gebeurtenis Bij klikken KL-mcrKlantenbeheer-OpslaanKlantenGegevens
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
22 Frank Van Oost
Daardoor wordt de submacro ‘OpslaanKlantenGegevens’ uitgevoerd als de gebruiker op de knop
<Opslaan> drukt en worden de ingevulde gegevens weggeschreven naar de tabel ‘tblKlanten’.
Omdat de klantenmodule gebruikt wordt aan een kassa wordt na het inbrengen van de klant telkens
weer terug gegaan naar de kassamodule en mag na het bewaren van de klant het scherm gesloten
worden. Daarvoor zullen we de submacro aanpassen.
Klik met de rechtermuisknop in het navigatiecentrum op ‘KL-mcrKlantenBeheer’ en voeg na de eerste
lijn een regel toe.
Actie : Sluiten
Argument :
Object : Formulier
Objectnaam : KL-frmInvoerenKlanten
Bevestigen : Nee
Hierdoor wordt na het bewaren het formulier gesloten en kan de kassierster verder werken.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
23 Frank Van Oost
Klantengegevens weergeven in een formulier
In het vorige deel van deze oefening hadden we een invoegformulier bewaard onder een andere
naam om het te kunnen gebruiken om de gegevens weer te geven. Hier gaan we dit formulier
gebruiken.
Om alle gegevens van een klant te kunnen weergeven moet we eerst een query maken waarbij het
‘KL-GemeenteNummer’ uit de tblKlanten gekoppeld is aan ‘PST_GemeenteNummer’ uit de
tblPostcodes. Op die manier kunnen we aan de hand van het ‘Gemeentenummer’ het ‘postnummer’
en de ‘gemeentenaam’ ophalen en tonen op ons formulier samen met de andere gegevens van de
klant.
Lijst van klanten maken die kan gebruikt worden om een klant te selecteren en zijn/haar
gegevens te tonen op het formulier
Om een klant te kunnen weergeven gaan we een lijst maken van de klanten en deze tonen op een
formulier. De gebruiker kan dan de gewenste klant aanduiden en de gegevens worden getoond op
een formulier naast de lijst.
Om deze lijst samen te stellen maken we een nieuw formulier.
<Maken><FormulierOntwerp>
Op dit formulier plaatsen we een tekstvak waarin we straks de naam of een deel van de naam van de
gezochte klant willen weergeven. Net zoals in het vorige formulier gaan we ook de lay-out en de
naam van objecten aanpassen.
Voor het label in het tabblad ‘Alle’ van het ‘Eigenschappenvenster :
Eigenschap Waarde
Naam lblKlantKeuze Bijschrift Klantenkeuze : Tekengrootte 8
Voor het tekstvak :
Eigenschap Waarde
Naam txtKlantKeuze Tekengrootte 10
We plaatsen het label boven op het tekstvak.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
24 Frank Van Oost
Om de klanten nu in een lijst weer te geven gaan we eerst een selectiequery maken en plaatsen we
de velden die we in de lijst willen zien in het queryraster.
<Maken><QueryOntwerp>. We kiezen enkel voor de tabel ‘tblKlanten’ – de adresgegevens hebben
we hier niet nodig.
In het queryrooster plaatsen we de velden : KL-Klantencode en KL-Firmanaam. Als criteria voor de
selectiequery geven we volgende formule op :
Like "*" & [Forms]![KL-frmOpzoekenKlanten]![txtKlantenkeuze] & "*".
Door deze formule gaat iedereen die in zijn naam de ingevoerde tekst in het tekstvak
‘txtKlantenkeuze’ in de lijst opgenomen worden.
We bewaren de query als ‘KL-qryOpmakenKlantenLijst’.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
25 Frank Van Oost
Op het formulier gaan we nu een keuzelijst maken op basis van deze query. Daarvoor gaan we
opnieuw naar het formulier ‘KL-frmOpzoekenKlanten’ en klikken op de liniaal op het tabblad
<Ontwerpen><Besturingselementen><Keuzelijst> (onder keuzelijst met invoervak). We klikken met
de cursor op het formulier op de plaats waar de lijst moet komen en een wizard start op.
We kiezen voor een query en klikken op <Volgende>. In het volgende venster kiezen we voor
<Query’s> en kiezen de eerste query KL-qryOpmakenKlantenlijst (de query die we net gemaakt
hebben).
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
26 Frank Van Oost
We selecteren beide velden en klikken op het knopje met de twee pijltjes naar rechts.
We doen een sortering op firmanaam omdat dit gemakkelijker zoekt.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
27 Frank Van Oost
In het volgende scherm passen we eventueel de breedte van de kolommen aan.
We duiden de KL-KlantID aan als het gegeven dat moet bewaard worden (om straks de gegevens te
tonen).
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
28 Frank Van Oost
Als label gaan we bij de lijst ’ Kies één van de klanten :’ plaatsen.
<Voltooien>
We passen nog even de lay-out van het formulier aan :
- Label bovenop de Klantenlijst
- Tekengrootte van het label : 8
- Tekengrootte van de klantenlijst : 9
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
29 Frank Van Oost
We passen nog enkele eigenschappen aan op het formulier :
Selecteer het formulier en in het Eigenschappenvenster passen we volgende eigenschappen aan :
Tabblad Eigenschap Waarde
Opmaak Autocentreren Ja Randstijl Dialoogkader Recordkiezer Nee Navigatieknoppen Nee Schuifbalken Nee Systeem menu Nee Knop Sluiten Nee
Selecteer de lijst met klanten :
Tabblad Eigenschap Waarde
Alle Naam LstKlanten
Selecteer het label van de klantenlijst:
Tabblad Eigenschap Waarde
Alle Naam lblKlantenLijst
Er moet echter nog eerst een macro gekoppeld worden aan het tekstvak ‘txtKlantenkeuze’. Telkens
als er een tekst ingevuld is in het tekstvak moet de klantenlijst waaruit kan worden gekozen opnieuw
samengesteld worden.
We openen de macro ‘KL-mcrKlantenBeheer’ in ontwerpweergave en maken een nieuwe submacro.
Naam submacro Actie Argumenten(invullen onderaan het scherm)
Samenstellen Klantenlijst QueryOpnieuwUitvoeren LstKlanten
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
30 Frank Van Oost
We sluiten de macro en bewaren de wijzigingen. We gaan terug naar ons formulier in
ontwerpweergave . We selecteren het tekstvak ‘txtKlantenkeuze’ en passen in het
Eigenschappenvenster in het tabblad ‘Gebeurtenissen’ de volgende eigenschap aan door op het
uitschuiflijstje te klikken.
Tabblad Eigenschap Waarde
Gebeurtenis Na bijwerken KL-mcrKlantenBeheer.Samenstellen Klanten
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
31 Frank Van Oost
Bewaren het formulier en vanaf nu zal de klantenlijst opgevuld worden met klanten waarvan de tekst
in het tekstvak ‘txtKlantenkeuze’ voorkomt.
Selectiequery voor het samenstellen van de klantengegevens op basis van een aangeduide
klant.
Om nu de gegevens van een klant in de klantenlijst te tonen moeten we selectiequery maken en op
basis van het resultaat van de selectiequery moet een formulier getoond worden (die we al gemaakt
hebben – maar nog moeten aanpassen) die de gegevens van die klant toont.
We beginnen bij de selectiequery.
<Maken><QueryOntwerp>
We dubbel klikken de 2 tabellen die we nodig hebben nl. tblKlanten en tblPostcodes. We sluiten het
venster en gaan nu de relatie leggen tussen de primaire sleutel van de tabel ‘tblPostcodes’ en de
secundaire sleutel’ van de tabel tblKlanten.
We dubbelklikken nu alle velden uitgezonderd :
KL-Gemeentenummer
PST-GemeenteNummer
PST_GemeenteNaamHoofdletters
PST_StructuurCode.
Dit zijn alle velden die we op het formulier willen tonen. We bewaren de query als KL-
qryWeergevenKlantGegevens.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
32 Frank Van Oost
We voegen nu nog een criterium toe om de gegevens op te halen van de klant die geselecteerd is in
de lijst van klanten ‘LstKlanten’. Daarvoor klikken we met de rechtermuis in de cel Criteria onder het
veld KL-KlantID in het queryrooster. Daar kiezen we voor <Opbouwen>. Kies de volgende opties
volgens onderstaande figuur met als resultaat een selectiecriterium voor de KlantID.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
33 Frank Van Oost
met dit als resultaat in de query :
Wanneer we nu een klant in deze lijst aanklikken moeten de gegevens van die klant getoond worden
in een formulier ernaast. Deze gegevens zouden moeten worden getoond in het formulier “KL-
frmWeergevenKlantGegevens”. Dit formulier moet echter aangepast worden want het is nog niet
gelinkt aan de query die de gegevens toont.
We passen het formulier als volgt aan :
Open formulier in Ontwerpweergave en pas de volgende eigenschap aan in het
‘Eigenschappenvenster’ en bewaar de wijzigingen. Door deze link kunnen we nu de verschillende
velden op het formulier verbinden met de velden uit de query.
Tabblad Eigenschap Waarde
Gegevens Recordbron KL-qryWeergevenKlantGegevens
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
34 Frank Van Oost
We gaan veld per veld selecteren en telkens dezelfde eigenschap van elk veld aanpassen. We geven
per veld de bron van het besturingselement aan. Selecteer dus telkens een van de tekstvelden en ga
in het Eigenschappenvenster telkens de eigenschap “Besturingselementbron” aanpassen die je vind
in het tabblad Gegevens :
Veld Eigenschap Waarde
txtFirmanaam Besturingselementbron KL-Firmanaam
Veld Eigenschap Waarde
txtContactpersoon Besturingselementbron KL-Contactpersoon txtAdres KL-Adres txtPostnummer PST_Postnummer txtGemeente PST_Gemeentenaam txtTelefoon KL-Telefoon txtEmail KL-Email txtBTWNummer KL-BTW-nummer
Bewaar het formulier door op de diskette te drukken en sluit het formulier.
Dit formulier moet nu getoond worden op het formulier KL-frmOpzoekenKlanten. Open het
formulier in Ontwerpweergave.
We gaan een subformulier op het formulier aanbrengen door te klikken op
<Ontwerpen><Besturingselementen><Subformulier/Subrapport>. We klikken met de cursor rechts
van de klantenlijst en een Wizard helpt ons om het subformulier aan te maken.
In het eerste formulier kiezen we voor ‘Een bestaand formulier gebruiken’ en we kiezen voor het
formulier KL-frmWeergevenKlantGegevens en we drukken op <Volgende>.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
35 Frank Van Oost
We nemen de naam voor het subformulier die voorgesteld wordt door het systeem :
‘KL-frmWeergevenKlantGegevens’ en drukken op <Voltooien>.
Op het formulier is het subformulier nu zichtbaar. We passen,indien nodig, de grootte even aan
zodanig dat alle gegevens van het formulier zichtbaar zijn. We verwijderen het label van het
subformulier en we krijgen volgend resultaat :
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
36 Frank Van Oost
We verwijderen de kader rond het subformulier nog door het subformulier te selecteren en in het
Eigenschappenvenster volgende eigenschap aan te passen :
Tabblad Eigenschap Waarde
Opmaak Randstijl Transparant
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
37 Frank Van Oost
Telkens dat we nu een klant aanduiden moeten de gegevens in het subformulier getoond worden.
Dit kan alleen maar door telkens de query die aan het subformulier gekoppeld is opnieuw te laten
lopen. Dit doen we met een macro. We openen de macro KL-mcrKlantenBeheer in
ontwerpweergaven en maken een nieuwe submacro die we ‘KlantGegevens Tonen’ noemen. We
sluiten de macro en bewaren de wijzigingen.
Naam submacro Actie Argumenten (invullen onderaan het scherm)
KlantGegevens Tonen QueryOpnieuwUitvoeren KL-frmWeergevenKlantGegevens
Deze macro moet nu gekoppeld worden aan het object ‘LstKlanten’. Daarvoor selecteren we in het
formulier KL-frmOpzoekenKlanten het object ‘LstKlanten’. In het Eigenschappenvenster gaan we
naar het tabblad Gebeurtenis. En ‘Bij Klikken’ duiden we de nieuwe macro aan. We bewaren het
formulier. Probeer nu even of het werkt ….
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
38 Frank Van Oost
Een nieuwe klant toevoegen :
Als een klant niet in de lijst voorkomt voorzien we een knopje om een nieuwe klant toe te voegen.
Deze knop opent het eerste formulier opent, nl. KL-frmInvoerenKlanten dat we gemaakt hebben.
Aan die knop zit een macro die het formulier opent, ‘Nieuwe Klant Toevoegen’.
We plaatsen een knopje naast het tekstvak ‘txtKlantkeuze’ en verbinden er onmiddellijk de macro
aan.
Tabblad Eigenschap Waarde
Alle Naam cmdNieuw Opmaak Bijschrift Nieuw … Schikking van bijschrift Rechts Afbeelding ‘Ga naar nieuw(e)
We openen de macro ‘KL-mcrKlantenBeheer’ in Ontwerpweergave en voegen een nieuwe submacro
toe.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
39 Frank Van Oost
Naam submacro Actie Argumenten (invullen onderaan het scherm)
Nieuwe Klant Invoeren FormulierOpenen KL-frmInvoerenKlanten – venstermodus : Dialoogvenster
Deze macro verbinden we nog aan de knop ‘cmdNieuw’ in het Eigenschappenvenster. Selecteer de
knop en wijzig in het Eigenschappenvenster volgende eigenschap :
Tabblad Eigenschap Waarde
Gebeurtenis Bij klikken KL-mcrKlantenBeheer.Nieuwe Klant Invoeren
We slaan het formulier even op en proberen de nieuwe functie.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
40 Frank Van Oost
De nieuwe klant komt echter na het sluiten van het venstertje niet voor in onze lijst. Telkens we een
nieuwe klant toevoegen is het nodig om de ‘LstKlanten’ te vernieuwen. Dit doen we door een
aanpassing aan de macro die achter de knop “Opslaan” zit in het formulier KL-frmInvoerenKlanten.
Deze macro vinden we in de grote macro KL-mcrKlantenBeheer.
We openen deze macro in ontwerpweergave en passen de submacro ‘OpslaanKlantenGegevens’ als
volgt aan – na de actie ‘Sluiten’ voegen we derde regel toe aan de macro :
Naam submacro Actie Argumenten (invullen onderaan het scherm)
Opslaan Klant Gegevens QueryOpnieuwUitvoeren LstKlanten
We kunnen een regel toevoegen door onder de laatste regel te gaan staan in de rechterliniaal en te
klikken met de rechtermuisknop en daar kiezen voor <Rij invoegen>. In deze rij kunnen we dan de
nieuw lijn toevoegen.
Probeer nu nogmaals – de nieuwe klant moet automatisch in de lijst staan ….
We voorzien nu nog een ‘Sluit’-knop op het hoofdformulier en klaar is Kees.
We plaatsen een knop op het formulier onder de klantenlijst en volgen de Wizard omdat deze knop
eigenlijk een eenvoudige actie moet doen.
Kies in de wizard voor ‘Formulierbewerkingen’ en in de tweede kolom kies je voor ‘Formulier sluiten’.
In het tweede venster kiezen we de standaard en drukken op ‘Volgende’.
In het derde venster geven we de knop nog een naam ‘cmdSluiten’ en drukken op <Voltooien>.
We passen de layout van de knop nog wat : wat smaller (in de hoogte) en wat breder maken.
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
41 Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
42 Frank Van Oost