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, kunt u Een expressie opbouwen raadplegen.
Hier volgt een overzicht van enkele van de meest voorkomende tekenreeksbewerkingen in Access en de functies die u zou gebruiken om deze uit te voeren:
Om… |
Maak gebruik van… |
Bijvoorbeeld… |
Resultaten |
---|---|---|---|
Tekens retourneren van het begin van een tekenreeks |
=Left([Serienummer],2) |
Als [Serienummer] 'CD234' is, is het resultaat 'CD'. |
|
Tekens retourneren van het einde van een tekenreeks |
=Right([Serienummer],3) |
Als [Serienummer] 'CD234' is, is het resultaat '234'. |
|
De positie van een teken binnen een tekenreeks zoeken |
=InStr(1,[Voornaam],"i") |
Als [Voornaam] 'Colin' is, is het resultaat 4. |
|
Tekens retourneren van het midden van een tekenreeks |
=Mid([Serienummer],2,2) |
Als [Serienummer] 'CD234' is, is het resultaat 'D2'. |
|
Spaties aan het begin of einde van een tekenreeks verwijderen |
=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([Voornaam]) |
Als [Voornaam] 'Colin' is, is het resultaat 'COLIN'. |
|
De lengte van een tekenreeks bepalen |
=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. Een goede manier om er meer over te weten te komen, is 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 maken. Meestal is er een kleine knop Bouwen die er als volgt uitziet:
Laten we ter demonstratie de Opbouwfunctie voor expressies openen vanuit de eigenschap Besturingselementbron in een formulier of weergave. Gebruik 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, indien deze nog niet open is.
-
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 op Maken > Formulier.
-
Klik met de rechtermuisknop op een tekstvak in het formulier en klik op Eigenschappen.
-
Klik in het eigenschappenvenster op Alle > Besturingselementbron en klik op de knop Bouwen aan de rechterkant van het eigenschappenvak 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 onder aan 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 aangesloten, 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 om als resultaat te geven. Lijkt in eerste instantie een beetje ingewikkeld, maar met een beetje experimenteren kunt u twee of meer expressies combineren om de gewenste resultaten te krijgen.