En guide till uttryckens syntax

En guide till uttryckens syntax

När du använder Microsoft Access behöver du ofta arbetar med värden som inte finns direkt i dina data. Du behöver till exempel beräkna moms för en order eller beräkna det totala värdet på själva ordern. Du kan beräkna de här värdena med hjälp av uttryck. Om du vill använda uttryck måste du skriva dem med rätt syntax. Syntax är en uppsättning regler som styr hur orden eller symbolerna i ett uttryck ska kombineras. Till en början är uttryck i Access lite svåra att läsa. Men med en god förståelse av uttryckssyntaxen och lite övning blir det mycket enklare.

I den här artikeln

Uttryck – en översikt

Komponenter i uttryck

Objekt, samlingar och egenskaper

Identifierare

Funktioner, operatorer, konstanter och värden

Kapslingsgränsen för uttryck i en webbdatabas är 65

Uttryck – en översikt

Ett uttryck är en kombination av några eller samtliga av följande: inbyggda eller användardefinierade funktioner, identifierare, operatorer, värden och konstanter, som motsvarar ett enskilt värde.

Beståndsdelarna i ett uttryck

Till exempel innehåller uttrycket nedan vanliga komponenter:

=Sum([Purchase Price])*0.08 
  • Sum() är en inbyggd funktion

  • [Purchase Price] är en identifierare

  • * är en matematisk operator

  • 0.08 är en konstant

Det här uttrycket kan användas i en textruta i sidfoten på ett formulär eller en rapport för att beräkna moms för en artikelgrupp.

Uttryck kan vara mycket mer komplexa eller mycket enklare än det här exemplet. Det här boolesk uttrycket består till exempel av enbart en operator och en konstant.

>0

Det här uttrycket returnerar:

  • True när det jämförs med ett tal som är större än 0.

  • False när det jämförs med ett tal som är mindre än 0.

Du kan använda uttrycket i egenskapen Verifieringsuttryck för en kontroll eller ett tabellfält för att se till att endast positiva värden anges. Uttryck används på många platser för att utföra beräkningar, manipulera tecken eller testa data. Tabeller, frågor, formulär, rapporter och makron har egenskaper som accepterar ett uttryck. Du kan till exempel använda uttryck i egenskaperna Kontrollkälla och Standardvärde för en kontroll. Du kan också använda uttryck i egenskapen Verifieringsuttryck för ett tabellfält.

Överst på sidan

Komponenter i uttryck

När du skapar ett uttryck kombinerar du identifierare med hjälp av funktioner, operatorer, konstanter och värden. Ett giltigt uttryck måste innehålla minst en funktion eller minst en identifierare, och kan också innehålla konstanter eller operatorer. Du kan även använda ett uttryck som en del av ett annat uttryck, i regel som ett argument i en funktion. Det här kallas för att kapsla ett uttryck.

  • Identifierare    Den allmänna formen är:

    [Collection name]![Object name].[Property name]

    Du behöver bara ange tillräckligt många delar av en identifierare för att den ska bli unik inom kontexten för uttrycket. Det är inte ovanligt att en identifierare antar formen [Object name].

  • Funktioner    Den allmänna formen är:

    Function(argument, argument)

    Ett av argumenten är vanligtvis en identifierare eller ett uttryck. Vissa funktioner kräver inte argument. Innan du använder en viss funktion granskar du syntaxen för den funktionen. Mer information finns i Funktioner (ordnade efter kategori).

  • Operatorer    den allmänna formen är:

    Identifier operator identifier

    Det finns undantag från den här formen, vilket du kan se i avsnittet Operatorer.

  • Konstanter    Den allmänna formen är:

    Identifier comparison_operator  constant
  • Värden    Värden kan förekomma på många platser i ett uttryck.

Överst på sidan

Objekt, samlingar och egenskaper

Alla tabeller, frågor, formulär, rapporter och fält i en Access-databas kallas var och en för sig objekt. Alla objekt har ett namn. Vissa objekt är redan namngivna, t.ex. tabellen Kontakter i en databas som skapats utifrån Microsoft Office Access-mallen Kontakter. När du skapar ett nytt objekt ger du det ett namn.

Uppsättningen som utgörs av alla förekomster av en viss typ av objekt kallas en samling. Uppsättningen av alla tabeller i en databas är till exempel en samling. Vissa objekt som ingår i en samling i din databas kan också vara samlingar som innehåller andra objekt. Ett tabellobjekt är till exempel en samling som innehåller fältobjekt.

Objekt har egenskaper, vilka beskriver och utgör ett sätt att ändra objektets egenskaper. Ett frågeobjekt har till exempel en standardvy-egenskap som både beskriver och låter dig ange hur frågan ska visas när du kör den.

I följande diagram visas förhållandet mellan samlingar, objekt och egenskaper:

Relationer mellan samlingar, objekt och egenskaper

3 En egenskap

2 Ett objekt

1 En samling

Överst på sidan

Identifierare

När du använder ett objekt, en samling eller en egenskap i ett uttryck refererar du till det elementet med hjälp av en identifierare. En identifierare innehåller namnet på elementet som du identifierar och även namnet på elementet som den tillhör. Identifieraren för ett fält innehåller till exempel namnet på fältet och namnet på tabellen som fältet tillhör. Ett exempel på en sådan identifierare finns i föregående exempel på ett uttryck:

[Customers]![BirthDate]

I vissa fall fungerar namnet på ett element enbart som en identifierare. Det här är sant när namnet på elementet är unikt i samband med uttrycket som du skapar. Resten av identifieraren är underförstådd genom sammanhanget. Om du till exempel skapar en fråga som används endast i en tabell fungerar fältnamnen ensamma som identifierare, eftersom fältnamnen i en tabell måste vara unika i tabellen. Eftersom du använder endast en tabell är tabellnamnet underförstått i identifierare som du använder i frågan för att referera till ett fält.

I andra fall måste du vara explicit om delarna av en identifierare för att en referens ska fungera. Det här är sant när en identifierare inte är unik i samband med uttrycket. När det finns tvetydigheter måste du uttryckligen beteckna tillräckligt många delar av identifieraren för att den ska bli unik i sammanhanget. Anta att du skapar en fråga som använder en tabell med namnet Produkter och en tabell med namnet Order och att båda tabellerna innehåller ett fält med namnet ProduktID. I ett sådant fall måste identifieraren som du använder i frågan för att hänvisa till det ena eller andra ProduktID-fältet innehålla tabellnamnet förutom fältnamnet, till exempel

[Products]![ProductID]

Identifieraroperatorer    Det finns tre operatorer som du kan använda i en identifierare:

  • Operatorn utropstecken (!)

  • Operatorn punkt (.)

  • Operatorn hakparentes ([ ])

De här operatorerna använder du genom att placera varje del av identifieraren inom hakparenteser och sedan koppla samman dem med en utropstecken-operator eller en punkt-operator. Till exempel kan en identifierare för ett fält med namnet Efternamn i en tabell med namnet Anställda uttryckas som [Employees]![Last Name]. Operatorn utropstecken talar om för Access att det som följer är ett objekt som hör till samlingen som föregår operatorn utropstecken. I det här fallet är [Efternamn] ett fältobjekt som hör till samlingen [Anställda], som också är ett tabellobjekt.

Faktum är att du inte alltid behöver sätta hakparenteser kring en identifierare eller en del av en identifierare. Om det finns inte finns några blanksteg eller andra specialtecken i identifieraren läggs hakparenteserna till automatiskt i Access när det läser uttrycket. Men det är bra att ange hakparenteserna själv – det hjälper dig att undvika fel och fungerar också som en visuell ledtråd om att en viss del av ett uttryck är en identifierare.

Överst på sidan

Funktioner, operatorer, konstanter och värden

Om du vill skapa ett uttryck behöver du mer än identifierare, du behöver utföra en åtgärd av något slag. Du använder funktioner, operatorer och konstanter för att utföra åtgärder i ett uttryck.

Funktioner

En funktion är en process som du kan använda i ett uttryck. Vissa funktioner, till exempel datum, kräver inga ytterligare indata för att fungera. De flesta funktioner behöver dock indata, så kallade argument.

I exemplet i början av den här artikeln använder funktionen DatumDel två argument: ett intervallargument med värdet "yyyy" och ett datumargument med värdet [Customers]![BirthDate]. Funktionen DatumDel kräver minst dessa två argument (intervall och datum) men kan acceptera upp till fyra argument.

I följande lista visas några funktioner som ofta används i uttryck. Klicka på länken för respektive funktion om du vill ha mer information om syntaxen som du bör använda med just den funktionen.

  • Funktionen Datum används för att infoga det aktuella systemdatumet i ett uttryck. Det används ofta i samband med funktionen Format, och används även i samband med fältidentifierare för fält som innehåller data om datum/tid.

    =Date()
  • Funktionen DatumDel används för att fastställa eller extrahera en del av ett datum – i regel ett datum som hämtas från en fältidentifierare, men ibland ett datumvärde som returneras av en annan funktion, till exempel Datum.

    DatePart ( "yyyy", Date())
  • Funktionen DatumDiff används för att ta reda på skillnaden mellan två datum – i regel mellan ett datum som hämtas från en fältidentifierare och ett datum som erhålls med hjälp av funktionen Datum.

    =DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10 
  • Funktionen Format används för att tillämpa ett format på en identifierare och resultatet av en annan funktion.

    Format([Date],"ww")=Format(Now(),"ww")-1 
  • Funktionen OOM används för att beräkna ett uttryck som sant eller falskt och sedan returnera ett angivet värde om uttrycket utvärderas som sant, och ett annat angivet värde om uttrycket utvärderas som falskt.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
  • Funktionen SökIStr används för att söka efter positionen för ett tecken eller sträng i en annan sträng. Strängen som söks igenom hämtas i regel från en fältidentifierare.

    InStr(1,[IPAddress],".")
  • Funktionerna Vänster, Mitt och Höger används för att extrahera tecken från en sträng och börjar med tecknet längst till vänster (Vänster), en viss positionen i mitten (Mitt) eller med tecknet längst till höger (Höger). De används ofta med funktionen SökIStr. Strängen som de här funktionerna extraherar tecken från hämtas i regel från en fältidentifierare.

    Left([ProductName], 1)
    Right([AssetCode], 2) 
    Mid([Phone],2,3) 
    

En lista över funktioner finns i Funktioner (ordnade efter kategori).

Operatorer

En operator är ett ord eller en symbol som anger en aritmetisk eller logisk relation mellan de andra elementen i ett uttryck. Operatorer kan vara:

  • Aritmetiska, till exempel plustecknet (+).

  • Jämförelse, till exempel likhetstecknet (=).

  • Logiska, till exempel Not.

  • Sammanfogning, till exempel &.

  • Special, till exempel Like.

Operatorer används vanligen för att ange en relation mellan två identifierare. I följande tabeller beskrivs operatorer som du kan använda i Access-uttryck.

Aritmetiska    

Du använder de aritmetiska operatorerna för att beräkna ett värde utifrån två eller fler tal eller för att ändra tecknet för ett tal från positivt till negativt.

Operator

Ändamål

Exempel

+

Summera två tal.

[Delsumma]+[Moms]

-

Hitta differensen mellan två tal eller ange det negativa värdet för ett tal.

[Pris]-[Rabatt]

*

Multiplicera två tal.

[Antal]*[Pris]

/

Dividera det första talet med det andra talet.

[Totalt]/[AntalObjekt]

\

Avrunda båda talen till heltal, dividera det första talet med det andra talet och sedan trunkera resultatet till ett heltal.

[Registrerade]\[Rum]

Mod

Dividera det första talet med det andra talet och returnera endast resten.

[Registrerade] Rest [Rum]

^

Upphöja ett tal till en exponent.

Tal ^ Exponent

Jämförelse    

Du använder jämförelseoperatorerna för att jämföra värden och returnera ett resultat som är sant, falskt eller null (ett okänt värde).

Operator

Ändamål

<

Avgöra om det första värdet är mindre än det andra värdet.

<=

Avgöra om det första värdet är mindre än eller lika med det andra värdet.

>

Avgöra om det första värdet är större än det andra värdet.

>=

Avgöra om det första värdet är större än eller lika med det andra värdet.

=

Avgöra om det första värdet är lika med det andra värdet.

<>

Avgöra om det första värdet inte är lika med det andra värdet.

I samtliga fall där det första värdet eller det andra värdet är Null blir resultatet också Null. Eftersom Null representerar ett okänt värde blir resultatet av en jämförelse med Null också okänt.

Logiska    

Du använder de logiska operatorerna för att kombinera två värden och returnera ett sant, falskt eller null-resultat. Logiska operatorer kallas även booleska operatorer.

Operator

Användning

Beskrivning

And

Uttr1 OCH uttr2

Sant om Uttr1 och Uttr2 är sanna.

Or

Uttr1 ELLER uttr2

Sant om antingen Uttr1 eller Uttr2 är sant.

Eqv

Uttr1 EKV uttr2

Sant om både Uttr1 och Uttr2 är sanna, eller om både Uttr1 och Uttr2 är falska.

Not

INTE Uttr

Sant om Uttr inte är sant.

Xor

Uttr1 EXELLER uttr2

Sant om antingen Uttr1 är sant eller Uttr2 är sant, men inte båda.

Sammanfogning    

Du använder sammanfogningsoperatorerna för att kombinera två textvärden till en sträng.

Operator

Användning

Beskrivning

&

sträng1 & sträng2

Kombinerar två strängar till en sträng.

+

sträng1 + sträng2

Kombinerar två strängar till en sträng och sprider null-värden.

Special    

Använd de särskilda operatorerna på det sätt som beskrivs i tabellen nedan.

Operator

Beskrivning

Mer information

Is Null or Is Not Null

Avgör om ett värde är null eller inte null.

Like "pattern"

Matchar strängvärden med hjälp av jokerteckenoperatorerna ? och *.

Operatorn SOM

Between val1 And val2

Avgör om ett numeriskt värde eller datumvärde finns i ett intervall.

Operatorn Mellan...Och

In(string1,string2...)

Avgör om ett strängvärde ingår i en uppsättning strängvärden.

Operatorn I

Konstanter

En konstant är ett känt värde som inte ändras och som du kan använda i ett uttryck. Det finns fyra vanliga konstanter i Access:

  • True anger att något är logiskt sant.

  • False anger att något är logiskt falskt.

  • Null anger att ett känt värde saknas.

  • "" (empty string) anger ett värde som man vet är tomt.

Konstanter kan användas som argument i en funktion och kan användas i ett uttryck som en del av ett villkor. Du kan till exempel använda konstanten tom sträng ("") som en del av ett villkor för en kolumn i en fråga för att beräkna fältvärden för kolumnen genom att ange följande som villkor: <>"". I det här exemplet är <> en operator och "" en konstant. När de används tillsammans anger de att identifieraren som de tillämpas på ska jämföras med en tom sträng. Det uttryck som blir resultatet är sant när identifierarens värde är något annat än en tom sträng.

Var försiktig när du använder konstanten Null. I de flesta fall blir det fel när Null används tillsammans med en jämförelseoperator. Om du vill jämföra ett värde med Null i ett uttryck bör du använda operatorn Is Null eller operatorn Is Not Null.

Värden

Du kan använda litteralvärden i uttrycken, till exempel talet 1,254 eller strängen "Ange ett tal mellan 1 och 10." Du kan också använda numeriska värden, som kan vara en serie med siffror, inklusive tecken och decimalkomma, om det behövs. Om inget tecken anges, antas värdet vara positivt. Om du vill att ett värde ska vara negativt skriver du ett minustecken (-). Du kan också använda matematisk notation. Det gör du genom att ta med "E" eller "e" och exponentens tecken (t.ex. 1,0E-6).

När du använder textsträngar placerar du dem inom citattecken, vilket säkerställer att de tolkas korrekt i Access. I vissa fall infogas citattecknen automatiskt. När du till exempel skriver text i ett uttryck för ett verifieringsuttryck eller för frågevillkor omsluts textsträngarna automatiskt med citattecken.

Om du till exempel skriver texten Paris visas "Paris" i uttrycket. Om du vill att ett uttryck ska skapa en sträng som verkligen omges av citattecken innesluter du antingen den kapslade strängen med apostrofer (') eller inom tre grupper av dubbla citattecken ("). Följande uttryck är till exempel likvärdiga:

Forms![Contacts]![City]. DefaultValue = ' "Paris" ' 
Forms![Contacts]![City].DefaultValue = " " "Paris" " " 

Om du vill använda datum-/tidsvärden omsluter du värdena med nummertecken (#). Exempelvis är #7-3-17#, #7-mar-17# och #mar-7-2017# alla giltiga datum- och tidsvärden. När ett giltigt värde för datum-/tidsvärde påträffas som omges av #-tecken, behandlas värdet automatiskt som datatypen Datum/tid i Access.

Överst på sidan

Kapslingsgränsen för uttryck i en webbdatabas är 65

Uttryck som är kapslade mer än 65 nivåer fungerar inte i webbläsaren. Undvik därför den typen av uttryck i en Access-webbdatabas. Inga felmeddelanden visas, men uttrycket fungerar inte.

Operatorerna &, AND och OR kan skapa fler kapslingsnivåer på servern som inte återspeglas på Access-klienten. Exempelvis är uttrycket "a" & "b" & "c" inte kapslat i Uttrycksverktyget, men i SharePoint blir det concatenate.Db("a", concatenate.Db("b", "c") ). Den här översättningen skapar en kapslingsnivå. Om du använder många &-, AND- eller OR-operatorer i följd i samma uttryck kan serverns kapslingsgräns på 65 överskridas, vilket betyder att uttrycket inte kommer att fungera i webbläsaren.

Överst på sidan

Mer information finns i

Använda Uttrycksverktyget

Introduktion till uttryck

Skapa ett uttryck

Exempel på uttryck

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×