Denne artikel indeholder eksempler på udtryk i Access. Et udtryk kombinerer matematiske eller logiske operatorer, konstanter, funktioner, tabelfelter, kontrolelementer og egenskaber til en enkelt værdi. Du kan bruge udtryk i Access til at beregne værdier, validere data og angive standardværdier.
I denne artikel
Formularer og rapporter
Alle formular- og rapportudtryk
Forespørgsler og filtre
Alle forespørgsels- og filterudtryk
Tabeller
| Feltets standardværdier | Feltvalideringsregler |
|---|
Makroer
Formularer og rapporter
Tabellerne i dette afsnit viser udtryk, der beregner en værdi i et kontrolelement i en formular eller rapport. Hvis du vil oprette et beregnet kontrolelement, skal du angive et udtryk i ControlSource egenskaben for kontrolelementet i stedet for i et tabelfelt eller en 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-tegn) og + (plus) til at kombinere tekststrenge, bruge indbyggede funktioner til at arbejde med tekst eller på anden måde 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 mellemrumstegn (omsluttet af anførselstegn) og feltet Efternavn. |
=Left([ProductName], 1) |
Left Anvender funktionen til at vise det første tegn i værdien i et felt eller kontrolelement kaldet ProductName. |
=Right([AssetCode], 2) |
Right Anvender funktionen til at vise de sidste to tegn i værdien i et felt eller kontrolelement, der kaldes AssetCode. |
=Trim([Address]) |
Anvender funktionen Trim til at vise værdien af Address kontrolelementet, når du har fjernet foranstillede og efterstillede mellemrum. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
IIf Anvender funktionen til at vise værdierne for kontrolelementerne City og PostalCode , hvis Region kontrolelementet er null. Ellers vises værdierne i kontrolelementerne City, Regionog PostalCode adskilt af mellemrum. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
Anvender operatoren + og null-overførsel til at vise værdierne i City og PostalCode -kontrolelementerne, hvis værdien i feltet Region eller kontrolelementet er null. Ellers vises værdierne i felterne eller kontrolelementerne City, Regionog PostalCode adskilt af mellemrum. Null-overførsel betyder, at hvis en del af et udtryk er null, er hele udtrykket null. Operatoren + understøtter null-overførsel, men det gør operatoren & ikke. |
Sidehoveder og sidefødder
Brug egenskaberne Page og Pages til at få vist eller udskrive sidetal i formularer eller rapporter. Disse egenskaber er kun tilgængelige under udskrivning eller Vis udskrift, så de vises ikke på egenskabsarket for formularen eller rapporten. Du placerer typisk et tekstfelt i sidehovedet eller sidefoden i formularen eller rapporten og derefter bruger et udtryk som dem, der 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 dato/klokkeslætsværdi, der 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 (+, -, *eller /) i et udtryk, og et af kontrolelementerne er null, er resultatet af hele udtrykket null. Dette kaldes null-overførsel. Hvis et kontrolelement kan have en null-værdi, kan du undgå null-overførsel ved at bruge funktionen Nz til at konvertere null-værdien til nul. Brug 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 ved at dividere værdien af Sales kontrolelementet med summen af alle værdier i Sales kontrolelementet. Hvis du angiver egenskaben Format for kontrolelementet til Percent, skal du ikke medtage *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 for året for den aktuelle dato, hvor ww repræsenterer uge 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. Du videregiver funktionen IIf tre argumenter: Det første argument er et udtryk, der skal returnere en True eller False værdi. 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") |
Bruger funktionen IIf (Immediate If) til at vise meddelelsen "Ordre bekræftet", hvis værdien af kontrolelementet Bekræftet er Yes; 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 start- og slutdato og begrænse resultaterne af forespørgslen til ordrer, der er afsendt mellem disse datoer.
De følgende afsnit indeholder eksempler på udtryk til brug i forespørgsler.
Teksthandlinger i forespørgsler
Udtrykkene i følgende tabel bruger operatorerne & og + til at kombinere tekststrenge, bruge indbyggede funktioner til at arbejde på en tekststreng eller på anden måde arbejde på 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 handlinger i forespørgsler
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 Dato/klokkeslæt-værdi, der 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 med navnet FreightPercentage, og viser derefter procentdelen af fragtomkostninger i hver subtotal. Dette udtryk bruger funktionen Sum til at lægge værdierne i Freight feltet sammen og dividerer derefter disse totaler med summen af værdierne i feltet Subtotal . Hvis du vil bruge dette udtryk, skal du konvertere udvælgelsesforespørgslen til en totalforespørgsel. Du skal bruge rækken Total i designgitteret og angive cellen Total for dette felt til Expression. Du kan få mere at vide om at oprette en totalforespørgsel i Sumér data ved hjælp af en forespørgsel. Hvis du angiver egenskaben Format for feltet til Percent, skal du ikke 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 i forespørgsler
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 i forespørgsler
Udtrykkene i følgende tabel bruger SQL-funktioner, der aggregerer eller opsummerer data. Du ser ofte funktioner som Sum, Countog Avg kaldes aggregeringsfunktioner.
Ud over aggregeringsfunktioner indeholder Access også domæneaggregeringsfunktioner, der giver dig mulighed for at lægge værdier sammen eller tælle 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. Domæneaggregeringsfunktioner omfatter DSum, DTÆL og DAvg.
Hvis du vil beregne totaler, skal du ofte oprette en totalforespørgsel. Hvis du f.eks. vil opsummere efter gruppe, skal du bruge en totalforespørgsel. Hvis du vil aktivere en totalforespørgsel fra forespørgselsdesigngitteret, skal du vælge Totaler i menuen Vis .
| 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 FreightPercentageog beregner derefter procentdelen af fragtomkostninger i hver subtotal ved at dividere summen af værdierne i Freight feltet med summen af værdierne i feltet Subtotal . I dette Sum eksempel bruges funktionen. Du skal bruge dette udtryk sammen med en totalforespørgsel. Hvis du angiver egenskaben Format for feltet til Percent, skal du ikke medtage *100. Du kan få mere at vide om at oprette en totalforespørgsel i Sumér 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 sendt til firmaer, hvis navne starter med bogstaverne N til Zog med . |
| Produktkode | Right([ProductCode], 2)="99" |
Anvender funktionen Right til at vise ordrer med ProductCode-værdier, der slutter med 99. |
| Kundenavn | Like "S*" |
Viser ordrer, der er 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 er nødvendige 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...Andtil at vise ordrer, der er sendt tidligst den 5. januar 2017 og senest den 10. januar 2017. |
| Leveringsdato | Between Date( ) And DateAdd("M", 3, Date( )) |
Anvender operatoren Between...And til at vise ordrer, der er påkrævet 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 forsøger at matche rækker, der følger et mønster, fordi du kan bruge Like med jokertegn og definere mønstre, som Access skal matche. Jokertegnet (stjerne) svarer f.eks * . til en sekvens af tegn af enhver type og 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 begynder med bogstavet S. Du kan få mere at vide i artiklen Synes godt om-operator.
| 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
Brug en opdateringsforespørgsel til at ændre dataene i et eller flere eksisterende felter i en database. Du kan f.eks. erstatte værdier eller slette dem helt. Denne tabel viser nogle måder at bruge udtryk i opdateringsforespørgsler på. Brug disse udtryk i rækken Update To i forespørgselsgitteret 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
Structured Query Language (SQL) er det forespørgselssprog, access bruger. Hver forespørgsel, du opretter i visningen Forespørgselsdesign, kan også udtrykkes ved hjælp af SQL. Hvis du vil se SQL-sætningen for en forespørgsel, skal du vælge SQL-visning i menuen Vis . I følgende tabel vises eksempel-SQL-sætninger, der bruger 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 denne værdi, når der oprettes en ny post, der indeholder feltet, eller når der oprettes et objekt, der indeholder kontrolelementet. Udtrykkene i følgende tabel viser eksempelstandardværdier for et felt eller kontrolelement. Hvis et kontrolelement 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 ændre ValidationRule egenskaben for feltet eller kontrolelementet. Du bør også overveje at angive egenskaben ValidationText , som indeholder den tekst, der vises i Access, når valideringsreglen overtrædes. Hvis du ikke angiver egenskaben ValidationText , viser Access en standardfejlmeddelelse.
Eksemplerne i følgende tabel viser valideringsregeludtryk for ValidationRule egenskaben og den tilknyttede tekst for ValidationText egenskaben.
| 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 ValidationRule er udtrykket i en Hvis-blok et betinget udtryk. Det skal løses til enten 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. |