Visual Basic for Applications (VBA) er ikke et programmeringssprog for Microsoft Access 2003 alene. Det er et programmeringssprog for alle applikationsprogrammer, der understøtter automatisering. Automatisering (med stort A ) refererer til et programs evne til at blive manipuleret programmatisk eller kontrolleret automatisk ved hjælp af et programmeringssprog såsom VBA. Alle de store applikationer i Microsoft Office, inklusive Microsoft Access, Microsoft Excel, Microsoft Outlook, Microsoft PowerPoint og Microsoft Word understøtter automatisering. Du kan skrive kode for automatisk at dele data mellem dem.
Begreberne Component Object Model ( COM ) og OLE-automatisering er ældre udtryk for (men er dybest set synonyme med), hvad der i øjeblikket kaldes Automation.
Før du begynder at skrive kode
Før du udveksler data mellem Access og andre programmer i Microsoft Office Suite, skal du være opmærksom på, at det sjældent er nødvendigt at skrive kode for at udføre jobbet. Du kan importere og eksportere data mellem Microsoft Office-applikationer uden at skrive nogen kode overhovedet. For eksempel kan du udføre følgende handlinger:
- Importer og eksporter data ved at bruge mulighederne i menuen Access File.
- E-mail Få adgang til objekter, såsom rapporter, ved at vælge Send til –> Mail-modtager.
- Brug OfficeLinks-funktionen til at sende objekter til andre programmer.
- Brug grundlæggende Windows klip-og-indsæt-teknikker og OLE (Object Linking and Embedding) til at kopiere og linke data mellem programmer.
- Flet data fra Access-tabeller til Microsoft Word-breve, etiketter, konvolutter eller andre rapporter ved hjælp af funktionen Word Brevfletning. (Søg i Word-hjælpesystemet for fletning. )
Hvis du bare søger at få data fra Access til et andet program (eller omvendt), er det nok ikke den nemmeste tilgang at skrive kode. Enhver af de tidligere tilgange er nemmere end at skrive tilpasset VBA-kode til at udføre jobbet.
En gang i en kendt blå måne støder du selvfølgelig på en situation, hvor skrivning af VBA-kode er den eneste, eller måske bare den bedste, måde at få arbejdet gjort. Denne artikel viser dig nogle grundlæggende begreber, som du gerne vil forstå.
Indlæsning af de relevante objektmodeller
Access-objektmodellen giver mulighed for at henvise til objekter ved navn, så du kan manipulere disse objekter ved at bruge VBA-kode. Ethvert Office-applikationsprogram, der udsætter sig selv for VBA, har en objektmodel, ligesom Access gør. Når et applikationsprograms objektbibliotek er tilgængeligt, kan du bruge VBA til at styre den applikation.
En objektmodel definerer navnene og organiseringen af objekter i applikationen. Et objektbibliotek er den faktiske fil, der er gemt på din harddisk og definerer den konceptuelle objektmodel.
Før du skriver kode til at styre et eksternt program fra Access, skal du indlæse det relevante objektbibliotek i dialogboksen Referencer i Access. Følg disse trin:
1. Sørg for, at du er i Visual Basic Editor.
Tryk på Alt+F11, hvis du er i Access-programvinduet.
2. Vælg Værktøjer –> Referencer i menuen Visual Basic Editor.
Dialogboksen Referencer åbnes.
3. Rul gennem listen Tilgængelige referencer, og vælg objektbibliotekerne for de programmer, du vil kontrollere.
I figur 1 er de valgte objektbiblioteker til Access, Excel, Outlook, PowerPoint og Word (blandt andre).
Figur 1: Flere objektbiblioteker valgt i dialogboksen Referencer.
4. Klik på OK.
Alle de valgte objektbiblioteker vil blive åbnet, og du har adgang til alle deres objektmodeller fra dette tidspunkt.
Aflæsning af objektbiblioteker
Indlæsning af flere objektbiblioteker end nødvendigt er spild, fordi VBA-programmer kører langsommere. I det virkelige liv behøver du sjældent at vælge alle de tilgængelige objektbiblioteker (se figur 1), medmindre du virkelig havde til hensigt at interagere med alle disse programmer fra den aktuelle database.
Du kan udlæse biblioteker lige så nemt, som du indlæser dem. Åbn dialogboksen Referencer, og fjern markeringen ved siden af ethvert objektbibliotek, som du egentlig ikke har tænkt dig at bruge.
Udforskning af et programs objektmodel
Objektbrowseren i Visual Basic Editor giver adgang til alle de objektmodeller, der aktuelt er valgt i dialogboksen Referencer. Hver indlæst objektmodel indeholder mange objekter, klasser, egenskaber og sådan. Men for Automation vil du primært se på hvert programs Application Object. For eksempel udsætter Access Application Object Access for andre programmer, der understøtter automatisering. Excel-applikationsobjektet (indeholdt i Excel-objektbiblioteket) udsætter Excel for andre automatiseringsprogrammer og så videre.
For at åbne objektbrowseren i VBA Editor skal du vælge Vis –> Objektbrowser eller trykke på F2. For at få hjælp til et element i objektbrowseren skal du klikke på dets navn og derefter klikke på knappen Hjælp (?) på værktøjslinjen Objektbrowser.
Når du vælger fra listen Projekt/bibliotek i objektgennemsynet og ruller ned på listen Klasser i venstre kolonne, ser du flere applikationsobjekter. Når du klikker på et af applikationsobjekterne, vises navnet på applikationen nederst i dialogboksen. Medlemmer af dette programobjekt vises i ruden til højre, som vist i figur 2.
Figur 2: Objektbrowseren efter tilføjelse af flere objektbiblioteker.
Indstilling af referencer til andre programmer
Med objektmodeller indlæst, er du klar til at begynde at opsætte referencer til tilgængelige programmer i VBA-kode. Det første trin er at bruge en Dim-sætning til at oprette en objektvariabel, der refererer til den applikation, som du vil oprette forbindelse til, ved hjælp af følgende syntaks:
Dim anyName Som [Nyt] program.Application
I syntaksen er anyName ethvert navn, du kan lide, som skal bruges i din kode for at henvise til applikationen. Det program argument er det officielle navn på den Automation programmet. Det nye nøgleord er valgfrit. Hvis det er inkluderet, åbner det nye nøgleord en kopi af programmet i baggrunden (ikke nødvendigvis synligt på skærmen), før koden kører.
Nogle eksempler på Dim-udsagn er følgende:
Dim appExcel som ny Excel.Application
Dim appOutlook As New Outlook.Application
Dim appPowerPoint As New PowerPoint.Application
Dim appWord As New Word.Application
En Dim-sætning er kun gyldig, hvis det relevante objektbibliotek er indlæst. For eksempel mislykkes sætningen Dim appWord As New Word.Application, hvis objektbiblioteket for Microsoft Word ikke er valgt i dialogboksen Referencer.
Dim-sætningerne skaber blot objektvariabler, der refererer til applikationen inde fra din kode. For faktisk at oprette forbindelse til en applikations applikationsobjekt skal du indstille objektvariabelnavnet til applikationen. Syntaksen er
Indstil objectVariable Som CreateObject(“appName.Application”)
hvor objectVariable er det samme som det navn, du har angivet i Dim-sætningen, og appName er navnet på applikationsprogrammet. Med henvisning til de tidligere Dim-sætninger er de Set-sætninger, som du bruger for hver defineret objektvariabel, følgende:
Indstil appExcel = CreateObject(“Excel.Application”)
Indstil appOutlook = CreateObject(“Outlook.Application”)
Indstil appPowerPoint = CreateObject(“PowerPoint.Application”)
Indstil appWord = CreateObject(“Word.Application”)
Hver applikation i Office-pakken har sin egen objektmodel med sine egne objekter og egenskaber, men de grundlæggende ideer er de samme uanset hvilket program og objektmodel du bruger.