Applies ToAccess för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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. Den här artikeln hjälper dig att hitta programmeringsverktygen i Access.

I den här artikeln

Vad är programmering?

I Access används programmering för att lägga till funktioner i databasen med hjälp av 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 makroåtgärder som du kan sammanställa med makroverktyget. Access makroåtgärder representerar endast en delmängd 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 du behöver lära dig VBA-kod. Kom ihåg att i Access hjälpartiklar kallas Access makron 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

Access innehåller många nya makroåtgärder som gör att du kan skapa kraftfullare makron än vad du kan skapa med hjälp av 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 endast 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, till exempel att öppna och stänga formulär och köra rapporter. Du kan snabbt och enkelt knyta ihop databasobjekten (formulär, rapporter och så vidare) som du har skapat eftersom det finns liten 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änd inbyggda funktioner eller skapa egna funktioner    Access innehåller många inbyggda funktioner, till exempel funktionen Amortering , 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 (till exempel Microsoft Excel) inifrån Access, men du kan inte använda ett makro för att göra mycket annat utanför Access. Genom att använda VBA 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, till exempel Excel, och samtalsfunktioner i Windows DLL-bibliotek (Dynamic-Link Libraryes).

  • Ä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äddat i egenskapen VidKlicka 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. På fliken Formulärdesign klickar du på nedpilen för att visa galleriet Kontroller och kontrollerar sedan att Använd kontrollguider är markerat.

  3. Klicka på Knapp i galleriet Kontroller på fliken Formulärdesign.

  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 markera en annan bild markerar du kryssrutan Visa alla bilder om du vill visa en lista över alla kommandoknappsbilder som Access tillhandahåller, eller klicka 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 Vid klickning klickar du på knappen Skapa Bild av knapp.

      Access startar Makroverktyget och visar makrot som guiden skapade. 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 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 Nej om du vill ignorera ändringarna.

  10. Klicka på Visa i gruppen Vyer på fliken Formulärdesign och klicka sedan på Formulärvy. 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 bra att tänka på Access makron som ett förenklat programmeringsspråk där du skapar kod genom att skapa 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

Visa Makroverktyget:

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

Överst på sidan

Förstå VBA-kod

Precis som 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 börja Access utvecklarhjälp och lära dig mer om varje nyckelord. Du kan sedan utforska Access Utvecklarhjälp och upptäcka nya kommandon som hjälper dig att utföra de programmeringsuppgifter du vill ha.

Överst på sidan

Konvertera makron till VBA-kod

Du kan använda Access för 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 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 Formulärdesign i gruppen Verktyg klickar du antingen på Konvertera formulärens makron till Visual Basic eller Konvertera rapportens makron till Visual Basic.

  3. I dialogrutan Konvertera formulärmakron eller Konvertera rapportmakron väljer du om du vill att Access ska lägga till felhanteringskod för de funktioner 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 associerat med formuläret eller rapporten. Access ändrar även händelseegenskaperna för formuläret eller rapporten så att de kör de nya VBA-procedurerna i stället för makrona.

  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 i en egenskapsruta som visar [Händelseprocedur] och klickar sedan på knappen Skapa 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 Makrodesign.

  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 databasen. I den här artikeln beskrivs bara grunderna för hur du kommer igång. Det finns många utmärkta referensböcker och onlineresurser som kan hjälpa dig att bygga upp dina programmeringsfärdigheter.

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

Händelseordning för databasobjekt

Överst på sidan

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.