Är programmering i Access nytt för dig? Börja då här.

När du skapat en ny databas börjar du vanligtvis med att skapa några databasobjekt, exempelvis tabeller, formulär och rapporter. Slutligen måste du programmera lite för att automatisera vissa processer och knyta ihop databasobjekten. Den här artikeln innehåller en introduktion till programmeringsverktygen i Microsoft Office Access 2007 och information om var du kan lära dig mer om programmering.

Artikelinnehåll

Vad är programmering?

Ska jag använda makron eller VBA-kod?

Använda Kommandoknappsguiden för vanliga programmeringsuppgifter

Om makron

Om VBA-kod

Konvertera makron till VBA-kod

Information om hur du använder hjälpsystemet

Vad är programmering?

Programmering i Office Access 2007 är den process då du lägger till funktioner i databasen med hjälp av Access-makron eller VBA-kod (Visual Basic for Applications). Anta att du skapar ett formulär och en rapport och exempelvis vill lägga till en kommandoknapp i formuläret som, när användaren klickar på den, öppnar rapporten. Programmeringen består då i att du skapar ett makro eller en VBA-procedur och sedan ställer in händelseegenskapVidKlickning för kommandoknappen så att makrot eller proceduren körs när användaren klickar på knappen. Vid enkla åtgärder, som att öppna en rapport, kan du använda kommandoknappsguiden men du kan också stänga av guiden och programmera själv.

Obs!: I många Microsoft Office-program betecknar termen "makron" VBA-kod. Det kan vara förvirrande för Access-användare eftersom termen "makro" i Access refererar till en namngiven grupp makroåtgärder som du kan skapa med hjälp av Makroverktyget. Makrona i Access innehåller endast en del av de kommandon som finns i VBA. Makroverktyget är dock ett mer strukturerat gränssnitt än Visual Basic Editor och gör att du kan programmera kontroller och objekt utan att behöva lära dig VBA-kod. Kom ihåg att Access-makron kallas makron i hjälpavsnitten i Access, medan VBA-kod kallas VBA, kod, funktion eller procedur. VBA-kod finns i klassmoduler (som ingår i enskilda formulär eller rapporter och vanligtvis innehåller kod för endast dessa objekt) och i moduler (som inte är knutna till specifika objekt och vanligtvis innehåller "global" kod som kan användas i hela databasen).

För de olika objekten (exempelvis formulär och rapporter) och kontrollerna (exempelvis kommandoknappar och textrutor) finns en mängd händelseegenskaper som du kan knyta makron och procedurer till. Varje händelseegenskap är associerad till en specifik händelse, t.ex. en musklickning, öppnandet av ett formulär eller ändring av data i en textruta. Händelser kan också startas av faktorer utanför Access, t.ex. systemhändelser eller makron och procedurer som är kopplade till andra händelser. Databasen kan bli komplex om du lägger till många makron eller procedurer i flera händelseegenskaper och för många objekt, med i de flesta fall kan du uppnå önskat resultat med mycket lite programmering.

Överst på sidan

Ska jag använda makron eller VBA-kod?

Vid valet mellan makron och VBA-kod bör du ta hänsyn till två saker: säkerheten och vilken funktion du behöver. Säkerheten är viktig eftersom det med hjälp av VBA är möjligt att skapa kod som antingen äventyrar datasäkerheten eller kan skada filer på datorn. När du använder en databas som har skapats av någon annan bör du endast aktivera VBA-kod om du vet att databasen kommer från en tillförlitlig källa. När du skapar en databas som ska användas av andra bör du undvika att använda programmeringsverktyg som kräver att användaren beviljar databasen status som betrodd. Hur du med hjälp av allmänna tekniker undviker detta beskrivs senare i det här avsnittet.

Mer information om hur du aktiverar och inaktiverar innehåll som eventuellt inte är säkert finns i artikeln Aktivera eller inaktivera makron i Office-dokument (som nämnts betecknar termen "makron" i övriga Microsoft Office-program VBA-kod, så förväxla inte termen med Access -makron).

För att upprätthålla databasens säkerhet bör du försöka använda makron så ofta som möjligt och endast VBA-programmering vid åtgärder som inte kan utföras med hjälp av makron. Dessutom bör du sträva efter att endast använda makroåtgärder som inte kräver att databasen har status som betrodd för att kunna köras. Om du följer dessa begränsningar kan användarna vara säkra på att databasen inte innehåller programmering som kan skada data eller filer på datorn.

För att uppmuntra användningen av makron innehåller Office Access 2007 många nya makroåtgärder med vars hjälp du kan bygga kraftfullare makron än i tidigare versioner av Access. Nu kan du exempelvis skapa och använda globala temporära variabler med hjälp av makroåtgärder, och du kan hantera fel på ett mer korrekt sätt med hjälp av nya felhanteringsmakron. I tidigare versioner av Access kunde du endast skapa sådana funktioner i VBA. I Access 2007 kan du dessutom bädda in ett makro direkt i en händelseegenskap för ett objekt eller en kontroll. Ett inbäddat makro blir en del av objektet eller kontrollen och flyttas eller kopieras tillsammans med objektet eller kontrollen. I tidigare versioner av Access var du tvungen att hantera makron som separata objekt vilket ibland gjorde databasen svår att underhålla.

När du programmerar ett objekt eller en kontroll bör du använda följande i nämnd ordning:

  1. Ett makro som endast innehåller åtgärder som inte kräver att databasen har betrodd status för att kunna köras

  2. Ett makro som innehåller åtgärder som kräver att databasen har betrodd status för att kunna köras

  3. En VBA-procedur

När du bygger ett makro kan du växla mellan den kortare listan över åtgärder som inte kräver att databasen är betrodd för att kunna köras och den längre listan över alla makron genom att klicka på Visa alla åtgärder i Makroverktyget. När du klickar på Visa alla åtgärder visas också den kompletta listan över argument för makroåtgärden KörKommando. Mer information om hur du bygger makron hittar du i avsnittet Om makron eller om du klickar på länken i avsnittet Se även.

Makron är ett enkelt sätt att lösa många programmeringsuppgifter, t.ex. att öppna och stänga formulär och köra rapporter. Du kan snabbt och lätt koppla samman de databasobjekt som du har skapat eftersom du inte behöver använda så mycket syntax. argument för respektive åtgärd visas i Makroverktyget.

Förutom att det är säkrare och enklare att använda makron måste du också använda makron om du vill:

  • Tilldela åtgärder till tangenter. Du måste då skapa en makrogrupp som kallas AutoKeys.

  • Utföra en åtgärd eller en serie åtgärder när databasen öppnas. Du måste då skapa ett makro som kallas AutoExec.

    Obs!:  AutoExec-makrot körs före alla andra makron och eventuell VBA-kod även om du har skapat ett startformulär i dialogrutan Access-alternativ och kopplat ett makro eller VBA-kod till händelsen VidÖppning eller VidStart för formuläret.

Använd VBA-programmering i stället för makro om du vill göra något av följande:

  • Använda inbyggda funktioner eller skapa egna funktioner    Access innehåller många inbyggda funktioner, t.ex. funktionen Rbetalning som beräknar en räntebetalning. Med dessa inbyggda funktioner kan du utföra beräkningar utan att behöva skapa komplicerade uttryck. Med hjälp av VBA-kod kan du skapa egna funktioner om du vill utföra beräkningar där uttryck inte kan användas eller för att ersätta komplexa uttryck. Dessutom kan du använda funktioner som du skapar om du vill utföra vanliga åtgärder i mer än ett objekt.

  • Skapa och ändra objekt    I de flesta fall är det enklast att skapa och ändra objekt i Designvyn. I vissa fall kan det dock vara lämpligare att ändra objektdefinitionen i kod. När du använder VBA kan du ändra både objekt i databasen och själva databasen.

  • Utföra åtgärder på systemnivå    Du kan utföra åtgärden KörProgram i ett makro om du vill köra ett annat program (t.ex. Microsoft Office Excel 2007) inifrån Access, men du kan inte använda ett makro för så mycket annat utanför Access. Med hjälp av VBA kan du kontrollera om en fil finns på datorn, använda Automation eller Dynamic Data Exchange (DDE) för att kommunicera med andra Microsoft Windows-baserade program, t.ex. Office Excel 2007 samt anropa funktioner i Dynamic Link Library i Windows.

  • Ändra en post i taget    Du kan använda VBA om du vill gå igenom en uppsättning poster, en i taget, och utföra en åtgärd på varje post. Om du använder ett makro tillämpas det däremot på hela uppsättningen med poster.

Om du använder VBA-kod i en databas som du distribuerar till andra kan det vara bra att paketera och signera den så att användarna kan vara säkra på att koden kommer från en tillförlitlig källa. Mer information om hur du paketerar och signerar en databas finns i artikeln Skydda en Access 2007-databas.

Överst på sidan

Använda Kommandoknappsguiden för vanliga programmeringsuppgifter

Om du lägger till en kommandoknapp i ett formulär kan du använda Kommandoknappsguiden för att lättare komma igång med programmeringen. Med hjälp av guiden kan du skapa en kommandoknapp som utför en specifik uppgift. I en Office Access 2007-fil (.accdb) skapas då ett makro som bäddas in i egenskapen VidKlickning för kommandoknappen. I en MDB- eller ADP-fil skapas VBA-kod i guiden eftersom inbäddade makron inte är tillgängliga i dessa filformat. I båda fallen kan du ändra eller förbättra makrot eller VBA-koden efter behov.

  1. Klicka på Microsoft Office-knappen Bild av Office-knappen och sedan på Öppna.

  2. Välj en databas i dialogrutan Öppna och öppna den.

  3. Högerklicka på formuläret där du vill lägga till en kommandoknapp i navigeringsfönstret och klicka sedan på Designvy.

  4. På fliken Design, i gruppen Kontroller, se till att Använd kontrollguider Bild av knapp är markerat.

    Bild av knapp

  5. Klicka på Knapp i gruppen Kontroller på fliken Design.

    Bild av knapp

  6. Klicka på den plats i formulärets rutnät där du vill placera kommandoknappen.

    Kommandoknappsguiden startas.

  7. Klicka på varje kategori i listan Kategorier på den första sidan i guiden för att se vilka åtgärder du med hjälp av guiden kan programmera kommandoknappen att utföra. Välj åtgärd i listan Åtgärder och klicka sedan på Nästa.

  8. Klicka på ett av alternativen Text eller Bild, beroende på om du vill att en text eller en bild ska visas på kommandoknappen.

    • Om du vill visa en text kan du redigera texten i rutan bredvid alternativet Text.

    • Om du vill visa en bild föreslår guiden en bild i listan. Om du vill använda en annan bild markerar du kryssrutan Visa alla bilder, så att alla bilder för kommandoknappar som finns i Office Access 2007 visas, eller också klickar du på Bläddra och väljer en bild som du har sparat någon annanstans.

      Klicka på Nästa.

  9. Ge knappen ett meningsfullt namn. Detta är valfritt och namnet visas inte på knappen. Det är dock en bra idé att ge knappen ett lättolkat namn så att du, om du behöver hänvisa till knappen vid ett senare tillfälle (exempelvis om du anger tabbordning för kontrollerna i formuläret), enklare kan särskilja knapparna. Om kommandoknappen stänger formuläret kan du t.ex. ge den namnet cmdStäng eller KommandotStäng.

  10. Klicka på Slutför.

    Kommandoknappen placeras i formuläret.

  11. Om du vill se vad guiden har "programmerat" för dig kan du göra på följande sätt (valfritt):

    1. Om egenskapssidan inte visas trycker du på F4 så att den öppnas.

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

    3. Klicka på Knappen Verktyg i egenskapsrutan Vid klickning.

      Makroverktyget startas i Access och makrot som skapades i guiden visas. Du kan om du vill redigera makrot (mer information om hur du redigerar ett makro hittar du i avsnittet Om makron, eller om du klickar på länkarna i avsnittet Se även). När du är klar klickar du på Stäng i gruppen Stäng på fliken Design så att Makroverktyget stängs. Om du uppmanas spara ändringarna och uppdatera egenskapen klickar du på Ja om du vill spara ändringarna och Nej om du vill ångra dem.

  12. Klicka på Visa i gruppen Vyer på fliken Design och sedan på Formulär. Klicka på den nya kommandoknappen och kontrollera att den fungerar som den ska.

Överst på sidan

Om 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 exempelvis lägger till en kommandoknapp i ett formulär kan du associera egenskapen VidKlickning för knappen till ett makro som innehåller de kommandon som ska utföras när någon klickar på knappen.

Du kan betrakta Access-makron som ett förenklat programmeringsspråk med vilket du skapar kod genom att lista vilka åtgärd som ska utföras. När du bygger ett makro väljer du varje åtgärd från en listruta och fyller sedan i nödvändig information för respektive åtgärd. Med hjälp av makron kan du lägga till funktioner i formulär, rapporter och kontroller utan att behöva skriva kod i VBA-modulen. Makron ger dig tillgång till en del av de kommandon som finns i VBA och de flesta användare tycker att det är enklare att skapa makron än att skriva VBA-kod.

Du skapar ett makro med hjälp av Makroverktyget som visas i följande illustration.

Makroverktyget

Så här tar du fram Makroverktyget:

  • Klicka på Makro i gruppen Annat på fliken Skapa. Om kommandot inte är tillgängligt klickar du på pilen under knappen Modul eller knappen Klassmodul och klickar sedan på Makro. Bild av knapp

Mer information om hur du skapar makron hittar du om du klickar på länkarna i avsnittet Se även i den här artikeln.

Överst på sidan

Om VBA-kod

VBA är ett programmeringsspråk som du kan använda när du vill skapa kraftfulla program i Access. VBA innehåller hundratals kommandon med vilka du kan utföra mycket mer komplexa åtgärder än om du använder Access-makron.

Du kan utöka VBA-kapaciteten genom att använda kontroller från andra leverantörer, och du kan skapa egna funktioner och procedurer för specifika behov. Du kan också använda VBA när du vill integrera Access i andra program.

Ett snabbt sätt att komma igång med VBA-programmeringen är att bygga ett makro i Access och sedan konvertera det till VBA-kod. Instruktioner om hur du gör detta finns i avsnittet Konvertera makron till VBA-kod. Då skapas en ny modul med en Function-procedur för VBA som utför samma åtgärder som makrot. Även Visual Basic Editor öppnas så att du kan börja ändra proceduren. I Visual Basic Editor kan du starta Access Developer Help genom att klicka på nyckelord, och om du trycker på F1 får du veta mer om respektive nyckelord. I Access Developer Help kan du också ta reda på vilka andra kommandon som kan hjälpa dig att slutföra programmeringsuppgiften.

Överst på sidan

Konvertera makron till VBA-kod

Du kan använda Office Access 2007 om du automatiskt vill konvertera makron till VBA-moduler eller klassmoduler. Makron som har kopplats till ett formulär eller en rapport kan konverteras oavsett om de är separata objekt eller inbäddade makron. Även globala makron som inte är kopplade till ett visst formulär eller en viss rapport kan konverteras.

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

Under den här processen konverteras alla makron som ett formulär eller en rapport (eller någon annan kontroll) refererar till (eller som är inbäddade) och VBA-koden läggs till i formulärets eller rapportens klassmodul. Klassmodulen blir en del av formuläret eller rapporten och flyttas eller kopieras tillsammans med formuläret eller rapporten när dessa flyttas eller kopieras.

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

  2. Klicka antingen på Konvertera makron i formulär till Visual Basic eller Konvertera makron i rapporter till Visual Basic i gruppen Makro på fliken Databasverktyg.

  3. Välj om du vill att felhanteringskoder ska läggas till de funktioner som genereras i Access i dialogrutan Konvertera formulärmakron eller Konvertera rapportmakron. Om det finns kommentarer i dina makron anger du också om dessa ska inkluderas som kommentarer i funktionerna. Fortsätt genom att klicka på Konvertera.

    Om det inte finns någon klassmodul för formuläret eller rapporten skapas en i Access och en procedur läggs till i modulen för varje makro som har kopplats till formuläret eller rapporten. Dessutom ändras händelseegenskaperna för formuläret eller rapporten så att de kör den nya VBA-proceduren i stället för makrona.

  4. Så här gör du om du vill visa och redigera VBA-kod:

    1. Om egenskapssidan inte visas när formuläret eller rapporten visas i designvyn trycker du på F4.

    2. Klicka på en egenskapsruta med texten [Händelseprocedur] på fliken Händelse på egenskapssidan och klicka sedan på Knappen Verktyg . Om du vill visa händelseegenskaperna för en specifik kontroll klickar du på kontrollen så att den markeras. Om du vill visa händelseegenskaper för hela formuläret eller rapporten väljer du Formulär eller Rapport i listrutan överst på egenskapssidan.

      Visual Basic Editor öppnas i Access och händelseproceduren visas i klassmodulen. Du kan rulla uppåt eller nedåt om du vill granska andra procedurer i samma klassmodul.

Konvertera globala makron

  1. Klicka på namnet på det makro som du vill konvertera i navigeringsfönstret.

  2. Klicka på Konvertera makron till Visual Basic i gruppen Makro på fliken Databasverktyg.

  3. Markera önskade alternativ i dialogrutan Konvertera makro och klicka sedan på Konvertera.

    Makrona konverteras och Visual Basic Editor öppnas.

  4. Så här gör du om du vill visa och redigera VBA-kod:

    1. Om fönstret Projektutforskaren inte visas i Visual Basic Editor klickar du på ProjektutforskarenVisa-menyn.

    2. Expandera trädet under namnet på den databas som du arbetar i.

    3. Dubbelklicka på modulen Konverterat makro - makronamn under Moduler.

      Modulen öppnas i Visual Basic Editor.

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 klassmodulen ingår standardmodulen inte i något formulär eller någon rapport. Troligen vill du 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. Det kan du göra genom att kopiera VBA-koden till en klassmodul och sedan koppla den till en händelseegenskap, men du kan också skapa ett speciellt anrop från händelseegenskapen till en standardmodul med hjälp av följande procedur.

  1. Notera vilket namn funktionen har i Visual Basic Editor. Om du exempelvis konverterade makrot MittMakro får funktionen namnet MittMakro().

  2. Stäng Visual Basic Editor.

  3. Högerklicka på formuläret eller rapporten som du vill koppla funktionen till i navigeringsfönstret och klicka sedan på Designvy.

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

  5. Om egenskapssidan inte visas trycker du på F4 så att den öppnas.

  6. Klicka på den egenskapsruta som du vill associera funktionen till på fliken Händelse.

  7. Skriv ett likhetstecken (=) i egenskapsrutan följt av namnet på funktionen, t.ex. =MittMakro(). Glöm inte parentesen.

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

  9. Dubbelklicka på formuläret eller rapporten i navigeringsfönstret och testa det för att kontrollera att koden körs som den ska.

Med dessa grundläggande steg lägger du till VBA-kod i en databas. Informationen i den här artikeln är endast tänkt som en introduktion och som en hjälp att komma igång. Det finns en mängd olika referensböcker och Internetresurser som kan hjälpa dig att förbättra dina programmeringskunskaper.

Överst på sidan

Information om hur du använder hjälpsystemet

I Office Access 2007 kan du på flera olika sätt få hjälp med programmeringen av kod. Du kan exempelvis alltid klicka på Hjälp överst till höger i Access-fönstret.

Startpunkt för hjälp

Hjälp-fönstret visas i Access.

När du skapat ett makro eller en VBA procedur kan du klicka på en makroåtgärd, ett nyckelord eller namnet på en inbyggd funktion och sedan trycka på F1. I de flesta fall visas ett hjälpavsnitt i Access för det objekt du klickade på.

När hjälpfönstret har öppnats förflyttar du dig mellan sidorna med hjälp av navigeringsknapparna i verktygsfältet.

Verktygsfältet i hjälpvisningsprogrammet

Klicka exempelvis på Startsida om du vill ta fram en innehållsförteckning och klicka på Bakåt, Framåt, Stopp eller Uppdatera när du vill flytta mellan ämnen eller gå tillbaka till ett ämne. Du kan även söka i hjälpsystemet efter specifik information genom att ange sökvillkor i rutan under verktygsfältet och sedan trycka på RETUR eller klicka på Sök.

Om du letar efter information om programmering bör du söka både i Access Developer Help och i hjälpen i Access.

Växla till Access Developer Help

  1. Klicka på pilen i listrutan bredvid knappen Sök.

    Sökknapp i hjälpen

    I hjälpfönstret visas då en lista över tillgängliga ämnen som du kan bläddra mellan.

    Söklista i Hjälp

  2. Om du är ansluten till Internet klickar du på Info för utvecklare under Innehåll på Office Online. Vi rekommenderar att du använder den här metoden eftersom innehållet på webbplatsen för Microsoft Office Online alltid är mest aktuellt. Om du inte är ansluten till Internet eller om systemadministratören har inaktiverat möjligheten att ansluta till Internet från hjälpfönstret kan du fortfarande ta fram Access Developer Help genom att klicka på Info för utvecklare under Innehåll på den här datorn.

  3. Med hjälp av länkarna i innehållsförteckningen kan du bläddra i hjälpen. Du kan också ange sökvillkor i rutan under verktygsfältet och trycka på RETUR.

  4. Om du vill växla tillbaka till hjälpen i Access klickar du på pilen i listrutan bredvid knappen Sök och klickar sedan på Hjälp om Access under Innehåll på Office Online eller Innehåll på den här datorn.

Mer information om hur du använder hjälpen på datorn eller hjälpen på Internet hittar du om du klickar på Anslutningsstatus-menyn längst ned till höger i Hjälp-fönstret och sedan på Förklara dessa alternativ.

Anslut till Office Online från hjälpvisningsprogrammet.

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

×