Introduktion till programmering i Access

När du skapar en ny databas börjar du vanligtvis genom att skapa flera databasobjekt, som tabeller, formulär och rapporter. Till sist når du en punkt när du måste lägga till lite programmering för att automatisera vissa processer och knyta ihop databasobjekten. I den här artikeln får du hjälp med 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 är programmering processen att lägga till funktioner för en databas genom att använda Access-makron eller VBA-kod (Visual Basic for Applications). Anta till exempel att du har skapat ett formulär och en rapport, och du vill lägga till en kommandoknapp i formuläret som öppnar rapporten när du klickar på den. I det här fallet är programmering processen att skapa ett makro eller en VBA-procedur och sedan ange kommandoknappens VidKlickning-händelseegenskap så att makrot eller proceduren körs när du klickar på kommandoknappen. För en enkel åtgärd, som att öppna en rapport, kan du använda Kommandoknappsguiden till att göra allt jobb eller så kan du inaktivera guiden och göra programeringen själv.

Obs!: Många Microsoft Office-program använder termen "makro" för att referera till VBA-kod. Det kan vara förvirrande för Access-användare eftersom termen "makro" i Access refererar till en namngiven samling med makroåtgärder som du kan sätta ihop med Makroverktyget. Makroåtgärder i Access är bara en del av de kommandon som finns 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 du behöver lära dig VBA-kod. Kom ihåg att Access-makron i hjälpartiklar om Access kallas för makron. Och VBA-kod kallas för VBA, kod, funktion eller procedur. VBA-kod finns i klassmoduler (som är en del av enskilda formulär eller rapporter och normalt innehåller kod för just de objekten) och i moduler (som inte är knutna till specifika objekt och normalt innehåller "global" kod som kan användas i hela databasen).

Objekt (t.ex. formulär och rapporter) och kontroller (t.ex. kommandoknappar och textrutor) har olika händelseegenskaper som du kan koppla makron och procedurer till. Varje händelseegenskap är kopplat 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 flera händelseegenskaper för många objekt men i de flesta fallen kan du uppnå de resultat du vill ha med mycket lite programmering.

Överst på sidan

Ska jag använda makron eller VBA-kod?

Beslutet att använda makron, VBA eller både och beror främst på hur du planerar att driftsätta eller distribuera databasen. Om databasen till exempel lagras på din dator och du är den enda användaren, och om du är bekväm med att använda VBA-kod, kan du bestämma dig för att använda VBA till att utföra de flesta av programmeringsuppgifterna. Men om du tänker dela databasen med andra personer genom att hitta den på en filserver kan du vilja undvika att använda VBA av säkerhetsskäl.

Du bör basera ditt beslut på att använda makron eller VBA-kod på två faktorer: säkerhet och funktionalitet. Säkerheten är ett problem eftersom VBA kan användas till att skapa kod som äventyrar säkerheten för dina data eller kan skada filer på datorn. När du använder en databas som har skapats av någon annan än du 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 ska användas av andra personer ska du försöka undvika att inkludera programmeringsverktyg som kräver att användaren specifikt anger betrodd status för databasen. Allmänna metoder för hur du undviker att användarna behöver ange databasen som betrodd kommer senare i det här avsnittet.

För att databasens säkerhet ska säkerställas ska du försöka använda makron när du kan använda VBA-programmering bara för åtgärder som inte kan utföras genom att använda makron. Vidare ska du försöka att bara använda makron som inte kräver att databasen måste anges som betrodd för att kunna köras. Genom att begränsa användningen av makroåtgärder på det här sättet kan användarna lita 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

Från och med Access 2010 innehåller Access många nya makroåtgärder som gör att du kan skapa kraftfullare makron än du kan med 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 är dessa typer av funktioner bara tillgängliga med VBA. Dessutom kan du 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 vid flytt eller kopiering.

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 och enkelt knyta ihop databasobjekten (formulär, rapporter osv.) som du har skapat eftersom det bara är lite syntax som du måste 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 som heter 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 som heter AutoExec.

    Obs!:  AutoExec-makrot körs innan andra makron eller annan VBA-kod, även om du har angett ett startformulär i dialogrutan Access-alternativ och kopplat ett makro eller VBA-kod till det formulärets VidÖppning- eller VidStart-händelse.

Mer information om hur du skapar makron finns i avsnittet Förstå makron.

Att tänka på när det gäller VBA

Du bör använda VBA-programmering istället för makron om du vill göra något av följande:

  • Använda inbyggda funktioner eller skapa egna funktioner    Access har många inbyggda funktioner, till exempel funktionen Rbetalning, som beräknar en räntebetalning. Du kan använda de här inbyggda funktionerna till att utföra beräknar utan att behöva skapa komplicerade uttryck. Genom att använda VBA-kan du också skapa egna funktioner för att utföra beräkningar som överstiger 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 fallen ä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. Genom att använda VBA kan du ändra alla objekt i en databas, utöver själva databasen.

  • Utföra åtgärder på systemnivå    Du kan utföra åtgärden KörProgram i ett makro för att köra ett annat program (t.ex. Microsoft Excel) i Access men du kan inte använda ett makro att göra så mycket annat utanför Access. Genom att använda VBA kan du se om det finns en fil på datorn, använda Automation eller DDE (Dynamic Data Exchange) till att kommunicera med andra Microsoft Windows-baserade program, till exempel Excel och anropsfunktioner i Windows DLL-bibliotek.

  • Ändra poster en i taget    Du kan använda VBA 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.

Överst på sidan

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äddad i egenskapen VidKlickning för kommandoknappen. I en .mdb- eller .adp-file skapar guiden VBA-kod, eftersom inbäddade makron inte är tillgängliga i de filformaten. I båda fallen kan du sedan ändra eller förbättra makron eller VBO-koden så att de passar dina behov bättre.

  1. I navigeringsfönstret högerklickar du på formuläret där du vill lägga till kommandoknappen och klickar sedan på designvyn.

  2. Klicka på nedpilen på fliken Design så att galleriet Kontroller visas. Kontrollera att Använd kontrollguider är markerat.

  3. Klicka på Knapp i galleriet Kontroller på fliken Design

  4. I designrutnätet för formulär klickar du där du vill att kommandoknappen ska placeras.

    Kommandoknappsguiden startas.

  5. 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.

  6. 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.

  7. Ge kommandoknappen ett beskrivande namn. Det här steget är valfritt och 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 (t.ex. om du anger flikordningen för kontroller i formuläret) blir det mycket enklare att skilja mellan kommandoknapparna. Om kommandoknappen stänger formuläret kan du till exempel kalla den för cmdStäng eller KommandoStäng.

  8. Klicka på Slutför.

    Access placerar kommandoknappen i formuläret.

  9. Om du vill ser vad guiden har "programmerat" åt dig följer du dessa valfria steg:

    1. Om egenskapssidan inte visas trycker du på F4 för att visa den.

    2. Klicka på fliken Händelse på egenskapssidan.

    3. I egenskapsrutan VidKlickning klickar du på knappen Skapa Bild av knapp .

      Access startar Makroverktyget och visar makrot som guiden har skapat. Du kan redigera makrot om du vill (mer information om hur du redigerar ett makro finns i avsnittet Förstå makron). När du är klar går du till fliken Design. I gruppen Stäng klickar du på Stäng för att stänga Makroverktyget. Om Access uppmanar dig att spara ändringarna och uppdatera egenskapen klickar du på Ja om du vill spara ändringarna eller på Nej om du vill ignorera ändringarna.

  10. Klicka på Visa i gruppen Vyer på fliken Design och klicka sedan på Formulärsvy. Klicka på den nya kommandoknappen för att bekräfta att den fungerar som väntat.

Överst på sidan

Förstå makron

Ett makro är ett verktyg som gör att du kan automatisera uppgifter och lägga till funktioner i formulär, rapporter och kontroller. Om du till exempel lägger till en kommandoknapp i ett formulär kopplar du knappens VidKlickning-händelseegenskap till ett makro som innehåller de kommandon du vill att knappen ska utföra varje gång den klickas.

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 för formulär, rapporter och kontroller utan att skriva kod i en VBA-modul. Makron är en del av de kommandon som finns i VBA och 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.

Makroverktyget i Access 2010

Obs!: Obs! Makroverktyget i Access 2007 skiljer sig från bilden ovan. I Access 2007 var Makroverktyget ett antal rader och kolumner som listade de olika åtgärderna i makrot.

Visa Makroverktyget:

  • Klicka på Makro i gruppen Makron och kod på fliken Skapa.

Överst på sidan

Förstå VBA-kod

Liksom med makron kan du med VBA 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 efter dina egna behov.

Ett snabbt sätt att komma igång med VBA-programmering är att först skapa ett Access-makro och sedan konvertera det till VBA-kod. Instruktioner för hur du gör det finns i avsnittet 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.

Överst på sidan

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.

Obs!: Du kan lägga till VBA-kod för en webbdatabas men du kan inte köra den koden medan databasen körs i en webbläsare. Om webbdatabasen innehåller VBA-kod måste du först öppna webbdatabasen genom att använda Access innan du kan köra koden. Om du vill utföra programmeringsuppgifter i en webbdatabas använder du istället Access-makron.

Konvertera makron som är kopplade till ett formulär eller en rapport

Den här processen konverterar till VBA alla 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.

  1. Högerklicka på formuläret eller rapporten i navigeringsfönstret och klicka sedan på Designvy.

  2. På fliken Design, i gruppen Verktyg klickar du på Konvertera formulärets makron till Visual Basic eller Konvertera rapportens makron till Visual Basic.

  3. I dialogrutan Konvertera formulärmakro eller Konvertera rapportmakron väljer du om du vill att Access lägger till felhanteringskod i funktionerna som genereras. Och om du har några kommentarer i dina makron väljer du om du vill inkludera dem som kommentarer 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 VBA-procedurerna istället för makron.

  4. Visa eller redigera VBA-koden:

    1. 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.

    2. På fliken Händelse, på egenskapssidan klickar du på någon egenskapsruta som visar [Händelseprocedur] och klickar sedan på skapa-knappen Bild av knapp . 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

  1. Högerklicka på makrot som du vill konvertera i navigeringsfönstret och klicka sedan på Designvy.

  2. Klicka på Konvertera makron till Visual Basic i gruppen Verktyg på fliken Design.

  3. 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.

  4. Visa eller redigera VBA-koden:

    1. Om fönstret för Projektutforskaren inte visas i Visual Basic Editor, går du vill menyn Visa och klickar på Projektutforskaren.

    2. Expandera trädet under namnet på den databas där du arbetar.

    3. Under Moduler dubbelklickar du på modulens makronamn Konverterat makro -.

      Visual Basic Editor öppnar modulen.

Koppla en VBA-funktion till en händelseegenskap

När du konverterar ett globalt makro till VBA placeras 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 det här 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 genom att använda följande procedur.

  1. Notera funktionsnamnet i Visual Basic Editor. Om du till exempel har konverterat ett makro med namnet MittMakro blir funktionsnamnet MittMacro().

  2. Stäng Visual Basic Editor.

  3. I navigeringsfönstret högerklickar du på formuläret eller rapporten som du vill koppla funktionen till. Klicka sedan på Designvy.

  4. Klicka på kontrollen eller avsnittet som du vill koppla funktionen till.

  5. Om egenskapssidan inte visas trycker du på F4 för att visa den.

  6. På fliken Händelse på egenskapssidan klickar du på den händelseegenskapsruta som du vill koppla funktionen till.

  7. Skriv ett likhetstecken (=) i egenskapsrutan, följt namnet på funktionen – till exempel =MittMakro(). Se till att ta med parenteserna.

  8. Spara formuläret eller rapporten genom att klicka på Spara på verktygsfältet Snabbåtkomst.

  9. 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 en databas. Den här artikeln beskriver bara grunderna för att komma igång. Det finns många utmärkta böcker och onlineresurser sm kan hjälpa dig att bygga upp dina programmeringskunskaper.

Överst på sidan

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×