Strängfunktioner och hur de används

Gäller för
Access för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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: Knappbild

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

  1. Öppna en skrivbordsdatabas (.accdb).

  2. Öppna navigeringsfönstret genom att trycka på F11 om fönstret inte redan är öppet.

  3. 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.

  4. Högerklicka på en textruta i formuläret och klicka på Egenskaper.

  5. På egenskapssidan klickar du på Alla>kontrollkällor och klickar på knappen Skapa Knappbild till höger om egenskapsrutan Kontrollkälla.

    Knappen Skapa på Egenskapssidan.

  6. Under Uttryckselement expanderar du noden Funktioner och klickar på Inbyggda funktioner.

  7. Klicka på Text underUttryckskategorier.

  8. 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.