Access VBA

Min indgangsvinkel til VBA var, at jeg overhovedet ikke har arbejdet "hands on" med kode, siden de første par år af ingeniørstudiet, hvorfor min overordnede målsætning var "blot at komme komme i gang" dvs få en overordnet forståelse for hvordan strukturen i det hele var. Det har jeg fået og mere til.

Der er lagt vægt på øvelse, så man selv skal "bøvle" med koden, uden at få alt for meget forærende. Det er godt. Øvelserne har jeg oplevet, som værende bygget op, så man får en "værktøjskasse" med komponenter, som i et vist omfang kan genindgå i nogle af de efterfølgende øvelser. Også det er fint. Det stimulerer en til at tænke kreativt.

Alt i alt er mine forventninger indfriet.   ..

Lars Aaboe Kristensen, Ribe Amt, Teknik og Miljø

Access VBA

Rigtig god og hurtig respons fra underviser. Skal ikke vente ret lang tid på at få et svar på en problemstilling og spørger man efter en uddybning til eksempelvis en kode, kommer der hurtigt et svar, så man kan komme videre. Har fornemmelsen hele vejen igennem at underviser er villig at bruge den nødvendige tid på en, så man kan få løst opgaven. Bliver tvunget til at arbejde med opgaven, der er ikke nogen nem genvej, hvilket er rigtig godt.

Brian Lind Olsen, OUH Odense Universitetshospital

Excel VBA

Det har været et supergodt kursus, hvor man ikke bare fik resultaterne leveret, der skulle tænkes meget !

Materialet har været rigtig godt, og det er da utroligt så tit der har været hjælp at hente, har set at underviseren var online, også om aftenen og tidlig morgen, rigtig rart, og der kom lynhurtigt respons tilbage på div. spørgsmål og besvarelser.

Helt sikkertet kursus og kursusform, jeg vil anbefale til andre.

Margit Solveig Kristoffersen, Socialpædagogerne Sydjylland

Excel VBA

Meget hurtigt og kompetent feedback...

Sparring på den opgave, som jeg sidder og arbejder med.

Veltilrettelagte øvelser

Claus Witfelt, Flyvevåbnets Officersskole

Excel VSTO

Det har naturligvis været rigtig godt, at kunne gennemgå kursus i sit eget tempo, hvilket har betydet meget for mig, da jeg så har kunne få det daglige arbejde til at passe ind.

I modsætning til en traditionel undervisningsform, hvor kurset er berammet til en fast tid og man derfor bliver nødt til, at sætte en tidsgrænse for de praktiske opgaver, har jeg kunne nørde lige så længe jeg vil, og dermed afprøve nogle flere teknikker, end der normalt er tid til.

Ved at køre kurset over flere uger, har jeg også haft tid til, at lade de nye informationer bundfælde og sætte sig bedre fast.

En rigtigt god ting har været, at jeg har kørt hele kurset på min egen (firmaet) maskine, med min egen opsætning. Har alt for ofte været på kurser ude af huset, på andre maskiner og når man så kom tilbage til ens egen pc, var det en anden opsætning, en anden version, eller andet der gjorde, at man ikke lige kunne komme igang med det man havde lært.

Jeg har kunne bruge mine hverdagsopgaver som opgaverne i kurset, hvilket jeg syntes er bedere end de normale "Hello World" opgaver.

Og så er jeg meget imponeret over den hurtige response der har været på indsendte opgaver og spørgsmål. Dejligt at jeg ikke skulle vente dage med, at kunne komme videre, men ofte i løbet af minutter eller timer.

Jan Amdi Letvad, PFA Pension

Excel VBA

Den lette tilgang, og de ret hurtige svar retur. På den måde føler man, man kan få "udnyttet" tiden bedst muligt. 

Jeg kan også godt li' emnerne i øvelserne. De har været meget brugbare - så er det bare at få "overført" til ens egen daglig brug :-)

Tina Eriksen, Skandinavisk Service Partner

Excel VBA

Det har bestemt været pengene værd. Jeg kender flere, som har taget VBA kursus on-site i et par dage eller deromkring , og de har slet ikke fået det samme ud af det som jeg har via denne side. Jeg har allerede udviklet små og større modeller til min arbejdsplads, og modellerne bruges allerede internationalt, det havde jeg ikke kunnet uden dette kursus.

Det er kanon, at man får personlig feedback og det går som regel tilmed hurtigt. Dygtig læremester, som sætter sig ind i mine specifikke problemstillinger - det er et stort plus. Den personlige kontakt er max vigtig.

Jeg vil anbefale dette til andre, der spørger til dette.

Michael Mortensen, DLH

< >
Se flere referencer

De første VBA programmer

Vi skal til at skrive de første programmer, men før vi går i gang skal vi se lidt på det værktøj vi bruger når vi koder VBA - VBA Editoren. Den ser sådan her ud (kommer frem når du trykker ALT+F11):

 

Access VBA kursus - VBA Editor - fjernundervisning

Billedet indeholder 6 vinduer som jeg har sat det op her:

  • Project- En oversigt over de databaser der åbne og den VBA kode der ligger i de åbne filer.
  • Properties- Et vindue, der skifter afhængigt af hvad man laver i "arbejdes området" (højre del af skærmen)
  • "Arbejdsområdet" - Det store vindue, hvor vi skal skrive vores kode
  • Immediate- Et vindue, der kan bruges når man debugger sine programmer
  • Watches - En vindue, der også bruges i forbindelse med debugging

 

For at komme til at skrive et nyt program skal du højre klikke på "Microsoft Access Class Objects" og vælge Insert | Module - så kommer det til at se sådan her ud:

Access VBA kursus - VBA Editor 2 - fjernundervisning

Moduler er en slags kodekasser (nej ikke rodekasser!) så du kan strukturere dine programmer. Du kan i Properties vinduet skifte navnet på modulet. NU er vi ved at være klar til at skrive programmer!

Procedurer og funktioner

 

Der er to slags programmer vi kan skrive - procedurer og funktioner. En funktion minder om de funktioner du kender fra f.eks. Excel som Sum(), Middel() etc. der kan bruges til at lave beregninger og returnere et resultat. En procedure returnerer ikke noget resultat, men kan også lave beregninger for os.

Access VBA kursus - VBA Editor 3 - fjernundervisning

I nedenstående billede er der en funktion og en procedure - kan du regne ud hvad de laver?

 

Procedurer
Svarer til de makroer du tidligere har oprettet. De står i makrobilledet, hvis du vælger Funktioner | Makro | Makroer...

Funktioner
Som tidligere nævnt virker funktioner som de øvrige funktioner du kender i Excel (Sum, Middel etc.). Vi bruger typisk funktioner som hjælpere til koden i procedurer.

Tips og trix i VBA editoren

Automatisk fuldførelse

Når du skriver f.eks. sub HelloWorld og trykker på enter så skriver vba editoren automatisk () og End Sub samt ændrer sub til Sub.

Det er derfor en god idé altid at skrive med små bogstaver - så vil du kunne se om det er ord VBA editoren genkender ved at den ændrer dem til at have stort begyndelsesbogstav.

Et trix mere i den kategori er når du skal skrive range kan nøjes med at skrive do og trykke på CTRL + MELLEMRUM så giver VBA editoren dig en liste over ord den kender der begynder med do. Vælg DoCmd og tryk på TAB.

Egenskaber og metoder

Når man har skrevet navnet på et objekt bruger man et punktum til at adressere objektets metoder og egenskaber. Når du skriver DoCmd. dukker der en liste over alle metoder og egenskaber til Range objektet op. Du vælger den metode eller egenskab du skal bruge fra listen (bemærk, at du kan skrive de første bogstaver i navnet og bladre i listen på den måde). Når du har fundet den ønskede metode eller egenskab trykker du TAB for at komme videre.

Dette er en rigtig god måde at lære de forskellige metoder og egenskaber at kende.

Hjælpe funktionen

VBA editoren har en rigtig god hjælpefunktion, som du kan få fat i ved at trykke på F1. Prøv at stille markøren i ordet Range og tryk F1 - du skulle så gerne få en side, der beskriver Range objektet.

Nyttige genvejstaster

 

CTRL+Mellemrum Auto fuldførelse
F1 Hjælp
F5 Kør makro
F8 Debug makro (kommer vi til senere)
ALT+F11 Start VBA editoren

Der er naturligvis mange flere genvejstaster, men disse er de vigtigste.

Knytte VBA kode til formularknapper

Vi så tidligere, hvordan man kunne knytte Access egne makroer til knapper på formularer, men processen til at knytte VBA kode til sådan en knap er en lidt anden:

Åben formularen i design visning og indsæt en kommandoknap som tidligere:

Access VBA kursus - Makroer og knapper 1 - fjernundervisning

Tryk Esc for at slippe af med den dialog der fremkommer og højreklik på knappen og vælg egenskaber:

Access VBA kursus - VBA Editor 4 - fjernundervisning

Her kan du som det fremgår give knappen et fornuftgt navn og titeltekst.

Access VBA kursus - VBA Editor 5 - fjernundervisning.jpg

Klik på Hændelser fanen og ud for hændelsen VedKlik klikker du på de 3 punktummer

Access VBA kursus - VBA Editor 4 - fjernundervisning

I næste dialog vælger du Kode generator - det åbner VBA editoren og giver mulighed for at skrive den kode, der skal til for at kalde VBA koden:

Access VBA kursus - VBA Editor 7 - fjernundervisning

(Du kan naturligvis også skrive din VBA kode direkte her)

 

 

Når du har betalt for kurset får du adgang til øvelser til hver lektion. Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.