Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen...

42
[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>

Transcript of Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen...

Page 1: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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>

Page 2: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 3: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 4: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 5: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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

Page 6: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 7: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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

Page 8: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 9: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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

Page 10: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 11: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 12: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 13: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 14: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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>.

Page 15: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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 :

Page 16: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 17: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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).

Page 18: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 19: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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

Page 20: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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”.

Page 21: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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

Page 22: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 23: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 24: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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’.

Page 25: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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).

Page 26: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 27: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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).

Page 28: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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

Page 29: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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

Page 30: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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

Page 31: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 32: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 33: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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

Page 34: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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>.

Page 35: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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 :

Page 36: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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

Page 37: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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 ….

Page 38: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 39: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 40: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[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.

Page 41: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010

41 Frank Van Oost

Page 42: Een nieuwe database maken - Frank Van Oost - Eigen... · [Microsoft Access 2007 – Een eigen database maken] 20 februari 2010 3 Frank Van Oost We bekijken even de verschillende velden

[Microsoft Access 2007 – Een eigen database maken] 20 februari 2010

42 Frank Van Oost