Syntaxis voor expressies

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

Wanneer u Microsoft Access gebruikt, moet u vaak werken met waarden die zich niet rechtstreeks in uw gegevens bevinden. 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. Deze Booleaanse expressie bestaat bijvoorbeeld uit slechts een operator en een constante:

>0

Deze expressie retourneert:

  • True wanneer het wordt vergeleken met een getal dat groter is dan 0.
  • False wanneer het wordt vergeleken met een getal dat kleiner is dan 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 is niet ongebruikelijk dat een id de vorm [Object name]heeft.

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

  • Operatoren 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 A 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 knaloperator (!)
  • De puntoperator (.)
  • De operator 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 een veld met de naam Achternaam in een tabel met de naam 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 een goede gewoonte om de haakjes zelf te typen. Dit helpt u fouten te voorkomen en fungeert ook als een visuele aanwijzing 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 meer dan id's nodig. U moet 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 de 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 te extraheren, meestal een datum die wordt verkregen uit een veld-id, maar soms een datumwaarde die wordt geretourneerd door een andere functie, zoals Datum.

    DatePart ( "yyyy", Date())
    
  • De functie DateDiff wordt gebruikt om het verschil tussen twee datums te bepalen, meestal tussen een datum die wordt verkregen op basis van een veld-id en een datum die wordt verkregen met behulp van 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 
    
  • De functie IIf wordt gebruikt om een expressie als waar of onwaar te evalueren en retourneert vervolgens één waarde als de expressie waar is en een andere waarde als de expressie als onwaar wordt geëvalueerd.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
    
  • De functie InStr wordt gebruikt om te zoeken naar de positie van een teken of tekenreeks binnen 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.

Rekenkundige

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.

Als de eerste waarde of de tweede waarde is, is Nullhet resultaat in alle gevallen ook Null. Omdat Null een onbekende waarde vertegenwoordigt, is het resultaat van een vergelijking met Null 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" Komt overeen met tekenreekswaarden met behulp van jokertekenoperators ?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 iets aan dat logisch waar is.
  • False geeft iets aan dat logisch onwaar is.
  • Null geeft het ontbreken van een bekende waarde aan.
  • "" (empty string) geeft een waarde aan die 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 lege tekenreeksconstante ("") gebruiken als onderdeel van een criterium voor een kolom in een query om de veldwaarden voor die kolom te evalueren door het volgende in te voeren als criterium: <>"". In dit voorbeeld <> is dit 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.

Wees voorzichtig bij het gebruik van de Null constante. In de meeste gevallen resulteert het gebruik Null in combinatie met een vergelijkingsoperator in een fout. Als u een waarde Null wilt vergelijken met in een expressie, gebruikt u de Is NullIs Not Null operator of.

Waarden

U kunt letterlijke waarden in uw expressies gebruiken, zoals het getal 1.254 of de tekenreeks “Voer een getal in tussen 1 en 10”. U kunt ook numerieke waarden gebruiken, zoals een reeks cijfers, indien gewenst met een teken en een decimale komma. Als een teken ontbreekt, wordt ervan uitgegaan dat de waarde positief is. Als u een waarde negatief wilt maken, neemt u het minteken (-) op. 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 Paristypt, wordt in Access 'Parijs' weergegeven in de expressie. Als u wilt dat een expressie een tekenreeks produceert die daadwerkelijk tussen aanhalingstekens staat, plaatst u de geneste tekenreeks tussen enkele (') aanhalingstekens of binnen drie sets dubbele (") aanhalingstekens. 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 moet dergelijke expressies niet gebruiken in een Access-webdatabase. Er worden geen foutberichten weergegeven. De expressie werkt gewoon niet.

Het gebruik van de &operators , ANDen OR kan extra geneste niveaus op de server maken die niet worden weergegeven in de Access-client. De expressie "a" & "b" & "c" is bijvoorbeeld niet genest in de opbouwfunctie voor expressies, maar in SharePoint wordt concatenate.Db("a", concatenate.Db("b", "c") )deze . Deze omzetting veroorzaakt één nestniveau. Het gebruik van veel opeenvolgende &, ANDof-operators OR in één expressie kan ertoe leiden dat u de nestlimiet van 65 van de server overschrijdt, waarna de expressie niet werkt in de browser.

Naar boven

De opbouwfunctie voor expressies gebruikenInleiding tot expressiesEen expressie makenVoorbeelden van expressies