FileMaker - Tip
13
![]()
|
|
|
Stel een veld Naam waarin bijvoorbeeld staat: Albert Van Damme en dat het de bedoeling is voornaam en naam in aparte velden onder te brengen. Hiertoe gebruiken we de Left functie en de Right functie: Left(Naam;6) geeft als resultaat Albert (vermits Albert 6 lettertekens bevat). Heel eenvoudig dus. Of toch niet: het probleem is dat we niet steeds weten hoeveel lettertekens de voornaam en de naam bevatten... We kennen dus alle gegevens van de formule, behalve die 6 en die 9. Maar ook dat is gemakkelijk op te lossen: die 6 vinden we door de eerste spatie te zoeken, en dan 1 ervan af te trekken: de eerste spatie staat immers op de zevende plaats! Hoe vinden we die spatie? Heel eenvoudig: met de Position functie. De parameters van deze functie vinden we terug in het Help menu van FileMaker zodat volgende formule eenvoudig te interpreteren is: Position(Naam;" ";1;1) betekent eigenlijk: zoek in het veld Naam de plaats waar " " (de spatie dus) voor de eerste keer voorkomt, beginnend vanaf positie 1. In ons geval geeft dit dus 7 als resultaat. Om de 6 te vinden hoeven we dus gewoon min één te doen. We hernemen dus de bovenstaande Left-formule en vervangen daarin het getal 6 door de Position-formule min één: Left(Naam;Position(Naam;" ";1;1) - 1) Voor de familienaam gaan we analoog te werk via de Right-functie, maar hier moeten we de 9 vinden. Dat is uiteraard de totale lengte (16 tekens) min die 7 van daarstraks: hiertoe gebruiken we de Length-functie. Die geeft immers het totaal aantal tekens. Right(Naam;9) vervangen we dus door Right(Naam;Length(Naam) - Position(Naam;" ";1;1)) Zie ook Tip 291: daar gebruiken we de nieuwere functie MiddleWords. |
avd@avd-ci.be - contactformulier