[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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 KL-KlantID KL-FirmaNaam KL-Contactpersoon KL-Adres KL-GemeenteNummer KL-Telefoon KL-Email KL-BTW-nummer
Gegevenstype Autonummering Tekst Tekst Tekst Numeriek Tekst Hyperlink Tekst
Beschrijving
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>
1
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 Via 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 . In het volgende scherm duiden we de tabel tblPostcodes aan en drukken op .
In het volgende scherm klik je gewoon op <Sluiten>. Het is niet de bedoeling dat we deze importactie nog herhalen.
Daardoor wordt te tabel integraal geïmporteerd in onze nieuwe database.
2
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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>. Daarna klikken we op het icoontje 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.
3
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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.
4
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 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 <Eigenschappenvenster>.
We selecteren het tekstvak en kiezen in het Eigenschappenvenster het tabblad . Daar vullen we volgende eigenschappen in :
Eigenschap Naam
5
Frank Van Oost
Waarde txtFirmaNaam
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 Daarna selecteren we het label en vullen volgende eigenschappen in : Eigenschap Naam Bijschrift
Waarde lblFirmaNaam 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.
6
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
Objectnummer 2
Eigenschap Naam Bijschrift
Waarde lblContactpersoon Contactpersoon:
Objectnummer 3
Eigenschap Naam
Waarde txtContactpersoon
Objectnummer 4
Eigenschap Naam Bijschrift Naam Naam Bijschrift Naam Naam Bijschrift Naam Naam Bijschrift Naam Naam Bijschrift Naam
Waarde lblAdres Adres: txtAdres lblPostnummer Postnummer: txtPostnummer lblGemeente Gemeente: txtGemeente lblTelefoon Telefoon txtTelefoon lblEmail Email txtEmail
5 6 7 8 9 10 11 12 13 7
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 14
Naam Bijschrift Naam
15
lblBTWnummer BTW-nummer: 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.
8
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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
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 Opmaak
9
Eigenschap Bijschrift Autocentreren Frank Van Oost
Waarde Invoeren klanten … Ja
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 Randstijl Recordkiezer Navigatieknoppen Schuifbalken Systeemknoppen
Dialoog Nee Nee Geen 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 .
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. 10
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 <Maken> 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 . 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 . Daardoor komt de volgende tekst in het bovenste kader te staan. Hiermee is het criterium voor de query gemaakt.
11
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 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.
12
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 Op het formulier plaatsen we nu een ‘keuzelijst met invoervak’ die we vinden onder het tabblad . 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 :
We kiezen voor ‘Query’s’ en kiezen de enige query die er is . 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.
13
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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 .
14
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 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 :
15
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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 Label ‘Gemeente’ : Alle
Eigenschap
Waarde
Naam
lblGemeente
Naam Kolombreedten
LstGemeente 0 cm;4,76 cm
Keuzelijst ‘Gemeente’
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. 16
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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 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).
17
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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> en in het venster dat getoond wordt op <Sluiten> te drukken. We kiezen op de liniaal bij Querytype voor 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 . 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 om af te sluiten.
18
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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] Contactpersoon: [Forms]![KL-frmInvoerenKlanten]![txtContactpersoon] Adres: [Forms]![KL-frmInvoerenKlanten]![txtAdres] Gemeente: [Forms]![KL-frmInvoerenKlanten]![LstGemeente] Telefoon: [Forms]![KL-frmInvoerenKlanten]![txt Telefoon]
KL-Firmanaam KL-Contactpersoon KL- Adres KL-GemeenteNummer KL- Telefoon
19
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 Email: [Forms]![KL-frmInvoerenKlanten]![txtEmail] BTW-nummer: [Forms]![KL-frmInvoerenKlanten]![txtBTWnummer]
KL-Email KL-BTW-nummer
We bewaren de query als : KL-qryOpslaanKlantenGegevens. Deze query moet nu nog verbonden worden aan een knop . 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 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 : ‘KLqryOpslaanKlantenGegevens’.
We bewaren de hoofdquery als “KL-mcrKlantenBeheer”.
20
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
We kiezen voor het tabblad en in de groep kiezen we voor en klikken op het formulier. We sluiten de wizard en gaan nu de eigenschappen van de knop aanpassen in het ‘Eigenschappenvenster’.
Tabblad Alle
Eigenschap Naam Bijschrift Schikking van bijschrift … Afbeelding
Waarde cmdOpslaan Opslaan Rechts Opslaan (via de wizard het icoontje opzoeken
Gebeurtenis
Bij klikken
KL-mcrKlantenbeheer-OpslaanKlantenGegevens
21
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 Daardoor wordt de submacro ‘OpslaanKlantenGegevens’ uitgevoerd als de gebruiker op de knop 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.
22
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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> 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 Naam Tekengrootte
Waarde txtKlantKeuze 10
We plaatsen het label boven op het tekstvak.
23
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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>. 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’.
24
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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 (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 . In het volgende venster kiezen we voor en kiezen de eerste query KL-qryOpmakenKlantenlijst (de query die we net gemaakt hebben). 25
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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.
26
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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).
27
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
Als label gaan we bij de lijst ’ Kies één van de klanten :’ plaatsen.
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
28
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 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 Alle Naam
Waarde LstKlanten
Selecteer het label van de klantenlijst: Tabblad Eigenschap Alle Naam
Waarde 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 Samenstellen Klantenlijst
29
Frank Van Oost
Actie Argumenten(invullen onderaan het scherm) QueryOpnieuwUitvoeren LstKlanten
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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 Gebeurtenis
30
Frank Van Oost
Eigenschap Na bijwerken
Waarde KL-mcrKlantenBeheer.Samenstellen Klanten
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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> 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 KLqryWeergevenKlantGegevens.
31
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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 . Kies de volgende opties volgens onderstaande figuur met als resultaat een selectiecriterium voor de KlantID.
32
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 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 “KLfrmWeergevenKlantGegevens”. 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 Gegevens
33
Eigenschap Recordbron
Frank Van Oost
Waarde KL-qryWeergevenKlantGegevens
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 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 txtFirmanaam
Eigenschap Besturingselementbron
Waarde KL-Firmanaam
Veld txtContactpersoon txtAdres txtPostnummer txtGemeente txtTelefoon txtEmail txtBTWNummer
Eigenschap Besturingselementbron
Waarde KL-Contactpersoon KL-Adres PST_Postnummer PST_Gemeentenaam KL-Telefoon KL-Email 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 <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 .
34
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
We nemen de naam voor het subformulier die voorgesteld wordt door het systeem : ‘KL-frmWeergevenKlantGegevens’ en drukken op .
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 :
35
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
We verwijderen de kader rond het subformulier nog door het subformulier te selecteren en in het Eigenschappenvenster volgende eigenschap aan te passen : Tabblad Opmaak
36
Eigenschap Randstijl
Frank Van Oost
Waarde Transparant
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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 KlantGegevens Tonen
Actie Argumenten (invullen onderaan het scherm) 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 ….
37
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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 Alle Opmaak
Eigenschap Naam Bijschrift Schikking van bijschrift Afbeelding
Waarde cmdNieuw Nieuw … Rechts ‘Ga naar nieuw(e)
We openen de macro ‘KL-mcrKlantenBeheer’ in Ontwerpweergave en voegen een nieuwe submacro toe.
38
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 Naam submacro Nieuwe Klant Invoeren
Actie FormulierOpenen
Argumenten (invullen onderaan het scherm) 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 Gebeurtenis
Eigenschap Bij klikken
Waarde KL-mcrKlantenBeheer.Nieuwe Klant Invoeren
We slaan het formulier even op en proberen de nieuwe functie.
39
Frank Van Oost
[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010
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 Opslaan Klant Gegevens
Actie Argumenten (invullen onderaan het scherm) 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 . 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 . We passen de layout van de knop nog wat : wat smaller (in de hoogte) en wat breder maken.
40
Frank Van Oost
[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