Denne artikel indeholder mange eksempler på udtryk i Access. Et udtryk er en kombination af matematiske eller logiske operatorer, konstanter, funktioner, tabelfelter, kontrolelementer og egenskaber, der evalueres til en enkelt værdi. Du kan bruge udtryk i Access til at beregne værdier, validere data og angive en standardværdi.
I denne artikel
Formularer og rapporter
Tabellerne i denne sektion indeholder eksempler på udtryk, der beregner en værdi i et kontrolelement, der findes i en formular eller rapport. Hvis du vil oprette et beregnet kontrolelement, skal du angive et udtryk i egenskaben Kontrolelementkilde for kontrolelementet i stedet for i en tabel eller forespørgsel.
Bemærk! Du kan også bruge udtryk i en formular eller rapport, når du fremhæver data med betinget formatering.
Teksthandlinger
Udtrykkene i følgende tabel bruger operatorerne & (og-tegnet) og + (plustegnet) til at kombinere tekststrenge, indbyggede funktioner til at manipulere en tekststreng eller på anden vis operere på tekst for at oprette et beregnet kontrolelement.
Udtryk |
Resultat |
---|---|
="N/A" |
Viser I/T. |
=[FirstName] & " " & [LastName] |
Viser de værdier, der findes i tabelfelterne Fornavn og Efternavn. I dette eksempel bruges operatoren & til at kombinere feltet Fornavn, et mellemrum (omgivet af anførselstegn) og feltet Efternavn. |
=Left([ProductName], 1) |
Anvender funktionen Left til at vise det første tegn i værdien af et felt eller kontrolelement med navnet Produktnavn. |
=Right([AssetCode], 2) |
Anvender funktionen Right til at vise de seneste 2 tegn i værdien af et felt eller kontrolelement med navnet Aktivnummer. |
=Trim([Address]) |
Anvender funktionen Trim til at vise værdien af kontrolelementet Adresse, så du kan fjerne eventuelle foranstillede eller efterstillede mellemrum. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Anvender funktionen IIf til at vise værdierne for kontrolelementerne By og Postnummer, hvis værdien i kontrolelementet Område er null. Ellers vises værdierne for kontrolelementerne By, Område og Postnummer adskilt med mellemrum. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
Anvender operatoren + og null-overførsel til at vise værdierne for kontrolelementerne By og Postnummer, hvis værdien i kontrolelementet Område er null. Ellers vises værdierne for felterne eller kontrolelementerne By, Område og Postnummer adskilt med mellemrum. Null-overførsel betyder, at hvis en komponent i et udtryk er null, er hele udtrykket også null. Operatoren + understøtter null-overførsel, mens operatoren & ikke gør det. |
Sidehoveder og sidefødder
Du kan bruge egenskaberne Side og Sider til at vise eller udskrive sidetal i formularer eller rapporter. Egenskaberne Side og Sider er kun tilgængelige under udskrivning eller i Vis udskrift, så de vises ikke på formularens eller rapportens egenskabsark. Typisk bruges disse egenskaber ved at placere et tekstfelt i sidehovedet eller sidefoden i formularen eller rapporten og derefter bruge et udtryk, sådan som det er vist i følgende tabel.
Læs artiklen Indsæt sidetal i en formular eller rapport for at få flere oplysninger om at bruge sidehoveder og sidefødder i formularer og rapporter.
Udtryk |
Resultat |
---|---|
=[Page] |
1 |
="Page " & [Page] |
Side 1 |
="Page " & [Page] & " of " & [Pages] |
Side 1 af 3 |
=[Page] & " of " & [Pages] & " Pages" |
1 af 3 sider |
=[Page] & "/" & [Pages] & " Pages" |
1/3 sider |
=[Country/region] & " - " & [Page] |
DK – 1 |
=Format([Page], "000") |
001 |
="Printed on: " & Date() |
Udskrevet: 31-12-17 |
Matematiske operationer
Du kan bruge udtryk til at addere, subtrahere, multiplicere og dividere værdierne i to eller flere felter eller kontrolelementer. Du kan også bruge udtryk til at udføre matematiske operationer på datoer. Lad os antage, at du har et felt med dato og klokkeslæt i en tabel med navnet Leveringsdato. I feltet eller i et kontrolelement, der er bundet til feltet, returnerer udtrykket =[RequiredDate] - 2 en værdi for dato og klokkeslæt, som er lig med to dage før de aktuelle værdier i feltet Leveringsdato.
Udtryk |
Resultat |
---|---|
=[Subtotal]+[Freight] |
Summen af værdierne i felterne eller kontrolelementerne Subtotal og Fragt. |
=[RequiredDate]-[ShippedDate] |
Intervallet mellem datoværdierne i felterne eller kontrolelementerne Leveringsdato og Forsendelsesdato. |
=[Price]*1.06 |
Produktet af værdien i feltet eller kontrolelementet Pris og 1,06 (føjer 6 procent til værdien Pris). |
=[Quantity]*[Price] |
Produktet af værdierne i felterne eller kontrolelementerne Antal og Pris. |
= [EmployeeTotal]/[CountryRegionTotal] |
Kvotienten af værdierne i felterne eller kontrolelementerne Medarbejdertotal og Landetotal. |
Bemærk! Når du bruger en matematisk operator (+, -, * og /) i et udtryk, og værdien af et af kontrolelementerne i udtrykket er null, er resultatet af hele udtrykket null – dette kaldes null-overførsel. Hvis en af posterne i et af de kontrolelementer, du bruger i udtrykket, muligvis har en null-værdi, kan du undgå null-overførsel ved at konvertere null-værdien til nul ved hjælp af funktionen Nz – f.eks. =Nz([Subtotal])+Nz([Freight]).
Værdier i andre kontrolelementer
Du kan få brug for en værdi, der findes et andet sted, som f.eks. i et felt eller et kontrolelement i en anden formular eller rapport. Du kan bruge et udtryk for at returnere værdien fra et andet felt eller kontrolelement.
I nedenstående tabel vises eksempler på udtryk, du kan bruge i beregnede kontrolelementer i formularer.
Udtryk |
Resultat |
---|---|
=Forms![Orders]![OrderID] |
Værdien af kontrolelementet Ordre-id i formularen Ordrer. |
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] |
Værdien af kontrolelementet Ordresubtotal i underformularen ved navn Underformularen Ordrer i formularen Ordrer. |
=Forms![Orders]![Orders Subform]![ProductID].Column(2) |
Værdien af tredje kolonne i Produkt-id, et listefelt med flere kolonner på underformularen ved navn Underformularen Ordrer på formularen Ordrer. Bemærk, at 0 refererer til den første kolonne, 1 refererer til den anden kolonne osv. |
=Forms![Orders]![Orders Subform]![Price] * 1.06 |
Produktet af værdien af kontrolelementet Pris i underformularen Ordrer i formularen Ordrer og 1,06 (tilføjer 6 procent til værdien af kontrolelementet Pris). |
=Parent![OrderID] |
Værdien af kontrolelementet Ordre-id i hovedvinduet eller den overordnede formular i den aktuelle underformular. |
Udtrykkene i følgende tabel viser eksempler på anvendelsen af beregnede kontrolelementer i rapporter. Udtrykkene refererer til egenskaben Rapport.
Udtryk |
Resultat |
---|---|
=Report![Invoice]![OrderID] |
Værdien af kontrolelementet "Ordre-id" i rapporten "Faktura". |
=Report![Summary]![Summary Subreport]![SalesTotal] |
Værdien af kontrolelementet Salgstotal i underrapporten Oversigtsunderrapport i rapporten Oversigt. |
=Parent![OrderID] |
Værdien af kontrolelementet Ordre-id i hovedrapporten eller den overordnede rapport i den aktuelle underrapport. |
Antal, sum og gennemsnit af værdier
Du kan bruge en type funktion, der kaldes en aggregeringsfunktion, til at beregne værdierne for et eller flere felter eller kontrolelementer. Du kan f.eks. beregne en gruppetotal for gruppefoden i en rapport eller en ordresubtotal for linjeelementer i en formular. Du kan også tælle antallet af elementer i ét eller flere felter eller beregne en gennemsnitlig værdi.
Udtrykkene i følgende tabel viser nogle måder at bruge funktioner på, som f.eks. Avg, Count og Sum.
Udtryk |
Beskrivelse |
---|---|
=Avg([Freight]) |
Anvender funktionen Avg til at vise gennemsnittet af værdierne i et tabelfelt eller kontrolelement med navnet "Fragt". |
=Count([OrderID]) |
Anvender funktionen Count til at vise antallet af poster i kontrolelementet Ordre-id. |
=Sum([Sales]) |
Anvender funktionen Sum til at vise summen af værdierne i kontrolelementet Salg. |
=Sum([Quantity]*[Price]) |
Anvender funktionen Sum til at vise summen af produktet af værdierne i kontrolelementerne Pris og Antal. |
=[Sales]/Sum([Sales])*100 |
Viser procentdelen af salg, som fastslås ved at dividere værdien i kontrolelementet Salg med summen af alle værdierne i kontrolelementet Salg. Hvis du indstiller egenskaben Format for kontrolelementet til Procent, skal du ikke inkludere *100 i udtrykket. |
Hvis du vil have mere at vide om at bruge aggregeringsfunktioner og at beregne totalværdier i felter og kolonner, skal du se artiklerne Opsummer data ved hjælp af en forespørgsel, Optæl data ved hjælp af en forespørgsel, Vis kolonnetotaler i et regneark ved hjælp af rækken Total og Vis kolonnetotaler i et dataark.
SQL-aggregeringsfunktioner
Når du vil sammenlægge eller tælle værdier selektivt, skal du bruge en funktionstype, der kaldes en SQL-funktion eller en domæneaggregeringsfunktion. Et "domæne" består af et eller flere felter i en eller flere tabeller eller et eller flere kontrolelementer i en eller flere formularer eller rapporter. Du kan f.eks. sammenligne værdierne i et tabelfelt med værdierne i et kontrolelement i en formular.
Udtryk |
Beskrivelse |
---|---|
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) |
Anvender funktionen DLookup til at returnere værdien af feltet Kontaktnavn i tabellen Leverandører, hvor værdien af feltet Leverandør-id i tabellen svarer til værdien af kontrolelementet Leverandør-id i formularen Leverandører. |
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) |
Anvender funktionen DLookup til at returnere værdien af feltet Kontaktnavn i tabellen Leverandører, hvor værdien af feltet Leverandør-id i tabellen svarer til værdien af kontrolelementet Leverandør-id i formularen Nye leverandører. |
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") |
Anvender funktionen DSum til at returnere den samlede sum af værdierne i feltet Ordrebeløb i tabellen Ordrer, hvor Kunde-id er RATTC. |
=DCount("[Retired]","[Assets]","[Retired]=Yes") |
Anvender funktionen DCount til at returnere antallet af Ja-værdier i feltet Pensioneret (et Ja/Nej-felt) i tabellen Aktiver. |
Datohandlinger
Registrering af datoer og klokkeslæt er en grundlæggende databaseaktivitet. Du kan f.eks. beregne, hvor mange dage, der er gået siden fakturadatoen for at registrere tidsintervaller i debitorbogholderiet. Du kan formatere datoer og klokkeslæt på mange måder, som det fremgår af nedenstående tabel.
Udtryk |
Beskrivelse |
---|---|
=Date() |
Anvender funktionen Dato til at vise den aktuelle dato i form af mm-dd-yy, hvor mm er måneden (1 til 12), dd er dagen (1 til 31), og yy er de to sidste cifre i året (1980 til 2099). |
=Format(Now(), "ww") |
Anvender funktionen Format til at vise ugenummeret i året for den aktuelle dato, hvor ww repræsenterer ugerne 1 til 53. |
=DatePart("yyyy", [OrderDate]) |
Anvender funktionen DatePart til at vise det firecifrede årstal for værdien i kontrolelementet Ordredato. |
=DateAdd("y", -10, [PromisedDate]) |
Anvender funktionen DateAdd til at vise en dato, der er 10 dage før værdien af kontrolelementet AftaltDato. |
=DateDiff("d", [OrderDate], [ShippedDate]) |
Anvender funktionen DateDiff til at vise antallet af dages forskel mellem værdierne i kontrolelementerne Ordredato og Forsendelsesdato. |
=[InvoiceDate] + 30 |
Anvender matematiske operationer på datoer til at beregne datoen 30 dage efter datoen i feltet eller kontrolelementet Fakturadato. |
Betingelser for kun to værdier
Eksempeludtrykkene i følgende tabel anvender IIf-funktionen til at returnere en af to mulige værdier. IIf-funktionen benytter tre argumenter: Det første argument er et udtryk, der returnerer værdien True eller False. Det andet argument er den værdi, der skal returneres, hvis udtrykket er sandt, og det tredje argument er den værdi, der skal returneres, hvis udtrykket er falsk.
Udtryk |
Beskrivelse |
---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
Anvender funktionen IIf (Immediate If) til at vise meddelelsen "Ordre bekræftet", hvis værdien af kontrolelementet Bekræftet er Yes, og ellers vises meddelelsen "Order Not Confirmed." |
=IIf(IsNull([Country/region]), " ", [Country]) |
Anvender funktionerne IIf og IsNull til at vise en tom streng, hvis værdien i feltet Land/område er null, og ellers vises værdien fra kontrolelementet Land/område. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
Anvender funktionerne IIf og IsNull til at vise værdierne for kontrolelementerne By og Postnummer, hvis værdien i kontrolelementet Område er null, og ellers vises værdierne for felterne eller kontrolelementerne By, Område og Postnummer. |
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Anvender funktionerne IIf og IsNull til at vise meddelelsen "Kontrollér, om der mangler en dato", hvis resultatet af at trække Forsendelsesdato fra Leveringsdato er null, og ellers vises intervallet mellem datoværdierne i kontrolelementerne Leveringsdato og Forsendelsesdato. |
Forespørgsler og filtre
Denne sektion indeholder eksempler på udtryk, der kan bruges til at oprette et beregnet felt i en forespørgsel eller til at levere kriterier til en forespørgsel. Et beregnet felt er en kolonne i en forespørgsel, der kommer af et udtryk. Du kan f.eks. beregne en værdi, kombinere tekstværdier som f.eks. fornavn og efternavn eller formatere en del af en dato.
Du kan bruge kriterier i en forespørgsel til at begrænse de poster, du arbejder med. Du kan f.eks. bruge operatoren Between til at angive en startdato og slutdato og begrænse resultaterne af forespørgslen til ordrer, der blev sendt mellem de pågældende datoer.
Følgende indeholder eksempler på udtryk, der anvendes i forespørgsler.
Teksthandlinger
Udtrykkene i den følgende tabel anvender operatorerne & og + til at kombinere tekststrenge, indbyggede funktioner til at manipulere tekststrenge eller på anden vis arbejde med tekst for at oprette et beregnet felt.
Udtryk |
Beskrivelse |
---|---|
FullName: [FirstName] & " " & [LastName] |
Opretter et felt med navnet Fulde navn, der viser værdierne i felterne Fornavn og Efternavn, adskilt af et mellemrum. |
Address2: [City] & " " & [Region] & " " & [PostalCode] |
Opretter et felt med navnet Adresse2, der viser værdierne i felterne By, Område og Postnummer adskilt af mellemrum. |
ProductInitial: Left([ProductName], 1) |
Opretter et felt med navnet Produktinitial og anvender derefter funktionen Left til at vise det første tegn af værdien i feltet Produktnavn i feltet Produktinitial. |
TypeCode: Right([AssetCode], 2) |
Opretter et felt med navnet Typenummer og anvender derefter funktionen Right til at vise de sidste to tegn af værdierne i feltet Aktivnummer. |
AreaCode: Mid([Phone],2,3) |
Opretter et felt med navnet Områdenummer og anvender derefter funktionen Mid til at vise de tre tegn, hvor det første er det andet tegn af værdien i feltet Telefon. |
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 |
Navngiver det beregnede felt UdvidetPris og anvender funktionen CCur til at beregne linjeelementtotaler med en anvendt rabat. |
Matematiske operationer
Du kan bruge udtryk til at addere, subtrahere, multiplicere og dividere værdierne i to eller flere felter eller kontrolelementer. Du kan også udføre matematiske operationer på datoer. Lad os antage, at du har et felt med dato og klokkeslæt med navnet Leveringsdato. Udtrykket =[RequiredDate] - 2 returnerer en værdi for dato og klokkeslæt, som er lig med to dage før værdien i feltet Leveringsdato.
Udtryk |
Beskrivelse |
---|---|
PrimeFreight: [Freight] * 1.1 |
Opretter et felt kaldet PrimærFragt og viser derefter fragtomkostninger plus 10 procent i feltet. |
OrderAmount: [Quantity] * [UnitPrice] |
Opretter et felt kaldet Ordrebeløb og viser derefter produktet af værdierne i felterne Antal og Enhedspris. |
LeadTime: [RequiredDate] - [ShippedDate] |
Opretter et felt med navnet Leveringstid og viser derefter forskellen mellem værdierne i felterne Leveringsdato og Forsendelsesdato. |
TotalStock: [UnitsInStock]+[UnitsOnOrder] |
Opretter et felt med navnet Lager i alt og viser derefter summen af værdierne i felterne Enheder på lager og Enheder i bestilling. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Opretter et felt kaldet Fragtprocent og viser derefter procentdelen af fragtomkostninger i hver subtotal. Dette udtryk anvender funktionen Sum til at lægge værdierne i feltet Fragt sammen og derefter dividere disse totaler med summen af værdierne i feltet Subtotal. For at bruge dette udtryk skal du konvertere udvælgelsesforespørgslen til en totalforespørgsel, da du skal bruge rækken Total i designgitteret, og du skal angive cellen Total for dette felt til Udtryk. Du kan få mere at vide om at oprette en totalforespørgsel i artiklen Opsummere data ved hjælp af en forespørgsel. Hvis du indstiller egenskaben Format for feltet til Procent, så undlad at medtage *100. |
Hvis du vil have mere at vide om at bruge aggregeringsfunktioner og at beregne totalværdier i felter og kolonner, skal du se artiklerne Opsummer data ved hjælp af en forespørgsel, Optæl data ved hjælp af en forespørgsel, Vis kolonnetotaler i et regneark ved hjælp af rækken Total og Vis kolonnetotaler i et dataark.
Datohandlinger
Næsten alle databaser lagrer og sporer datoer og klokkeslæt. Du arbejder med datoer og klokkeslæt i Access ved at angive felter for dato og klokkeslæt i tabellerne til datatypen Dato/klokkeslæt. Access kan udføre matematiske beregninger på datoer. Du kan f.eks. beregne, hvor mange dage der er gået siden fakturadatoen for at registrere tidsintervaller i debitorbogholderiet.
Udtryk |
Beskrivelse |
---|---|
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) |
Opretter et felt med navnet Mellemliggende tid og anvender derefter funktionen DateDiff til at vise antallet af dage mellem ordredatoen og forsendelsesdatoen. |
YearHired: DatePart("yyyy",[HireDate]) |
Opretter et felt med navnet Ansættelsesår og anvender derefter funktionen DatePart til at vise det år, hver enkelt medarbejder blev ansat. |
MinusThirty: Date( )- 30 |
Opretter et felt med navnet MinusTredive og anvender derefter funktionen Dato til at vise datoen 30 dage forud for dags dato. |
SQL-aggregeringsfunktioner
Udtrykkene i følgende tabel anvender SQL-funktioner (Structured Query Language), der sammenlægger eller opsummerer data. Man ser ofte, at disse funktioner (f.eks. Sum, Count og Avg) kaldes aggregeringsfunktioner.
Foruden aggregeringsfunktioner indeholder Access også "domæne"-aggregeringsfunktioner, som du kan bruge til at sammenlægge eller tælle værdier selektivt. Du kan f.eks. nøjes med at tælle værdierne i et bestemt område eller slå en værdi op fra en anden tabel. Sættet af domæneaggregeringsfunktioner omfatter funktionen DSum, funktionen DCount og funktionen DAvg.
Hvis du vil beregne totaler, er du ofte nødt til at oprette en totalforespørgsel. Hvis f.eks. vil opsummere efter gruppe, skal du bruge en totalforespørgsel. Hvis du vil aktivere en totalforespørgsel, skal du klikke på Totaler i menuen Vis i forespørgselsdesigngitteret.
Udtryk |
Beskrivelse |
---|---|
RowCount: Count(*) |
Opretter et felt med navnet Rækkeantal og anvender derefter funktionen Count til at tælle antallet af poster i forespørgslen, herunder poster med null-felter (tomme). |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
Opretter et felt med navnet Fragtprocent og beregner derefter procentdelen af fragtomkostninger i hver subtotal ved at dividere summen af værdierne i feltet Fragt med summen af værdierne i feltet Subtotal. I dette eksempel bruges funktionen Sum. Du skal bruge dette udtryk sammen med en totalforespørgsel. Hvis du indstiller egenskaben Format for feltet til Procent, så undlad at inkludere *100. Du kan få mere at vide om at oprette en Totalforespørgsel i artiklen Opsummer data ved hjælp af en forespørgsel. |
AverageFreight: DAvg("[Freight]", "[Orders]") |
Opretter et felt med navnet Gennemsnitsfragt og anvender derefter funktionen DAvg til at beregne den gennemsnitlige fragt på alle ordrer kombineret i en totalforespørgsel. |
Felter med manglende data
De udtryk, der er vist her, bruges på felter, der kan mangle oplysninger, f.eks. fordi de indeholder null-værdier (ukendte eller udefinerede). Du vil ofte støde på null-værdier, f.eks. en ukendt pris på et nyt produkt eller en værdi, som en kollega har glemt at føje til en ordre. Muligheden for at finde og behandle null-værdier kan være en afgørende del af databasehandlinger, og udtrykkene i følgende tabel viser nogle almindelige metoder til at håndtere null-værdier.
Udtryk |
Beskrivelse |
---|---|
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) |
Opretter et felt med navnet AktueltLandOmråde og anvender derefter funktionerne IIf og IsNull til at vise en tom streng i feltet, når feltet LandOmråde indeholder en null-værdi, og ellers vises indholdet af feltet LandOmråde. |
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
Opretter et felt med navnet Leveringstid og anvender derefter funktionerne IIf og IsNull til at vise meddelelsen "Kontrollér, om der mangler en dato", hvis værdien i feltet Leveringsdato eller feltet Forsendelsesdato er null, og ellers vises datoforskellen. |
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) |
Opretter et felt med navnet Halvårssalg og viser derefter summen af værdierne i felterne K1Salg og K2Salg ved først at anvende funktionen Nz til at konvertere eventuelle null-værdier til nul. |
Beregnede felter med underforespørgsler
Du kan bruge en indlejret forespørgsel, en såkaldt underforespørgsel, til at oprette et beregnet felt. Udtrykket i følgende tabel er et eksempel på et beregnet felt, der er resultatet af en underforespørgsel.
Udtryk |
Beskrivelse |
---|---|
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) |
Opretter et felt med navnet Kat og viser derefter Kategorinavn, hvis Kategori-id i den samme Kategori-tabel er det samme som Kategori-id i tabellen Produkter. |
Sammenlign tekstværdier
Eksempeludtrykkene i denne tabel demonstrerer kriterier, der sammenligner hele eller dele af tekstværdier.
Felt |
Udtryk |
Beskrivelse |
---|---|---|
Modtagerby |
"London" |
Viser ordrer, der sendes til London. |
Modtagerby |
"London" Or "Hedge End" |
Anvender operatoren Or til at vise ordrer, der er sendt til London eller Hedge End. |
ModtagerLand |
In("Canada", "UK") |
Anvender operatoren In til at vise ordrer, der er sendt til Canada eller Storbritannien. |
ModtagerLand |
Not "USA" |
Anvender operatoren Not til at vise ordrer, der er sendt til andre lande/områder end USA. |
Produktnavn |
Not Like "C*" |
Anvender operatoren Not og jokertegnet * til at vise produkter, hvis navne ikke begynder med C. |
Firmanavn |
>="N" |
Viser ordrer, der er blevet sendt til virksomheder, hvis navne starter med bogstaverne N til Z. |
Produktkode |
Right([ProductCode], 2)="99" |
Anvender funktionen Right til at vise ordrer med værdier for Produktkode, der slutter med 99. |
Kundenavn |
Like "S*" |
Viser ordrer, der er blevet sendt til kunder, hvis navne starter med bogstavet S. |
Sammenlign datokriterier
Udtrykkene i følgende tabel demonstrerer anvendelsen af datoer og relaterede funktioner i kriterieudtryk. Læs artiklen Formatér et felt med dato og klokkeslæt for at få flere oplysninger om at angive og anvende datoværdier.
Felt |
Udtryk |
Beskrivelse |
---|---|---|
Forsendelsesdato |
#2/2/2017# |
Viser ordrer sendt d. 2. februar 2017. |
Forsendelsesdato |
Date() |
Viser ordrer, der er blevet afsendt i dag. |
Leveringsdato |
Between Date( ) And DateAdd("m", 3, Date( )) |
Anvender operatoren Between...And og funktionerne DateAdd og Date til at vise ordrer, der skal leveres mellem dags dato og tre måneder fra dags dato. |
Bestillingsdato |
< Date( ) - 30 |
Anvender funktionen Date til at vise ordrer, der er mere end 30 dage gamle. |
Bestillingsdato |
Year([OrderDate])=2017 |
Anvender funktionen Year til at vise ordrer med ordredatoer i 2017. |
Bestillingsdato |
DatePart("q", [OrderDate])=4 |
Anvender funktionen DatePart til at vise ordrer for fjerde kvartal. |
Bestillingsdato |
DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 |
Anvender funktionerne DateSerial, Year og Month til at vise ordrer for den sidste dag i måneden. |
Bestillingsdato |
Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) |
Anvender funktionerne Year og Month og operatoren And til at vise ordrer for indeværende år og måned. |
Forsendelsesdato |
Between #1/5/2017# And #1/10/2017# |
Anvender operatoren Between...And til at vise ordrer, der er leveret tidligst d. 5. januar 2017 og senest d. 10. januar 2017. |
Leveringsdato |
Between Date( ) And DateAdd("M", 3, Date( )) |
Anvender operatoren Between...And til at vise ordrer, der skal leveres mellem dags dato og tre måneder fra dags dato. |
Fødselsdato |
Month([BirthDate])=Month(Date()) |
Anvender funktionerne Month og Date til at vise medarbejdere, der har fødselsdag i denne måned. |
Find manglende data
Udtrykkene i følgende tabel bruges sammen med felter, der kan mangle oplysninger, fordi de indeholder en null-værdi eller en tom streng. En null-værdi repræsenterer fravær af oplysninger. Den repræsenterer ikke værdien nul eller en nogen som helst anden værdi. Access understøtter manglende oplysninger, fordi det er af afgørende betydning for integriteten af en database. I den virkelige verden mangler der ofte oplysninger, også selvom det kun er midlertidigt (f.eks. en endnu ikke fastlagt pris på et nyt produkt). Derfor skal en database, der afspejler den virkelige verden, som f.eks. en virksomhed, kunne registrere, at der mangler oplysninger. Du kan bruge funktionen IsNull til at finde ud af, om et felt eller et kontrolelement indeholder en null-værdi, og du kan bruge funktionen Nz til at konvertere en null-værdi til tallet nul.
Felt |
Udtryk |
Beskrivelse |
---|---|---|
Modtagerområde |
Is Null |
Viser ordrer til kunder, hvis Modtagerområde-felt er null (mangler). |
Modtagerområde |
Is Not Null |
Viser ordrer til kunder, hvis Modtagerområde-felt indeholder en værdi. |
Fax |
"" |
Viser ordrer for kunder, der ikke har en faxmaskine, hvilket er angivet med en tom streng i feltet Fax i stedet for en null-værdi (manglende værdi). |
Sammenlign postmønstre med Like
Operatoren Like giver stor fleksibilitet, når du skal sammenligne rækker, der følger et mønster, fordi du kan bruge Like sammen med jokertegn og definere mønstre, som Access kan finde. Jokertegnet * (stjerne) sammenligner f.eks. en sekvens af tegn af en hvilken som helst type, og det gør det nemt at finde alle navne, der begynder med et bogstav. Du kan f.eks. bruge udtrykket Like "S*" til at finde alle navne, der starter med bogstavet S. Læs artiklen Operatoren Like for at få flere oplysninger.
Felt |
Udtryk |
Beskrivelse |
---|---|---|
Kundenavn |
Like "S*" |
Finder alle poster i feltet Kundenavn, der starter med bogstavet S. |
Kundenavn |
Like "*Imports" |
Finder alle poster i feltet Kundenavn, der slutter med ordet "Import". |
Kundenavn |
Like "[A-D]*" |
Finder alle poster i feltet Kundenavn, der starter med bogstaverne A, B, C eller D. |
Kundenavn |
Like "*ar*" |
Finder alle poster i feltet Kundenavn, der indeholder bogstavsekvensen "ar". |
Kundenavn |
Like "Maison Dewe?" |
Finder alle poster i feltet Kundenavn, der indeholder "Maison" i den første del af værdien og en streng på fem bogstaver, hvori de fire første bogstaver er "Dewe", og det sidste bogstav er ukendt. |
Kundenavn |
Not Like "A*" |
Finder alle poster i feltet Kundenavn, der ikke starter med bogstavet A. |
Sammenlign rækker med SQL-aggregeringer
Når du vil beregne summen, antallet eller gennemsnittet af værdier selektivt, skal du bruge en funktionstype, der kaldes en SQL-funktion eller en domæneaggregeringsfunktion. Du kan f.eks. nøjes med at tælle de værdier, der ligger inden for et bestemt område, eller dem, som evalueres til Ja. Du kan også få brug for at slå en værdi op fra en anden tabel for at få den vist. Eksempeludtrykkene i følgende tabel anvender domæneaggregeringsfunktionerne til at udføre en beregning på et sæt af værdier og derefter bruge resultatet som forespørgselskriterium.
Felt |
Udtryk |
Beskrivelse |
---|---|---|
Fragt |
> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) |
Anvender funktionen DSTDAFV og DAvg til at vise alle de ordrer, hvor fragtomkostningerne er steget til over gennemsnittet plus standardafvigelsen for fragtomkostninger. |
Antal |
> DAvg("[Quantity]", "[Order Details]") |
Anvender funktionen DAvg til at vise produkter bestilt i antal over det gennemsnitlige ordreantal. |
Sammenlign felter med underforespørgsler
Du kan bruge en underforespørgsel, der også kaldes en indlejret forespørgsel, til at beregne en værdi, der skal bruges som kriterium. Eksempeludtrykkene i følgende tabel sammenligner rækkerne baseret på de resultater, der returneres af en underforespørgsel.
Felt |
Udtryk |
Visninger |
---|---|---|
Enhedspris |
(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") |
Produkter, hvis pris er lig med prisen på Sirup. |
Enhedspris |
>(SELECT AVG([UnitPrice]) FROM [Products]) |
Produkter, der har en enhedspris over gennemsnittet. |
Løn |
> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) |
Løn for hver salgsmedarbejder, hvis løn er højere end lønnen for alle medarbejdere med "Chef" eller "Underdirektør" i deres stillingsbetegnelser. |
Ordretotal: [Enhedspris] * [Antal] |
> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) |
Ordrer med totaler, der er højere end den gennemsnitlige ordreværdi. |
Opdateringsforespørgsler
Du kan bruge en opdateringsforespørgsel til at redigere dataene i ét eller flere eksisterende felter i en database. Du kan f.eks. erstatte værdier eller slette dem helt. Denne tabel viser nogle metoder til at bruge udtryk i opdateringsforespørgsler. Du kan bruge disse udtryk i rækken Opdater til i forespørgselsdesigngitteret for det felt, du vil opdatere.
Læs artiklen Opret og kør en opdateringsforespørgsel for at få flere oplysninger om at oprette opdateringsforespørgsler.
Felt |
Udtryk |
Resultat |
---|---|---|
Titel |
"Salesperson" |
Ændrer en tekstværdi til Sælger. |
Projektets startdato |
#8/10/17# |
Ændrer en datoværdi til 10-08-17. |
Pensioneret |
Yes |
Ændrer en Nej-værdi i et Ja/Nej-felt til Ja. |
Varenummer |
"PN" & [PartNumber] |
Føjer VN til begyndelsen af det angivne varenummer. |
Total for linjeelement |
[UnitPrice] * [Quantity] |
Beregner produktet af Enhedspris og Antal. |
Fragt |
[Freight] * 1.5 |
Øger fragtomkostningerne med 50 procent. |
Salg |
DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) |
Hvis værdierne for Produkt-id i den aktuelle tabel svarer til værdierne for Produkt-id i tabellen Ordredetaljer, opdateres salgstotalerne på basis af produktet af Antal og Enhedspris. |
Forsendelsespostnummer |
Right([ShipPostalCode], 5) |
Afkorter tegnene længst til venstre, så de fem tegn yderst til højre står tilbage. |
Enhedspris |
Nz([UnitPrice]) |
Ændrer en null-værdi (ikke defineret eller ukendt) til et nul (0) i feltet Enhedspris. |
SQL-sætninger
SQL (Structured Query Language) er det sprog, der bruges af Access. Alle de forespørgsler, du opretter i forespørgslens designvisning, kan også udtrykkes ved hjælp af SQL. Hvis du vil se SQL-sætningen for en forespørgsel, skal du klikke på SQL-visning i menuen Vis. I følgende tabel vises der eksempler på SQL-sætninger, der anvender et udtryk.
SQL-sætning, der anvender et udtryk |
Resultat |
---|---|
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; |
Viser værdierne i felterne Fornavn og Efternavn for medarbejdere, hvis efternavn er Danseglio. |
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; |
Viser værdierne i felterne Produkt-id og Produktnavn i tabellen Produkter for poster, hvor værdien Kategori-id svarer til værdien Kategori-id, der er angivet i en åben Nye produkter-formular. |
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; |
Beregner den gennemsnitlige udvidede pris for ordrer, hvor værdien i feltet UdvidetPris er mere end 1000, og vises i et felt med navnet Gennemsnitlig udvidet pris. |
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; |
Viser det samlede antal produkter for kategorier med mere end 10 produkter i et felt med navnet Antal af Produkt-id. |
Tabeludtryk
De to mest almindelige måder, du kan bruge udtryk i tabeller på, er ved at tildele en standardværdi og oprette en valideringsregel.
Feltets standardværdier
Når du designer en database, kan du tildele en standardværdi til et felt eller et kontrolelement. Access leverer derefter standardværdien, når der oprettes en ny post, der indeholder feltet, eller når et objekt, som indeholder kontrolelementet, oprettes. Udtrykket i følgende tabel repræsenterer eksempelstandardværdierne for et felt eller et kontrolelement. Hvis kontrolelementet er bundet til et felt i en tabel, og feltet har en standardværdi, har kontrolelementets standardværdi forrang.
Felt |
Udtryk |
Standardfeltværdi |
---|---|---|
Antal |
1 |
1 |
Område |
"MT" |
MT |
Område |
"New York, N.Y." |
New York, N.Y. (Bemærk, at du skal sætte værdien i anførselstegn, hvis den indeholder tegnsætning). |
Fax |
"" |
En tom streng til at indikere, at dette felt som standard skal være tomt i stedet for at indeholde en null-værdi |
Ordredato |
Date( ) |
Dags dato |
Forfaldsdato |
Date() + 60 |
Datoen 60 dage fra dags dato |
Feltets valideringsregler
Du kan oprette en valideringsregel for et felt eller et kontrolelement ved hjælp af et udtryk. Access gennemtvinger så reglen, når der angives data i feltet eller kontrolelementet. Hvis du vil oprette en valideringsregel, skal du redigere egenskaben Valideringsregel for feltet eller kontrolelementet. Du bør også overveje at indstille egenskaben Valideringsmeddelelse, der indeholder den tekst, som vises i Access, når valideringsreglen overtrædes. Hvis du ikke indstiller egenskaben Valideringsmeddelelse, vises en standardfejlmeddelelse i Access.
Eksemplerne i følgende tabel demonstrerer valideringsreglens udtryk for egenskaben Valideringsregel og den tilknyttede tekst for egenskaben Valideringsmeddelelse.
Egenskaben Valideringsregel |
Egenskaben Valideringsmeddelelse |
---|---|
<> 0 |
Angiv en værdi, som ikke er nul. |
0 Or > 100 |
Værdien skal være enten 0 eller mere end 100. |
Like "K???" |
Værdien skal være fire tegn og starte med bogstavet K. |
< #1/1/2017# |
Angiv en dato før 1/1/2017. |
>= #1/1/2017# And < #1/1/2008# |
Datoen skal være i 2017. |
Læs artiklen Opret en valideringsregel for at validere data i et felt for at få flere oplysninger om at validere data.
Makroudtryk
I nogle tilfælde kan du have brug for at udføre en handling eller en række handlinger i en makro, hvis en bestemt betingelse er sand. Lad os f.eks. antage, at du ønsker, at en handling kun skal køre, når værdien af tekstfeltet Tæller er 10. Du kan bruge et udtryk til at definere betingelsen i en Hvis-blok:
[Counter]=10
Ligesom med egenskaben Valideringsregel er udtrykket i en Hvis-blok et betinget udtryk. Det skal resultere i værdien True eller False. Handlingen udføres kun, hvis betingelsen er sand.
Brug dette udtryk til at udføre handlingen |
Hvis |
---|---|
[City]="Paris" |
Paris er værdien i feltet By i den formular, hvorfra makroen blev kørt. |
DCount("[OrderID]", "Orders") > 35 |
Der er mere end 35 indtastninger i feltet Ordre-id i tabellen Ordrer. |
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 |
Der er mere end tre indtastninger i tabellen Ordredetaljer, hvor feltet Ordre-id i tabellen stemmer overens med feltet Ordre-id i formularen Ordrer. |
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# |
Værdien af feltet Forsendelsesdato i den formular, hvorfra makroen køres, er tidligst 02-02-17 og senest 02-03-17. |
Forms![Products]![UnitsInStock] < 5 |
Værdien af feltet Enheder på lager i formularen Produkter er mindre end 5. |
IsNull([FirstName]) |
Værdien Fornavn i formularen, hvorfra makroen køres, er null (har ingen værdi). Dette udtryk er lig med [Fornavn] Is Null. |
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 |
Værdien i feltet LandOmråde i formularen, hvorfra makroen køres, er GB, og værdien i feltet Total ordrer i formularen Salgstotaler er større end 100. |
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 |
Værdien i feltet LandOmråde i formularen, hvorfra makroen køres, er enten Frankrig, Italien eller Spanien, og postnummeret indeholder ikke 5 tegn. |
MsgBox("Confirm changes?",1)=1 |
Du skal klikke på OK i en dialogboks, der vises af funktionen MsgBox. Hvis du klikker på Annuller i dialogboksen, ignorerer Access handlingen. |