Dit artikel bevat veel voorbeelden van expressies in Access. Een expressie is een combinatie van rekenkundige of logische operatoren, constanten, functies, tabelvelden, besturingselementen en eigenschappen die één waarde oplevert. U kunt expressies in Access gebruiken om waarden te berekenen, gegevens te valideren en een standaardwaarde in te stellen.
In dit artikel
Formulieren en rapporten
De tabellen in deze sectie bevatten voorbeelden van expressies die een waarde berekenen in een besturingselement in een formulier of rapport. Als u een berekend besturingselement wilt maken, geeft u een expressie op in de eigenschap Besturingselementbron van het besturingselement, in plaats van in een tabelveld of query.
Opmerking U kunt expressies ook gebruiken in een formulier of rapport bij het markeren van gegevens met voorwaardelijke opmaak.
Tekstbewerkingen
In de expressies in de volgende tabel worden de operatoren & (ampersand) en + (plus) gebruikt om tekstreeksen te combineren, worden ingebouwde functies gebruikt om een tekstreeks te bewerken, of wordt de tekst op andere manieren bewerkt om een berekend besturingselement te maken.
Expressie |
Resultaat |
---|---|
="N/A" |
Hiermee geeft u N.v.t. weer. |
=[FirstName] & " " & [LastName] |
Hiermee geeft u de waarden uit de tabelvelden Voornaam en Achternaam weer. In dit voorbeeld wordt de operator & gebruikt om het veld Voornaam, een spatie (tussen aanhalingstekens) en het veld Achternaam te combineren |
=Left([ProductName], 1) |
Hiermee gebruikt u de functie Links om het eerste teken van de waarde van het veld of besturingselement Productnaam weer te geven. |
=Right([AssetCode], 2) |
Hiermee gebruikt u de functie Rechts om de laatste 2 tekens van de waarde in het veld of besturingselement Activacode weer te geven. |
=Trim([Address]) |
Hiermee gebruikt u de functie Trim om de waarde van het besturingselement Adres weer te geven, waarbij eventuele spaties aan het begin of het einde worden verwijderd. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Hiermee gebruikt u de functie IIf om de waarden van de besturingselementen Plaats en Postcode weer te geven als de waarde in het besturingselement Regio Null is. Anders worden de waarden van de besturingselementen Plaats, Regio en Postcode weergegeven, gescheiden door spaties. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
Hiermee gebruikt u de operator + en Null-doorgifte om de waarden van de besturingselementen Plaats en Postcode weer te geven als de waarde in het veld of besturingselement Regio Null is. Anders worden de waarden van de velden of besturingselementen Plaats, Regio en Postcode weergegeven, gescheiden door spaties. Null-doorgifte betekent dat als een onderdeel van een expressie Null is, de hele expressie ook Null is. De operator + ondersteunt Null-doorgifte, de operator & niet. |
Kop- en voetteksten
U gebruikt de eigenschappen Pagina en Pagina’s om paginanummers in formulieren en rapporten af te drukken. De eigenschappen Page en Pages zijn alleen beschikbaar tijdens het afdrukken of in het afdrukvoorbeeld en worden dus niet weergegeven in het eigenschappenvenster van het formulier of rapport. U gebruikt deze eigenschappen meestal door een tekstvak in de koptekst- of voettekstsectie van het formulier of rapport te plaatsen en vervolgens een expressie te gebruiken, zoals de voorbeelden in de volgende tabel.
Zie het artikel Paginanummers in een formulier of rapport invoegen voor meer informatie over het gebruik van kop- en voetteksten in formulieren en rapporten.
Expressie |
Resultaat |
---|---|
=[Page] |
1 |
="Page " & [Page] |
Pagina 1 |
="Page " & [Page] & " of " & [Pages] |
Pagina 1 van 3 |
=[Page] & " of " & [Pages] & " Pages" |
1 van 3 pagina’s |
=[Page] & "/" & [Pages] & " Pages" |
1/3 pagina’s |
=[Country/region] & " - " & [Page] |
VK - 1 |
=Format([Page], "000") |
001 |
="Printed on: " & Date() |
Gedrukt op: 31-12-17 |
Rekenkundige bewerkingen
U kunt expressies gebruiken om de waarden in twee of meer velden of besturingselementen op te tellen, af te trekken, te vermenigvuldigen of te delen. U kunt expressies ook gebruiken om rekenkundige bewerkingen op datums uit te voeren. Stel dat u in een tabel een Datum/tijd-veld met de naam Vervaldatum hebt. In het veld, of in een besturingselement dat afhankelijk is van het veld, retourneert de expressie =[RequiredDate] - 2 een datum/tijd-waarde die gelijk is aan twee dagen vóór de huidige waarde in het veld Vervaldatum.
Expressie |
Resultaat |
---|---|
=[Subtotal]+[Freight] |
De som van de waarden van de velden of besturingselementen Subtotaal en Vrachtkosten. |
=[RequiredDate]-[ShippedDate] |
Het interval tussen de datumwaarden van de velden of besturingselementen Vervaldatum en Leverdatum. |
=[Price]*1.06 |
Het product van de waarde van het veld of besturingselement Prijs en 1,06. Hiermee wordt 6 procent toegevoegd aan de waarde van Prijs. |
=[Quantity]*[Price] |
Het product van de waarden van de velden of besturingselementen Hoeveelheid en Prijs. |
=[EmployeeTotal]/[CountryRegionTotal] |
Het quotiënt van de waarden van de velden of besturingselementen Totaal medewerker en Totaal land/regio. |
Opmerking Wanneer u een rekenkundige operator (+, -, * en /) in een expressie gebruikt, en de waarde van een van de besturingselementen in de expressie Null is, is het resultaat van de hele expressie ook Null (dit wordt de Null-doorgifte genoemd). Als een record in een van de besturingselementen die u in de expressie gebruikt een Null-waarde kan hebben, kunt u Null-doorgifte voorkomen door de Null-waarde met behulp van de functie Nz te converteren naar nul, bijvoorbeeld =Nz([Subtotal])+Nz([Freight]).
Waarden in andere besturingselementen
Soms hebt u een waarde nodig die zich ergens anders bevindt, bijvoorbeeld in een veld of besturingselement in een ander formulier of rapport. U kunt een expressie gebruiken om de waarde uit een ander veld of besturingselement op te halen.
De volgende tabel bevat voorbeelden van expressies die u kunt gebruiken in berekende besturingselementen in formulieren.
Expressie |
Resultaat |
---|---|
=Forms![Orders]![OrderID] |
De waarde van het besturingselement Ordernummer in het formulier Orders. |
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] |
De waarde van het besturingselement Ordersubtotaal in het Subformulier Orders van het formulier Orders. |
=Forms![Orders]![Orders Subform]![ProductID].Column(2) |
De waarde van de derde kolom in Productnummer, een keuzelijst met meerdere kolommen in het subformulier Subformulier Orders voor het formulier Orders. (0 verwijst naar de eerste kolom, 1 verwijst naar de tweede kolom, enzovoort.) |
=Forms![Orders]![Orders Subform]![Price] * 1.06 |
Het product van de waarde van het besturingselement Prijs (in het subformulier Subformulier Orders voor het formulier Orders) en 1,06. Hiermee wordt 6 procent toegevoegd aan de waarde van het besturingselement Prijs. |
=Parent![OrderID] |
De waarde van het besturingselement Ordernummer in het bovenliggende of hoofdformulier van het huidige subformulier. |
De expressies in de volgende tabel zijn voorbeelden van manieren waarop berekende besturingselementen in rapporten kunnen worden gebruikt. De expressies verwijzen naar de Eigenschap rapport.
Expressie |
Resultaat |
---|---|
=Report![Invoice]![OrderID] |
De waarde van een besturingselement met de naam 'Ordernummer' in een rapport met de naam 'Factuur'. |
=Report![Summary]![Summary Subreport]![SalesTotal] |
De waarde van het besturingselement Omzettotaal in het Subrapport Overzicht voor het rapport Overzicht. |
=Parent![OrderID] |
De waarde van het besturingselement Ordernummer in het bovenliggende of hoofdrapport van het huidige subrapport. |
Waarden tellen, optellen en gemiddelden berekenen
Een bepaald type functie, een statistische functie genaamd, kan worden gebruikt om waarden voor een of meer velden of besturingselementen te berekenen. U kunt bijvoorbeeld een groepstotaal berekenen voor de groepsvoettekst in een rapport, of een ordersubtotaal voor regelitems in een formulier. U kunt ook het aantal items in een of meer velden tellen of een gemiddelde waarde berekenen.
De expressies in de volgende tabel zijn voorbeelden van manieren waarop functies zoals Avg, Count en Sum kunnen worden gebruikt.
Expressie |
Beschrijving |
---|---|
=Avg([Freight]) |
Hiermee gebruikt u de functie Avg om het gemiddelde van de waarden van een tabelveld of besturingselement genaamd 'Vrachtkosten' weer te geven. |
=Count([OrderID]) |
Hiermee gebruikt u de functie Count om het aantal records in het besturingselement Ordernummer weer te geven. |
=Sum([Sales]) |
Hiermee gebruikt u de functie Sum om de som van de waarden van het besturingselement Omzet weer te geven. |
=Sum([Quantity]*[Price]) |
Hiermee gebruikt u de functie Sum om de som van het product van de waarden van de besturingselementen Hoeveelheid en Prijs weer te geven. |
=[Sales]/Sum([Sales])*100 |
Hiermee wordt het percentage van de omzet weergegeven, die wordt bepaald door de waarde van het besturingselement Omzet te delen door de som van alle waarden van het besturingselement Omzet. Als u de eigenschap Notatie van het besturingselement instelt op Percentage, moet u *100 weglaten uit de expressie. |
Zie de artikelen Gegevens optellen met behulp van een query, Gegevens tellen met een query, Kolomtotalen weergeven in een gegevensblad met een totalenrij en Kolomtotalen weergeven in een gegevensblad voor meer informatie over het gebruik van statistische functies en het optellen van waarden in velden en kolommen.
Statistische SQL-functies
U kunt een bepaald type functie genaamd SQL of een domeinfunctie gebruiken om waarden selectief te tellen of op te tellen. Een 'domein' bestaat uit een of meer velden in een of meer tabellen, of een of meer besturingselementen in een of meer formulieren of rapporten. U kunt bijvoorbeeld de waarden in een tabelveld vergelijken met de waarden in een besturingselement in een formulier.
Expressie |
Beschrijving |
---|---|
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) |
Hiermee gebruikt u de functie DLookup om de waarde van het veld Contactpersoon in de tabel Leveranciers te retourneren wanneer de waarde van het veld Leveranciersnummer in de tabel overeenkomt met de waarde van het besturingselement Leveranciersnummer op het formulier Leveranciers. |
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) |
Hiermee gebruikt u de functie DLookup om de waarde van het veld Contactpersoon in de tabel Leveranciers te retourneren wanneer de waarde van het veld Leveranciersnummer in de tabel overeenkomt met de waarde van het besturingselement Leveranciersnummer op het formulier Nieuwe leveranciers. |
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") |
Hiermee gebruikt u de functie DSum om het somtotaal van de waarden in het veld Orderbedrag in de tabel Orders te retourneren wanneer het Klantnummer de waarde RATTC heeft. |
=DCount("[Retired]","[Assets]","[Retired]=Yes") |
Hiermee gebruikt u de functie DCount om het aantal Ja-waarden in het veld Afgelost (een Ja/nee-veld) in de tabel Activa te retourneren. |
Datumbewerkingen
Het bijhouden van datums en tijden is een belangrijke activiteit in een database. Als u bijvoorbeeld het debiteurensaldo wilt controleren, kunt u berekenen hoeveel dagen er zijn verstreken sinds de datum die op de facturen staat vermeld. U kunt datums en tijden op verschillende manieren noteren, zoals te zien is in de volgende tabel.
Expressie |
Beschrijving |
---|---|
=Date() |
Hiermee gebruikt u de functie Date om de huidige datum in het formulier weer te geven als mm-dd-yy, waarbij mm de maand is (1 tot en met 12), dd de dag is (1 tot en met 31) en yy de laatste twee cijfers van het jaar zijn (1980 tot en met 2099). |
=Format(Now(), "ww") |
Hiermee gebruikt u de functie Format om het weeknummer van het jaar voor de huidige datum weer te geven, waarbij ww de weken 1 tot en met 53 vertegenwoordigt. |
=DatePart("yyyy", [OrderDate]) |
Hiermee gebruikt u de functie DatePart om het viercijferig jaar weer te geven van de waarde van het besturingselement Orderdatum. |
=DateAdd("y", -10, [PromisedDate]) |
Hiermee gebruikt u de functie DateAdd om een datum weer te geven die 10 dagen voor de waarde van het besturingselement Afgesproken datum valt. |
=DateDiff("d", [OrderDate], [ShippedDate]) |
Hiermee gebruikt u de functie DateDiff om het aantal dagen verschil tussen de waarden van de besturingselementen Orderdatum en Leverdatum weer te geven. |
=[InvoiceDate] + 30 |
Hiermee gebruikt u een rekenkundige bewerking op datums om de datum te berekenen die 30 dagen na de datum in het veld of besturingselement Factuurdatum valt. |
Voorwaarden van slechts twee waarden
De voorbeeldexpressies in de volgende tabel maken gebruik van de functie IIf om een van twee mogelijke waarden te retourneren. U moet drie argumenten doorgeven aan de functie IIf: Het eerste argument is een expressie die een waarde True of False moet retourneren. Het tweede argument is de waarde die moet worden geretourneerd als de expressie waar is. Het derde argument is de waarde die moet worden geretourneerd als de expressie onwaar is.
Expressie |
Beschrijving |
---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
Hiermee gebruikt u de functie IIf (Immediate If) om het bericht 'Order bevestigd' weer te geven als de waarde van het besturingselement Bevestigd Yes is. Anders wordt het bericht "Order Not Confirmed." weergegeven. |
=IIf(IsNull([Country/region]), " ", [Country]) |
Hiermee gebruikt u de functies IIf en IsNull om een lege tekenreeks weer te geven als de waarde van het besturingselement Land/regio Null is. Anders wordt de waarde van het besturingselement Land/regio weergegeven. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Hiermee gebruikt u de functies IIf en IsNull om de waarden van de besturingselementen Plaats en Postcode weer te geven als de waarde in het besturingselement Regio Null is. Anders worden de waarden van de velden of besturingselementen Plaats, Regio en Postcode weergegeven. |
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Hiermee gebruikt u de functies IIf en IsNull om het bericht 'Controleer of er een datum ontbreekt' weer te geven als de aftreksom van de waarde in het besturingselement Leverdatum van de waarde in het besturingselement Vervaldatum de uitkomst Null oplevert. Anders wordt de interval tussen de datumwaarden van de besturingselementen Vervaldatum en Leverdatum weergegeven. |
Query’s en filters
Deze sectie bevat voorbeelden van expressies die u kunt gebruiken om een berekend veld in een query te maken of om criteria voor een query te leveren. Een berekend veld is een kolom in een query die het resultaat is van een expressie. U kunt bijvoorbeeld een waarde berekenen, tekstwaarden combineren (zoals voor- en achternamen) of een gedeelte van een datum opmaken.
U gebruikt criteria in een query om het aantal records waarmee u werkt te beperken. U kunt bijvoorbeeld de operator Between gebruiken om een begin- en einddatum op te geven en de resultaten van uw query te beperken tot orders die in de periode tussen die datums zijn verzonden.
Hieronder staan voorbeelden van expressies die u kunt gebruiken in query’s.
Tekstbewerkingen
In de expressies in de volgende tabel worden de operators & en + gebruikt om tekstreeksen te combineren, worden ingebouwde functies gebruikt om een tekstreeks te bewerken, of wordt de tekst op andere manieren bewerkt om een berekend veld te maken.
Expressie |
Beschrijving |
---|---|
FullName: [FirstName] & " " & [LastName] |
Hiermee maakt u een veld Naam waarin de waarden van de velden Voornaam en Achternaam worden weergegeven, gescheiden door een spatie. |
Address2: [City] & " " & [Region] & " " & [PostalCode] |
Hiermee maakt u een veld Adres2 waarin de waarden van de velden Plaats, Regio en Postcode worden weergegeven, gescheiden door spaties. |
ProductInitial: Left([ProductName], 1) |
Hiermee maakt u een veld Productletter en gebruikt u vervolgens de functie Links om in het veld Productletter het eerste teken van de waarde in het veld Productnaam weer te geven. |
TypeCode: Right([AssetCode], 2) |
Hiermee maakt u een veld Typecode en gebruikt u vervolgens de functie Rechts om de laatste twee tekens van de waarde in het veld Activacode weer te geven. |
AreaCode: Mid([Phone],2,3) |
Hiermee maakt u een veld Netnummer en gebruikt u vervolgens de functie Mid om drie opeenvolgende tekens weer te geven, te beginnen met het tweede teken van de waarde in het veld Telefoon. |
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 |
Hiermee geeft u het berekende veld de naam Totaalprijs en gebruikt u de functie CCur om het totaal van de lijnitems te berekenen inclusief een korting. |
Rekenkundige bewerkingen
U kunt expressies gebruiken om de waarden in twee of meer velden of besturingselementen op te tellen, af te trekken, te vermenigvuldigen of te delen. U kunt ook rekenkundige bewerkingen op datums uitvoeren. Stel dat u een Datum/tijd-veld met de naam Vervaldatum hebt. U kunt dan met de expressie =[RequiredDate] - 2 een Datum/tijd-waarde retourneren die gelijk is aan twee dagen vóór de waarde in het veld Vervaldatum.
Expressie |
Beschrijving |
---|---|
PrimeFreight: [Freight] * 1.1 |
Hiermee maakt u een veld Primaire vracht waarin vervolgens de vrachtkosten, verhoogd met 10 procent, worden weergegeven. |
OrderAmount: [Quantity] * [UnitPrice] |
Hiermee maakt u een veld Orderbedrag waarin vervolgens het product van de waarden in de velden Hoeveelheid en Prijs per eenheid wordt weergegeven. |
LeadTime: [RequiredDate] - [ShippedDate] |
Hiermee maakt u een veld Levertijd waarin vervolgens het verschil tussen de waarden in de velden Vervaldatum en Leverdatum wordt weergegeven. |
TotalStock: [UnitsInStock]+[UnitsOnOrder] |
Hiermee maakt u een veld Totale voorraad waarin vervolgens de som van de waarden in de velden Voorradig en In bestelling wordt weergegeven. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Hiermee maakt u een veld Vrachtpercentage waarin vervolgens van elk subtotaal het percentage vrachtkosten wordt weergegeven. Deze expressie maakt gebruik van de functie Sum om de waarden in het veld Vrachtkosten bij elkaar op te tellen waarna deze totalen worden gedeeld door de som van de waarden in het veld Subtotaal. Als u deze expressie wilt gebruiken, moet u uw selectiequery converteren naar een totalenquery omdat u de rij Totaal in het ontwerpraster moet gebruiken. Bovendien moet u de cel Totaal voor dit veld instellen op Expressie. Zie het artikel Gegevens optellen met behulp van een query voor meer informatie over het maken van een totalenquery. Als u de eigenschap Notatie van het veld instelt op Percentage, moet u *100 weglaten uit de expressie. |
Zie de artikelen Gegevens optellen met behulp van een query, Gegevens tellen met een query, Kolomtotalen weergeven in een gegevensblad met een totalenrij en Kolomtotalen weergeven in een gegevensblad voor meer informatie over het gebruik van statistische functies en het optellen van waarden in velden en kolommen.
Datumbewerkingen
In bijna alle databases worden datums en tijden bijgehouden en opgeslagen. U kunt in Access met datums en tijden werken door de datum- en tijdvelden in uw tabellen in te stellen op het gegevenstype Datum/tijd. Er kunnen in Access rekenkundige bewerkingen op datums worden uitgevoerd. Als u bijvoorbeeld het debiteurensaldo wilt controleren, kunt u berekenen hoeveel dagen er zijn verstreken sinds de datum die op de facturen staat vermeld.
Expressie |
Beschrijving |
---|---|
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) |
Hiermee maakt u een veld Vertraging en gebruikt u vervolgens de functie DateDiff om het aantal dagen tussen de orderdatum en leverdatum weer te geven. |
YearHired: DatePart("yyyy",[HireDate]) |
Hiermee maakt u een veld Jaar in dienst en vervolgens gebruikt u de functie DatePart om het jaar weer te geven waarin elke medewerker in dienst is genomen. |
MinusThirty: Date( )- 30 |
Hiermee maakt u een veld Min dertig en gebruikt u vervolgens de functie Date om de datum weer te geven die 30 dagen eerder valt dan de huidige datum. |
Statistische SQL-functies
De expressies in de volgende tabel maken gebruik van SQL-functies (Structured Query Language) om statistieken of samenvattingen van gegevens te genereren. Deze functies (zoals Sum, Count en Avg) worden vaak statistische functies genoemd.
Naast de statistische functies bevat Access ook statistische domeinfuncties, waarmee u waarden selectief kunt tellen of optellen. U kunt bijvoorbeeld alleen de waarden in een bepaald bereik tellen of een waarde uit een andere tabel opzoeken. DSum, DCount en DAvg zijn enkele voorbeelden van statistische domeinfuncties.
Als u totalen wilt berekenen, moet u meestal een totalenquery maken. U hebt bijvoorbeeld een totalenquery nodig als u gegevens per groep wilt samenvatten. Als u een totalenquery wilt inschakelen vanuit het queryontwerpraster, klikt u op Totalen in het menu Weergave.
Expressie |
Beschrijving |
---|---|
RowCount: Count(*) |
Hiermee maakt u een veld Aantal rijen en gebruikt u vervolgens de functie Count om het aantal records in de query te tellen, inclusief de records die velden met een Null-waarde (lege velden) hebben. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Hiermee maakt u een veld Vrachtpercentage en wordt vervolgens berekend hoeveel procent van elk subtotaal uit vrachtkosten bestaat. Hiervoor wordt de som van de waarden in het veld Vrachtkosten gedeeld door de som van de waarden in het veld Subtotaal. (In dit voorbeeld wordt de functie Sum gebruikt.) U moet deze expressie gebruiken met een totalenquery. Als u de eigenschap Notatie van het veld instelt op Percentage, moet u *100 weglaten uit de expressie. Zie het artikel Gegevens optellen met behulp van een query voor meer informatie over het maken van een totalenquery. |
AverageFreight: DAvg("[Freight]", "[Orders]") |
Hiermee maakt u een veld Gemiddelde vrachtkosten en gebruikt u vervolgens de functie DAvg om de gemiddelde vrachtkosten te berekenen voor alle orders die zijn gecombineerd in een totalenquery. |
Velden met ontbrekende gegevens
De hier weergegeven expressies werken met velden waarin mogelijk informatie ontbreekt, zoals velden met Null-waarden (onbekende of niet-gedefinieerde waarden). Null-waarden komen vaak voor, denk bijvoorbeeld aan de onbekende prijs van een nieuw product of een waarde die een collega heeft vergeten toe te voegen aan een order. De mogelijkheid om Null-waarden te zoeken en te verwerken kan een belangrijk onderdeel van databasebewerkingen zijn. De expressies in de volgende tabel zijn voorbeelden van manieren waarop met Null-waarden kan worden gewerkt.
Expressie |
Beschrijving |
---|---|
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) |
Hiermee maakt u een veld Huidig land en gebruikt u vervolgens de functies IIf en IsNull om een lege tekenreeks weer te geven in dat veld wanneer het veld Land/regio een Null-waarde bevat. Anders wordt de inhoud van het veld Land/regio weergegeven. |
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Hiermee maakt u een veld Levertijd en gebruikt u vervolgens de functies IIf en IsNull om het bericht 'Controleer of er een datum ontbreekt' weer te geven wanneer het veld Vervaldatum of het veld Leverdatum een Null-waarde bevat. Anders wordt het datumverschil weergegeven. |
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) |
Hiermee maakt u een veld Omzet zes maanden en wordt vervolgens het totaal van de waarden in de velden Omzet kwart1 en Omzet kwart2 weergegeven door eerst de functie Nz te gebruiken om eventuele Null-waarden te converteren naar nul. |
Berekende velden met subquery’s
U kunt een geneste query, ook wel subquery genoemd, gebruiken om een berekend veld te maken. De expressie in de volgende tabel is een voorbeeld van een berekend veld dat het resultaat van een subquery is.
Expressie |
Beschrijving |
---|---|
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) |
Hiermee maakt u een veld Categorie waarin vervolgens de Categorienaam wordt weergegeven, op voorwaarde dat de Categorie-id in de tabel Categorieën hetzelfde is als de Categorie-id in de tabel Producten. |
Tekstwaarden vergelijken
De expressies in deze tabel zijn voorbeelden van criteria die overeenkomen met hele of gedeeltelijke tekstwaarden.
Veld |
Expressie |
Beschrijving |
---|---|---|
Verzendplaats |
"London" |
Hiermee geeft u de orders weer die naar Den Haag zijn verzonden. |
Verzendplaats |
"London" Or "Hedge End" |
Hiermee gebruikt u de operator Or om de orders weer te geven die naar Den Haag of Voorschoten zijn verzonden. |
Verzendland/-regio |
In("Canada", "UK") |
Hiermee gebruikt u de operator In om de orders weer te geven die naar Canada of Groot-Brittannië zijn verzonden. |
Verzendland/-regio |
Not "USA" |
Hiermee gebruikt u de operator Not om de orders weer te geven die naar landen/regio’s buiten Nederland zijn verzonden. |
Productnaam |
Not Like "C*" |
Hiermee gebruikt u de operator Noten het jokerteken * om de producten weer te geven waarvan de naam niet begint met een C. |
Bedrijfsnaam |
>="N" |
Hiermee geeft u de orders weer die zijn verzonden naar bedrijven waarvan de naam begint met de letter N tot en met Z. |
Productcode |
Right([ProductCode], 2)="99" |
Hiermee gebruikt u de functie Right om de orders weer te geven waarvan de waarden voor Productcode eindigen op 99. |
Verzendnaam |
Like "S*" |
Hiermee geeft u de orders weer die zijn verzonden naar klanten waarvan de naam begint met de letter S. |
Datumcriteria vergelijken
De expressies in de volgende tabel zijn voorbeelden van manieren waarop datums en gerelateerde functies worden gebruikt in criteriumexpressies. Zie het artikel Een datum- of tijdwaarde invoeren voor meer informatie over het invoeren en gebruiken van datumwaarden.
Veld |
Expressie |
Beschrijving |
---|---|---|
Verzenddatum |
#2/2/2017# |
Hiermee geeft u de orders weer die zijn verzonden op 2 februari 2017. |
Verzenddatum |
Date() |
Hiermee geeft u de orders weer die vandaag zijn verzonden. |
VereisteDatum |
Between Date( ) And DateAdd("m", 3, Date( )) |
Hiermee gebruikt u de operator Between...And en de functies DatumToevoegen en Datum om de orders weer te geven met een vervaldatum tussen vandaag en over drie maanden. |
Orderdatum |
< Date( ) - 30 |
Hiermee gebruikt u de functie Datum om de orders weer te geven die meer dan 30 dagen oud zijn. |
Orderdatum |
Year([OrderDate])=2017 |
Hiermee gebruikt u de functie Jaar om de orders weer te geven met orderdatums die vallen in 2017. |
Orderdatum |
DatePart("q", [OrderDate])=4 |
Hiermee gebruikt u de functie Datumdeel om de orders voor het vierde kalenderkwartaal weer te geven. |
Orderdatum |
DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 |
Hiermee gebruikt u de functies DateSerial, Jaar en Maand om de orders voor de laatste dag van elke maand weer te geven. |
Orderdatum |
Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) |
Hiermee gebruikt u de functies Jaar en Maand en de operator En om de orders voor het huidige jaar en de huidige maand weer te geven. |
Verzenddatum |
Between #1/5/2017# And #1/10/2017# |
Hiermee gebruikt u de operator Between...And om de orders weer te geven die niet eerder dan 5 januari 2017 en niet later dan 10 januari 2017 zijn verzonden. |
VereisteDatum |
Between Date( ) And DateAdd("M", 3, Date( )) |
Hiermee gebruikt u de operator Between...And om de orders weer te geven met een vervaldatum tussen vandaag en over drie maanden. |
Geboortedatum |
Month([BirthDate])=Month(Date()) |
Hiermee gebruikt u de functies Maand en Datum om de medewerkers weer te geven die deze maand jarig zijn. |
Ontbrekende gegevens zoeken
De expressies in de volgende tabel werken met velden waarin mogelijk informatie ontbreekt, zoals velden met een Null-waarde of een tekenreeks met de lengte nul. Een Null-waarde vertegenwoordigt het ontbreken van informatie en niet een nul of enige andere waarde. In Access wordt ondersteuning geboden voor het concept van ontbrekende informatie, omdat dit concept van wezenlijk belang is voor de integriteit van een database. In het dagelijkse leven krijgt u regelmatig te maken met ontbrekende informatie, ook al is dit soms slechts van tijdelijke aard (bijvoorbeeld de nog onbekende prijs voor een nieuw product). Een database die gericht is op een reële entiteit, zoals een bedrijf, moet daarom informatie als ontbrekend kunnen registreren. U kunt de functie IsNull gebruiken om te bepalen of een veld of besturingselement een Null-waarde bevat en u kunt de functie Nz gebruiken om een Null-waarde te converteren naar nul.
Veld |
Expressie |
Beschrijving |
---|---|---|
Verzendregio |
Is Null |
Hiermee geeft u de orders weer voor klanten waarvan het veld Verzendregio de waarde Null bevat (ontbrekende waarde). |
Verzendregio |
Is Not Null |
Hiermee geeft u de orders weer voor klanten waarvan het veld Verzendregio een waarde bevat. |
Fax |
"" |
Hiermee geeft u de orders weer voor klanten die geen faxapparaat hebben. Dit wordt aangegeven door een tekenreeks met de lengte nul in het veld Fax in plaats van een Null-waarde (ontbrekende waarde). |
Recordpatronen vergelijken met Like
De operator Like biedt een grote mate van flexibiliteit wanneer u rijen wilt vergelijken die een patroon volgen. U kunt in de operator Like namelijk jokertekens gebruiken en patronen definiëren die moeten worden vergeleken. Het jokerteken * (sterretje) komt bijvoorbeeld overeen met allerlei soorten tekens, zodat u eenvoudig kunt zoeken naar alle namen die beginnen met een bepaalde letter. Gebruik bijvoorbeeld de expressie Like "S*" om te zoeken naar alle namen die beginnen met de letter S. Zie voor meer informatie het artikel Like Operator.
Veld |
Expressie |
Beschrijving |
---|---|---|
Verzendnaam |
Like "S*" |
Hiermee vindt u alle records in het veld Verzendnaam die beginnen met de letter S. |
Verzendnaam |
Like "*Imports" |
Hiermee vindt u alle records in het veld Verzendnaam die eindigen met het woord 'Import'. |
Verzendnaam |
Like "[A-D]*" |
Hiermee vindt u alle records in het veld Verzendnaam die beginnen met de letters A, B, C of D. |
Verzendnaam |
Like "*ar*" |
Hiermee vindt u alle records in het veld Verzendnaam die de letterreeks 'ar' bevatten. |
Verzendnaam |
Like "Maison Dewe?" |
Hiermee vindt u alle records in het veld Verzendnaam waarvan Maison het eerste deel van de waarde vormt en waarvan de tweede tekenreeks uit vijf letters bestaat waarvan de eerste vier letters Dewe zijn en de laatste letter onbekend is. |
Verzendnaam |
Not Like "A*" |
Hiermee vindt u alle records in het veld Verzendnaam die niet beginnen met de letter A. |
Rijen vergelijken met statistische SQL-functies
U gebruikt een SQL of statistische domeinfunctie wanneer u waarden selectief wilt tellen, optellen of gemiddelden wilt berekenen. U wilt bijvoorbeeld alleen de waarden tellen die binnen een bepaald bereik vallen of die als resultaat de waarde Ja geven. Of misschien wilt u een waarde opzoeken in een andere tabel zodat u deze kunt weergeven. In de voorbeeldexpressies in de volgende tabel wordt gebruikgemaakt van statistische domeinfuncties om een berekening uit te voeren op een set waarden, waarna het resultaat als querycriteria wordt gebruikt.
Veld |
Expressie |
Beschrijving |
---|---|---|
Vrachtkosten |
> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) |
Hiermee gebruikt u de functies DStDev en DAvg om alle orders weer te geven waarvan de vrachtkosten hoger zijn dan het gemiddelde plus de standaarddeviatie voor vrachtkosten. |
Aantal |
> DAvg("[Quantity]", "[Order Details]") |
Hiermee gebruikt u de functie DAvg om de producten weer te geven waarvan het bestelde aantal groter is dan het gemiddelde bestelde aantal. |
Velden vergelijken met subquery’s
U gebruikt een subquery, ook wel een geneste query genoemd, om een waarde te berekenen die als criterium moet worden gebruikt. Met de voorbeeldexpressies in de volgende tabel worden rijen vergeleken op basis van de resultaten die door een subquery worden geretourneerd.
Veld |
Expressie |
Weergaven |
---|---|---|
PrijsPerEenheid |
(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") |
Producten waarvan de prijs gelijk is aan de prijs van anijssiroop. |
Prijs per eenheid |
>(SELECT AVG([UnitPrice]) FROM [Products]) |
Producten waarvan de prijs per eenheid hoger is dan het gemiddelde. |
Salaris |
> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) |
Het salaris van elke verkoper van wie het salaris hoger is dan dat van alle medewerkers bij wie het woord 'Manager' of 'Adjunctdirecteur' voorkomt in de functie. |
Ordertotaal: [Prijs per eenheid] * [Hoeveelheid] |
> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) |
Orders waarvan de totalen hoger zijn dan de gemiddelde orderwaarde. |
Bijwerkquery’s
U gebruikt een bijwerkquery om de gegevens in een of meer bestaande velden in een database bij te werken. U kunt bijvoorbeeld waarden vervangen of helemaal verwijderen. Deze tabel bevat enkele manieren waarop u expressies kunt gebruiken in bijwerkquery’s. U gebruikt deze expressies in de rij Wijzigen in in het queryontwerpraster voor het veld dat u wilt bijwerken.
Zie het artikel Bijwerkquery’s maken voor meer informatie over het maken en uitvoeren van bijwerkquery’s.
Veld |
Expressie |
Resultaat |
---|---|---|
Titel |
"Salesperson" |
Hiermee wijzigt u een tekstwaarde in Verkoper. |
ProjectStart |
#8/10/17# |
Hiermee wijzigt u een datumwaarde in 10-08-17. |
Buiten gebruik |
Yes |
Hiermee wijzigt u de waarde Nee in een Ja/nee-veld in Ja. |
Productnummer |
"PN" & [PartNumber] |
Hiermee plaatst u voor elk productnummer de letters PN. |
Totaal regelitem |
[UnitPrice] * [Quantity] |
Hiermee berekent u het product van de waarden in de velden Prijs per eenheid en Aantal. |
Vrachtkosten |
[Freight] * 1.5 |
Hiermee verhoogt u de vrachtkosten met 50 procent. |
Verkoop |
DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) |
Hiermee werkt u de verkooptotalen bij op basis van het product van de velden Aantal en Prijs per eenheid, wanneer de productnummers in de huidige tabel overeenkomen met de productnummers in de tabel Orderinformatie. |
Verzendpostcode |
Right([ShipPostalCode], 5) |
Hiermee kapt u de tekens links af, zodat alleen de vijf meest rechtse tekens overblijven. |
PrijsPerEenheid |
Nz([UnitPrice]) |
Hiermee wijzigt u een Null-waarde (onbekende of niet-gedefinieerde waarde) in een nul (0) in het veld PrijsPerEenheid. |
SQL-instructies
SQL (Structured Query Language) is de querytaal die in Access wordt gebruikt. Elke query die u maakt in de queryontwerpweergave, kan ook worden uitgedrukt met SQL. Als u de SQL-instructie voor een query wilt bekijken, klikt u op SQL-weergave in het menu Weergave. In de volgende tabel ziet u enkele voorbeelden van SQL-instructies waarin een expressie wordt gebruikt.
SQL-instructie waarin een expressie wordt gebruikt |
Resultaat |
---|---|
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; |
Hiermee geeft u de waarden weer in de velden Voornaam en Achternaam voor medewerkers met de achternaam Beekman. |
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; |
Hiermee geeft u de waarden weer in de velden Productnummer en Productnaam in de tabel Producten voor records waarin de waarde van Categorienummer overeenkomt met de waarde voor Categorienummer die is opgegeven in een geopend formulier Nieuwe producten. |
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; |
Hiermee geeft u in het veld Gemiddelde factuurprijs de gemiddelde factuurprijs weer van orders waarvan de waarde in het veld Factuurprijs hoger is dan 1000. |
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; |
Hiermee geeft u in het veld AantalVanProductnummer het totaal aantal producten weer voor categorieën met meer dan 10 producten. |
Tabelexpressies
De meest voorkomende manieren om expressies te gebruiken in tabellen is het toewijzen van een standaardwaarde en het maken van een validatieregel.
Standaardwaarden voor velden
Bij het ontwerpen van een database wilt u mogelijk een standaardwaarde toewijzen aan een veld of besturingselement. Deze standaardwaarde wordt vervolgens automatisch door Access ingevuld wanneer een nieuwe record met dat veld wordt gemaakt of wanneer een object met dat besturingselement wordt gemaakt. De expressies in de volgende tabel zijn voorbeelden van standaardwaarden voor een veld of besturingselement. Als een besturingselement afhankelijk is van een veld in een tabel en het veld een standaardwaarde heeft, heeft de standaardwaarde van het besturingselement voorrang.
Veld |
Expressie |
Standaardveldwaarde |
---|---|---|
Aantal |
1 |
1 |
Regio |
"MT" |
MT |
Regio |
"New York, N.Y." |
New York, N.Y. (Let op: een waarde die leestekens bevat, moet tussen aanhalingstekens worden geplaatst) |
Fax |
"" |
Een tekenreeks met de lengte nul om aan te geven dat dit veld standaard leeg moet zijn in plaats van een Null-waarde te bevatten |
Orderdatum |
Date( ) |
De datum van vandaag |
Vervaldatum |
Date() + 60 |
De datum die 60 dagen na vandaag valt |
Veldvalidatieregels
U kunt met behulp van een expressie een validatieregel voor een veld of besturingselement maken. In Access wordt die regel vervolgens afgedwongen wanneer gegevens in het veld of besturingselement worden ingevoerd. Als u een validatieregel wilt maken, wijzigt u de eigenschap Validatieregel van het veld of besturingselement. U moet ook rekening houden met de instelling van de eigenschap Validatietekst. Hierin staat de tekst die in Access moet worden weergegeven wanneer de validatieregel wordt overtreden. Als u de eigenschap Validatietekst niet instelt, wordt er een standaardfoutbericht weergegeven.
De volgende tabel bevat enkele voorbeelden van expressies voor validatieregels voor de eigenschap Validatieregel en de bijbehorende tekst voor de eigenschap Validatietekst.
Eigenschap Validatieregel |
Eigenschap Validatietekst |
---|---|
<> 0 |
Geef een andere waarde op dan nul. |
0 Or > 100 |
De waarde moet 0 of groter dan 100 zijn. |
Like "K???" |
De waarde moet uit vier tekens bestaan en moet beginnen met de letter K. |
< #1/1/2017# |
Voer een datum in die voor 1-1-2017 valt. |
>= #1/1/2017# And < #1/1/2008# |
Gebruik een datum in het jaar 2017. |
Zie het artikel Validatieregels maken voor het valideren van gegevens in velden voor meer informatie over het valideren van gegevens.
Macro-expressies
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 dat u actie wilt die alleen moet worden uitgevoerd als de waarde van het tekstvak Teller gelijk is aan 10. U gebruikt een expressie om de voorwaarde in een If-blok te definiëren:
[Counter]=10
Net als bij de eigenschap ValidationRule is de expressie in een If-blok een voorwaardelijke expressie. Deze moet resulteren in True of False. De actie wordt alleen uitgevoerd wanneer de voorwaarde waar is.
Gebruik deze expressie om de actie uit te voeren |
Als |
---|---|
[City]="Paris" |
De waarde van Stad in het veld op het formulier van waaruit de macro wordt uitgevoerd, is Parijs. |
DCount("[OrderID]", "Orders") > 35 |
Het veld Ordernummer van de tabel Orders bevat meer dan 35 items. |
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 |
De tabel Orderinformatie bevat meer dan drie items waarin het tabelveld Ordernummer overeenkomt met het veld Ordernummer van het formulier Orders. |
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# |
De waarde van het veld Leverdatum van het formulier van waaruit de macro wordt uitgevoerd, ligt op of tussen 2 februari 2017 en 2 maart 2017. |
Forms![Products]![UnitsInStock] < 5 |
De waarde van het veld Voorradig van het formulier Producten is kleiner dan 5. |
IsNull([FirstName]) |
De waarde Voornaam op het formulier van waaruit de macro wordt uitgevoerd, is Null (geen waarde). Deze expressie komt overeen met [Voornaam] Is Null. |
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 |
De waarde in het veld LandRegio van het formulier van waaruit de macro wordt uitgevoerd, is VK en de waarde van het veld TotaalOrders van het formulier Omzettotaal is groter dan 100. |
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 |
De waarde in het veld LandRegio van het formulier van waaruit de macro wordt uitgevoerd, is Frankrijk, Italië of Spanje en de postcode heeft meer of minder dan vijf tekens. |
MsgBox("Confirm changes?",1)=1 |
U klikt op OK in een dialoogvenster waarin de functie MsgBox wordt weergegeven. Als u in het dialoogvenster op Annuleren klikt, wordt de actie genegeerd. |
Zie ook
De opbouwfunctie voor expressies gebruiken