När du skapar en ny databas börjar du vanligtvis med att skapa databasobjekt som tabeller, formulär och rapporter. Förr eller senare kan du behöva lägga till programmering för att automatisera processer och koppla ihop dessa objekt. I den här artikeln beskrivs programmeringsverktygen i Access.
I den här artikeln
- Vad är programmering?
- Ska jag använda makron eller VBA-kod?
- Utföra vanliga programmeringsuppgifter med hjälp Kommandoknappsguiden
- Förstå makron
- Förstå VBA-kod
- Konvertera makron till VBA-kod
Vad är programmering?
I Access innebär programmering att lägga till funktioner i databasen med hjälp av Access-makron eller Visual Basic for Applications-kod (VBA). Du kan till exempel skapa ett formulär och en rapport och sedan lägga till en kommandoknapp i formuläret som öppnar rapporten när du markerar den. I så fall skapar du ett makro eller VBA en procedur och anger sedan kommandoknappens OnClick händelseegenskap så att kommandoknappen kör makrot eller proceduren. För en enkel åtgärd, som att öppna en rapport, kan du använda Kommandoknappsguiden för att göra jobbet, eller så kan du inaktivera guiden och programmera den själv.
Obs
Många Microsoft Office-program använder termen "makro" för att referera till VBA kod. Det kan förvirra Access-användare eftersom termen "makro" i Access refererar till en namngiven samling makroåtgärder som du sätter ihop med Makroverktyget. Makroåtgärder i Access är bara en del av de kommandon som är tillgängliga i VBA. Med Makroverktyget får du ett mer strukturerat gränssnitt än i Visual Basic Editor, vilket gör att du kan lägga till programmering för kontroller och objekt utan att lära dig VBA kod. I hjälpartiklar om Access kallas Access-makron för makron.
VBA Kod kallas VBA kod, funktion eller procedur.
VBA Kod lagras i klassmoduler, som är en del av enskilda formulär eller rapporter och vanligtvis bara innehåller kod för dessa objekt, och i moduler, som inte är knutna till specifika objekt och vanligtvis innehåller global kod som du kan använda i hela databasen.
Objekt, till exempel formulär och rapporter och kontroller som kommandoknappar och textrutor, har händelseegenskaper som du kan koppla makron och procedurer till. Varje händelseegenskap är kopplad till en viss händelse, som att klicka på musen, öppna ett formulär eller ändra data i en textruta. Händelser kan också utlösas av faktorer utanför Access, till exempel systemhändelser eller av makron eller procedurer som är kopplade till andra händelser. Databasen kan bli komplex om du lägger till många makron eller procedurer till många händelseegenskaper för många objekt. I de flesta fall kan du dock få de resultat du vill ha med mycket lite programmering.
Ska jag använda makron eller VBA-kod?
Beslutet att använda makron, VBAeller både och, beror främst på hur du planerar att driftsätta eller distribuera databasen. Om databasen till exempel lagras på din dator, du är den enda användaren och du är bekväm med att använda VBA kod, kan du bestämma dig för att använda VBA den för de flesta programmeringsuppgifter. Men om du planerar att dela databasen med andra personer från en filserver kan du vilja undvika att använda VBA den på grund av säkerhetsproblem.
Basera ditt beslut om att använda makron eller VBA kod på två faktorer: säkerhet och funktionalitet. Säkerheten är viktig eftersom VBA den kan användas till att skapa kod som komprometterar dina data eller skadar filer på datorn. När du använder en databas som någon annan har skapat ska du bara aktivera VBA kod om du vet att databasen kommer från en pålitlig källa. När du skapar en databas som andra personer kommer att använda bör du försöka undvika att inkludera programmeringsverktyg som kräver att användaren uttryckligen anger databasen som betrodd. Allmänna metoder för att undvika det kravet finns längre fram i det här avsnittet.
För att skydda databasen ska du försöka att använda makron när du kan använda dem endast VBA för åtgärder som inte kan utföras med hjälp av makron. Försök också att bara använda makron som inte kräver att databasen är betrodd innan de kan köras. Genom att begränsa makroåtgärder på det här sättet kan användarna känna sig säkra på att databasen inte har någon programmering som kan skada data eller andra filer på deras datorer.
Att tänka på när det gäller makron
Access innehåller många makroinstruktioner som du kan använda för att skapa kraftfullare makron än vad som var tillåtet i tidigare versioner av Access. Nu kan du till exempel skapa och använda globala tillfälliga variabler genom att använda makroåtgärder och du kan hantera fel på ett smidigare sätt genom att använda makroåtgärder för felhantering. I tidigare versioner av Access var de här funktionerna endast tillgängliga i VBA. Du kan också bädda in ett makro direkt i händelseegenskapen för ett objekt eller en kontroll. Ett inbäddat makro blir en del av objektet eller kontrollen och följer med objektet eller kontrollen om objektet eller kontrollen flyttas eller kopieras.
Makron är ett enkelt sätt att hantera många programmeringsuppgifter, som att öppna och stänga formulär och köra rapporter. Du kan snabbt knyta ihop databasobjekt, till exempel formulär och rapporter, som du har skapat eftersom det inte finns så mycket syntax att komma ihåg. Argumenten för varje åtgärd visas i Makroverktyget.
Utöver den ökade säkerheten och användarvänligheten som makron ger måste du använda makron för att utföra följande uppgifter:
Tilldela en åtgärd eller en uppsättning åtgärder till en tangent. Det här kräver att du skapar en makrogrupp med namnet
AutoKeys.Utföra en åtgärd eller en rad åtgärder när en databas öppnas första gången. Det här kräver att du skapar ett makro med namnet
AutoExec.Obs
Makrot
AutoExeckörs före andra makron ellerVBAkoder, även om du har angett ett startformulär i dialogrutan Access-alternativ och bifogat ett makro ellerVBAen kod till formuläretsOnOpenellerOnLoadhändelsen.
Mer information om hur du skapar makron finns i Förstå makron.
Att tänka på när det gäller VBA
Använd VBA istället för makron om du vill göra något av följande:
- Använd inbyggda funktioner eller skapa egna. Access har många inbyggda funktioner, till exempel
IPmt, som beräknar en räntebetalning. Du kan använda de här funktionerna till att utföra beräkningar utan att skapa komplicerade uttryck. Genom att användaVBAkan du också skapa egna funktioner för att utföra beräkningar som går utöver förmågan hos ett uttryck eller för att ersätta komplexa uttryck. Dessutom kan du använda funktionerna som skapar i uttryck till att tillämpa en vanlig åtgärd på fler än ett objekt. - Skapa eller ändra objekt. I de flesta fall är det enklast att skapa och ändra ett objekt i objektets designvy. Men i vissa situationer kan du vilja ändra definitionen för ett objekt i koden. Med hjälp
VBAav kan du ändra alla objekt i en databas, och även själva databasen. - Utföra åtgärder på systemnivå. Du kan utföra
RunAppåtgärden i ett makro för att köra ett annat program, till exempel Microsoft Excel, från Access, men du kan inte använda ett makro för att göra så mycket annat utanför Access. Med hjälpVBAav kan du kontrollera om det finns en fil på datorn, använda Automation eller Dynamic Data Exchange (DDE) för att kommunicera med andra Microsoft Windows-baserade program som Excel och anropsfunktioner i Windows Dynamic-Link Libraries (DLLs). - Ändra poster en i taget. Du kan använda
VBAdet till att gå igenom en uppsättning poster en post i taget och utföra en åtgärd för varje post. I motsats till detta fungerar makron med hela uppsättningar med poster samtidigt.
Utföra vanliga programmeringsuppgifter med hjälp Kommandoknappsguiden
Om du lägger till en kommandoknapp i ett formulär kan Kommandoknappsguiden hjälpa dig att komma igång med programmering. Guiden hjälper dig att skapa en kommandoknapp som utför en viss uppgift. I en Access-fil (.accdb) skapar guiden ett makro som är inbäddat i OnClick egenskapen för kommandoknappen. I en ELLER-fil .adp skapar VBA guiden kod eftersom inbäddade makron inte är tillgängliga i de .mdb filformaten. I båda fallen kan du sedan ändra eller förbättra makrot eller VBA koden så att de passar dina behov bättre.
I navigeringsfönstret högerklickar du på formuläret där du vill lägga till kommandoknappen och klickar sedan på designvyn.
Klicka på nedpilen på fliken Formulärdesign för att visa galleriet Kontroller och kontrollera sedan att Använd kontrollguider är markerat.
Klicka på Knapp i galleriet Kontroller på fliken Formulärdesign.
I designrutnätet för formulär klickar du där du vill att kommandoknappen ska placeras. Kommandoknappsguiden startas.
På guidens första sida klickar du på varje kategori i listan Kategorier för att se vilka åtgärder som guiden kan programmera kommandoknappen att utföra. I listan Åtgärder väljer du den åtgärd du vill ha och klickar sedan på Nästa.
Klicka på alternativet Text eller på alternativet Bild, beroende på om du vill att text eller en bild ska visas på kommandoknappen.
- Om du vill att text ska visas kan du redigera texten i rutan bredvid alternativet Text.
- Om du vill att en bild ska visas föreslår guiden en bild i listan. Om du vill välja en annan bild markerar du kryssrutan Visa alla bilder för att visa en lista över alla kommandoknappsbilder som Access ger eller klickar på Bläddra för att välja en bild som lagras någon annanstans. Klicka på Nästa.
Ge kommandoknappen ett beskrivande namn. Det här steget är valfritt och det här namnet visas inte på kommandoknappen. Men det är en bra idé att ange ett beskrivande namn så att när du senare behöver hänvisa till kommandoknappen, till exempel när du anger flikordningen för kontroller i formuläret, blir det mycket enklare att skilja kommandoknapparna åt. Om kommandoknappen stänger formuläret kan du till exempel namnge den
cmdCloseellerCommandClose.Klicka på Slutför. Access placerar kommandoknappen i formuläret.
Om du vill se vad guiden har programmerat åt dig följer du dessa valfria steg:
Om egenskapssidan inte visas trycker du på F4 för att visa den.
Klicka på fliken Händelse på egenskapssidan.
I egenskapsrutan Vid klickning klickar du på knappen Skapa .
Access startar Makroverktyget och visar makrot som guiden har skapat. Du kan redigera makrot om du vill. Mer information finns i Förstå makron. När du är klar klickar du på Stäng i gruppen Stäng på fliken Makrodesign för att stänga Makroverktyget. Om Access uppmanar dig att spara ändringarna och uppdatera egenskapen klickar du på Ja för att spara ändringarna eller på Nej för att ignorera ändringarna.
Klicka på Visa och sedan på Formulärvy i gruppen Vyer på fliken Formulärdesign. Klicka på den nya kommandoknappen för att bekräfta att den fungerar som väntat.
Förstå makron
Ett makro är ett verktyg som ger möjlighet att automatisera uppgifter och lägga till funktionalitet i formulär, rapporter och kontroller. Om du till exempel lägger till en kommandoknapp i ett formulär kan du koppla knappens OnClick händelseegenskap till ett makro som innehåller de kommandon du vill att knappen ska utföra varje gång den väljs.
Det är användbart att tänka på Access-knappar som ett förenklat programmeringsspråk där du skapar kod genom att bygga upp en lista med åtgärder som ska utföras. När du skapar ett makro väljer du varje åtgärd i en listruta och fyller sedan i den information som krävs för varje åtgärd. Med makron kan du lägga till funktioner i formulär, rapporter och kontroller utan att skriva kod i en VBA modul. Makron utgör en del av de kommandon som är tillgängliga i VBAoch de flesta tycker att det är enklare att skapa ett makro än att skriva VBA kod.
Du skapar ett makro genom att använda Makroverktyget, som visas i följande bild.
Visa Makroverktyget:
- Klicka på Makro i gruppen Makron och kod på fliken Skapa.
Förstå VBA-kod
Liksom med makron VBA kan du lägga till automatisering och andra funktioner i Access-programmet. Du kan utöka VBA genom att använda tredjepartskontroller och du kan skriva egna funktioner och procedurer för specifika behov.
Ett snabbt sätt att komma igång är VBA att först skapa ett Access-makro och sedan konvertera det till VBA kod. Instruktioner för hur du gör det finns i Konvertera makron till VBA-kod. Den här funktionen skapar en ny VBA modul som utför motsvarande åtgärder i makrot. Det öppnar även Visual Basic Editor så att du kan börja ändra proceduren. När du arbetar i Visual Basic Editor kan du klicka på nyckelord och trycka på F1 för att starta utvecklarhjälpen för Access och få mer information om varje nyckelord. Du kan sedan utforska utvecklarhjälpen för Access och upptäcka nya kommandon som hjälper dig att utföra de programmeringsuppgifter som du vill ha.
Konvertera makron till VBA-kod
Du kan använda Access till att automatiskt konvertera makron till VBA moduler eller klassmoduler. Du kan konvertera makron som är kopplade till ett formulär eller en rapport, oavsett o de finns som separata objekt eller som inbäddade makron. Du kan även konvertera globala makron som inte är kopplade till ett visst formulär eller en viss rapport.
Konvertera makron som är kopplade till ett formulär eller en rapport
Den här processen konverterar till VBA makron som refereras av, eller är inbäddade i, ett formulär eller en rapport, eller någon av dess kontroller, och lägger till VBA koden i formulärets eller rapportens klassmodul. Klassmodulen blir en del av formuläret eller rapporten och följer med formuläret eller rapporten vid flytt eller kopiering.
Högerklicka på formuläret eller rapporten i navigeringsfönstret och klicka sedan på Designvy.
Klicka på Konvertera formulärets makron till Visual Basic eller Konvertera rapportens makron till Visual Basic i gruppen Verktyg på fliken Formulärdesign.
I dialogrutan Konvertera formulärmakro eller Konvertera rapportmakron väljer du om du vill att Access lägger till felhanteringskod i funktionerna som genereras. Om dina makron innehåller kommentarer väljer du även om du vill att dessa kommentarer ska ingå i funktionerna. Klicka på Konvertera för att fortsätta. Om det inte finns någon klassmodul för formuläret eller rapporten skapar Access en och lägger till en procedur i modulen för varje makro som var kopplade till formuläret eller rapporten. Access ändrar även händelseegenskaperna för formuläret eller rapporten så att de kör de nya
VBAprocedurerna istället för makron.Så här visar och redigerar du koden
VBA:Medan formuläret är öppet eller rapporten är öppen i designvyn trycker du på F4 för att visa formuläret/rapporten, om egenskapssidan inte redan visas.
På fliken Händelse på egenskapssidan klickar du i någon egenskapsruta som visas
[Event Procedure]och klickar sedan på knappen Skapa . Om du vill visa händelsegenskaper för en viss kontroll väljer du kontrollen genom att klicka på den. Om du vill visa händelseegenskaper för hela formuläret väljer du Formulär eller Rapport i listrutan högst upp på egenskapssidan.
Access öppnar Visual Basic Editor och visar händelseproceduren i klassmodulen. Du kan rulla uppåt eller nedåt om du vill visa några andra procedurer som finns i samma klassmodul.
Konvertera globala makron
Högerklicka på makrot som du vill konvertera i navigeringsfönstret och klicka sedan på Designvy.
Klicka på Konvertera makron till Visual Basic i gruppen Verktyg på fliken Makrodesign.
I dialogrutan Konvertera makro väljer du de alternativ du vill ha och klickar sedan på Konvertera. Access konverterar makrot och öppnar Visual Basic Editor.
Så här visar och redigerar du koden
VBA:- Om fönstret för Projektutforskaren inte visas i Visual Basic Editor, går du vill menyn Visa och klickar på Projektutforskaren.
- Expandera trädet under namnet på den databas där du arbetar.
- Dubbelklicka på modulen
Converted Macro-<macro name>under Moduler. Visual Basic Editor öppnar modulen.
Koppla en VBA-funktion till en händelseegenskap
När du konverterar ett globalt makro till VBAplaceras VBA koden i en standardmodul. Till skillnad från en klassmodul är en standardmodul inte en del av ett formulär eller en rapport. Du vill troligen koppla funktionen till en händelseegenskap i ett formulär, en rapport eller en kontroll så att koden körs exakt när och där du vill. För att göra detta kan du kopiera VBA koden till en klassmodul och sedan associera den med en händelseegenskap, eller så kan du göra ett specialanrop från händelseegenskapen till standardmodulen med hjälp av följande procedur.
- Notera funktionsnamnet i Visual Basic Editor. Om du till exempel har konverterat ett makro med namnet
MyMacroblir funktionsnamnetMyMacro(). - Stäng Visual Basic Editor.
- Högerklicka i navigeringsfönstret på formuläret eller rapporten som du vill koppla funktionen till och klicka sedan på Designvy.
- Klicka på kontrollen eller avsnittet som du vill koppla funktionen till.
- Om egenskapssidan inte visas trycker du på F4 för att visa den.
- På fliken Händelse på egenskapssidan klickar du på den händelseegenskapsruta som du vill koppla funktionen till.
- Skriv ett likhetstecken (
=) i egenskapsrutan, följt namnet på funktionen,=MyMacro()till exempel . Se till att ta med parenteserna. - Spara formuläret eller rapporten genom att klicka på Spara på verktygsfältet Snabbåtkomst.
- Dubbelklicka på formuläret eller rapporten i navigeringsfönstret och testa det/den för att se om koden körs som den ska.
Nu vet du de grundläggande stegen för att lägga till VBA kod i databasen. I den här artikeln beskrivs bara grunderna för att komma igång. Många utmärkta referensböcker och onlineresurser kan hjälpa dig att bygga upp dina programmeringskunskaper.
Se även
Skapa ett användargränssnittsmakro
Köra ett Access-makro med hjälp av en tangentbordsgenväg
Automatisera uppstartshändelser med ett makro
Skapa ett makro som körs när du öppnar en databas