U kunt expressies gebruiken om allerlei dingen met uw gegevens te doen. U kunt bijvoorbeeld bepalen hoeveel dagen en er zijn verstreken sinds een order is verzonden, of een Voornaam en Achternaam combineren in een Naam. In de volgende secties wordt stapsgewijs uitgelegd hoe u een expressie maakt.
In dit artikel
Waarden berekenen voor besturingselementen in formulieren en rapporten
Wanneer u een expressie gebruikt als gegevensbron voor een besturingselement, maakt u een berekend besturingselement. Stel u hebt een rapport met meerdere voorraadbeheerrecords en u wilt een totaal maken in de voettekst van het rapport dat alle regelitems opsomt.
Als u het totaal wilt berekenen, plaatst u een tekstvakbesturingselement in de voettekst van het rapport en stelt u de eigenschap Besturingselementbron van het tekstvak in op de volgende expressie:
=Sum([table_field])
In dit geval staat table_field voor de naam van het veld dat de waarden van het subtotaal bevat. Dit veld kan afkomstig zijn van een tabel of een query. Met de functie Som berekent u het totaal voor alle waarden in table_field.
PROCEDURE
-
Klik in het navigatiedeelvenster met de rechtermuisknop op het formulier dat u wilt wijzigen en klik vervolgens op Indelingsweergave of Ontwerpweergave in het snelmenu.
-
Selecteer het besturingselement waarin u een expressie wilt invoeren.
-
Klik op F4 als het eigenschappenblad nog niet wordt weergegeven, om dit weer te geven.
-
Als u handmatig een expressie wilt maken, klikt u op het tabblad Gegevens van het eigenschappenvenster op de eigenschap Besturingselementbron van het tekstvak. Typ vervolgens = gevolgd door de rest van de expressie. Als u bijvoorbeeld het bovenstaande subtotaal wilt berekenen, typt u =Sum([table_field]). Let erop dat u table_field vervangt door de naam van uw eigen veld.
-
Als u een expressie wilt maken met behulp van de opbouwfunctie voor expressies, klikt u op de knop Bouwen in het eigenschappenvak.
Nadat u de expressie hebt afgerond, zal het eigenschappenblad er als volgt uitzien:
Expressies gebruiken als querycriteria
U gebruikt criteria in een query om het aantal resultaten te verkleinen. U voert de criteria in als een expressie en in Access worden alleen de rijen geretourneerd die overeenkomen met de expressie.
Stel dat u alle orders wilt weergeven waarvan de leverdatum in de eerste drie maanden van het jaar 2017 valt. Om de criteria in te voeren, typt u de volgende expressie in de cel Criteria voor de Datum/tijd-kolom in de query. In dit voorbeeld wordt gebruikgemaakt van een Datum/tijd-kolom met de naam Leverdatum. Voer de criteria als volgt in om een datumbereik te definiëren:
Between #1/1/2017# And #3/31/2017#
De kolom Verzenddatum ziet er dan ongeveer als volgt uit:
Voor elke record in de tabel Order geldt dat als de waarde in de kolom Leverdatum in het opgegeven datumbereik valt, de record wordt opgenomen in de uitvoer van de query. Let op: in de expressie moeten de datumwaarden tussen hekjes staan (#). Waarden tussen hekjes worden in Access als gegevens van het type Datum/tijd behandeld. Door waarden als Datum/tijd-gegevens te behandelen, kunnen er berekeningen op deze waarden worden uitgevoerd, zoals het aftrekken van een datum van een andere datum.
PROCEDURE
-
Klik in het navigatiedeelvenster met de rechtermuisknop op de query die u wilt wijzigen en klik vervolgens op Ontwerpweergave in het snelmenu.
-
Klik in de cel Criteria in de kolom waarvoor u de criteria wilt opgeven.
-
Als u de expressie handmatig wilt maken, typt u de criteria-expressie. Zet de operator = niet voor de criteria-expressie.
-
Als u de expressie wilt maken met de opbouwfunctie voor expressies, klikt u op het lint op Ontwerpen en vervolgens in de groep Query's instellen op Opbouwen .
Als u een groter gebied wilt waarin u de expressie kunt bewerken, plaatst u de cursor in de cel Criteria en drukt u op Shift+F2 om het dialoogvenster In- en uitzoomen weer te geven:
Tip Als u de tekst beter leesbaar wilt maken, selecteert u Lettertype.
Een berekend veld in een query maken
Stel dat u een nieuwe query ontwerpt en de resultaten van een berekening met andere velden in de query wilt weergeven. Om het berekende veld te maken, typt u een expressie in een lege cel in de rij Veld in de query. Als u bijvoorbeeld een query hebt met het veld Aantal en het veld Prijs per stuk, kunt u de twee velden vermenigvuldigen om een berekend veld te maken voor Factuurprijs door de volgende expressie in te voeren in de rij Veld van de query:
Extended Price: [Quantity] * [Unit Price]
De resulterende kolom krijgt de naam Extended Price: omdat de expressie wordt voorafgegaan door de tekst Factuurprijs:. Deze naam wordt vaak een alias genoemd. Als u geen alias opgeeft, wordt deze door Access gemaakt, bijvoorbeeld Expr1.
Wanneer u de query uitvoert, wordt de berekening door Access uitgevoerd voor elke rij, zoals weergegeven in de volgende afbeelding:
PROCEDURE
-
Klik in het navigatiedeelvenster met de rechtermuisknop op de query die u wilt wijzigen en klik vervolgens op Ontwerpweergave in het snelmenu.
-
Klik op de cel Veld in de kolom waarin u het berekende veld wilt maken.
-
Als u de expressie handmatig wilt maken, typt u de expressie.
Zet de operator = niet voor de criteria-expressie, maar begin de expressie met een beschrijvend label gevolgd door een dubbele punt. Typ bijvoorbeeld Extended Price: als label voor een expressie waarmee een berekend veld met de naam Factuurprijs wordt gemaakt. Voer vervolgens na de dubbele punt de criteria voor de expressie in.
-
Als u de expressie wilt maken met de opbouwfunctie voor expressies, klikt u op het lint op Ontwerpen en vervolgens in de groep Query's instellen op Opbouwen.
Een berekend veld in een tabel maken
In Access kunt u een berekend veld in een tabel maken. Daardoor is er geen afzonderlijke query voor berekeningen meer nodig. Als u bijvoorbeeld een tabel hebt waarin de hoeveelheid, de prijs en de belasting voor elk artikel in een order wordt vermeld, kunt u een berekend veld toevoegen waarin het totaalbedrag wordt weergegeven:
[Quantity]*([UnitPrice]+([UnitPrice]*[TaxRate]))
De berekening kan geen velden uit andere tabellen of query’s bevatten en de resultaten van de berekening zijn alleen-lezen.
PROCEDURE
-
Klik dubbel op de tabel navigatievenster.
-
Blader horizontaal door de kolom helemaal rechts in de tabel en klik op de kolomtitel Klik om toe te voegen.
-
Klik in de verschenen lijst op Berekend veld en klik vervolgens op de soort gegevens die u als resultaat wilt hebben. De opbouwfunctie voor expressies wordt weergegeven.
-
Voer de gewenste berekening voor dit veld in. Bijvoorbeeld:
[Quantity] * [Unit Price]
Bij een berekend veld begint u de expressie niet met een gelijkteken (=).
-
Klik op OK.
Access voegt het berekende veld toe en markeert vervolgens de titel van het veld, zodat u een veldnaam kunt typen.
-
Typ een naam voor het berekende veld en druk vervolgens op ENTER.
Standaardwaarden instellen voor een veld in een tabel
U kunt een expressie gebruiken om een standaardwaarde voor een veld in een tabel te specificeren: een waarde die in Access wordt gebruikt voor nieuwe records, tenzij een andere waarde wordt opgegeven. Stel dat u automatisch de datum en tijd wilt invoegen in het veld Orderdatum wanneer iemand een nieuwe record toevoegt. Hiervoor kunt u mogelijk de volgende expressie gebruiken:
Now()
PROCEDURE
-
Dubbelklik in het navigatiedeelvenster op de tabel die u wilt wijzigen.
Access opent de tabel in de gegevensbladweergave.
-
Selecteer het veld dat u wilt wijzigen.
-
Klik op het lint op Tabelvelden en klik in de groep Eigenschappen op Standaardwaarde. De opbouwfunctie voor expressies wordt weergegeven.
-
Typ uw expressie in het venster. Begin de expressie met een gelijkteken (=).
Opmerking Als een besturingselement afhankelijk is van een tabelveld en zowel het besturingselement als het tabelveld standaardwaarden hebben, heeft de standaardwaarde van het besturingselement voorrang op het tabelveld.
Standaardwaarden instellen voor besturingselementen
Er worden ook vaak expressies gebruikt in de eigenschap Standaardwaarde van een besturingselement. De eigenschap Standaardwaarde van een besturingselement lijkt op de eigenschap Standaardwaarde van een veld in een tabel. Als u bijvoorbeeld de huidige datum wilt gebruiken als de standaardwaarde voor een tekstvak, kunt u de volgende expressie gebruiken.
Date()
De expressie Datum wordt gebruikt om wel de huidige datum maar niet de tijd te retourneren. Als het tekstvak afhankelijk is van een tabelveld en het veld een standaardwaarde heeft, heeft de standaardwaarde van het besturingselement voorrang op het tabelveld. Het is vaak beter om de eigenschap Standaardwaarde in te stellen voor het veld in de tabel. Als u dan een aantal besturingselementen voor verschillende formulieren baseert op hetzelfde tabelveld, wordt dezelfde standaardwaarde toegepast op elk besturingselement, zodat de gegevensinvoer consistent is op elk formulier.
PROCEDURE
-
Klik in het navigatiedeelvenster met de rechtermuisknop op het formulier of rapport dat u wilt wijzigen en klik vervolgens op Ontwerpweergave of Indelingsweergave in het snelmenu.
-
Selecteer het besturingselement dat u wilt wijzigen.
-
Druk op F4 om het eigenschappenvenster weer te geven, als het nog niet wordt weergegeven.
-
Klik op het tabblad Alle in het eigenschappenvenster en klik vervolgens op het eigenschappenvak Standaardwaarde.
-
Typ de expressie of klik op de knop Bouwen in het eigenschappenvak om een expressie te maken met behulp van de opbouwfunctie voor expressies.
Een validatieregel toevoegen aan een tabelveld of record
Expressies zijn zeer nuttig voor het valideren van gegevens wanneer die in de database worden ingevoerd: ze sluiten verkeerde gegevens uit. In tabellen bestaan er twee soorten validatieregels: veldvalidatieregels (waardoor gebruikers geen verkeerde gegevens in een enkel veld kunnen invoeren), en recordvalidatieregels (waardoor gebruikers geen records kunnen maken die niet aan de validatieregel voldoen). U gebruikt expressies voor beide soorten validatieregels.
Stel dat u een tabel hebt, genaamd Voorraad met een veld Eenheden op voorraad en u wilt een regel instellen waardoor gebruikers worden gedwongen een waarde in te voeren die groter dan of gelijk is aan nul. Met andere woorden: de voorraad kan nooit een negatief getal hebben. U doet dit door de volgende expressie te gebruiken als een veldvalidatie in het veld Eenheden op voorraad:
>=0
PROCEDURE: een validatieregel voor een veld of record invoeren
-
Dubbelklik in het navigatievenster op de tabel die u wilt wijzigen. Access opent de tabel in de gegevensbladweergave.
-
Selecteer het veld dat u wilt wijzigen voor een veldvalidatieregel.
-
Klik op het lint op Tabelvelden, klik in de groep Veldvalidatie op Validatie en klik vervolgens op Veldvalidatieregel of Validatieregel. De opbouwfunctie voor expressies wordt weergegeven.
-
Begin met het invoeren van de door u gewenste criteria. Typ bijvoorbeeld het volgende voor een veldvalidatieregel waarvoor vereist is dat alle waarden groter dan of gelijk zijn aan nul:
>=0
Zet geen gelijkteken (=) voor de expressie.
Validatieregelexpressies zijn Booleaans, wat betekent dat ze True of False zijn voor elke gegeven invoerwaarde. Een validatieregel moet True zijn voor de waarde, anders wordt de invoer in Access niet opgeslagen en wordt een validatiebericht weergegeven met de fout. Als u in dit voorbeeld voor het veld Eenheden op voorraad een waarde invoert die kleiner is dan nul, resulteert de validatieregel in False en accepteert Access de waarde niet. Als u geen validatiebericht hebt opgegeven, zoals wordt beschreven in het volgende gedeelte, geeft Access een eigen bericht weer waarin staat dat de opgegeven waarde niet is toegestaan volgens de validatieregel voor het veld.
PROCEDURE: een validatiebericht invoeren
Om uw database gemakkelijker te kunnen gebruiken, kunt u aangepaste validatieberichten maken. Deze vervangen de algemene berichten in Access die niet overeenkomen met een validatieregel. U kunt een aangepast validatiebericht gebruiken om specifieke informatie te geven, zodat de gebruiker bijvoorbeeld de juiste gegevens kan invoeren, "De waarde van de eenheden op voorraad mag geen negatief aantal zijn".
-
Dubbelklik in het navigatiedeelvenster op de tabel die u wilt wijzigen.
Access opent de tabel in de gegevensbladweergave.
-
Selecteer voor een veldvalidatiebericht het veld aan welk u de validatieregel hebt toegevoegd.
-
Klik op het lint op Tabelvelden, klik in de groep Veldvalidatie op Validatie en klik vervolgens op Veldvalidatiebericht of Validatiebericht.
-
Typ in het dialoogvenster Validatiebericht invoeren het bericht dat moet verschijnen, wanneer de gegevens niet overeenkomen met de validatieregel en klik vervolgens op OK.
Een validatieregel toevoegen aan een besturingselement
Naast tabelvelden en records hebben ook besturingselementen een eigenschap Validatieregel die een expressie kan accepteren. Stel dat u een formulier gebruikt voor het opgeven van het datumbereik voor een rapport en dat u ervoor wilt zorgen dat de begindatum niet vóór 1-1-2017 valt. U kunt de eigenschappen Validatieregel en Validatietekst instellen voor het tekstvak waarin u de begindatum invoert op het volgende:
Eigenschap |
Instelling |
---|---|
Validatieregel |
>=#1-1-2017# |
Validatietekst |
U kunt geen datum opgeven die vóór 1-1-2017 valt. |
Als u een datum probeert in te voeren die eerder is dan 1-01-2017, wordt er een bericht weergegeven en wordt de tekst weergegeven in de eigenschap Validatietekst . Als er geen tekst is ingevoerd in het eigenschapsvak Validatietekst , wordt een algemeen bericht weergegeven. Nadat u op OK hebt geklikt, keert u terug naar het tekstvak.
Als u een validatieregel instelt voor een tabelveld, wordt de regel afgedwongen in de gehele database waar dat veld wordt gewijzigd. Als u echter een validatieregel instelt voor een besturingselement op een formulier, wordt de regel alleen afgedwongen wanneer dat formulier wordt gebruikt. Het afzonderlijk instellen van validatieregels voor tabelvelden en voor besturingselementen kan handig zijn als u verschillende validatieregels wilt gebruiken voor verschillende gebruikers.
PROCEDURE
-
Klik in het navigatiedeelvenster met de rechtermuisknop op het formulier of rapport dat u wilt wijzigen en klik vervolgens op Ontwerpweergave of Indelingsweergave in het snelmenu.
-
Klik met de rechtermuisknop op het besturingselement dat u wilt wijzigen en klik vervolgens op Eigenschappen in het snelmenu. Het eigenschappenvenster van het besturingselement wordt weergegeven.
-
Klik op het tabblad Alle en klik vervolgens op het eigenschappenvak Validatieregel.
-
Typ de expressie of klik op de knop Bouwen in het eigenschappenvak om een expressie te maken met behulp van de opbouwfunctie voor expressies.
Zet de operator = niet voor de expressie.
-
Als u de tekst wilt aanpassen die wordt weergegeven als een gebruiker gegevens invoert die niet overeenkomen met de validatieregel, typt u de gewenste tekst in de eigenschap Validatietekst.
Gegevens in rapporten groeperen en sorteren
Gebruik het deelvenster Groeperen, sorteren en totaal om groepeerniveaus en sorteervolgordes te definiëren voor de gegevens in een rapport. Over het algemeen groepeert of sorteert u voor een veld dat u in een lijst selecteert. Als u echter wilt groeperen of sorteren voor een berekende waarde, kunt u ook een expressie invoeren.
Groeperen is het combineren van kolommen die dubbele waarden bevatten. Stel dat uw database omzetgegevens bevat voor kantoren in verschillende plaatsen en dat een van de rapporten in de database 'Omzet per plaats' heet. De query die de gegevens voor dit rapport levert, zal de gegevens groeperen aan de hand van de waarden van de plaatsen. Met behulp van dit type groepering kunnen gegevens eenvoudiger worden gelezen en begrepen.
Sorteren is daarentegen het opleggen van een sorteervolgorde aan de rijen (de records) in uw queryresultaten. U kunt records bijvoorbeeld aan de hand van hun primaire sleutelwaarden (of een andere set waarden in een ander veld) in oplopende of aflopende volgorde sorteren, maar u kunt de records ook op een of meer tekens in een opgegeven volgorde sorteren, zoals alfabetische volgorde.
PROCEDURE: groeperen en sorteren aan een rapport toevoegen
-
Klik in het navigatiedeelvenster met de rechtermuisknop op het rapport dat u wilt wijzigen en klik vervolgens op Indelingsweergave of Ontwerpweergave in het snelmenu.
-
Klik op het lint op Rapportontwerp en klik in de groep Groeperen & totalen op Groeperen & sorteren. Het deelvenster Groeperen, sorteren en totaal berekenen wordt onder het rapport weergegeven.
-
Klik op Groep toevoegen om een groepeerniveau aan het rapport toe te voegen.
-
Klik op Sortering toevoegen om een sorteervolgorde aan het rapport toe te voegen.
In het deelvenster wordt een nieuw groepeerniveau of nieuwe sorteervolgorde weergegeven, plus een lijst van de velden die gegevens leveren voor het rapport. In deze afbeelding ziet u een voorbeeld van een typisch nieuw(e) groepeerniveau (groeperen op Categorie) en sorteervolgorde (sorteren op Fabrikant) en een lijst die de beschikbare velden voor groeperen en sorteren bevat:
-
Klik onder de lijst met beschikbare velden op expressie om de opbouwfunctie voor expressies te starten.
-
Geef de te gebruiken expressie op in het expressievak (het bovenste vak) van de opbouwfunctie voor expressies. De expressie moet beginnen met de operator =.
PROCEDURE: een expressie toevoegen aan een bestaande groep of sortering
-
Klik in het navigatiedeelvenster met de rechtermuisknop op het rapport dat u wilt wijzigen en klik vervolgens op Indelingsweergave of Ontwerpweergave in het snelmenu.
-
Klik op het groepeerniveau of de sorteervolgorde die u wilt wijzigen.
-
Klik op de pijl omlaag naast Groeperen op (voor groepeerniveaus) of Sorteren op (voor sorteervolgordes). Er wordt een lijst geopend die de beschikbare velden bevat.
-
Klik onder de lijst met de velden op expressie om de opbouwfunctie voor expressies te starten.
-
Typ de expressie in het expressievak (het bovenste vak) van de opbouwfunctie voor expressies. De expressie moet beginnen met de operator =.
Bepalen welke macroacties worden uitgevoerd
Het kan voorkomen dat een actie of een reeks acties in een macro alleen moet worden uitgevoerd als aan een bepaalde voorwaarde wordt voldaan. Stel u wilt een actie alleen uitvoeren wanneer de waarde in een tekstvak groter dan of gelijk is aan 10. Voor het instellen van deze regel gebruikt u een expressie in een If-blok in de macro om de voorwaarde in de macro te definiëren.
In dit voorbeeld is de naam van het tekstvak Items. De expressie waarmee de voorwaarde wordt ingesteld, is:
[Items]>=10
PROCEDURE
-
Klik in het navigatiedeelvenster met de rechtermuisknop op de macro die u wilt wijzigen en klik vervolgens op Ontwerpweergave in het snelmenu.
-
Klik op het If-blok dat u wilt wijzigen of voeg een If-blok toe vanuit het deelvenster Actiecatalogus.
-
Klik op de bovenste regel van het If-blok.
-
Typ uw voorwaardelijke expressie in het vak of klik op de knop Bouwen naast het expressievak om de opbouwfunctie voor expressies te gaan gebruiken.
De expressie die u invoert, moet een booleaanse expressie zijn, wat betekent dat deze True of False is. De macroacties in het If-blok worden alleen uitgevoerd wanneer de voorwaarde True is.