Met tekenreeksfuncties kunt u in Access expressies maken waarmee tekst op verschillende manieren wordt bewerkt. U wilt bijvoorbeeld alleen een deel van een serienummer in een formulier weergeven. Of misschien wilt u verschillende tekenreeksen samenvoegen zoals een achternaam en een voornaam. Als u nog niet zo wegwijs bent met expressies, raadpleegt u Een expressie maken.
Hier volgt een lijst met enkele van de meest voorkomende tekenreeksbewerkingen in Access en de functies die u daarbij kunt gebruiken:
| Om… | Maak gebruik van… | Bijvoorbeeld… | Resultaten |
|---|---|---|---|
| Tekens retourneren van het begin van een tekenreeks | Left, functie | =Left([Serienummer],2) | Als [Serienummer] 'CD234' is, is het resultaat 'CD'. |
| Tekens retourneren van het einde van een tekenreeks | Right, functie | =Right([Serienummer],3) | Als [Serienummer] 'CD234' is, is het resultaat '234'. |
| De positie van een teken binnen een tekenreeks zoeken | InStr, functie | =InStr(1,[Voornaam],"i") | Als [Voornaam] 'Colin' is, is het resultaat 4. |
| Tekens retourneren van het midden van een tekenreeks | DEEL, functie | =Mid([Serienummer],2,2) | Als [Serienummer] 'CD234' is, is het resultaat 'D2'. |
| Spaties aan het begin of einde van een tekenreeks verwijderen | Functies LTrim, RTrim en Trim | =Trim([Voornaam]) | Als [Voornaam] is ' Colin ', is het resultaat 'Colin'. |
| Twee tekenreeksen samenvoegen | Operator* plusteken (+) | =[Voornaam] + [Achternaam] | Als [Voornaam] 'Colin' en [Achternaam] Wilcox is, is het resultaat 'ColinWilcox' |
| Twee tekenreeksen samenvoegen met een ruimte ertussen | Operator* plusteken (+) | =[Voornaam] + " " + [Achternaam] | Als [Voornaam] 'Colin' en [Achternaam] Wilcox is, is het resultaat 'Colin Wilcox' |
| Letters in een tekenreeks wijzigen in hoofdletters of kleine letters | UCase, functie of LCase, functie | =UCase([Voornaam]) | Als [Voornaam] 'Colin' is, is het resultaat 'COLIN'. |
| De lengte van een tekenreeks bepalen | Len, functie | =Len([Voornaam]) | Als [Voornaam] 'Colin' is, is het resultaat 5. |
* Goed, het is dus geen functie maar een operator. Het is echter de snelste manier om tekenreeksen samen te voegen. In een bureaubladdatabase kunt u ook de ampersand-operator (&) gebruiken voor samenvoeging.
Er zijn veel meer tekstgerelateerde functies in Access. U kunt hier meer over te weten komen door de opbouwfunctie voor expressies te openen en door de functielijsten te bladeren. De opbouwfunctie voor expressies is bijna overal beschikbaar waar u een expressie wilt opbouwen. Meestal is er een kleine opbouwknop die er zo uitziet:
Laten we ter demonstratie de opbouwfunctie voor expressies openen vanuit de eigenschap Besturingselementbron in een formulier of weergave. Volg een van de onderstaande procedures, afhankelijk van of u een bureaubladdatabase of een Access-web-app gebruikt.
De Opbouwfunctie voor expressies weergeven in een bureaubladdatabase
Open een bureaubladdatabase (.accdb).
Druk op F11 om het navigatiedeelvenster te openen als dit nog niet wordt weergegeven.
Als er al een formulier beschikbaar is, klikt u erop met de rechtermuisknop in het Navigatiedeelvenster en klikt u op Indelingsweergave. Als u geen formulier hebt om mee te werken, klikt u opFormuliermaken>.
Klik met de rechtermuisknop op een tekstvak in het formulier en klik op Eigenschappen.
Klik in het eigenschappenvenster op Alle>besturingselementbronnen en klik op de knop
rechts van het vak van de eigenschap Besturingselementbron.
Breid onder Expressie-elementen het knooppunt Functies uit en klik op Ingebouwde functies.
Klik onder Expressiecategorieën op Tekst.
Klik onder Expressiewaarden op de verschillende functies en lees de korte beschrijvingen onderaan de Opbouwfunctie voor expressies.
Opmerking
Niet al deze functies zijn beschikbaar in alle contexten; in Access wordt de lijst automatisch gefilterd afhankelijk van welke functies werken in elke context.
Tekstfuncties combineren voor meer flexibiliteit
Een aantal tekenfuncties bevatten numerieke argumenten die in sommige gevallen iedere keer moeten worden berekend als u de functie aanroept. De Left-functie heeft bijvoorbeeld een tekenreeks en getal, zoals =Left(SerialNumber, 2). Dat is prima als u altijd de twee linkertekens nodig hebt maar wat als het benodigde aantal tekens per item verschilt? In plaats van het aantal tekens vast te zetten, kunt u een andere functie invoeren waarbij het wordt berekend.
Hier volgt een voorbeeld van serienummers die ergens in de tekenreeks een afbreekstreepje bevatten. De positie van het afbreekstreepje verschilt echter per geval:
| Serienummer |
|---|
| 3928-29993 |
| 23-9923 |
| 333-53234 |
| 3399940-444 |
Als u alleen de getallen links van het afbreekstreepje wilt afbeelden, moet u iedere keer een berekening uitvoeren om te vinden waar het afbreekstreepje staat. Dit kunt u op de volgende manier doen:
=Left([Serienummer],InStr(1,[Serienummer],"-")-1)
In plaats van een getal in te voeren als het tweede argument van de functie Links, hebben we de functie InStr ingevoegd, die de positie van het afbreekstreepje in het serienummer retourneert. Trek 1 af van die waarde en u krijgt het juiste aantal tekens voor de functie Links. Op het eerste gezicht lijkt het een beetje ingewikkeld, maar met een beetje experimenteren kunt u twee of meer expressies combineren om het gewenste resultaat te krijgen.