t m e cd
OFFICE 2007 -rom
2/
3
ACCESS
Roger Frans
®
campinia media vzw
Frans, Roger – Access 2007 2/3 / Roger Frans; Geel: Campinia Media vzw, 2009; 273 p; index; 25 cm; gelijmd. ISBN: 97890356.1234.1; NUGI 854; UDC 681.3.06 Wettelijk depot België: D/2009/3941/1 Campinia Media vzw Kleinhoefstraat 4 B – 2440 – GEEL (Belgium) Tel.: (+32) 014/59 09 59 Fax: (+32) 014/59 03 44 e-Mail:
URL: <www.campiniamedia.be> Copyright 2009:
No part of this book may be reproduced in any form, by print, photoprint, microfilm or any other means without written permission of the publisher. Niets uit deze uitgave mag worden verveelvoudigd en/of openbaar gemaakt door middel van druk, fotokopie, print, microfilm of op welke andere wijze ook, zonder voorafgaande schriftelijke toestemming van de uitgever.
Inleiding In het boek Access 2007 1/3 zijn de basisbegrippen van Access aan bod gekomen: tabellen, eenvoudige query‟s, formulieren en rapporten. We hebben ook relaties tussen tabellen aangebracht. Indien je een toepassing wenst te maken in Access, is het belangrijk dat je de juiste gegevens in de juiste tabellen creëert. In dit tweede deel, Access 2007 2/3, leren we in eerste instantie hoe je een toepassing ontwikkelt. We vertrekken van een concreet probleem, normaliseren de gegevens en stellen de gegevensstructuur op. We importeren gegevens uit meerdere pakketten. We passen de gegevens aan m.b.v. bijwerkquery‟s in Access. We leren nog verschillende andere types van query‟s kennen: verwijderquery‟s, tabelmaakquery‟s, kruistabelquery‟s, … Een eenvoudige toepassing kan je automatiseren m.b.v. macro‟s. We illustreren dit met voorbeelden waarin zowel eenvoudige macro‟s als conditionele macro‟s en macrogroepen aan bod komen. We geven in dit boek ook voorbeelden van meer complexe formulieren en rapporten. Bij het ontwerp hiervan zal je merken dat macro‟s dikwijls ontoereikend zijn. Indien je een toepassing wil maken, moet je leren programmeren in Visual Basic for Applications (VBA) in Access. We besteden daarom ook ruime aandacht aan het leren van de programmeertaal VBA aan de hand van tal van concrete voorbeelden. Access 2007 2/3 is een doe-cursus. Dit betekent dat je de cursus doorneemt terwijl je voor de computer zit. Je neemt per hoofdstuk de cursustekst door. Daarna maak je de oefeningen. Bij de cursus hoort een cd-rom. Op deze cd-rom staan bestanden die je nodig hebt bij het doornemen van het boek. Je vindt er ook een bestand Lees mij.doc. Hierin staat uitgelegd hoe je de bestanden gebruikt. Je kunt dit bestand lezen door op de naam van het bestand te dubbelklikken in Verkenner of je kunt het openen in een tekstverwerkingspakket zoals Word. Tot slot van deze inleiding dank ik éénieder die geholpen heeft bij het tot stand komen van deze cursus. Dank je wel. Ik hoop dat dit voor jou een nuttige en aangename cursus is, een cursus die je inzicht geeft in het maken van toepassingen in Access. Opmerkingen die een latere uitgave kunnen verbeteren zijn welkom. Roger Frans januari 2007
Inleiding - 1
Afspraken We gaan van start... In de volgende paragrafen en hoofdstukken leren we aan de hand van concrete voorbeelden Access gebruiken. We veronderstellen dat je de voorbeelden op de computer uitvoert. De acties die je als gebruiker stapsgewijs moet volgen, worden als volgt genoteerd. Je geeft je wachtwoord in. Dit wachtwoord wordt niet op het scherm getoond. Je krijgt enkel sterretjes (*) te zien. Je klikt op de knop OK om te bevestigen. Het pijltje geeft aan dat er iets van je verwacht wordt. Na het pijltje wordt omschreven wat je moet doen. Nieuwe begrippen worden vet afgedrukt. Namen van menukeuzen, knoppen, e.d. worden schuin afgedrukt. Indien je tekst letterlijk moet ingeven, wordt dit in een ander lettertype weergegeven: Dit moet je letterlijk intypen. De bijgevoegde cd-rom bevat een map Ac2007_2_Vbn. De map bevat bestanden die je nodig hebt om de voorbeelden in deze cursus te maken. Je kopieert de map best naar je harde schijf. Je maakt ook een map Ac2007_2_Oef aan waarin je de voorbeelden plaatst die je in deze cursus uitwerkt. Je vindt in de map Ac2007_2_Oef op de cd-rom de uitwerkingen van de voorbeelden en oefeningen op het einde van elk hoofdstuk. Je hebt de map normaal niet nodig… Het is de bedoeling dat je zelf de voorbeelden en oefeningen maakt. Op de cd-rom staan in de map Ac2007 nog drie bijkomende hoofdstukken, één over macro‟s in rapporten, één over arrays in Visual Basic for Applications en één over naamgeving van objecten. Er wordt in de tekst verwezen naar deze hoofdstukken. Je hoeft de hoofdstukken niet door te nemen om de cursus verder te volgen. Het is een uitbreiding op het cursusmateriaal.
2 – Access 2007 2/3
Inhoudsopgave INLEIDING .......................................................................................................... 1 AFSPRAKEN ...................................................................................................... 2 INHOUDSOPGAVE ............................................................................................. 3 1 NORMALISEREN VAN GEGEVENS ........................................................ 9 1.1 Inleiding .............................................................................................................................. 9 1.2 Een toepassing: Kassa ....................................................................................................... 9 1.2.1 Inleiding .......................................................................................................................... 9 1.2.2 Probleemomschrijving ................................................................................................... 10 1.2.3 Concretisering ............................................................................................................... 10 1.2.4 Vragen naar voorbeelden ............................................................................................... 10 1.3 Een gegevensmodel .......................................................................................................... 11 1.3.1 Een informatiebehoefte ................................................................................................. 11 1.3.2 Waarom niet in één tabel? ............................................................................................. 11 1.3.3 Gegevensanalyse ........................................................................................................... 11 1.4 Normaliseren .................................................................................................................... 12 1.5 De eerste normaalvorm ................................................................................................... 12 1.5.1 De eerste normaalvorm.................................................................................................. 12 1.5.2 Inventariseer alle elementaire gegevens (stap 1.1) ........................................................ 12 1.5.3 Elementaire gegevens .................................................................................................... 14 1.5.4 Verwijder alle procesgegevens (stap 1.2) ...................................................................... 14 1.5.5 Een primaire sleutel kiezen (stap 1.4)............................................................................ 15 1.5.6 Deelverzamelingen opzoeken die meermaals voorkomen (stap 1.5) ............................. 16 1.5.7 Een nieuwe groep maken (stap 1.6) ............................................................................... 16 1.5.8 De zich herhalende deelverzameling verwijderen (Stap 1.7) ........................................ 17 1.5.9 De stappen 1.3 tot 1.8 zijn herhalend ............................................................................ 17 1.6 De tweede normaalvorm.................................................................................................. 18 1.6.1 De tweede normaalvorm................................................................................................ 18 1.6.2 Het begrip functionele afhankelijkheid ......................................................................... 18 1.6.3 Functionele afhankelijkheden in ons voorbeeld ............................................................ 19 1.7 De derde normaalvorm.................................................................................................... 20 1.8 Andere normaalvormen .................................................................................................. 21 1.9 Koppeling tussen groepen ............................................................................................... 21 1.10 Aanmaken van de database............................................................................................. 22 1.11 Aanmaken van de tabellen .............................................................................................. 22 1.11.1 Creëren van een tabel .................................................................................................... 22 1.11.2 Importeren van gegevens uit Excel ............................................................................... 23 1.11.3 Gegevens uit Word gebruiken ....................................................................................... 27 1.11.4 Gegevens uit een tekstbestand (scheidingstekens) ........................................................ 29 1.11.5 Gegevens uit een tekstbestand (vaste breedte) .............................................................. 33 1.11.6 Gegevens importeren uit een ander Access-bestand ...................................................... 35 1.12 Aanmaken van de relaties ............................................................................................... 36 1.13 Oefeningen ........................................................................................................................ 39
2
GEAVANCEERDE QUERY’S ................................................................. 41
2.1 Inleiding ............................................................................................................................ 41 2.2 Beveiligingswaarschuwing .............................................................................................. 41 2.3 Eenvoudige selectiequery’s ............................................................................................. 43 2.4 Joins .................................................................................................................................. 45 2.4.1 Een inner join ................................................................................................................ 45 2.4.2 Outer join....................................................................................................................... 46 2.5 Statistische selectiequery’s .............................................................................................. 48 2.5.1 Berekenen van totalen ................................................................................................... 48 2.5.2 Mogelijke functies ......................................................................................................... 50 2.6 Actiequery’s...................................................................................................................... 50 2.7 Een tabel bijwerken ......................................................................................................... 51 2.7.1 Gegevens bijwerken op basis van een bepaalde waarde ................................................ 51 2.7.2 Gegevens bijwerken op basis van een formule .............................................................. 52 2.8 Tabelmaakquery’s ........................................................................................................... 53 2.9 Een verwijderquery ......................................................................................................... 55
Inhoudsopgave - 3
2.9.1 Conflict oplossen ........................................................................................................... 55 2.9.2 Relatie aanpassen .......................................................................................................... 58 2.10 Een toevoegquery ............................................................................................................. 58 2.11 Kruistabelquery’s ............................................................................................................ 59 2.11.1 Een kruistabel maken vanuit het queryontwerpvenster ................................................. 59 2.11.2 Een kruistabel maken met een wizard ........................................................................... 61 2.12 Wizard Dubbele records.................................................................................................. 65 2.12.1 Aanmaken Wizard Dubbele records .............................................................................. 65 2.12.2 Ontwerpweergave .......................................................................................................... 67 2.13 Samenvoegquery’s (Union query’s) ............................................................................... 68 2.13.1 Een samenvoegquery maken met de hulp van de grafische omgeving .......................... 68 2.13.2 Een samenvoegquery rechtstreeks intypen .................................................................... 69 2.14 Pass Through-query ........................................................................................................ 69 2.15 Definitiequery ................................................................................................................... 69 2.16 Eigenschappen van een query ......................................................................................... 70 2.16.1 Unieke waarden en unieke records ................................................................................ 70 2.16.2 Unieke records bij een verwijderquery .......................................................................... 71 2.17 Oefeningen ........................................................................................................................ 72
3
MACRO’S ............................................................................................... 75
3.1 Inleiding ............................................................................................................................ 75 3.2 Formulierweergaven ........................................................................................................ 75 3.3 Het hoofdmenu, een onafhankelijk formulier ............................................................... 76 3.3.1 Instellingen op het niveau van het formulier ................................................................. 76 3.3.2 Een opdrachtknop toevoegen m.b.v. een wizard ........................................................... 77 3.3.3 Een ingesloten macro .................................................................................................... 79 3.3.4 Een opdrachtknop toevoegen zonder wizard ................................................................. 80 3.3.5 Een afbeelding invoegen ............................................................................................... 81 3.4 Een macro maken ............................................................................................................ 82 3.4.1 Het macrovenster ........................................................................................................... 82 3.4.2 De actie FormulierOpenen (OpenForm) ........................................................................ 83 3.4.3 De actie OpdrachtUitvoeren (RunCommand) ............................................................... 84 3.4.4 Wat doet de macro? ....................................................................................................... 85 3.4.5 Macro bewaren .............................................................................................................. 85 3.5 Macro uitvoeren ............................................................................................................... 85 3.5.1 Macro uitvoeren vanuit het macroscherm ..................................................................... 85 3.5.2 Macro uitvoeren vanuit het lint ..................................................................................... 86 3.5.3 Macro starten vanuit een formulier ............................................................................... 86 3.6 Macrogroepen .................................................................................................................. 87 3.6.1 Macrogroep ................................................................................................................... 87 3.6.2 Uitvoeren van een macro in een macrogroep ................................................................ 89 3.7 Herschikken acties, acties verwijderen, … .................................................................... 89 3.8 Een gebruiker selecteren uit een keuzelijst .................................................................... 89 3.8.1 Aanmaken van de keuzelijst .......................................................................................... 89 3.8.2 Aanmaken van de macro ............................................................................................... 92 3.8.3 Synchroniseren van de keuzelijst met de detailsectie .................................................... 93 3.9 Synchroniseren van twee keuzelijsten ............................................................................ 94 3.10 Stap voor stap uitvoeren van een macro ........................................................................ 95 3.11 Oefeningen ........................................................................................................................ 96
4
MACRO’S / 2 .......................................................................................... 99
4.1 Inleiding ............................................................................................................................ 99 4.2 Een hoofd- en subformulier volledig zelf ontwerpen .................................................... 99 4.2.1 Aanmaken van het hoofdformulier ................................................................................ 99 4.2.2 Aanmaken van het subformulier .................................................................................. 104 4.2.3 Subformulier invoegen in het hoofdformulier ............................................................. 106 4.3 Een groepsvak ................................................................................................................ 106 4.4 Een waarde toekennen aan een veld, eigenschap, … .................................................. 109 4.4.1 Een waarde toekennen aan een besturingselement ...................................................... 109 4.4.2 Een waarde toekennen aan een veld ............................................................................ 110 4.4.3 Een waarde toekennen aan een eigenschap ................................................................. 110 4.5 Voorwaarden in een macro ........................................................................................... 112 4.6 De macro AutoExec ....................................................................................................... 114 4.7 Opties voor Access ......................................................................................................... 114 4.8 Macro’s in rapporten..................................................................................................... 116
4 – Access 2007 2/3
4.9
Oefeningen ...................................................................................................................... 116
5
SCHAKELBORDBEHEER… EN KOPPELINGSBEHEER ................... 119
5.1 Inleiding .......................................................................................................................... 119 5.2 Schakelbordbeheer ........................................................................................................ 119 5.2.1 Aanmaken van een schakelbord .................................................................................. 119 5.2.2 Uittesten van het schakelbord ...................................................................................... 120 5.3 Bewerken van een schakelbord ..................................................................................... 121 5.4 Een submenu .................................................................................................................. 121 5.5 Koppelen van tabellen ................................................................................................... 123 5.5.1 Tabellen scheiden van de andere objecten................................................................... 123 5.5.2 Wizard Database Splitsen ............................................................................................ 123 5.5.3 Manueel splitsen van een database .............................................................................. 124 5.5.4 Koppelen tabellen ........................................................................................................ 125 5.5.5 De koppelingen vernieuwen ........................................................................................ 126 5.6 Oefeningen ...................................................................................................................... 127
6
DE SYNTHESEMETHODE ................................................................... 129
6.1 Inleiding .......................................................................................................................... 129 6.2 Het voorbeeld Taken ..................................................................................................... 129 6.2.1 Probleemomschrijving ................................................................................................. 129 6.2.2 Concretisering ............................................................................................................. 129 6.3 Het gegevensstructuurdiagram..................................................................................... 130 6.4 De database Taken ......................................................................................................... 131 6.4.1 De database Taken.accdb ............................................................................................ 131 6.4.2 De relaties aanmaken ................................................................................................... 132 6.5 Veldeigenschappen ......................................................................................................... 133 6.5.1 Het invoermasker Wachtwoord ................................................................................... 133 6.5.2 Bijschrift ...................................................................................................................... 133 6.5.3 Vereist en Lengte nul toestaan..................................................................................... 134 6.5.4 Geïndexeerd................................................................................................................. 134 6.6 Programmeren in Visual Basic for Applications ......................................................... 134 6.7 Oefeningen ...................................................................................................................... 134
7
INLEIDING TOT VISUAL BASIC FOR APPLICATIONS ...................... 135
7.1 Inleiding .......................................................................................................................... 135 7.2 Een macro converteren naar Visual Basic ................................................................... 135 7.3 Een voorbeeld van een subprocedure ........................................................................... 137 7.3.1 Probleemstelling .......................................................................................................... 137 7.3.2 Ontwerp van het scherm .............................................................................................. 137 7.3.3 Gebeurtenisprocedure .................................................................................................. 138 7.3.4 De programmacode ..................................................................................................... 139 7.3.5 Compileren .................................................................................................................. 141 7.3.6 Uittesten ...................................................................................................................... 141 7.4 Commentaar ................................................................................................................... 141 7.5 Variabelen ...................................................................................................................... 142 7.6 Gegevenstypen in VBA .................................................................................................. 142 7.7 Declareren van variabelen ............................................................................................ 144 7.7.1 De instructie Dim ........................................................................................................ 144 7.7.2 Persoonlijke variabelen op moduleniveau ................................................................... 144 7.7.3 Declareren is niet verplicht, tenzij... ............................................................................ 145 7.7.4 Statische variabelen ..................................................................................................... 146 7.7.5 Besturingselementen.................................................................................................... 146 7.8 Het statement Let ........................................................................................................... 146 7.9 Operatoren ..................................................................................................................... 146 7.9.1 Rekenkundige operatoren ............................................................................................ 146 7.9.2 Operatoren voor tekenreeksen ..................................................................................... 147 7.9.3 Vergelijkingsoperatoren .............................................................................................. 147 7.9.4 Logische operatoren .................................................................................................... 147 7.10 Help ................................................................................................................................. 147 7.11 Ingebouwde functies ...................................................................................................... 148 7.11.1 Left .............................................................................................................................. 148 7.11.2 Right ............................................................................................................................ 148 7.11.3 Mid .............................................................................................................................. 148 7.11.4 Len ............................................................................................................................... 148 7.11.5 UCase .......................................................................................................................... 148
Inhoudsopgave - 5
7.11.6 LCase ........................................................................................................................... 149 7.11.7 Conversiefuncties ........................................................................................................ 149 7.12 Het venster Direct .......................................................................................................... 149 7.12.1 De waarde van een expressie berekenen ..................................................................... 149 7.12.2 Variabelen een waarde geven ...................................................................................... 149 7.13 Een functieprocedure .................................................................................................... 150 7.13.1 Sub- en functieprocedures ........................................................................................... 150 7.13.2 Probleemstelling .......................................................................................................... 150 7.13.3 Ontwerp van het scherm .............................................................................................. 150 7.13.4 Oproepen van de functie .............................................................................................. 151 7.13.5 Procedure invoegen ..................................................................................................... 151 7.13.6 Opmerking ................................................................................................................... 152 7.14 Algemene modules ......................................................................................................... 152 7.14.1 Formulier- en rapportmodules ..................................................................................... 152 7.14.2 Standaardmodule ......................................................................................................... 153 7.14.3 De functie Vervaldatum() in een algemene module plaatsen ...................................... 154 7.15 De VBE-omgeving .......................................................................................................... 155 7.15.1 Het projectvenster ........................................................................................................ 155 7.15.2 De toetsencombinatie Alt+F11 .................................................................................... 156 7.15.3 Vergroten, verkleinen, verplaatsen, enz. ..................................................................... 156 7.15.4 Ctrl+<spatiebalk> ........................................................................................................ 156 7.15.5 Venster splitsen ........................................................................................................... 156 7.15.6 Procedureweergave...................................................................................................... 157 7.15.7 Toetsen in het modulevenster en bij uitvoering ........................................................... 157 7.16 Het objectenoverzicht .................................................................................................... 158 7.16.1 Collecties en objecten .................................................................................................. 158 7.16.2 Verwijzingen ............................................................................................................... 158 7.16.3 Objectenoverzicht ........................................................................................................ 159 7.16.4 Zoeken ......................................................................................................................... 159 7.17 Afdrukken van een module ........................................................................................... 160 7.18 Constanten ...................................................................................................................... 160 7.18.1 Symbolische constanten .............................................................................................. 161 7.18.2 Ingebouwde constanten ............................................................................................... 161 7.19 Oefeningen ...................................................................................................................... 162
8
CONTROLESTRUCTUREN ................................................................. 165
8.1 Inleiding .......................................................................................................................... 165 8.2 De selectie, een inleidend voorbeeld ............................................................................. 165 8.2.1 Probleemstelling .......................................................................................................... 165 8.2.2 Programmacode ........................................................................................................... 166 8.3 Het statement MsgBox en de functie MsgBox()........................................................... 167 8.4 Het If-statement ............................................................................................................. 169 8.4.1 Syntaxis ....................................................................................................................... 169 8.4.2 Voorbeeld 1 ................................................................................................................. 170 8.4.3 Voorbeeld 2 (Geneste If-structuren) ............................................................................ 170 8.5 De meervoudige selectie ................................................................................................. 171 8.5.1 Probleemstelling .......................................................................................................... 171 8.5.2 Uitwerking ................................................................................................................... 171 8.6 Het Select Case-statement ............................................................................................. 172 8.6.1 Syntaxis ....................................................................................................................... 172 8.6.2 Het voorbeeld anders uitgewerkt ................................................................................. 173 8.6.3 Nog een voorbeeld....................................................................................................... 173 8.7 De functie InputBox ....................................................................................................... 174 8.8 De iteratie met teller ...................................................................................................... 174 8.8.1 Probleemstelling .......................................................................................................... 174 8.8.2 Uitwerking ................................................................................................................... 174 8.9 For/Next-statement ........................................................................................................ 175 8.10 De functies Asc() en Chr() ............................................................................................. 176 8.10.1 Van ASCII tot ANSI naar UNICODE ......................................................................... 176 8.10.2 De functie Asc() .......................................................................................................... 177 8.10.3 De functie Chr() ........................................................................................................... 177 8.11 De (gewone) iteratie ....................................................................................................... 177 8.11.1 Probleemstelling .......................................................................................................... 177 8.11.2 Uitwerking ................................................................................................................... 178
6 – Access 2007 2/3
8.12 Do While/Loop en andere lussen .................................................................................. 178 8.13 Enkele datumfuncties .................................................................................................... 179 8.13.1 De functie Weekday().................................................................................................. 179 8.13.2 De functie CDate () ..................................................................................................... 180 8.13.3 De functie IsDate() ...................................................................................................... 180 8.14 De functie Format .......................................................................................................... 180 8.14.1 Syntaxis ....................................................................................................................... 180 8.14.2 Weergave van getallen ................................................................................................ 181 8.14.3 Weergave van tijd en datum ........................................................................................ 183 8.14.4 Opletten met datums in programmacode ..................................................................... 185 8.14.5 Tekenreeksen (strings)................................................................................................. 185 8.15 Arrays ............................................................................................................................. 186 8.16 Oefeningen ...................................................................................................................... 186
9
MEER OVER PROCEDURES EN DEBUGGEN ................................... 189
9.1 Inleiding .......................................................................................................................... 189 9.2 Modules en procedures .................................................................................................. 189 9.2.1 Modules ....................................................................................................................... 189 9.2.2 Procedures ................................................................................................................... 189 9.3 Subprocedures ................................................................................................................ 189 9.4 Functieprocedures ......................................................................................................... 191 9.5 ByVal of ByRef ............................................................................................................... 192 9.6 Optionele parameters .................................................................................................... 193 9.7 Een array van parameters ............................................................................................. 194 9.8 Het statement For / Each ............................................................................................... 195 9.9 Foutafhandelingsroutines .............................................................................................. 196 9.9.1 Wat is een foutafhandelingsroutine? ........................................................................... 196 9.9.2 Het begrip faculteit ...................................................................................................... 196 9.9.3 Programmacode ........................................................................................................... 196 9.10 On Error GoTo .............................................................................................................. 198 9.10.1 Trappable errors .......................................................................................................... 198 9.10.2 Het statement On Error GoTo ..................................................................................... 198 9.10.3 De foutafhandelingsroutine ......................................................................................... 199 9.10.4 Het statement Resume ................................................................................................. 200 9.10.5 Het object Err .............................................................................................................. 200 9.11 Een bug? ......................................................................................................................... 201 9.12 Een onderbrekingspunt, Stap en Stap over ................................................................. 202 9.12.1 Een onderbrekingspunt ................................................................................................ 202 9.12.2 De waarde van een variabele ....................................................................................... 202 9.12.3 Het venster Lokale variabelen ..................................................................................... 203 9.12.4 Het venster Direct ........................................................................................................ 203 9.12.5 Stap en Stap over ......................................................................................................... 203 9.12.6 Doorgaan of stoppen.................................................................................................... 204 9.12.7 Verwijderen van een breakpoint .................................................................................. 204 9.13 Een controle (watch) ...................................................................................................... 204 9.13.1 Een controle toevoegen ............................................................................................... 204 9.13.2 Een controle bewerken ................................................................................................ 205 9.14 Snelcontrole .................................................................................................................... 205 9.15 Opgeroepen procedures................................................................................................. 206 9.16 Oefeningen ...................................................................................................................... 206
10
VBA IN FORMULIEREN ....................................................................... 211
10.1 Inleiding .......................................................................................................................... 211 10.2 Het formulier frmMedewerker ..................................................................................... 211 10.2.1 Probleemstelling .......................................................................................................... 211 10.2.2 Macro-acties in VBA ................................................................................................... 211 10.2.3 Waarde van keuzelijst bij gebruik van de navigatieknoppen ....................................... 212 10.2.4 Bij het sluiten van het formulier… .............................................................................. 213 10.2.5 Bevestigen voor verwijderen ....................................................................................... 213 10.3 Gebeurtenissen bij een formulier ................................................................................. 213 10.3.1 Gebeurtenissen bij het openen van een formulier ........................................................ 213 10.3.2 Gebeurtenissen bij het sluiten van een formulier ......................................................... 214 10.4 De collectie Forms .......................................................................................................... 214 10.4.1 Definitie en naamgeving.............................................................................................. 214 10.4.2 Werken met collecties ................................................................................................. 215
Inhoudsopgave - 7
10.5 Het formulier frmTaak.................................................................................................. 216 10.5.1 Probleemstelling .......................................................................................................... 216 10.5.2 Aanmaken van het formulier ....................................................................................... 216 10.5.3 Requery ....................................................................................................................... 218 10.5.4 Instellen eigenschappen van enkele besturingselementen ........................................... 219 10.5.5 Controle van de gegevens in het hoofdformulier ......................................................... 219 10.5.6 Controle voor het bijwerken van een besturingselement ............................................. 221 10.5.7 Het subformulier sfrmToewijzingen............................................................................ 223 10.5.8 Het subformulier sfrmActiviteiten ............................................................................... 223 10.5.9 Keuzelijsten om een taak te selecteren ........................................................................ 224 10.6 Een tip bij het editeren .................................................................................................. 225 10.7 Oefeningen ...................................................................................................................... 225
11
VBA IN FORMULIEREN / 2 .................................................................. 229
11.1 Inleiding .......................................................................................................................... 229 11.2 Het formulier frmAanmelden ....................................................................................... 229 11.2.1 Probleemstelling .......................................................................................................... 229 11.2.2 Aanmaken van het formulier ....................................................................................... 229 11.2.3 De knop Annuleren...................................................................................................... 230 11.2.4 De knop OK................................................................................................................. 230 11.2.5 Modulevariabele .......................................................................................................... 231 11.2.6 Bijkomend onzichtbaar tekstvak ................................................................................. 232 11.2.7 Het formulier als startscherm instellen ........................................................................ 232 11.3 Het formulier frmTakenOverzicht ............................................................................... 233 11.3.1 Probleemstelling .......................................................................................................... 233 11.3.2 Ontwerp van de basisquery ......................................................................................... 233 11.3.3 Ontwerp van het formulier .......................................................................................... 234 11.3.4 Recordbron dynamisch aanpassen ............................................................................... 238 11.3.5 Bij het sluiten............................................................................................................... 239 11.3.6 De puntjesknop cmdDetail .......................................................................................... 240 11.3.7 Aanpassen van het formulier frmTaak ........................................................................ 240 11.4 Het formulier frmHoofdmenu ...................................................................................... 241 11.5 Een medewerker toevoegen vanuit het formulier frmTaak ....................................... 241 11.5.1 Probleemstelling .......................................................................................................... 241 11.5.2 Ontwerp van het formulier .......................................................................................... 241 11.5.3 De keuzelijst bijwerken ............................................................................................... 242 11.6 De gebeurtenis Bij niet in lijst ....................................................................................... 242 11.7 Een dialoogvenster ......................................................................................................... 243 11.7.1 Probleemstelling .......................................................................................................... 243 11.7.2 Ontwerp van het formulier frmActiviteit ..................................................................... 243 11.7.3 Programmacode in frmActiviteit ................................................................................. 244 11.7.4 Openen als dialoogvenster ........................................................................................... 244 11.7.5 Pop-up en Modaal ....................................................................................................... 245 11.8 Knopinfo (ControlTipText) ........................................................................................... 245 11.9 Oefeningen ...................................................................................................................... 245
12
VBA IN RAPPORTEN .......................................................................... 249
12.1 Inleiding .......................................................................................................................... 249 12.2 Het rapport rptTakenOverzicht ................................................................................... 249 12.2.1 Probleemstelling .......................................................................................................... 249 12.2.2 Ontwerp van het rapport .............................................................................................. 250 12.2.3 Formulier met criteria .................................................................................................. 252 12.2.4 Bij het openen van het rapport ..................................................................................... 253 12.2.5 Formulier geopend? ..................................................................................................... 256 12.2.6 Het rapport openen vanuit het menu ............................................................................ 257 12.3 Het rapport rptTaken .................................................................................................... 258 12.3.1 Probleemstelling .......................................................................................................... 258 12.3.2 Ontwerp van de basisquery ......................................................................................... 258 12.3.3 Ontwerp van het rapport .............................................................................................. 260 12.3.4 Formulier met criteria .................................................................................................. 262 12.3.5 Het rapport oproepen vanuit frmTaak ......................................................................... 263 12.4 Bij Geen gegevens .......................................................................................................... 264 12.5 De methoden Maximize en Restore .............................................................................. 266 12.6 Oefeningen ...................................................................................................................... 266
TREFWOORDENREGISTER .......................................................................... 269
8 – Access 2007 2/3