Når du bruger Microsoft Access, har du ofte brug for at arbejde med værdier, der ikke er direkte i dine data. Hvis du eksempelvis vil beregne momsen for en ordre eller beregne den samlede værdi af selve ordren. Du kan beregne disse værdier ved hjælp af udtryk. Hvis du vil bruge udtryk, skal du skrive dem ved hjælp af korrekt syntaks. Syntaks er et sæt regler, som ordene og symbolerne i et udtryk korrekt kombineres efter. I første omgang er udtryk i Access lidt svære at læse. Men med en god forståelse for udtrykssyntaksen og med lidt øvelse bliver det nemmere.
Denne artikel indeholder
- Oversigt over udtryk
- Komponenter i udtryk
- Objekter, samlinger og egenskaber
- Identifikatorer
- Funktioner, operatorer, konstanter og værdier
- Grænsen for indlejring af udtryk i en webdatabase er 65
Oversigt over udtryk
Et udtryk er en kombination af nogle eller alle af følgende: Indbyggede eller brugerdefinerede funktioner, identifikatorer, operatorer, værdier og konstanter, der evalueres til en enkelt værdi.
Følgende udtryk indeholder for eksempel almindelige komponenter:
=Sum([Purchase Price])*0.08
-
Sum()er en indbygget funktion -
[Purchase Price]er en identifikator -
*er en matematisk operator -
0.08er en konstant
Dette udtryk kan bruges i et tekstfelt i en formularfod eller rapportfod til at beregne momsen for en gruppe varer.
Udtryk kan være meget mere komplekse eller meget mere enkle end i dette eksempel. Dette booleske udtryk består f.eks. kun af en operator og en konstant:
>0
Udtrykket returnerer:
-
Truenår det sammenlignes med et tal, der er større end 0. -
Falsenår det sammenlignes med et tal, der er mindre end 0.
Du kan bruge dette udtryk i egenskaben Valideringsregel for et kontrolelement eller tabelfelt til at sikre, at der kun indtastes positive værdier. Udtryk bruges mange steder til at udføre beregninger, redigere tegn eller teste data. Tabeller, forespørgsler, formularer, rapporter og makroer har alle egenskaber, der accepterer et udtryk. Du kan for eksempel bruge udtryk i egenskaberne Kontrolelementkilde og Standardværdi for et kontrolelement. Du kan også bruge udtryk i egenskaben Valideringsregel for et tabelfelt.
Komponenter i udtryk
For at generere et udtryk skal du kombinere identifikatorer ved hjælp af funktioner, operatorer, konstanter og værdier. Et gyldigt udtryk skal indeholde mindst én funktion eller mindst én identifikator og kan også indeholde konstanter eller operatorer. Du kan også bruge et udtryk som en del af et andet udtryk – typisk som argument i en funktion. Dette kaldes at indlejre et udtryk.
Identifikatorer Den generelle formular er:
[Collection name]![Object name].[Property name]Du behøver bare at angive nok dele af en identifikator for at gøre det entydigt i forbindelse med dit udtryk. Det er ikke ualmindeligt, at en identifikator har formen
[Object name].Funktioner Den generelle formular er:
Function(argument, argument)Et af argumenterne er normalt en identifikator eller et udtryk. Nogle funktioner kræver ingen argumenter. Før du bruger en bestemt funktion, skal du gennemse den funktions syntaks. Få mere at vide under Funktioner (arrangeret efter kategori).
Operatorer Den generelle formular er:
Identifier operator identifierDette er undtagelserne til denne formular som beskrevet i afsnittet Operatorer.
Konstanter Den generelle formular er:
Identifier comparison_operator constantVærdier Værdier kan forekomme mange forskellige steder i et udtryk.
Objekter, samlinger og egenskaber
Alle tabeller, forespørgsler, formularer, rapporter og felter i en Access-database kaldes for objekter. Hvert objekt har et navn. Nogle objekter har allerede et navn, f.eks tabellen Kontakter i en database, der er oprettet ud fra skabelonen Kontaktpersoner i Microsoft Office Access. Når du opretter et nyt objekt, skal give du den et navn.
Sættet af alle medlemmer af en bestemt type objekt kaldes en samling. F.eks. er sættet af alle tabeller i en database en samling. Nogle objekter, der er medlem af en samling i databasen, kan også være samlinger, der indeholder andre objekter. F.eks. er en tabelobjekt en samling, der indeholder feltobjekter.
Objekter har egenskaber, som beskriver og gør det muligt at ændre objektets egenskaber. F.eks. har et forespørgselsobjekt egenskaben Standardvisning, der både beskriver og lader dig angive, hvordan forespørgslen vises, når du kører den.
Følgende diagram illustrerer forholdet mellem samlinger, objekter og egenskaber:
|
3 En egenskab 2 Et objekt 1 En samling |
|---|
Identifikatorer
Når du bruger et objekt, en samling eller en egenskab i et udtryk, henviser du til det pågældende element ved hjælp af en identifikator. En identifikator indeholder navnet på det element, du identificerer og navnet på det element, som elementet hører til. For eksempel indeholder identifikatoren til et felt navnet på feltet og navnet på den tabel, som feltet tilhører. Et eksempel på en sådan identifikator er:
[Customers]![BirthDate]
I nogle tilfælde fungerer navnet på et element selv som en identifikator. Det er tilfældet, når navnet på elementet er entydigt i konteksten af et udtryk, du opretter. Resten af id'et antydes af konteksten. Hvis du f.eks. udformer en forespørgsel, der kun bruger én tabel, fungerer feltnavne alene som identifikatorer, fordi feltnavnene i en tabel skal være unikke i den pågældende tabel. Eftersom du kun bruger én tabel, er navnet på tabellen antydet i et hvilket som helst id, som du kan bruge i forespørgslen til at referere til et felt.
I andre tilfælde skal du være eksplicit om delene af en identifikator for, at en reference skal kunne fungere. Det gælder, når en identifikator ikke er entydig i forbindelse med udtrykket. Når der er tvivl, skal du eksplicit angive nok dele af identifikatoren til at gøre den entydig i konteksten. Lad os antage, at du designer en forespørgsel, der bruger en tabel med navnet Produkter og en tabel med navnet Ordrer, og begge tabeller har et felt med navnet Produkt-id. I så fald skal den identifikator, som du bruger i forespørgslen til at referere til et hvilket som helst af felterne Produkt-id, indeholde tabelnavnet ud over feltnavnet. For eksempel:
[Products]![ProductID]
Id-operatorer Der er tre operatorer, du kan bruge i en identifikator:
- Udtæksoperatoren (
!) - Prikoperatoren (
.) - Operatoren kantede parenteser (
[ ])
Du kan bruge disse operatorer ved at omgive hver del af identifikatoren med kantede parenteser og så sammenkæde dem ved hjælp af en udråbstegn- eller en punktum-operator. Eksempelvis kan en identifikator for et felt med navnet Efternavn i en tabel med navnet Medarbejdere udtrykkes som [Employees]![Last Name]. Udråbstegn-operatoren fortæller Access, at det, der følger efter, er et objekt, der hører til den samling, som kommer før udråbstegn-operatoren. I dette tilfælde er [Efternavn] et feltobjekt, der tilhører samlingen [Medarbejdere], som i sig selv er et tabelobjekt.
Strengt taget behøver du ikke altid at skrive kantede parenteser omkring et id eller et delvist id. Hvis der er ikke er nogen mellemrum eller andre specialtegn i id'et, tilføjer Access automatisk de kantede parenteser, når den læser udtrykket. Det er dog en god ide selv at skrive parenteserne – det hjælper dig med at undgå fejl og fungerer også som et visuelt fingerpeg om, at en bestemt del af et udtryk er en identifikator.
Funktioner, operatorer, konstanter og værdier
Hvis du vil oprette et udtryk, skal du bruge mere end identifikatorer – du skal udføre en handling af en slags. Du kan bruge funktioner, operatorer og konstanter til at udføre handlinger i et udtryk.
Funktioner
En funktion er en procedure, som du kan bruge i et udtryk. Nogle funktioner, f.eks. Dato, kræver ikke input for at virke. Men de fleste funktioner kræver input, kaldet argumenter.
I eksemplet i starten af denne artikel bruger funktionen DatePart to argumenter: et intervalargument med en værdi af "yyyy" og et datoargument med en værdi på [Customers]![BirthDate]. Funktionen DatePart kræver mindst to argumenter (interval og dato), men de kan acceptere op til fire argumenter.
Følgende liste viser nogle funktioner, der ofte bruges i udtryk. Klik på linket for hver funktion for at få flere oplysninger om den syntaks, du bruger med den pågældende funktion.
Funktionen Dato anvendes til at indsætte systemets dags dato i et udtryk. Den anvendes ofte sammen med funktionen Format og også med feltidentifikatorer til felter, der indeholder dato/klokkeslæt-data.
=Date()Funktionen DatePart bruges til at bestemme eller udtrække en del af en dato – som regel en dato, der hentes fra en feltidentifikator, men nogle gange en datoværdi, der returneres af en anden funktion, f.eks. Dato.
DatePart ( "yyyy", Date())Funktionen DateDiff bruges til at bestemme forskellen mellem to datoer – normalt mellem en dato, der hentes fra en feltidentifikator, og en dato, der opnås ved hjælp af funktionen Dato.
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10Funktionen Format bruges til at anvende et format på en identifikator og resultaterne af en anden funktion.
Format([Date],"ww")=Format(Now(),"ww")-1Funktionen IIf bruges til at evaluere et udtryk som sandt eller falsk og returnerer derefter én værdi, hvis udtrykket evalueres som sandt, og en anden værdi, hvis udtrykket evalueres som falsk.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")Funktionen InStr bruges til at søge efter placeringen af et tegn eller en streng i en anden streng. Strengen, der søges, hentes normalt fra en feltidentifikator.
InStr(1,[IPAddress],".")Funktionerne Venstre, Midt og Højre anvendes til at udtrække tegn fra en tekststreng fra og med tegnet længst til venstre (Venstre), en bestemt position i midten (Midt) eller fra og med tegnet længst til højre (Højre). De bruges ofte sammen med funktionen InStr. Den streng, som disse funktioner udtrækker tegn fra, hentes normalt fra en feltidentifikator.
Left([ProductName], 1) Right([AssetCode], 2) Mid([Phone],2,3)
Se en liste over funktioner i Funktioner (arrangeret efter kategori).
Operatorer
En operator er et ord eller et symbol, der angiver en bestemt matematisk eller logisk relation mellem de andre elementer i et udtryk. Operatorer kan være:
-
Matematisk, f.eks. plustegnet (
+). -
Sammenligning, f.eks. lighedstegnet (
=). -
Logisk, f.eks
Not. . -
Sammenkædning, f.eks
&. . -
Speciel, f.eks
Like. .
Operatorer bruges normalt til at angive en relation mellem to identifikatorer. I følgende tabel beskrives de operatorer, du kan bruge i Access-udtryk.
Du bruger de matematiske operatorer til at beregne en værdi ud fra to eller flere tal eller for at skifte tegn på et tal fra positivt til negativt.
| Operator | Formål | Eksempel |
|---|---|---|
+ |
Lægger to tal sammen. | [Subtotal]+[Moms] |
- |
Finder differencen mellem to tal eller angiver den negative værdi af et tal. | [Pris]-[Rabat] |
* |
Ganger to tal. | [Antal]*[Pris] |
/ |
Dividerer det første tal med det andet tal. | [Total]/[AntalVarer] |
\ |
Afrunder begge tal til heltal, dividerer det første tal med det andet tal og afrunder derefter resultatet til et heltal. | [Tilmeldte]\[Værelser] |
Mod |
Dividerer det første tal med det andet tal og returnerer kun resten. | [Tilmeldte] Mod [Værelser] |
^ |
Opløfter et tal til en eksponent. | Tal ^ Eksponent |
Sammenligning
Du bruger sammenligningsoperatorerne til at sammenligne værdier og returnere et resultat, der enten er sandt, falsk eller Null (en ukendt værdi).
| Operator | Formål |
|---|---|
< |
Afgør, om den første værdi er mindre end den anden værdi. |
<= |
Afgør, om den første værdi er mindre end eller lig med den anden værdi. |
> |
Afgør, om den første værdi er større end den anden værdi. |
>= |
Afgør, om den første værdi er større end eller lig med den anden værdi. |
= |
Afgør, om den første værdi er lig med den anden værdi. |
<> |
Afgør, om den første værdi ikke er lig med den anden værdi. |
Hvis enten den første værdi eller den anden værdi er Null, er resultatet i alle tilfælde også Null. Da Null repræsenterer en ukendt værdi, er resultatet af enhver sammenligning Null også ukendt.
Logisk
Du bruger de logiske operatorer til at kombinere to værdier og returnere enten resultatet sandt, falsk eller Null. Du ser måske også logiske operatorer blive kaldt for Booleske operatorer.
| Operator | Anvendelse | Beskrivelse |
|---|---|---|
And |
Udtryk1 og Udtryk2 | Sandt, hvis både Udtryk1 og Udtryk2 er sande. |
Or |
Udtryk1 eller Udtryk2 | Sandt, hvis enten Udtryk1 eller Udtryk2 er sandt. |
Eqv |
Udtryk1 Eqv Udtryk2 | Sandt, hvis både Udtryk1 og Udtryk2 er sande, eller både Udtryk1 og Udtryk2 er falske. |
Not |
Ikke udtryk | Sandt, hvis Udtryk ikke er sandt. |
Xor |
Udtryk1 Xor Udtryk2 | Sandt, hvis enten Udtryk1 eller Udtryk2 er sandt, men ikke hvis begge udtryk er sande. |
Sammenkædende
Du kan bruge sammenføjningsoperatorer til at kombinere to tekstværdier i én streng.
| Operator | Anvendelse | Beskrivelse |
|---|---|---|
& |
streng1 og streng2 | Kombinerer to strenge for at danne én streng. |
+ |
streng1 + streng2 | Kombinerer to strenge til én streng og overfører null-værdier. |
Særlige
Du bruger de særlige operatorer som beskrevet i følgende tabel.
| Operator | Beskrivelse | Få mere at vide |
|---|---|---|
Is Null or Is Not Null |
Bestemmer, om en værdi er Null eller Not Null. | |
Like "pattern" |
Sammenligner strengværdier ved hjælp af jokertegnoperatorer ?og *. |
Operatoren Like |
Between val1 And val2 |
Bestemmer, om en numerisk værdi eller en datoværdi falder inden for et interval. | Operatoren Mellem...og |
In(string1,string2...) |
Bestemmer, om en strengværdi er indeholdt i et sæt af værdier. | Operatoren In |
Konstanter
En konstant er en kendt værdi, der ikke ændres, og som du kan bruge i et udtryk. Der er fire ofte anvendte konstanter i Access:
-
Trueangiver noget, der er logisk sandt. -
Falseangiver noget, der er logisk falsk. -
Nullangiver manglen på en kendt værdi. -
"" (empty string)angiver en værdi, der vides at være tom.
Konstanter kan bruges som argumenter i en funktion og kan bruges i et udtryk som en del af et kriterium. Du kan f.eks. bruge konstanten tom streng ("") som en del af et kriterium for en kolonne i en forespørgsel til at evaluere feltværdierne for den pågældende kolonne ved at angive følgende som kriteriet: <>"". I dette eksempel <> er en operator og "" er en konstant. Hvis de bruges sammen, angiver de, at det id, som de anvendes med, skal sammenlignes med en tom streng. Det udtryk, der er resultatet, er sandt, når id-værdien er alt andet end en tom streng.
Vær forsigtig, når du bruger konstanten Null . I de fleste tilfælde medfører brug Null sammen med en sammenligningsoperator en fejl. Hvis du vil sammenligne en værdi Null med i et udtryk, skal du bruge Is Null operatoren Is Not Null eller .
Værdier
Du kan bruge konstanter i dit udtryk, f.eks tallet 1,254 eller strengen "Angiv et tal mellem 1 og 10". Du kan også bruge numeriske værdier, som kan være en række tal, herunder et tegn og et decimaltegn, hvis det er nødvendigt. I fravær af et tegn antager Access en positiv værdi. Hvis du vil gøre en værdi negativ, skal du medtage minustegnet (-). Du kan også bruge videnskabelig notation. Det gør du ved at medtage "E" eller "e" og eksponentens fortegn (f.eks. 1,0E-6).
Når du bruger tekststrenge, kan du placere dem i anførselstegn for at sikre, at Access fortolker dem korrekt. I nogle tilfælde tilføjer Access anførselstegnene for dig. Når du f.eks. skriver tekst i et udtryk til en valideringsregel eller til et forespørgselskriterie, sætter Access automatisk anførselstegn omkring dine tekststrenge.
Hvis du f.eks. skriver teksten Paris, vises "Paris" i udtrykket. Hvis du vil have et udtryk til at oprette en streng, der faktisk er omsluttet af anførselstegn, skal du sætte den indlejrede streng enten i enkelte (') anførselstegn eller i tre sæt dobbelte (") anførselstegn. Eksempelvis er følgende udtryk tilsvarende:
Forms![Contacts]![City]. DefaultValue = ' "Paris" '
Forms![Contacts]![City].DefaultValue = " " "Paris" " "
Hvis du vil bruge dato-/klokkeslætsværdier, skal værdierne omsluttes af nummertegn (#). F.eks. er #3-7-17#, #7-Mar-17# og #Mar-7-2017# alle gyldige værdier for dato/klokkeslæt. Når Access støder på en gyldig dato/klokkeslætværdi, der er omsluttet af #-tegn, behandles værdien automatisk som datatypen dato/klokkeslæt.
Indlejringsgrænsen for udtryk i en webdatabase er 65
Udtryk indlejret mere end 65 niveauer nede fungerer ikke i browseren, så du bør ikke bruge sådanne udtryk i en Access-webdatabase. Du får ikke nogen fejlmeddelelser – udtrykket virker bare ikke.
Brugen af operatorerne &, ANDog OR kan oprette yderligere indlejringsniveauer på serveren, der ikke afspejles i Access-klienten. Udtrykket "a" & "b" & "c" er f.eks. ikke indlejret i Udtryksgenerator, men i SharePoint bliver det til concatenate.Db("a", concatenate.Db("b", "c") ). Denne oversættelse skaber ét indlejringsniveau. Hvis du bruger mange efterfølgende &operatorer , ANDeller OR i et enkelt udtryk, kan det medføre, at du overskrider serverens indlejringsgrænse på 65, hvorefter udtrykket ikke fungerer i browseren.
Brug af UdtryksgeneratorIntroduktion til udtrykGenerér et udtrykEksempler på udtryk