Med strengfunktioner kan du oprette udtryk i Access, som redigerer tekst på forskellige måder. Det kan f.eks. være, at du kun vil have vist en del af et serienummer på en formular. Eller du kan få brug for at sammenkæde (sammenkæde) flere strenge, f.eks. et efternavn og et fornavn. Hvis du ikke har kendskab til udtryk endnu, kan du se Generér et udtryk.
Her er en liste over nogle af de mest almindelige strenghandlinger i Access, og de funktioner, du vil bruge til at udføre dem:
| Hvis du vil … | Brug... | For eksempel... | Resultater |
|---|---|---|---|
| Returnere tegn fra begyndelsen af en streng | Funktionen Left | =Left([Serienr],2) | Hvis [SerialNumber] er "CD234", er resultatet "CD". |
| Returnere tegn fra slutningen af en streng | Funktionen Right | =Højre([Serienummer],3) | Hvis [SerialNumber] er "CD234", er resultatet "234". |
| Finde positionen af et tegn i en streng | Funktionen InStr | =InStr(1,[Fornavn],"i") | Hvis [Fornavn] er "Colin", er resultatet 4. |
| Returnere tegn fra midten af en streng | Funktionen Mid | =Mid([Serienr],2,2) | Hvis [SerialNumber] er "CD234", er resultatet "D2". |
| Trim foranstillede eller efterstillede mellemrum fra en streng | Funktionerne LTrim, RTrim og Trim | =Trim([Fornavn]) | Hvis [Fornavn] er " Colin ", er resultatet "Colin". |
| Forbind to strenge med hinanden | Plustegnsoperator (+)* | =[Fornavn] + [Efternavn] | Hvis [Fornavn] er "Colin", og [Efternavn] er Wilcox, er resultatet "ColinWilcox" |
| Forbind to strenge med et mellemrum mellem dem | Plustegnsoperator (+)* | =[Fornavn] + " " + [Efternavn] | Hvis [Fornavn] er "Colin", og [Efternavn] er Wilcox, er resultatet "Colin Wilcox" |
| Ændre en streng til store eller små bogstaver | Funktionen UCase eller LCase | =UCase([Fornavn]) | Hvis [Fornavn] er "Colin", er resultatet "COLIN". |
| Bestemme længden af en streng | Funktionen Længde | =Længde([Fornavn]) | Hvis [Fornavn] er "Colin", er resultatet 5. |
* OK, så det er ikke en funktion, det er en operator. Det er dog den hurtigste måde at flette strenge på. I en skrivebordsdatabase kan du også bruge og-tegn-operatoren (&) til sammenkædning.
Der er mange flere tekstrelaterede funktioner i Access. En god måde at få mere at vide om dem på er at åbne Udtryksgenerator og gennemse funktionslisterne. Udtryksgenerator er tilgængelig næsten overalt, hvor du vil bygge et udtryk – der er normalt en lille Byg-knap , der ser sådan ud:
For at demonstrere Udtryksgenerator åbner vi den fra egenskaben Kontrolelementkilde i en formular eller visning. Brug en af fremgangsmåderne nedenfor, afhængigt af om du bruger en skrivebordsdatabase eller en Access-webapp.
Få vist Udtryksgenerator i en skrivebordsdatabase
Åbn en skrivebordsdatabase (.accdb).
Tryk på F11 for at åbne navigationsruden, hvis den ikke allerede er åben.
Hvis du allerede har en formular tilgængelig, skal du højreklikke på den i navigationsruden og klikke på Layoutvisning. Hvis du ikke har en formular at arbejde med, skal du klikke på Opret>formular.
Højreklik på et tekstfelt i formularen, og klik på Egenskaber.
Klik på Alle>kontrolelementkilder i egenskabsarket, og klik på knappen Byg
i højre side af egenskabsfeltet for kontrolelementkilde .
Udvid noden Funktioner under Udtrykselementer, og klik på Indbyggede funktioner.
Klik på Tekst under Udtrykskategorier.
Under Udtryksværdier skal du klikke på de forskellige funktioner og læse de korte beskrivelser nederst i udtryksgeneratoren.
Bemærk
Ikke alle disse funktioner er tilgængelige i alle sammenhænge. Access filtrerer listen automatisk afhængigt af, hvilke der fungerer i hver kontekst.
Kombiner tekstfunktioner for større fleksibilitet
Nogle strengfunktioner har numeriske argumenter, som du i nogle tilfælde skal beregne, hver gang du kalder funktionen. Funktionen Left tager f.eks. en streng og et tal, som i =Left(SerialNumber, 2). Dette er praktisk, hvis du ved, at du altid skal bruge de to venstre tegn, men hvad nu hvis antallet af tegn, du skal bruge, varierer fra element til element? I stedet for blot at lave en "fast kodning" af antallet af tegn kan du angive en anden funktion, der beregner antallet af tegn.
Her er et eksempel på serienumre, der hver har en bindestreg et sted i strengen. Placeringen af bindestregen varierer dog:
| Serienr |
|---|
| 3928-29993 |
| 23-9923 |
| 333-53234 |
| 3399940-444 |
Hvis du kun vil have vist tallene til venstre for bindestreg, skal du foretage en beregning hver gang for at finde ud af, hvor bindestregen er. Én mulighed er at gøre noget i stil med dette:
=Venstre([Serienummer],InStr(1,[Serienummer],"-")-1)
I stedet for at angive et tal som det andet argument for funktionen Venstre har vi tilsluttet funktionen InStr, som returnerer placeringen af bindestregen i serienummeret. Trækker du 1 fra den pågældende værdi, får du det korrekte antal tegn, som funktionen Venstre skal returnere. Virker umiddelbart lidt kompliceret, men med lidt eksperimenteren kan du kombinere to eller flere udtryk for at få de ønskede resultater.