Med strengfunktioner kan du oprette udtryk i Access, der manipulerer tekst på forskellige måder. Det kan f.eks. være, at du kun vil have vist en del af et serienummer i en formular. Eller du skal måske forbinde (sammenkæde) flere strenge sammen, f.eks. et efternavn og et fornavn. Hvis du endnu ikke er så dygtig til udtryk, skal du se Opret et udtryk.
Her er en oversigt over nogle af de mest almindelige strenghandlinger i Access og de funktioner, du ville bruge til at udføre dem:
Hvis du vil … |
Brug knappen ... |
For eksempel... |
Resultater |
---|---|---|---|
Returnere tegn fra begyndelsen af en streng |
=Left([Serienummer],2) |
Hvis [Serienummer] er "CD234", er resultatet "CD". |
|
Returnere tegn fra slutningen af en streng |
=Right([Serienummer],3) |
Hvis [Serienummer] er "CD234", er resultatet "234". |
|
Finde et tegns placering i en streng |
=InStr(1,[Fornavn],"i") |
Hvis [Fornavn] er "Colin", er resultatet 4. |
|
Returnere tegn fra midten af en streng |
=Mid([Serienummer];2;2) |
Hvis [Serienummer] er "CD234", er resultatet "D2". |
|
Trim foranstillede eller efterstillede mellemrum fra en streng |
=Trim([Fornavn]) |
Hvis [Fornavn] er " Colin ", er resultatet "Colin". |
|
Sammenføj to strenge sammen |
Plustegn (+) operator* |
=[Fornavn] + [Efternavn] |
Hvis [Fornavn] er "Colin", og [Efternavn] er Wilcox, er resultatet "ColinWilcox" |
Sammenføj to strenge sammen med et mellemrum mellem dem |
Plustegn (+) operator* |
=[Fornavn] + " " + [Efternavn] |
Hvis [Fornavn] er "Colin", og [Efternavn] er Wilcox, er resultatet "Colin Wilcox" |
Ændre store eller små bogstaver i en streng til store eller små bogstaver |
=UCase([Fornavn]) |
Hvis [Fornavn] er "Colin", er resultatet "COLIN". |
|
Fastlæg længden af en streng |
=Len([Fornavn]) |
Hvis [Fornavn] er "Colin", er resultatet 5. |
* Okay, så det er ikke en funktion, det er en operator. Det er dog den hurtigste måde at sammenføje strenge på. I en skrivebordsdatabase kan du også bruge og-tegnet (&) 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 oprette et udtryk – normalt er der en lille Build-knap , der ser sådan ud:
Lad os åbne udtryksgeneratoren fra egenskaben Kontrolelementkilde i en formular eller visning for at demonstrere udtryksgeneratoren. Brug en af nedenstående procedurer, afhængigt af om du bruger en skrivebordsdatabase eller en Access-webapp.
Vise 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 > Kontrolelementkilde i egenskabsarket, og klik på knappen Generér i højre side af egenskabsfeltet Kontrolelementkilde .
-
Under Udtrykselementer skal du udvide noden Funktioner og klikke 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 Udtryksgenerator.
Bemærk!: Ikke alle disse funktioner er tilgængelige i alle sammenhænge. Access filtrerer automatisk listen, afhængigt af hvilke der fungerer i hver kontekst.
Kombiner tekstfunktioner for at opnå større fleksibilitet
Nogle strengfunktioner har numeriske argumenter, som du i nogle tilfælde skal beregne, hver gang du kalder funktionen. Funktionen Venstre tager f.eks. en streng og et tal, som i =Venstre(Serienummer, 2). Dette er praktisk, hvis du ved, at du altid har brug for de to venstre tegn, men hvad nu, hvis antallet af tegn, du skal bruge, varierer fra element til element? I stedet for blot at "hard coding" antallet af tegn, kan du angive en anden funktion, der beregner det.
Her er et eksempel på serienumre, der hver har en bindestreg et sted i strengen. Placeringen af bindestregen varierer dog:
Serienummer |
---|
3928-29993 |
23-9923 |
333-53234 |
3399940-444 |
Hvis du kun vil have vist tallene til venstre for bindestregen, skal du udføre en beregning hver gang for at finde ud af, hvor bindestregen er. En mulighed er at gøre noget i stil med dette:
=Left([Serienummer],InStr(1,[Serienummer],"-")-1)
I stedet for at angive et tal som det andet argument i funktionen Venstre har vi tilsluttet funktionen InStr, som returnerer placeringen af bindestregen i serienummeret. Træk 1 fra denne værdi, og du får det korrekte antal tegn, som funktionen Venstre returnerer. Virker lidt kompliceret i starten, men med lidt eksperimentering kan du kombinere to eller flere udtryk for at få de ønskede resultater.