DB&SQL8- 1 VBA Visual Basics for Applications: eigen Office versie vanaf Office2000 gelijk voor alle applicaties Programmeren onder meer nodig voor Het.

Slides:



Advertisements
Verwante presentaties
Help, ik moet naar Office 2007!?. Wat horen wij bij klanten Training “New UI will cause too big of a loss in productivity” Training “New UI will cause.
Advertisements

KINN 2010 •OOP •O Object •O Georiënteerd •P Programmeren.
Zelf objecten maken in VBA Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
HM-ES-th1 Les 9 Hardware/Software Codesign with SystemC.
Kennissessie instrumentatie-packages dbms_application_info logger Rob van Wijk•26 mei 2011.
SAP ABAP A short introduction. SAP ABAP • Selectie: – IF …… ENDIF. – IF …. ELSE … ENDIF. – IF …. ELSEIF …. ELSEIF …. ELSE …. ENDIF. – IF condition_1.
PHP & MYSQL LES 03 PHP & DATABASES. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
Access en MySql Ynte Jan Kuindersma, BIRD Automation Nationale Officedag 2009 EDE, 14 Oktober 2009.
Ronde (Sport & Spel) Quiz Night !
Inleiding Software Engineering Universiteit AntwerpenBetrouwbaarheid 2.1 Ontdek de 7 verschillen.
Programmeren in Java met BlueJ
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
VBA en VBS Een introductie.
Voor VBA programmeurs Maurice de Beijer.  Maurice de Beijer.  The Problem Solver.  Visual Basic MVP.  Blog: theproblemsolver/default.aspxhttp://msmvps.com/blogs/
AAHA (voor intern gebruik)
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
EIE/06/075/SI From January 2007 to March 2009 Nationale Workshop Energiebesparing Introductie van E-BAG.
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
Modula vs Java MODULE Show; CONST PI = ; TYPE PointRc = RECORD x,y : INTEGER; speed : REAL; angle : REAL; END; VAR a,b : PointRc; BEGIN.
Computervaardigheden Hoofdstuk 4 — Scripting (Let op: dit is enkel voor studenten Biologie.)
Informatica Universiteit AntwerpenScripting 5.1 Informatica 1rste BAC Biologie Hoofdstuk 5 Scripting.
Programming for Linguists An Introduction to Python 29/11/2012.
Server side scripting 1 Webtechnologie Lennart Herlaar.
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
1 FLOWer Referenties Functionaliteit: Componenten Role model Data handling model Demonstratie Studio en Beheeromgeving Architectuur en integratie UWV architectuur.
Bert van Werkhoven ICT in Horizon 2020, 8 januari 2014
1/1/ / faculty of Computer Science eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(2): Vertalen.
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
DSpace-gebruikersdag 9 maart 2006 WildFire ● WildFire is ontwikkeld door Henk Druiven, Rijksuniversiteit Groningen Met dank aan Johannes Nicolai en al.
Frank Stalpers en Ad Baars
Consoleprogramma’s Hoofdstuk 19. Visual Basic.NET voor studenten2 In dit hoofdstuk … Hoe consoletoepassingen maken In- en uitvoer bij consoleprogramma’s.
3.6 Architecture of HIS. 3.7 Integrity & Integration within HIS Suraja Padarath /10/2007.
CONTROLESTRUCTUREN (DEEL 2)
Werken aan Intergenerationele Samenwerking en Expertise.
Breuken-Vereenvoudigen
Visual Basic.
PLAYBOY Kalender 2006 Dit is wat mannen boeit!.
Tussentoets Digitale Techniek. 1 november 2001, 11:00 tot 13:00 uur. Opmerkingen: 1. Als u een gemiddeld huiswerkcijfer hebt gehaald van zes (6) of hoger,
Hoofdstuk 5 – Object Based Programmeren
1 HOOFDSTUK 5 CONTROLESTRUCTUREN (DEEL 2) 5.1. INTRODUCTIE  Vervolg discussie omtrent gestructureerd programmeren  Introductie van de overblijvende controlestructuren.
Hoofdstuk 2 - Inleiding tot Visual Studio .NET IDE
Visual Basic.Net - Overzicht
Hoofdstuk 4 - Procedures en arrays
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 3 - onderwerpen Het.
KPRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology Les 2 sheet 1 Wat gaan we doen:  Een (vaste) melodie.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Het ARM bord met wat library functies.
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Beginselen van C opgaves… volgende week: ARM.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
ANTWOORDEN DIAGNOSTISCHE TOETS MODELOMGEVING. Syntaxis = Syntaxis (van het Oudgriekse συν- syn-, "samen", en τάξις táxis, "regeling") is binnen de theoretische.
1 Over het examen (1): Modus Mondeling met schriftelijke voorbereiding 4 uur, 3 onderdelen: –Modellering (  schriftelijk, dan mondeling) –Queries / relationeel.
De sequentie De begrensde herhaling
1 december KC Development Tools Hands-on Oracle HTML DB v2.0.
Visual Basic 2005 nieuwe taalelementen André Obelink, MCSD, MVP Auteur, VBcentral.nl Auteur, VBcentral.nl Microsoft MVP Visual Basic Microsoft MVP Visual.
DSpace-gebruikersdag 9 maart 2006 WildFire ● WildFire is ontwikkeld door Henk Druiven, Rijksuniversiteit Groningen Met dank aan Johannes Nicolai en al.
Shortest path with negative arc-costs allowed. Dijkstra?
1 Okt 4, 2005 Oracle en XML. 2 Okt 4, 2005 xml in database Datatype XMLTYPE  hét xml datatype in de database CLOB, varchar2... Opslag XMLType (Object)tabel.
TOPIC O: Pointers | pag. 1 Pointer = adres in het geheugen, is zelf geen geheugen! Expliciet geheugen aanvragen vóór gebruik.
Benjamin Boerebach, Esther Helmich NVMO workshop 12 juni 2014.
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
Dag van de Trader - Een casus in TA-script
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
Programmeerstijl Hoofdstuk 21. Visual Basic.NET voor studenten2 Inleiding Belang van een goede programmeerstijl:  Programma’s worden door meerdere mensen.
Les 3 Basisbouwstenen (deel 2) Programmeren met Visual Basic Karl Moens.
Hoofdstuk 3 - Conditionele logica
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
Spreadsheets. Testen. Met spreadsheets.. |  Spreadsheet, het meest gebruikte (test) tool in de wereld …  Aan de slag: Spreadsheet PRA  Risico’s en.
Codetuts Academy Les 6 Module 2a Php Fundamentals 1.
Programmeren woensdag 4 oktober 2017.
SQL Les February 2019.
Transcript van de presentatie:

DB&SQL8- 1 VBA Visual Basics for Applications: eigen Office versie vanaf Office2000 gelijk voor alle applicaties Programmeren onder meer nodig voor Het schrijven van eigen functies om invoer te controleren, categorieën te vormen of waarden te berekenen Eventafhandeling Een directe toegang tot de databaseobjecten Access kent ook macro’s als tussenvorm. Deze worden waarschijnlijk in volgende versies niet meer ondersteund, we zullen er daarom niet mee werken.

DB&SQL8- 2 Waar staan je functies/procedures? VBA code kan staan in een class-module: in het codeblok behorend bij een formulier in het codeblok behorend bij een rapport te vinden via het icoon Code op de taakbalk bij het betreffende tabblad of in Design View VBA code kan ook staan in een algemene module voor procedures en functies die vanuit de gehele database toegankelijk zijn te vinden/ maken onder het tabblad Modules

DB&SQL8- 3 Programmeren in VBA Algemene syntaxregels VBA: Statements beeindig je via ENTER-toets Als een te lang statement naar de volgende regel moet doorlopen, geef je dat aan met _ (spatie + underscore) Een ' geeft aan dat de rest van de regel commentaar is Practicum regels: Gebruik Option Explicit Geef je variabelen een prefix mee met datatype Geef voldoende commentaar bij je programma (met ' )

DB&SQL8- 4 Datatypering Expliciete datatypering: goede programmeerstijl In de Access Modules wordt dit afgedwongen via OPTION EXPLICIT (default) bovenin Datatypering variabelen: Public intBookCount As Integer (public var.) Dim strTitle As String(local var.) Naast variabelen kun je ook constanten definiëren: Const OurCompany = “The Greatest” Const MaxSalary =

DB&SQL8- 5 Datatypen in VBA (wat voorbeelden) prefixVar TypeSizeRange of values blnBoolean1 byteTrue or False intInteger2 bytes lngLong4 bytes± dblDouble8 bytes± 3.4E38 curCurrency8 bytesscaled integer(4dec) dtmDate/Time8 bytes1/1/100-12/31/9999 strStringvar: 10 + lng<= 2 billion char fixed: lngup to char varVariant16 bytesNumber: as Double 22 b + lngString: as String

DB&SQL8- 6 Functies en procedures schrijven Je schrijft eigen functies/procedures dus in algemene modules of in class modules. De editor biedt hulp door het aanbieden van mogelijke invullingen (keuzelijsten: OK, klik Tab) en het melden van fouten. Na elk statement geef je een ENTER Met spatie + underscore ( _) geef je aan dat een statement nog doorloopt op de volgende regel In het Debug Window (onder View) kun je je functie of procedure direct testen. Access 2000: Immediate Window.

DB&SQL8- 7 Functie - Subroutine Function (argumenten met datatype) As code, (evt.) leidend tot = ….. End function Functies kunnen een waarde als resultaat geven Sub (argumenten met datatype) code End Sub Subroutines regelen acties Functies en subroutines kunnen vanuit andere functies of sub procedures worden aangeroepen

DB&SQL8- 8 Voorbeeld van een functie Function intOppervlak (intLengte As Integer, intBreedte _ As Integer) As Integer intOppervlak = intLengte * intBreedte End Function Dus: datatypering van argumenten en resultaat resultaat in de variable Statements eindigen door een RETURN, een spatie + underscore is het teken dat een statement doorloopt naar de volgende regel

DB&SQL8- 9 Voorbeeld van sub procedures Sub Welkom() Debug.Print "Hallo! Welkom!" End Sub Sub Welkom(strNaam As String) Debug.Print "Hallo " & strNaam & "!" End Sub Datatypering van eventuele argumenten Geen waarde als uitvoer, maar acties. NB Debug.Print is geen ‘normale’ opdracht voor in een applicatie, maar kun je gebruiken om je code te testen!

DB&SQL8- 10 Testen van functies en procedures Functie: in het Debug-Window aan te roepen: ? (arg1, arg2)vraagteken + haakjes Sub: zonder argumenten: door cursor in code te zetten en Run:Go te klikken met argumenten: in Debug-Window: arg1, arg2 zonder meer! ofCall (arg1, arg2)

DB&SQL8- 11 HELP Als je een VBA functie of constante in hebt getikt en de cursor erop staat krijg je via F1 direct informatie NB: Help in practicumzalen werkt niet altijd! Als je een bestaande functie of procedure aan het intikken bent in module zelf of in Debug (Immediate) Window krijg je direct informatie over de parameters Via de Object Browser kun je allerlei informatie vinden

DB&SQL8- 12 If... Then If Condition Then statements ElseIf AnotherCondition Then statements (meerdere ElseIf mogelijk) Else statements End If Sub testIfThen (intCijfer As Integer) If intCijfer >= 7 Then Debug.Print “Prima” ElseIf intCijfer >= 5 Then Debug.Print “Kon beter” Else Debug.Print “Overnieuw!” End If End Sub

DB&SQL8- 13 Case statement SyntaxVoorbeeld Select Case VarNameSelect Case intLeeftijd Case Value1Case Is < 12 StatementsstrCat=“kind” Case Value2To Value4Case 12 To 17 StatementsstrCat=“puber” Case Is Case 18 StatementsstrCat=“grens” Case ElseCase 19 To 64 StatementsstrCat=“volw” End Select Case Else strCat=“oudere” End Select

DB&SQL8- 14 Een categoriseringsfunctie (b.v. voor in SQL!) Function strCat(intLeeftijd As Integer) As String Select Case intLeeftijd Case Is < 12 strCat=“kind” Case 12 To 17 strCat=“puber” Case 18 strCat=“grens” Case Else strCat=“volwassene” End Select End Function SQL: SELECT naam, strCat(Leeftijd) FROM Personen

DB&SQL8- 15 Do while / Do until Do {While | Until} Condition statements Loop (test vóór de eerste uitvoering van statements) Do statements Loop {While | Until} Condition (test na de eerste uitvoering van statements) OF

DB&SQL8- 16 Voorbeeld van Do While (1) Sub Tafelvan3() Dim intTeller As Integer intTeller = 1 Do While intTeller <= 10 Debug.Print intTeller; " x 3 = ” ; intTeller * 3 intTeller = intTeller + 1 Loop End Sub Kun je nu ook een gevraagde tafel (parameter) af laten drukken? En alle tafels laten afdraaien? concatenatie: je kunt hierkiezen tussen & of ;

DB&SQL8- 17 Voorbeeld van Do While (2) Sub Wachten() Dim d1 As Date Dim d2 As Date d1 = Now() d2 = Now() Debug.Print "Even pauze.." Do While DateDiff("s", d1, d2) < 5 d2 = Now() Loop Debug.Print "Ga maar verder!" End Sub

DB&SQL8- 18 MsgBox MsgBox Messagestring Dim StrName AS String strName = “Margreet” MsgBox (“Goedemorgen “ & strName & “!”) of MsgBox “Goedemorgen “ & strName & “!”

DB&SQL8- 19 MsgBox met andere knoppen Default heeft een MsgBox alleen een OK knop (vbOKOnly), maar zijn meer mogelijkheden: MsgBox(Prompt, Icon + Buttons, Titel) door drukken van een button krijg je een resultaat! Sub ShowMesBox(StrName) If MsgBox("Ben jij " & StrName & "?", vbYesNo + _ vbQuestion, "Naamcontrole") = vbYes Then MsgBox "OK" End If End Sub + vbQuestion, vb Exclamationicoon + vbYesNO, vbRetryCancelknoppen

DB&SQL8- 20 Inputbox InputBox Messagestring: een functie met een resultaat! Sub testInputBox() Dim strResponse As String, strMsg As String strMsg = “Tik hier je naam” strResponse = Inputbox(strMsg) If strResponse <> “” Then MsgBox “Goedemorgen “ & strResponse & “!” End If End Sub

DB&SQL8- 21 Inputbox 2 Meer mogelijkheden met InputBox: InputBox(prompt, title, default) InputBox(“Hoe heet je?”, Naam, strDefaultnaam) strDefaultnaam: bijvoorbeeld degene die het laatst het programma gebruikt heeft

DB&SQL8- 22 For.... Next For range-of-values-of-var statements Next value-of-var Voorbeeld: Dim intTeller As Integer For intTeller = 1 To 10 Debug.Print intTeller Next intTeller en nu de tafels?

DB&SQL8- 23 For.... Next toepassing Sub PrintTafels() Dim intTeller1 As Integer Dim intTeller2 As Integer For intTeller1 = 1 To 10 Debug.Print "Tafel van " & intTeller1 For intTeller2 = 1 To 10 Debug.Print intTeller2 & " x " & intTeller1 & " = " & intTeller2 * intTeller1 Next intTeller2 Next intTeller1 End Sub

DB&SQL8- 24 For.... Next/ For Each For range-of-values-of-var statements Next value-of-var Dim intArray(1 To 10) As Integer Dim i As Integer Dim varIdx As Variant For i = 1 to 10 intArray(i) = i Next i For Each varIdx In intArray Debug.Print 2 * varIdx Next varIdx verplicht type voor For Each!