Med strengfunksjoner kan du opprette uttrykk i Access som manipulerer tekst på en rekke måter. Det kan for eksempel hende at du bare vil vise en del av et serienummer i et skjema. Eller du må kanskje slå sammen (kjede sammen) flere strenger, for eksempel et etternavn og et fornavn. Hvis du ikke er fornøyd med uttrykk ennå, kan du se Bygge et uttrykk.
Her er en liste over noen av de vanligste strengoperasjonene i Access, og funksjonene du ville brukt til å utføre dem:
Hvis du vil … |
Bruk ... |
For eksempel... |
Resultater |
---|---|---|---|
Returnere tegn fra begynnelsen av en streng |
=Venstre([SerialNumber],2) |
Hvis [SerialNumber] er "CD234", blir resultatet CD. |
|
Returnere tegn fra slutten av en streng |
=Høyre([SerialNumber],3) |
Hvis [SerialNumber] er "CD234", blir resultatet "234". |
|
Finne plasseringen til et tegn i en streng |
=InStr(1,[FirstName],"i") |
Hvis [FirstName] er "Colin", er resultatet 4. |
|
Returnere tegn fra midten av en streng |
=Mid([SerialNumber],2,2) |
Hvis [SerialNumber] er "CD234", blir resultatet "D2". |
|
Trimme innledende eller etterfølgende mellomrom fra en streng |
=Trim([FirstName]) |
Hvis [FirstName] er " Colin ", blir resultatet "Colin". |
|
Slå sammen to strenger |
Plusstegn (+)-operator* |
=[FirstName] + [LastName] |
Hvis [FirstName] er "Colin" og [LastName] er Wilcox, blir resultatet "ColinWilcox" |
Slå sammen to strenger med et mellomrom mellom dem |
Plusstegn (+)-operator* |
=[FirstName] + " " + [LastName] |
Hvis [FirstName] er "Colin" og [LastName] er Wilcox, blir resultatet "Colin Wilcox" |
Endre bokstavtype for en streng til store eller små bokstaver |
=UCase([FirstName]) |
Hvis [FirstName] er «Colin», blir resultatet «COLIN». |
|
Bestemme lengden på en streng |
=Lengde([Fornavn]) |
Hvis [FirstName] er "Colin", er resultatet 5. |
* Ok, så det er ikke en funksjon, det er en operator. Det er imidlertid den raskeste måten å slå sammen strenger på. I en skrivebordsdatabase kan du også bruke ampersand-operatoren (&) til sammenkobling.
Det finnes mange flere tekstrelaterte funksjoner i Access. En god måte å lære mer om dem på, er å åpne uttrykksverktøyet og bla gjennom funksjonslistene. Uttrykksverktøyet er tilgjengelig nesten hvor som helst du vil bygge et uttrykk – vanligvis er det en liten bygg-knapp som ser slik ut:
Hvis du vil demonstrere uttrykksverktøyet, åpner vi det fra kontrollkildeegenskapen i et skjema eller en visning. Bruk en av fremgangsmåtene nedenfor, avhengig av om du bruker en skrivebordsdatabase eller en Access-nettapp.
Vise uttrykksverktøyet i en skrivebordsdatabase
-
Åpne en skrivebordsdatabase (ACCDB).
-
Trykk F11 for å åpne navigasjonsruten hvis den ikke allerede er åpen.
-
Hvis du allerede har et skjema tilgjengelig, høyreklikker du det i navigasjonsruten og klikker Oppsettvisning. Hvis du ikke har et skjema å arbeide med, klikker du Opprett > Skjema.
-
Høyreklikk en tekstboks i skjemaet, og klikk Egenskaper.
-
Klikk Alle > kontrollkilde på egenskapssiden, og klikk byggeverktøyknappen på høyre side av egenskapsboksen Kontrollkilde .
-
Utvid Funksjon-noden under Uttrykkselementer, og klikk Innebygde funksjoner.
-
Klikk Tekst under Uttrykkskategorier.
-
Klikk de ulike funksjonene under Uttrykksverdier, og les de korte beskrivelsene nederst i uttrykksverktøyet.
Obs!: Ikke alle disse funksjonene er tilgjengelige i alle kontekster. Access filtrerer listen automatisk avhengig av hvilke som fungerer i hver kontekst.
Kombinere tekstfunksjoner for mer fleksibilitet
Noen strengfunksjoner har numeriske argumenter som i noen tilfeller må beregnes hver gang du kaller funksjonen. Venstre-funksjonen tar for eksempel en streng og et tall, som i =Venstre(SerialNumber, 2). Dette er flott hvis du vet at du alltid trenger de to venstre tegnene, men hva om antall tegn du trenger, varierer fra element til element? I stedet for bare "hard koding" antall tegn, kan du skrive inn en annen funksjon som beregner den.
Her er et eksempel på serienumre som hver har en bindestrek et sted i strengen. Plasseringen av bindestreken varierer imidlertid:
SerialNumber |
---|
3928-29993 |
23-9923 |
333-53234 |
3399940-444 |
Hvis du bare vil vise tallene til venstre for bindestreken, må du utføre en beregning hver gang for å finne ut hvor bindestreken er. Ett alternativ er å gjøre noe sånt som dette:
=Venstre([SerialNumber],InStr(1,[SerialNumber],"-")-1)
I stedet for å skrive inn et tall som det andre argumentet i Venstre-funksjonen, har vi koblet til InStr-funksjonen, som returnerer plasseringen av bindestreken i serienummeret. Trekk fra 1 fra denne verdien, og du får riktig antall tegn for venstre-funksjonen som skal returneres. Virker litt komplisert i begynnelsen, men med litt eksperimentering kan du kombinere to eller flere uttrykk for å få resultatene du ønsker.