Med strängfunktioner kan du skapa uttryck i Access som ändrar text på en mängd olika sätt. Du kanske till exempel bara vill visa en del av ett serienummer i ett formulär. Eller så kan du behöva sammanfoga flera strängar, till exempel ett efternamn och ett förnamn. Om du inte är kunnig med uttryck ännu kan du läsa Skapa ett uttryck.
Här följer en lista över några av de vanligaste strängåtgärderna i Access och de funktioner du använder för att utföra dem:
| Om du vill… | Använd... | Till exempel... | Resultat |
|---|---|---|---|
| Returnera tecken från början av en sträng | Funktionen Vänster | =Vänster([Serienummer];2) | Om [Serienummer] är "CD234" blir resultatet "CD". |
| Returnera tecken från slutet av en sträng | Funktionen Höger | =Höger([Serienummer];3) | Om [Serienummer] är "CD234" blir resultatet "234". |
| Hitta positionen för ett tecken i en sträng | Funktionen SökIStr | =SökIStr(1;[Förnamn];"i") | Om [Förnamn] är "Colin" blir resultatet 4. |
| Returnera tecken från mitten av en sträng | Funktionen EXTEXT | =MITT([Serienummer];2;2) | Om [Serienummer] är "CD234" blir resultatet "D2". |
| Trimma inledande eller avslutande blanksteg i en sträng | Funktionerna VRensa, HRensa och Rensa | =Trimma([Förnamn]) | Om [Förnamn] är " Colin " blir resultatet "Colin". |
| Sammanfoga två strängar | Plustecken (+)-operator* | =[Förnamn] + [Efternamn] | Om [Förnamn] är "Colin" och [Efternamn] är Wilcox, blir resultatet "ColinWilcox" |
| Sammanfoga två strängar med ett blanksteg mellan dem | Plustecken (+)-operator* | =[Förnamn] + " " + [Efternamn] | Om [Förnamn] är "Colin" och [Efternamn] är Wilcox blir resultatet "Colin Wilcox" |
| Ändra skiftläge för en sträng till versaler eller gemener | Funktionen Versaler eller Engelska. | =UCase([Förnamn]) | Om [Förnamn] är "Colin" blir resultatet "COLIN". |
| Bestämma längden på en sträng | Funktionen Längd | =Längd([Förnamn]) | Om [Förnamn] är "Colin" blir resultatet 5. |
* Okej, det är inte en funktion, det är en operator. Det är dock det snabbaste sättet att sammanfoga strängar. I en skrivbordsdatabas kan du också använda et-teckenoperatorn (&) för sammanfogning.
Det finns många fler textrelaterade funktioner i Access. Ett bra sätt att lära sig mer om dem är att öppna Uttrycksverktyget och bläddra igenom funktionslistorna. Uttrycksverktyget finns nästan överallt där du vill skapa ett uttryck. Vanligtvis finns det en liten skapa-knapp som ser ut så här:
För att demonstrera Uttrycksverktyget öppnar vi det från egenskapen Kontrollkälla i ett formulär eller en vy. Använd någon av metoderna nedan beroende på om du använder en skrivbordsdatabas eller en Access-webbapp.
Visa Uttrycksverktyget i en skrivbordsdatabas
Öppna en skrivbordsdatabas (.accdb).
Öppna navigeringsfönstret genom att trycka på F11 om fönstret inte redan är öppet.
Om du redan har ett tillgängligt formulär högerklickar du på det i navigeringsfönstret och klickar på Layoutvy. Om du inte har något formulär att arbeta med klickar du på Skapa>formulär.
Högerklicka på en textruta i formuläret och klicka på Egenskaper.
På egenskapssidan klickar du på Alla>kontrollkällor och klickar på
till höger om egenskapsrutan Kontrollkälla.
Under Uttryckselement expanderar du noden Funktioner och klickar på Inbyggda funktioner.
Klicka på Text underUttryckskategorier.
Under Uttrycksvärden klickar du på de olika funktionerna och läser de korta beskrivningarna längst ned i uttrycksverktyget.
Obs
Alla funktioner är inte tillgängliga i alla sammanhang. Listan filtreras automatiskt beroende på vilka som fungerar i de olika kontexterna.
Kombinera textfunktioner för ökad flexibilitet
Vissa strängfunktioner har numeriska argument som du i vissa fall måste beräkna varje gång du anropar funktionen. Funktionen Vänster tar till exempel en sträng och ett tal, som i =Left(SerialNumber, 2). Det här är bra om du vet att du alltid behöver de två vänstra tecknen, men vad händer om antalet tecken du behöver varierar från objekt till objekt? Istället för att "hårdkoda" antalet tecken kan du ange en annan funktion som beräknar det.
Här är ett exempel på serienummer där var och en har ett bindestreck någonstans i strängen. Bindestreckets placering varierar dock:
| Serienummer |
|---|
| 3928-29993 |
| 23-9923 |
| 333-53234 |
| 3399940-444 |
Om du bara vill visa tal till vänster om bindestrecket behöver du göra en beräkning varje gång för att ta reda på var bindestrecket finns. Ett alternativ är att göra något i stil med detta:
=Left([SerialNumber],InStr(1,[SerialNumber],"-")-1)
I stället för att ange ett tal som det andra argumentet i funktionen Vänster har vi anslutit funktionen SökIStr, som returnerar bindestreckets position i serienumret. Subtrahera 1 från det värdet och du får rätt antal tecken för att funktionen Vänster ska returneras. Det kan verka lite komplicerat till en början, men med lite experimenterande kan du kombinera två eller flera uttryck för att få önskat resultat.