Kennismaken met programmeren in Access

Van toepassing op
Access voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Wanneer u een nieuwe database maakt, gaat u meestal eerst databaseobjecten maken, zoals tabellen, formulieren en rapporten. Op een gegeven moment moet u mogelijk programmeerfuncties toevoegen om processen te automatiseren en deze objecten te verbinden. In dit artikel maakt u kennis met de programmeerhulpmiddelen in Access.

In dit artikel

Wat is programmeren?

In Access betekent programmeren het toevoegen van functionaliteit aan uw database met behulp van Access-macro's of Visual Basic for Applications-code (VBA). U kunt bijvoorbeeld een formulier en een rapport maken en vervolgens een opdrachtknop toevoegen aan het formulier waarmee het rapport wordt geopend wanneer u dit selecteert. In dat geval maakt u een macro of VBA procedure en stelt u vervolgens de gebeurteniseigenschap van OnClick de opdrachtknop in, zodat de macro of procedure met de opdrachtknop wordt uitgevoerd. Voor een eenvoudige bewerking, zoals het openen van een rapport, kunt u de wizard Opdrachtknop gebruiken om het werk uit te voeren of u kunt de wizard uitschakelen en zelf programmeren.

Opmerking

In veel Microsoft Office-programma's wordt de term 'macro' gebruikt om naar code te VBA verwijzen. Dit kan verwarrend zijn voor gebruikers van Access omdat de term 'macro' in Access verwijst naar een benoemde verzameling macroacties die u samenstelt met behulp van de opbouwfunctie voor macro's. Macroacties van Access vertegenwoordigen slechts een subset van de opdrachten die beschikbaar zijn in VBA. De opbouwfunctie voor macro's biedt een meer gestructureerde gebruikersinterface dan Visual Basic Editor, zodat u programmering kunt toevoegen aan besturingselementen en objecten zonder code te hoeven leren VBA . In Help-artikelen voor Access worden Access-macro's macro's genoemd. VBA Code wordt code, een functie of een procedure genoemd VBA . VBA Code wordt opgeslagen in klassemodules, die deel uitmaken van afzonderlijke formulieren of rapporten en die meestal alleen code voor die objecten bevatten, en in modules die niet aan specifieke objecten zijn gekoppeld en die meestal algemene code bevatten die u in de hele database kunt gebruiken.

Objecten zoals formulieren en rapporten, en besturingselementen zoals opdrachtknoppen en tekstvakken hebben gebeurteniseigenschappen waaraan u macro's of procedures kunt koppelen. Elke gebeurteniseigenschap is gekoppeld aan een bepaalde gebeurtenis, zoals klikken met de muis, een formulier openen of gegevens in een tekstvak wijzigen. Gebeurtenissen kunnen ook worden geactiveerd door factoren buiten Access, zoals systeemgebeurtenissen, of door macro's of procedures die zijn gekoppeld aan andere gebeurtenissen. De database kan complex worden als u veel macro's of procedures toevoegt aan een groot aantal gebeurteniseigenschappen van een groot aantal objecten. In de meeste gevallen kunt u echter met heel weinig programmeren de gewenste resultaten krijgen.

Naar boven

Kan ik beter macro's of VBA-code gebruiken?

De keuze voor macro's, VBAof beiden, hangt voornamelijk af van de manier waarop u de database wilt implementeren of distribueren. Als de database bijvoorbeeld is opgeslagen op uw computer, u de enige gebruiker bent en vertrouwd bent met het gebruik VBA van code, kunt u besluiten deze voor de meeste programmeertaken te gebruiken VBA . Als u de database echter vanaf een bestandsserver wilt delen met andere personen, is het qua beveiliging beter om deze niet te gebruiken VBA .

Baseer uw beslissing om macro's of VBA code te gebruiken op twee factoren: beveiliging en de gewenste functionaliteit. Beveiliging is belangrijk omdat VBA deze kan worden gebruikt om code te maken die je gegevens in gevaar brengt of bestanden op je computer beschadigt. Wanneer u een database gebruikt die iemand anders heeft gemaakt, schakel code dan alleen in VBA als u weet dat de database afkomstig is van een betrouwbare bron. Wanneer u een database maakt die anderen zullen gebruiken, vermijd dan programmeerfuncties waarvoor de gebruiker de database expliciet moet vertrouwen. Algemene technieken om die vereiste te omzeilen, worden verderop in deze sectie beschreven.

Om uw database te beveiligen, probeert u zo veel mogelijk macro's te gebruiken en alleen te gebruiken VBA voor bewerkingen die niet kunnen worden uitgevoerd met macroacties. Probeer ook alleen macroacties te gebruiken waarvoor de database niet hoeft te worden vertrouwd voordat ze kunnen worden uitgevoerd. Door macroacties op deze manier te beperken, kunnen gebruikers erop vertrouwen dat de database geen programmeerfuncties bevat die gegevens of andere bestanden op de computer kunnen beschadigen.

Aandachtspunten voor macro's

Access bevat veel macroacties waarmee u krachtigere macro's kunt maken dan in eerdere versies van Access mogelijk was. Zo kunt u nu algemene tijdelijke variabelen maken en gebruiken via macroacties, en kunnen fouten beter worden afgehandeld met behulp van nieuwe macroacties voor foutafhandeling. In eerdere versies van Access waren deze functies alleen beschikbaar in VBA. U kunt ook een macro rechtstreeks insluiten in de gebeurteniseigenschap van een object of besturingselement. Een ingesloten macro wordt onderdeel van het object of besturingselement en blijft erbij als het object of besturingselement wordt verplaatst of gekopieerd.

Macro's zijn een eenvoudige manier om allerlei verschillende programmeertaken af te handelen, zoals het openen en sluiten van formulieren en rapporten. U kunt de databaseobjecten, zoals formulieren en rapporten, die u hebt gemaakt, snel koppelen omdat er weinig syntaxis is om te onthouden. De argumenten voor elke actie worden namelijk weergegeven in de opbouwfunctie voor macro's.

Naast de verbeterde beveiliging en het gebruiksgemak van macro's, zijn macro's onmisbaar om de volgende taken uit te voeren:

  • Een actie of een set met acties toewijzen aan een toets. Hiervoor moet u een macrogroep met de naam AutoKeys.

  • Een actie of een reeks acties uitvoeren wanneer een database voor het eerst wordt geopend. Hiervoor moet u een macro maken met de naam AutoExec.

    Opmerking

    De AutoExec macro wordt uitgevoerd vóór andere macro's of VBA code, zelfs als u een opstartformulier hebt aangewezen in het dialoogvenster Opties voor Access en een macro of VBA code hebt gekoppeld aan dat formulier OnOpen of OnLoad die gebeurtenis.

Zie Informatie over macro's voor meer informatie over het maken van macro's.

Aandachtspunten voor VBA

Gebruik VBA in plaats van macro's als u een van de volgende handelingen wilt verrichten:

  • Gebruik ingebouwde functies of maak uw eigen. Access bevat veel ingebouwde functies, zoals IPmt, waarmee u de rente kunt berekenen die moet worden betaald. U kunt deze functies gebruiken om berekeningen uit te voeren zonder ingewikkelde expressies te maken. Hiermee VBAkunt u ook uw eigen functies maken om berekeningen uit te voeren die meer mogelijkheden bieden dan een expressie of om complexe expressies te vervangen. Daarnaast kunt u de functies die u in expressies maakt, gebruiken om een algemene bewerking op meer dan één object toe te passen.
  • Objecten maken of bewerken. In de meeste gevallen is het makkelijker om een object te maken en te wijzigen in de ontwerpweergave van dat object. In sommige gevallen zult u echter de definitie van een object via code willen bewerken. VBAHiermee kunt u alle objecten in een database bewerken, maar ook de database als geheel.
  • Acties op systeemniveau uitvoeren. U kunt de RunApp actie in een macro uitvoeren om vanuit Access een ander programma uit te voeren, zoals Microsoft Excel, maar verder is er weinig wat u met macro's kunt doen buiten Access. Met behulp van VBA, kunt u controleren of een bestand aanwezig is op de computer, automatisering of dynamische gegevensuitwisseling (DDE) gebruiken om te communiceren met andere Microsoft Windows-programma's zoals Excel, en functies aanroepen in Windows Dynamic Link Libraries (DLLs).
  • Records afzonderlijk bewerken. U kunt VBA een set met records stapsgewijs doorlopen en een bewerking uitvoeren op elke record. Macro's, daarentegen, kunt u gebruiken om hele sets met records in één keer te bewerken.

Naar boven

Veelvoorkomende programmeertaken uitvoeren met de wizard Opdrachtknop

Als u een opdrachtknop toevoegt aan een formulier, kan de wizard Opdrachtknop u helpen om eenvoudige taken te programmeren. De wizard helpt u bij het maken van een opdrachtknop voor het uitvoeren van een specifieke taak. In een Access-bestand (.accdb) maakt u met de wizard een macro die wordt ingesloten in de OnClick eigenschap van de opdrachtknop. In een .mdb OF-bestand .adp wordt met de wizard code gemaakt VBA omdat ingesloten macro's niet in die bestandsindelingen beschikbaar zijn. In beide gevallen kunt u de macro of VBA code vervolgens aanpassen of verbeteren als dat nodig is.

  1. Klik in het navigatiedeelvenster met de rechtermuisknop op het formulier waaraan u de opdrachtknop wilt toevoegen en klik op Ontwerpweergave.

  2. Klik op het tabblad Formulierontwerp op de pijl-omlaag om de galerie Besturingselementen weer te geven en zorg ervoor dat Wizards voor besturingselementen gebruiken is geselecteerd.

  3. Klik op het tabblad Formulierontwerp in de galerie Besturingselementen op Knop.

  4. Klik in het formulierontwerpraster op de plaats waar u de opdrachtknop wilt weergeven. De wizard Opdrachtknop wordt gestart.

  5. Klik op de eerste pagina van de wizard op de verschillende categorieën in de lijst Categorieën om te zien welke bewerkingen u met de wizard aan de opdrachtknop kunt koppelen. Selecteer in de lijst Acties de gewenste actie en klik vervolgens op Volgende.

  6. Selecteer het keuzerondje Tekst of Afbeelding om te bepalen of u tekst of een afbeelding wilt weergeven op de opdrachtknop.

    • Als u tekst wilt weergeven, kunt u de tekst in het vak naast Tekst desgewenst aanpassen.
    • Als u een afbeelding wilt weergeven, stelt de wizard een afbeelding uit de lijst voor. Als u een andere afbeelding wilt selecteren, schakelt u het selectievakje Alle afbeeldingen weergeven in om een lijst weer te geven met alle afbeeldingen voor opdrachtknoppen die beschikbaar zijn in Access, of klikt u op Bladeren om een afbeelding te selecteren die ergens anders is opgeslagen. Klik op Volgende.
  7. Voer een duidelijke naam in voor de opdrachtknop. Deze stap is optioneel en deze naam wordt niet weergegeven op de opdrachtknop. Het is echter een goed idee om een zinvolle naam in te voeren, zodat u de opdrachtknoppen veel beter uit elkaar kunt houden wanneer u later naar de opdrachtknop verwijst, bijvoorbeeld wanneer u de tabvolgorde voor besturingselementen op het formulier instelt. Als de opdrachtknop bijvoorbeeld is bedoeld om het formulier te sluiten, kunt u de naam van de cmdClose knop wijzigen of CommandClose.

  8. Klik op Voltooien. De opdrachtknop wordt op het formulier geplaatst.

  9. Als u wilt zien wat de wizard voor u heeft geprogrammeerd, volgt u deze optionele stappen:

    1. Druk op F4 om het eigenschappenvenster weer te geven, als dit nog niet wordt weergegeven.

    2. Klik in het eigenschappenvenster op het tabblad Gebeurtenis.

    3. Klik in het vak van de eigenschap Bij klikken op de knop Opbouwen .

      De opbouwfunctie voor macro's wordt gestart en u ziet de macro die met de wizard is gemaakt. U kunt de macro desgewenst bewerken. Zie Meer informatie over macro's. Wanneer u klaar bent, klikt u op het tabblad Macro-ontwerp in de groep Sluiten op Sluiten om de opbouwfunctie voor macro's te sluiten. Als er wordt gevraagd of u de wijzigingen wilt opslaan en de eigenschap wilt bijwerken, klikt u op Ja om de wijzigingen op te slaan of op Nee om de wijzigingen te annuleren.

  10. Klik op het tabblad Formulierontwerp in de groep Weergaven op Beeld en klik vervolgens op Formulierweergave. Klik op de nieuwe opdrachtknop om te kijken of deze werkt zoals verwacht.

Naar boven

Algemene informatie over macro's

Een macro is een hulpmiddel waarmee u taken kunt automatiseren en functionaliteit kunt toevoegen aan formulieren, rapporten en besturingselementen. Als u bijvoorbeeld een opdrachtknop toevoegt aan een formulier, kunt u de gebeurteniseigenschap van OnClick de knop koppelen aan een macro die de opdrachten bevat die moeten worden uitgevoerd als de knop wordt geselecteerd.

Het is handig om macro's van Access te zien van als een vereenvoudigde programmeertaal waarin u code kunt maken door een lijst met uit te voeren acties samen te stellen. Wanneer u een macro maakt, selecteert u elke actie uit een vervolgkeuzelijst en vult u vervolgens de vereiste gegevens in voor elke actie. Met macro's kunt u functionaliteit toevoegen aan formulieren, rapporten en besturingselementen zonder dat u code hoeft te schrijven in een VBA module. Macro's bieden een subset van de opdrachten die beschikbaar zijn in VBA, en de meeste mensen vinden het makkelijker om een macro te maken dan om code te schrijven VBA .

U maakt een macro met behulp van de opbouwfunctie voor macro's, die hieronder wordt weergegeven.

De opbouwfunctie voor macro's weergeven:

  • Klik op het tabblad Maken in de groep Macro's en code op Macro.

Naar boven

Algemene informatie over VBA-code

Net als bij macro's VBA kunt u taken automatiseren en functionaliteit toevoegen aan uw Access-toepassing. U kunt uitbreiden VBA met behulp van besturingselementen van derden, en u kunt uw eigen functies en procedures schrijven voor specifieke behoeften.

U kunt snel aan de slag VBA door eerst een Access-macro te maken en deze vervolgens te converteren naar VBA code. Instructies hiervoor vindt u in Macro's converteren naar VBA-code. Met deze functie maakt u een nieuwe VBA module die de equivalente bewerkingen in de macro uitvoert. Bovendien wordt Visual Basic Editor geopend, zodat u de procedure kunt gaan wijzigen. Wanneer u in Visual Basic Editor werkt, kunt u op trefwoorden klikken en op F1 drukken om de Help voor ontwikkelaars te openen en meer te lezen over elk trefwoord. U kunt op uw gemak de Help voor ontwikkelaars bekijken en ontdekken welke opdrachten u kunt gebruiken om de taken te programmeren die u wilt uitvoeren.

Naar boven

Macro's converteren naar VBA-code

U kunt Access gebruiken om macro's automatisch te converteren naar VBA modules of klassemodules. U kunt macro's converteren die zijn gekoppeld aan een formulier of rapport, ongeacht of ze bestaan als aparte objecten of als ingesloten macro's. Het is ook mogelijk om algemene macro's te converteren die niet zijn gekoppeld aan een bepaald formulier of rapport.

Macro's converteren die zijn gekoppeld aan een formulier of rapport

Dit proces converteert naar VBA alle macro's waarnaar wordt verwezen door of die zijn ingesloten in een formulier of rapport of een van de bijbehorende besturingselementen, en voegt de VBA code toe aan de klassemodule van het formulier of rapport. De klassemodule wordt onderdeel van het formulier of rapport en blijft bij het formulier of rapport wanneer dit wordt verplaatst of gekopieerd.

  1. Klik in het navigatiedeelvenster met de rechtermuisknop op het formulier of rapport en klik vervolgens op Ontwerpweergave.

  2. Klik op het tabblad Formulierontwerp in de groep Hulpmiddelen op Formuliermacro's converteren naar Visual Basic of Rapportmacro's converteren naar Visual Basic.

  3. Geef in het dialoogvenster Formuliermacro's converteren of Rapportmacro's converteren aan of Access code voor foutafhandeling moet toevoegen aan de functies die worden gegenereerd. Als uw macro's opmerkingen bevatten, moet u ook aangeven of u deze opmerkingen in de functies wilt opnemen. Klik op Converteren om door te gaan. Als er geen klassemodule bestaat voor het formulier of rapport, wordt er een gemaakt in Access en wordt er aan de module een procedure toegevoegd voor elke macro die is gekoppeld aan het formulier of rapport. Bovendien worden de gebeurteniseigenschappen van het formulier of rapport aangepast door Access, zodat deze de nieuwe VBA procedures uitvoeren in plaats van de macro's.

  4. De code weergeven en bewerken VBA :

    1. Als het eigenschappenvenster nog niet wordt weergegeven, drukt u op F4 terwijl het formulier of rapport is geopend in de ontwerpweergave.

    2. Klik op het tabblad Gebeurtenis van het eigenschappenvenster in een eigenschappenvak dat wordt weergegeven [Event Procedure]en klik vervolgens op de knop Opbouw . Als u de gebeurteniseigenschappen voor een bepaald besturingselement wilt weergeven, klikt u op het besturingselement om dit te selecteren. Als u de gebeurteniseigenschappen voor het hele formulier of rapport wilt bekijken, selecteert u Formulier of Rapport in de vervolgkeuzelijst bovenaan het eigenschappenvenster.

      Visual Basic Editor wordt geopend en u ziet de gebeurtenisprocedure in de bijbehorende klassemodule. U kunt omhoog of omlaag scrollen om eventuele andere procedures in de klassemodule te bekijken.

Algemene macro's converteren

  1. Klik in het navigatiedeelvenster met de rechtermuisknop op de macro die u wilt converteren en klik vervolgens op Ontwerpweergave.

  2. Klik op het tabblad Macro-ontwerp in de groep Hulpmiddelen op Macro's converteren naar Visual Basic.

  3. Selecteer de gewenste opties in het dialoogvenster Macro converteren en klik vervolgens op Converteren. De macro wordt geconverteerd en Visual Basic Editor wordt geopend.

  4. De code weergeven en bewerken VBA :

    1. Als in Visual Basic Editor het deelvenster Projectverkenner niet wordt weergegeven, klikt u in het menu Beeld op Projectverkenner.
    2. Vouw de boomstructuur uit onder de naam van de database waarin u werkt.
    3. Dubbelklik onder Modules op de Converted Macro-<macro name> module. De module wordt geopend in Visual Basic Editor.

Een VBA-functie koppelen aan een gebeurteniseigenschap

Wanneer u een globale macro converteert naar VBA, wordt de VBA code in een standaardmodule geplaatst. In tegenstelling tot een klassemodule maakt een standaardmodule geen onderdeel uit van een formulier of rapport. Waarschijnlijk wilt u de functie koppelen aan een gebeurteniseigenschap in een formulier, rapport of besturingselement, zodat de code precies wordt uitgevoerd waar en wanneer u maar wilt. Hiervoor kunt u de VBA code kopiëren naar een klassemodule en deze vervolgens koppelen aan een gebeurteniseigenschap, of u kunt een speciale aanroep doen van de gebeurteniseigenschap naar de standaardmodule met behulp van de volgende procedure.

  1. Kijk in Visual Basic Editor wat de naam van de functie is. Als u bijvoorbeeld een macro met de naam MyMacro, is MyMacro()de naam van de functie .
  2. Sluit Visual Basic Editor af.
  3. Klik in het navigatiedeelvenster met de rechtermuisknop op het formulier of rapport waaraan u de functie wilt koppelen, en klik vervolgens op Ontwerpweergave.
  4. Klik op het besturingselement of de sectie waaraan u de functie wilt koppelen.
  5. Druk op F4 om het eigenschappenvenster weer te geven, als dit nog niet wordt weergegeven.
  6. Klik op het tabblad Gebeurtenis van het eigenschappenvenster in het vak van de gebeurteniseigenschap waaraan u de functie wilt koppelen.
  7. Typ in het eigenschappenvak een gelijkteken (=), gevolgd door de naam van de functie, bijvoorbeeld =MyMacro(). Vergeet de haakjes niet.
  8. Sla het formulier of rapport op door op de werkbalk Snelle toegang te klikken op Opslaan.
  9. Dubbelklik in het navigatiedeelvenster op het formulier of rapport, en kijk of de code op de juiste manier wordt uitgevoerd.

U bent nu bekend met de basisstappen voor het toevoegen VBA van code aan uw database. In dit artikel worden alleen de basisbeginselen beschreven die nodig zijn om aan de slag te gaan. Veel uitstekende naslagwerken en onlinebronnen kunnen u helpen uw programmeervaardigheden op te bouwen.

Zie ook

Een macro voor de gebruikersinterface (UI) maken

Een Access-macro uitvoeren via een sneltoets

Opstartgebeurtenissen automatiseren met een macro

Een macro maken die wordt uitgevoerd als u een database opent

Volgorde van gebeurtenissen voor databaseobjecten

Naar boven