Wanneer u met Microsoft Access werkt, hebt u vaak waarden nodig die zelf niet in de gegevens staan. U moet bijvoorbeeld btw berekenen voor een bepaalde bestelling of de totale waarde van de bestelling zelf berekenen. U kunt deze waarden berekenen met behulp van expressies. Als u expressies wilt gebruiken, moet u deze met de juiste syntaxis schrijven. De syntaxis is de set regels waarmee de woorden en symbolen in een expressie juist worden gecombineerd. In eerste instantie zijn expressies in Access lastig te lezen. Het wordt een stuk makkelijker als u de expressiesyntaxis goed begrijpt en u een beetje oefent.

In dit artikel

Overzicht van expressies

Een expressie is een combinatie van bepaalde of alle volgende items: ingebouwde of door de gebruiker gedefinieerde functies, id's, operatoren, waarden en constanten die één waarde opleveren.

de onderdelen van een expressie

De volgende expressie bevat bijvoorbeeld veelvoorkomende elementen:

=Sum([Purchase Price])*0.08 
  • Sum() is een ingebouwde functie

  • [Purchase Price] is een id

  • * is een wiskundige operator

  • 0.08 is een constante

Deze expressie kunt u gebruiken in een tekstvak of de voettekst van een formulier of rapport, voor het berekenen van de btw voor een groep items.

Expressies kunnen veel ingewikkelder of eenvoudiger zijn dan dit voorbeeld. De volgende Booleaans expressie bestaat bijvoorbeeld alleen uit een operator en een constante:

>0

Deze expressie retourneert:

  • True wanneer deze wordt vergeleken met een getal boven 0

  • False wanneer deze wordt vergeleken met een getal onder 0

U kunt deze expressie gebruiken voor de eigenschap Validatieregel van een besturingselement of tabelveld om ervoor te zorgen dat alleen positieve waarden worden ingevoerd. Expressies worden op veel plaatsen gebruikt om berekeningen uit te voeren, tekens te bewerken of gegevens te testen. Tabellen, query's, formulieren, rapporten en macro's hebben allemaal eigenschappen die ondersteuning bieden voor expressies. U kunt bijvoorbeeld expressies gebruiken in de eigenschappen Besturingselementbron en Standaardwaarde van een besturingselement. Ook kunt u expressies gebruiken in de eigenschap Validatieregel voor een tabelveld.

Naar boven

Onderdelen van expressies

Als u een expressie wilt schrijven, combineert u id's met behulp van functies, operatoren, constanten en waarden. Elke geldige expressie moet minimaal één functie of minimaal één id bevatten en kan ook constanten of operatoren bevatten. U kunt een expressie ook gebruiken als onderdeel van een andere expressie, meestal als een argument van een functie. Dit heet het nesten van expressies.

  • Id's    De algemene vorm is:

    [Collection name]![Object name].[Property name]

    U hoeft slechts voldoende delen van een id op te geven om deze uniek te maken in de context van de expressie. Het gebeurt wel dat een id de vorm [Object name] krijgt.

  • Functies    De algemene vorm is:

    Function(argument, argument)

    Een van de argumenten is meestal een id of een expressie. Voor sommige functies zijn geen argumenten vereist. Bekijk de syntaxis van een functie voordat u die gebruikt. Zie Functies (per categorie) voor meer informatie.

  • Operators    De algemene vorm is:

    Identifier operator identifier

    Er zijn uitzonderingen op deze vorm, zoals wordt beschreven in de tabellen in de sectie Operatoren.

  • Constanten    De algemene vorm is:

    Identifier comparison_operator  constant
  • waarden    Waarden kunnen op veel plekken in een expressie voorkomen.

Naar boven

Objecten, verzamelingen en eigenschappen

Alle tabellen, query's, formulieren, rapporten en velden in een Access-database worden afzonderlijk objecten genoemd. Elk object heeft een naam. Sommige objecten hebben al een naam, zoals de tabel Contactpersonen in een database die is gemaakt op basis van de Microsoft Office Access-sjabloon voor contactpersonen. Wanneer u een nieuw object maakt, geeft u dit een naam.

De set met alle leden van een bepaald type object wordt ook wel een verzameling genoemd. De set met alle tabellen in een database is bijvoorbeeld een verzameling. Sommige objecten die deel uitmaken van een verzameling in de database, kunnen ook verzamelingen zijn die andere objecten bevatten. Een tabelobject is bijvoorbeeld een verzameling die veldobjecten bevat.

Objecten hebben eigenschappen waarmee de kenmerken van het object worden beschreven en deze kunnen worden gewijzigd. Een queryobject heeft bijvoorbeeld een eigenschap Standaardweergave waarmee de query wordt beschreven en waarmee u kunt opgeven hoe deze eruitziet wanneer u deze uitvoert.

In het volgende diagram ziet u de relatie tussen verzamelingen, objecten en eigenschappen:

Relaties van verzamelingen met objecten met eigenschappen

3 Een eigenschap

2 Een object

1 Een verzameling

Naar boven

Id's

Wanneer u een object, verzameling of eigenschap gebruikt in een expressie, verwijst u naar dit element met een id. Een id bevat de naam van het element dat u aanduidt en de naam van het element waartoe dit behoort. De id voor een veld bevat bijvoorbeeld de naam van het veld en de naam van de tabel waarvan het veld deel uitmaakt. Een voorbeeld van een dergelijke id is:

[Customers]![BirthDate]

In sommige gevallen werkt de naam van een element zelf al als id. Dit is het geval wanneer de naam van het element uniek is in de context van de expressie die u maakt. De rest van de id wordt geïmpliceerd door de context. Als u bijvoorbeeld een query ontwerpt waarin slechts één tabel wordt gebruikt, werken de veldnamen zelf als id's, omdat de veldnamen in een tabel uniek moet zijn in deze tabel. Omdat u slechts één tabel gebruikt, wordt de naam van de tabel geïmpliceerd in elke id die u in de query gebruikt om naar een veld te verwijzen.

In andere gevallen moet u de delen van een id expliciet aangeven om een verwijzing juist te laten werken. Dit is het geval wanneer een id niet uniek is in de context van de expressie. Wanneer iets dubbelzinnig is, moet u expliciet voldoende delen van de id opgeven om deze uniek te maken in de context. U ontwerpt bijvoorbeeld een query waarin de tabel Producten en de tabel Orders worden gebruikt en beide tabellen het veld Product-id bevatten. In dit geval moet de id die u in de query gebruikt om te verwijzen naar een van de velden Product-id niet alleen de veldnaam bevatten, maar ook de naam van de tabel. Bijvoorbeeld:

[Products]![ProductID]

Id-operatoren    Er zijn drie operatoren die u in een id kunt gebruiken:

  • De uitroeptekenoperator (!)

  • De puntoperator (.)

  • De operator met vierkante haken ([ ])

U gebruikt deze operatoren door elk deel van de id tussen vierkante haken te plaatsen en deze met elkaar te verbinden met een uitroepteken- of puntoperator. Een id voor het veld Achternaam in de tabel Werknemers kan bijvoorbeeld worden uitgedrukt als [Employees]![Last Name]. De uitroeptekenoperator geeft aan dat daarna een object volgt dat behoort tot de verzameling die voorafgaat aan het uitroepteken. In dit geval is [Achternaam] een veldobject dat behoort tot de verzameling [Werknemers], die een tabelobject is.

U hoeft niet altijd vierkante haken rond een id of gedeeltelijke id te typen. Als de id geen spaties of andere speciale tekens bevat, worden de vierkante haken in Access automatisch toegevoegd wanneer de expressie wordt gelezen. Het is echter toch handig om zelf de haken te typen. U voorkomt zo fouten en u kunt duidelijk zien dat een bepaald deel van een expressie een id is.

Naar boven

Functies, operatoren, constanten en waarden

Als u een expressie wilt maken, hebt u niet alleen id's nodig: u moet ook een bepaalde actie uitvoeren. U gebruikt functies, operatoren en constanten om acties uit te voeren in een expressie.

Functies

Een functie is een procedure die u in een expressie kunt gebruiken. Voor sommige functies, zoals Date, is geen invoer vereist om deze te laten werken. Voor de meeste functies moet u echter zogenoemde argumenten invoeren.

In het voorbeeld aan het begin van dit artikel gebruikt de functie DatePart twee argumenten: een intervalargument met een waarde van "yyyy" en een datumargument met een waarde van [Customers]![BirthDate]. Voor de functie DatePart zijn ten minst twee van deze argumenten vereiste (interval en datum) ende functie werkt met maximaal vier argumenten.

De volgende lijst bevat een aantal functies die veel worden gebruikt in expressies. Klik op de koppeling voor elke functie voor meer informatie over de syntaxis die u met de desbetreffende functie gebruikt.

  • Met de functie Date wordt de huidige systeemdatum ingevoegd in een expressie. Deze wordt gebruikt met de functie Format en wordt ook gebruikt met veld-id's voor velden met datum-/tijdgegevens.

    =Date()
  • De functie DatePart wordt gebruikt om een deel van een datum te bepalen of op te halen, meestal een datum die wordt opgehaald uit een veld-id, maar soms een datumwaarde die wordt geretourneerd door een andere functie, zoals Date.

    DatePart ( "yyyy", Date())
  • Met de functie DateDiff wordt het verschil tussen twee datums bepaald, meestal tussen een datum die wordt opgehaald uit een veld-id en een datum die worden opgehaald met de functie Date.

    =DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10 
  • Met de functie Format wordt een notatie toegepast op een id en op de resultaten van een andere functie.

    Format([Date],"ww")=Format(Now(),"ww")-1 
  • Met de functie IIf wordt geëvalueerd of een expressie waar of onwaar is, waarna een waarde wordt geretourneerd als de expressie waar is en een andere waarde als de expressie wordt geëvalueerd als onwaar.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
  • De functie InStr wordt gebruikt om te zoeken naar de positie van een teken of reeks in een andere tekenreeks. De tekenreeks waarnaar wordt gezocht, wordt meestal opgehaald uit een veld-id.

    InStr(1,[IPAddress],".")
  • De functies Left, Mid en Right worden gebruikt om tekens op te halen uit een tekenreeks, vanaf het meest linkse teken (Left), een specifieke positie in het midden (Mid) of het meest rechtse teken (Right). Deze worden vaak gebruikt met de functie InStr. De tekenreeks waaruit tekens worden opgehaald met deze functies, wordt meestal verkregen uit een veld-id.

    Left([ProductName], 1)
    Right([AssetCode], 2) 
    Mid([Phone],2,3) 
    

Zie Functies (per categorie) voor een lijst met functies.

Operatoren

Een operator is een woord of symbool dat een specifieke rekenkundige of logische relatie tussen de andere elementen van een expressie aangeeft. De volgende operatoren zijn beschikbaar:

  • Rekenkundig, zoals het plusteken (+).

  • Vergelijking, zoals het gelijkteken (=).

  • Logisch, zoals Not.

  • Samenvoeging, zoals &.

  • Speciaal, zoals Like.

Operatoren worden meestal gebruikt om een relatie tussen twee id's aan te geven. In de volgende tabellen worden de operatoren beschreven die u in Access-expressies kunt gebruiken.

Rekenkundig    

Gebruik de rekenkundige operatoren om een waarde te berekenen aan de hand van twee of meer getallen of om het teken van een getal te wijzigen van positief in negatief.

Operator

Doel

Voorbeeld

+

Twee getallen optellen.

[Subtotaal]+[Btw]

-

Het verschil tussen twee getallen vinden of de negatieve waarde van een getal aangeven.

[Prijs]-[Korting]

*

Twee getallen vermenigvuldigen.

[Hoeveelheid]*[Prijs]

/

Het eerste getal door het tweede getal delen.

[Totaal]/[AantalItems]

\

Beide getallen afronden op gehele getallen, het eerste getal door het tweede getal delen en vervolgens het resultaat afkappen tot een geheel getal.

[Geregistreerd]\[Kamers]

Mod

Het eerste getal door het tweede getal delen en alleen het restgetal retourneren.

[Geregistreerd] Mod [Kamers]

^

Een getal tot de macht van een exponent verheffen.

Getal ^ Exponent

Vergelijking    

Gebruik de vergelijkingsoperatoren om waarden te vergelijken en een resultaat te retourneren dat bestaat uit Waar, Onwaar of Null (een onbekende waarde).

Operator

Doel

<

Bepalen of de eerste waarde kleiner is dan de tweede waarde.

<=

Bepalen of de eerste waarde kleiner is dan of gelijk is aan de tweede waarde.

>

Bepalen of de eerste waarde groter is dan de tweede waarde.

>=

Bepalen of de eerste waarde groter is dan of gelijk is aan de tweede waarde.

=

Bepalen of de eerste waarde gelijk is aan de tweede waarde.

<>

Bepalen of de eerste waarde niet gelijk is aan de tweede waarde.

In alle gevallen geldt dat het resultaat Null is als de eerste waarde of de tweede waarde Null is. Aangezien Null staat voor een onbekende waarde, is het resultaat van een vergelijking met een Null-waarde ook onbekend.

Logisch    

Gebruik de logische operatoren om twee waarden te combineren en het resultaat Waar, Onwaar of Null te retourneren. Logische operatoren worden ook wel Booleaanse operatoren genoemd.

Operator

Gebruik

Beschrijving

And

Expr1 And Expr2

Is Waar als Expr1 en Expr2 waar zijn.

Or

Expr1 Or Expr2

Is waar als Expr1 of Expr2 waar is.

Eqv

Expr1 Eqv Expr2

Is Waar als Expr1 en Expr2 beide waar zijn of als Expr1 en Expr2 beide onwaar zijn.

Not

Not Expr

Is waar als Expr niet waar is.

Xor

Expr1 Xor Expr2

Is Waar als Expr1 waar is of als Expr2 waar is, maar niet allebei.

Samenvoeging    

U gebruikt de samenvoegingsoperatoren om twee tekstwaarden te combineren tot één tekenreeks.

Operator

Gebruik

Beschrijving

&

tekenreeks1 & tekenreeks2

Hiermee combineert u twee tekenreeksen tot één tekenreeks.

+

tekenreeks1 + tekenreeks2

Hiermee combineert u twee tekenreeksen tot één tekenreeks en worden null-waarden doorgegeven.

Speciaal    

Gebruik de speciale operatoren zoals wordt beschreven in de volgende tabel.

Operator

Beschrijving

Voor meer informatie

Is Null or Is Not Null

Hiermee bepaalt u of een waarde Null of niet Null is.

Like "pattern"

Hiermee vergelijkt u tekenreeksen met behulp van de jokertekens ? en *..

Operator Like

Between val1 And val2

Hiermee bepaalt u of een numerieke waarde of datumwaarde binnen een bereik valt.

Operator Between...And

In(string1,string2...)

Hiermee bepaalt u of een tekenreekswaarde is opgenomen in een set tekenreekswaarden.

Operator In

Constanten

Een constante is een bekende waarde die niet verandert en die u in een expressie kunt gebruiken. Access heeft vier veelgebruikte constanten:

  • True geeft aan of iets logisch waar is.

  • False geeft aan of iets logisch onwaar is.

  • Null geeft aan dat een bekende waarde ontbreekt.

  • "" (empty string) geeft een waarde aan waarvan bekend is dat deze leeg is.

Constanten kunnen worden gebruikt als argumenten voor een functie en kunnen in een expressie worden gebruikt als onderdeel van een criterium. U kunt bijvoorbeeld de constante voor de lege tekenreeks ("") gebruiken als onderdeel van een criterium voor een kolom in een query om de veldwaarden voor deze kolom te evalueren, door het volgende op te geven als criterium: <>"". In dit voorbeeld is <> een operator en "" een constante. Als deze samen worden gebruikt, geeft dit aan dat de id waarop deze worden toegepast, moet worden vergeleken met een lege tekenreeks. De expressie die wordt geretourneerd, is waar als de waarde van de id iets anders is dan een lege tekenreeks.

Let op bij het gebruik van de constante Null. In de meeste gevallen wordt er een fout geretourneerd als u Null gebruikt in combinatie met een vergelijkingsoperator. Gebruik de operator Is Null of Is Not Null als u een waarde wilt vergelijken met Null in een expressie.

Waarden

U kunt letterlijke waarden gebruiken in uw expressies, zoals het getal 1254 of de tekenreeks 'Voer een getal in tussen 1 en 10'. U kunt ook numerieke waarden gebruiken, die een cijferreeks kunnen zijn, met een teken en een decimaalteken (indien nodig). Als een teken ontbreekt, wordt ervan uitgegaan dat de waarde positief is. Als u een waarde negatief wilt maken, voegt u er een minteken (-) aan toe. U kunt ook de wetenschappelijke notatie gebruiken. Voeg hiertoe E of e toe aan het teken van de exponent (bijvoorbeeld 1,0E-6).

Wanneer u tekenreeksen gebruikt, plaats u deze tussen aanhalingstekens om er zeker van te zijn dat deze correct worden geïnterpreteerd. In sommige gevallen worden de aanhalingstekens automatisch toegevoegd. De aanhalingstekens worden bijvoorbeeld automatisch toegevoegd wanneer u tekst typt in een expressie voor een validatieregel of voor querycriteria.

Als u bijvoorbeeld de tekst Paris typt, wordt in de expressie ‘Parijs’ weergegeven. Als u wilt dat een expressie als resultaat een tekenreeks geeft die tussen aanhalingstekens wordt weergegeven, kunt u de geneste tekenreeks tussen enkele aanhalingstekens (') of drie sets dubbele aanhalingstekens (") plaatsen. De volgende expressies zijn bijvoorbeeld equivalent:

Forms![Contacts]![City]. DefaultValue = ' "Paris" ' 
Forms![Contacts]![City].DefaultValue = " " "Paris" " " 

Als u datum-/tijdwaarden wilt gebruiken, plaatst u de waarden tussen hekjes (#). #07.03.17#, #07-mrt-17# en #mrt-7-2017 zijn bijvoorbeeld allemaal geldige datum-/tijdwaarden. Wanneer in Access een geldige datum-/tijdwaarde wordt aangetroffen die tussen #-tekens is geplaatst, wordt de waarde automatisch behandeld als het gegevenstype Datum/tijd.

Naar boven

De grens voor nesten voor expressies in een webdatabase is 65

Expressies die meer dan 65 niveaus diep zijn genest, werken niet in de browser, dus u kunt dergelijke expressies beter niet gebruiken in een Access-webdatabase. U krijgt geen foutbericht; de expressie werkt eenvoudig niet.

Het gebruik van de operatoren &, AND en OR kan zorgen voor extra nestingniveaus op de server die niet worden weerspiegeld in de Access-client. Zo is de expressie "a" & "b" & "c" niet genest in de opbouwfunctie voor expressies, maar in SharePoint wordt dit concatenate.Db("a", concatenate.Db("b", "c") ). Deze omzetting veroorzaakt één nestniveau. Als u in één expressie vaak de operatoren &, AND of OR gebruikt, kunt u de servergrens van 65 overschrijden, vanaf welk punt de expressie niet meer werkt in de browser.

Naar boven

De opbouwfunctie voor expressies gebruiken

Inleiding tot expressies

Een expressie maken

Voorbeelden van expressies

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.