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):
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:
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.
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:
Tryk Esc for at slippe af med den dialog der fremkommer og højreklik på knappen og vælg egenskaber:
Her kan du som det fremgår give knappen et fornuftgt navn og titeltekst.
Klik på Hændelser fanen og ud for hændelsen VedKlik klikker du på de 3 punktummer
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:
(Du kan naturligvis også skrive din VBA kode direkte her)