Przykłady wyrażeń

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

W tym artykule przedstawiono przykłady wyrażeń w programie Access. Wyrażenie łączy operatory matematyczne lub logiczne, stałe, funkcje, pola tabeli, kontrolki i właściwości w jedną wartość. Wyrażenia w programie Access umożliwiają obliczanie wartości, sprawdzanie poprawności danych i ustawianie wartości domyślnych.

W tym artykule

Formularze i raporty

Wszystkie wyrażenia używane w formularzach i raportach

Operacje tekstowe; Wartości w innych kontrolkach; Operacje na datach Nagłówki i stopki; Zliczanie, sumowanie i obliczanie wartości średniej; Warunki tylko dwóch wartości Operacje arytmetyczne; Funkcje agregujące języka SQL

Zapytania i filtry

Wszystkie wyrażenia używane w zapytaniach i filtrach

Operacje tekstowe; Funkcje agregujące języka SQL; Dopasowywanie wartości tekstowych; Dopasuj wzorce rekordów za pomocą like; Aktualizowanie zapytań Operacje arytmetyczne; Znajdowanie brakujących danych; Uwzględnij kryteria daty; Dopasuj wiersze do agregatów SQL; Instrukcje SQL Operacje daty; Pola obliczeniowe z podkwitrynami; Pola z brakującymi danymi; Dopasowywanie pól za pomocą podkwitryn

Tabele

Wszystkie wyrażenia używane w tabelach

Domyślne wartości pól Reguły poprawności pól

Makra

Wszystkie wyrażenia używane w makrach

Formularze i raporty

W tabelach w tej sekcji przedstawiono wyrażenia, które obliczają wartość w kontrolce w formularzu lub raporcie. Aby utworzyć kontrolkę obliczeniową, wprowadź wyrażenie we ControlSource właściwości kontrolki, a nie w polu tabeli lub zapytaniu.

Uwaga

Wyrażeń można także używać w formularzu lub raporcie, gdy są wyróżniane dane z formatowaniem warunkowym.

Operacje tekstowe

Wyrażenia w poniższej tabeli używają & operatorów (handlowe "i" i + (plus) do łączenia ciągów tekstowych, używania wbudowanych funkcji do pracy z tekstem lub tworzenia kontrolki obliczeniowej w inny sposób.

Wyrażenie Wynik
="N/A" Wyświetla wyrazy „nie dotyczy”.
=[FirstName] & " " & [LastName] Wyświetla wartości znajdujące się w polach tabeli o nazwach Imię i Nazwisko. W tym przykładzie & operator służy do łączenia pola Imię, znaku spacji (ujętego w cudzysłów) i pola Nazwisko.
=Left([ProductName], 1) Left Używa tej funkcji do wyświetlenia pierwszego znaku wartości w polu lub kontrolce o nazwie ProductName.
=Right([AssetCode], 2) Right Używa funkcji do wyświetlania dwóch ostatnich znaków wartości w polu lub kontrolce o nazwie AssetCode.
=Trim([Address]) Trim Używa funkcji do wyświetlania wartości kontrolki Address po usunięciu spacji wiodących i końcowych.
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) IIf Używa tej funkcji do wyświetlania wartości kontrolek i PostalCode kontrolekCity, jeśli Region kontrolka ma wartość null. W przeciwnym razie wyświetlane są wartości Citykontrolek , Regionoraz PostalCode kontrolek rozdzielonych spacjami.
=[City] & (" " + [Region]) & " " & [PostalCode] + Używa operatora i funkcji propagacji wartości null w celu wyświetlenia wartości City i PostalCode kontrolek, jeśli wartość pola Region lub kontrolki wynosi null. W przeciwnym razie wyświetlane są wartości Citypól lub PostalCode kontrolek oraz Regionpola lub kontrolki oddzielone spacjami. Propagacja wartości null oznacza, że jeśli dowolna część wyrażenia ma wartość null, całe wyrażenie ma wartość null. Operator + obsługuje propagację wartości null, ale & operator tego nie robi.

Powrót do początku

Nagłówki i stopki

Numery stron w formularzach Page lub raportach można wyświetlać i drukować za pomocą właściwości i Pages . Te właściwości są dostępne tylko podczas drukowania lub podglądu wydruku, więc nie są wyświetlane w arkuszu właściwości formularza lub raportu. Zazwyczaj umieszcza się pole tekstowe w sekcji nagłówka lub stopki formularza lub raportu, a następnie używa się wyrażenia, takiego jak przedstawione w poniższej tabeli.

Aby uzyskać więcej informacji na temat używania nagłówków i stopek w formularzach oraz raportach, zobacz artykuł Wstawianie numerów stron do formularza lub raportu.

Wyrażenie Wynik
=[Page] 1
="Page " & [Page] Strona 1
="Page " & [Page] & " of " & [Pages] Strona 1 z 3
=[Page] & " of " & [Pages] & " Pages" 1 z 3 stron
=[Page] & "/" & [Pages] & " Pages" 1/3 stron
=[Country/region] & " - " & [Page] UK - 1
=Format([Page], "000") 001
="Printed on: " & Date() Wydrukowano w dniu: 31/12/17

Powrót do początku

Operacje arytmetyczne

Za pomocą wyrażeń można dodawać, odejmować, mnożyć, dzielić wartości z dwóch lub większej liczby pól bądź kontrolek. Można również przy ich użyciu wykonywać operacje arytmetyczne na datach. Załóżmy na przykład, że istnieje pole tabeli typu Data/godzina o nazwie DataWymagana. W polu lub w kontrolce powiązanej z polem wyrażenie =[RequiredDate] - 2 zwraca wartość daty/godziny równą dwóch dni przed bieżącymi wartościami w polu DataDawymagana.

Wyrażenie Wynik
=[Subtotal]+[Freight] Suma wartości pól lub kontrolek SumaCzęściowa i Fracht.
=[RequiredDate]-[ShippedDate] Różnica między wartościami daty pól lub kontrolek DataDostawy i DataWysyłki.
=[Price]*1.06 Iloczyn wartości pola lub kontrolki Cena i liczby 1,06 (dodaje 6 procent do wartości Cena).
=[Quantity]*[Price] Iloczyn wartości pól lub kontrolek Ilość i Cena.
=[EmployeeTotal]/[CountryRegionTotal] Iloraz wartości pól lub kontrolek SumaDlaPracownika i SumaDlaKrajuRegionu.

Uwaga

Jeśli w wyrażeniu jest używany operator arytmetyczny (+, -, *lub /) i jedna z kontrolek ma wartość null, wynik całego wyrażenia wynosi null. Jest to nazywane propagacja wartości null. Jeśli kontrolka może mieć wartość null, można uniknąć propagacji wartości null za pomocą funkcji Nz w celu przekonwertowania wartości null na zero. Na przykład użyj opcji =Nz([Subtotal])+Nz([Freight]).

Powrót do początku

Wartości znajdujące się w innych kontrolkach

Czasami potrzebna jest wartość istniejąca w innym miejscu, na przykład w polu lub kontrolce w innym formularzu albo raporcie. Aby zwrócić wartość z innego pola lub innej kontrolki, można użyć wyrażenia.

W tabeli podano przykłady wyrażeń, które można stosować w kontrolkach obliczeniowych formularzy.

Wyrażenie Wynik
=Forms![Orders]![OrderID] Wartość kontrolki IdentyfikatorZamówienia w formularzu Zamówienia.
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] Wartość kontrolki SumaCzęściowaZamówienia w podformularzu o nazwie Zamówienia1 formularza Zamówienia.
=Forms![Orders]![Orders Subform]![ProductID].Column(2) Wartość trzeciej kolumny w kontrolce IdentyfikatorProduktu, wielokolumnowym polu listy w podformularzu o nazwie Zamówienia1, zawartym w formularzu Zamówienia. (Należy zwrócić uwagę, że 0 odnosi się do pierwszej kolumny, 1 do drugiej kolumny itd.).
=Forms![Orders]![Orders Subform]![Price] * 1.06 Iloczyn liczby 1,06 i wartości kontrolki Cena w podformularzu o nazwie Zamówienia1 formularza Zamówienia (wartość kontrolki Cena jest zwiększana o 6 procent).
=Parent![OrderID] Wartość kontrolki IdentyfikatorZamówienia w formularzu głównym lub nadrzędnym bieżącego podformularza.

Wyrażenia w poniższej tabeli przedstawiają niektóre sposoby używania kontrolek obliczeniowych w raportach. Wyrażenia odwołują się do właściwości Report.

Wyrażenie Wynik
=Report![Invoice]![OrderID] Wartość kontrolki o nazwie „IdentyfikatorZamówienia” w raporcie o nazwie „Faktura”.
=Report![Summary]![Summary Subreport]![SalesTotal] Wartość kontrolki PodsumowanieSprzedaży w podraporcie o nazwie RaportPodsumowujący w raporcie Podsumowanie.
=Parent![OrderID] Wartość kontrolki IdentyfikatorZamówienia w raporcie głównym lub nadrzędnym bieżącego podraportu.

Powrót do początku

Funkcje liczące, sumujące i uśredniające wartości

Aby obliczyć wartości pól lub kontrolek można użyć funkcji agregującej. Można na przykład obliczyć sumę wartości grupy dla stopki grupy w raporcie lub sumę częściową zamówienia dla pozycji formularza. Można również policzyć pozycje w polu lub polach albo obliczyć wartość średnią.

Wyrażenia w poniższej tabeli pokazują niektóre sposoby użycia takich funkcji jak Avg, Count i Sum.

Wyrażenie Opis
=Avg([Freight]) Używa funkcji Avg w celu wyświetlenia wartości średniej pola tabeli lub kontrolki o nazwie „Fracht”.
=Count([OrderID]) Używa funkcji Count w celu wyświetlenia liczby rekordów w kontrolce IdentyfikatorZamówienia.
=Sum([Sales]) Używa funkcji Sum w celu wyświetlenia sumy wartości w kontrolce Sales.
=Sum([Quantity]*[Price]) Używa funkcji Sum w celu wyświetlenia sumy iloczynów wartości kontrolek Quantity i Price.
=[Sales]/Sum([Sales])*100 Wyświetla procent sprzedaży przez podzielenie wartości kontrolki Sales przez sumę wszystkich wartości w kontrolce Sales . Jeśli właściwość kontrolki jest ustawiona Format na Percentwartość , nie uwzględniaj *100 jej w wyrażeniu.

Aby uzyskać więcej informacji na temat używania funkcji agregujących i sumowania wartości pól lub kolumn, zobacz artykuły Sumowanie danych przy użyciu zapytania, Zliczanie danych przy użyciu zapytania, Wyświetlanie sum kolumn przy użyciu wiersza sumy i Wyświetlanie sum kolumn w arkuszu danych.

Powrót do początku

Funkcje agregujące w języku SQL

Aby selektywnie zsumować lub policzyć wartości, należy skorzystać z funkcji nazywanej funkcją agregującą SQL lub dziedziny. „Dziedzina” składa się z co najmniej jednego pola w co najmniej jednej tabeli albo co najmniej jednej kontrolki w co najmniej jednym formularzu lub raporcie. Można na przykład dopasować wartości z pola tabeli do wartości w kontrolce formularza.

Wyrażenie Opis
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) Używa funkcji DLookup w celu zwrócenia wartości pola Przedstawiciel w tabeli Dostawcy dla rekordu o wartości pola IdentyfikatorDostawcy równej wartości kontrolki IdentyfikatorDostawcy w formularzu Dostawcy.
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) Używa funkcji DLookup w celu zwrócenia wartości pola Przedstawiciel w tabeli Dostawcy dla rekordu o wartości pola IdentyfikatorDostawcy równej wartości kontrolki IdentyfikatorDostawcy w formularzu Nowi dostawcy.
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") Używa funkcji DSum w celu zwrócenia sumy wartości w polu WartośćZamówienia w tabeli Zamówienia dla rekordów, w których pole IdentyfikatorKlienta ma wartość RATTC.
=DCount("[Retired]","[Assets]","[Retired]=Yes") Używa funkcji DCount w celu zwrócenia liczby wystąpień wartości Tak w polu Wycofany (pole typu Tak/Nie) w tabeli Majątek.

Powrót do początku

Operacje na datach

Śledzenie dat i godzin jest podstawowym działaniem w bazie danych. Można na przykład obliczyć, ile dni upłynęło od czasu wystawienia faktury w celu wiekowania należności. Daty i godziny można formatować na wiele sposobów, jak pokazano w poniższej tabeli.

Wyrażenie Opis
=Date() Używa funkcji Date w celu wyświetlenia bieżącej daty w postaci mm-dd-yy, gdzie mm jest miesiąc (od 1 do 12), dd jest dniem (od 1 do 31) i yy dwiema ostatnimi cyframi roku (od 1980 do 2099).
=Format(Now(), "ww") Używa funkcji Format w celu wyświetlenia numeru tygodnia roku dla bieżącej daty, gdzie ww reprezentuje tygodnie od 1 do 53.
=DatePart("yyyy", [OrderDate]) Używa funkcji DatePart w celu wyświetlenia roku w formacie czterocyfrowym dla wartości kontrolki OrderDate.
=DateAdd("y", -10, [PromisedDate]) Używa funkcji DateAdd w celu wyświetlenia daty wcześniejszej o 10 dni od wartości kontrolki PromisedDate.
=DateDiff("d", [OrderDate], [ShippedDate]) Używa funkcji DateDiff w celu wyświetlenia liczby dni między wartościami kontrolek OrderDate i ShippedDate.
=[InvoiceDate] + 30 Używa operacji arytmetycznych na datach w celu obliczenia daty przypadającej 30 dni po dacie w polu lub kontrolce DataFaktury.

Powrót do początku

Warunki obejmujące tylko dwie wartości

Przykładowe wyrażenia w poniższej tabeli używają funkcji IIf w celu zwrócenia jednej z dwóch możliwych wartości. Funkcja IIf ma trzy argumenty: pierwszy argument jest wyrażeniem, które musi zwrócić wartość True lub False wartość. Drugim argumentem jest wartość zwracana w przypadku spełnienia warunku wyrażenia. Trzecim — wartość zwracana w przypadku niespełnienia warunku wyrażenia.

Wyrażenie Opis
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") Używa funkcji IIf (Immediate If) w celu wyświetlenia komunikatu "Zamówienie potwierdzone", jeśli wartość kontrolki Potwierdzone jest Yes; w przeciwnym razie wyświetla komunikat "Order Not Confirmed."
=IIf(IsNull([Country/region]), " ", [Country]) Używa funkcji IIf i IsNull w celu wyświetlenia pustego ciągu, jeśli wartość kontrolki Country/region ma wartość null. W przeciwnym razie wyświetla wartość kontrolki Country/region.
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) Używa funkcji IIf i IsNull w celu wyświetlenia wartości kontrolek Miasto i KodPocztowy, jeśli wartość kontrolki Region jest równa null. W przeciwnym razie wyświetla wartości pól lub kontrolek Miasto, Region i KodPocztowy.
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) Używa funkcji IIf i IsNull w celu wyświetlenia komunikatu „Uwaga: brak daty!”, jeśli wynik odejmowania wartości pola DataWysyłki od wartości pola DataDostawy jest równy null. W przeciwnym razie wyświetla interwał między wartościami dat w polach DataDostawy i DataWysyłki.

Powrót do początku

Zapytania i filtry

Ta sekcja zawiera przykłady wyrażeń używanych w celu utworzenia pola obliczeniowego w zapytaniu lub wprowadzenia kryteriów do zapytania. Pole obliczeniowe jest kolumną w zapytaniu zawierającą wynik wyrażenia.. Przy jego użyciu można na przykład obliczyć wartości, połączyć wartości tekstowe, takie jak imię i nazwisko, lub sformatować część daty.

Używając kryteriów w zapytaniu, można ograniczyć liczbę rekordów, na których są wykonywane operacje. Za pomocą Between operatora można na przykład podać datę początkową i końcową oraz ograniczyć wyniki zapytania do zamówień wysłanych między tymi datami.

W poniższych sekcjach przedstawiono przykłady wyrażeń używanych w zapytaniach.

Operacje tekstowe w zapytaniach

Wyrażenia w poniższej tabeli używają operatorów i + do & łączenia ciągów tekstowych, używania wbudowanych funkcji do operowania na ciągu tekstowym lub w inny sposób operowania na tekście w celu utworzenia pola obliczeniowego.

Wyrażenie Opis
FullName: [FirstName] & " " & [LastName] Tworzy pole o nazwie ImięNazwisko wyświetlające wartości pól Imię i Nazwisko oddzielone spacją.
Address2: [City] & " " & [Region] & " " & [PostalCode] Tworzy pole o nazwie Adres2 wyświetlające wartości pól Miasto, Region i KodPocztowy oddzielone spacjami.
ProductInitial: Left([ProductName], 1) Tworzy pole o nazwie InicjałProduktu, a następnie używa funkcji Left w celu wyświetlenia w polu InicjałProduktu pierwszego znaku wartości pola NazwaProduktu.
TypeCode: Right([AssetCode], 2) Tworzy pole o nazwie KodTypu, a następnie używa funkcji Right w celu wyświetlenia ostatnich dwóch znaków wartości pola KodSprzętu.
AreaCode: Mid([Phone],2,3) Tworzy pole o nazwie Kierunkowy, a następnie używa funkcji Mid w celu wyświetlenia trzech znaków, licząc od drugiego znaku wartości pola Telefon.
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 Przypisuje nazwę CenaKońcowa polu obliczeniowemu; za pomocą funkcji CCur oblicza sumy pozycji z użyciem zastosowanego rabatu.

Powrót do początku

Operacje arytmetyczne w zapytaniach

Za pomocą wyrażeń można dodawać, odejmować, mnożyć, dzielić wartości z dwóch lub większej liczby pól bądź kontrolek. Można również wykonywać operacje arytmetyczne na datach. Załóżmy na przykład, że istnieje pole typu Data/godzina o nazwie DataWymagana. =[RequiredDate] - 2 Wyrażenie zwraca wartość typu Data/godzina równą dwóm dniom przed wartością w polu DataDawymagane.

Wyrażenie Opis
PrimeFreight: [Freight] * 1.1 Tworzy pole o nazwie FrachtPriorytetowy, a następnie wyświetla w tym polu wartość opłat frachtowych powiększoną o 10%.
OrderAmount: [Quantity] * [UnitPrice] Tworzy pole o nazwie WielkośćZamówienia, a następnie wyświetla iloczyn wartości pól Ilość i CenaJednostkowa.
LeadTime: [RequiredDate] - [ShippedDate] Tworzy pole o nazwie Wyprzedzenie, a następnie wyświetla różnicę między wartościami pól DataDostawy i DataWysyłki.
TotalStock: [UnitsInStock]+[UnitsOnOrder] Tworzy pole o nazwie ZapasCałkowity, a następnie wyświetla sumę wartości pól StanMagazynu i JednostkiZamówione.
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 Tworzy pole o nazwie FreightPercentage, a następnie wyświetla procent opłat frachtowych w każdej sumze częściowej. To wyrażenie używa Sum tej funkcji do sumowania wartości w Freight polu, a następnie dzieli te sumy przez sumę wartości w Subtotal polu. Aby użyć tego wyrażenia, przekonwertuj zapytanie wybierające na zapytanie podsumowujące. Należy użyć wiersza Suma w siatce projektu i ustawić dla tego pola komórkę Suma na wartość Expression. Aby uzyskać więcej informacji na temat tworzenia zapytania podsumowującego, zobacz Sumowanie danych przy użyciu zapytania. Jeśli właściwość pola jest ustawiona Format na Percentwartość , nie dołączaj *100.

Aby uzyskać więcej informacji na temat używania funkcji agregujących i sumowania wartości pól lub kolumn, zobacz artykuły Sumowanie danych przy użyciu zapytania, Zliczanie danych przy użyciu zapytania, Wyświetlanie sum kolumn przy użyciu wiersza sumy i Wyświetlanie sum kolumn w arkuszu danych.

Powrót do początku

Operacje daty w zapytaniach

W niemal wszystkich bazach danych są przechowywane i śledzone daty oraz godziny. Praca z datami i godzinami w programie Access jest możliwa po ustawieniu w polach tabeli zawierających daty i godziny typu danych Data/godzina. W programie Access możliwe jest wykonanie obliczeń arytmetycznych na datach. Można na przykład obliczyć, ile dni upłynęło od czasu wystawienia faktury w celu wiekowania należności.

Wyrażenie Opis
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) Tworzy pole o nazwie CzasZwłoki, a następnie używa funkcji DateDiff w celu wyświetlenia liczby dni między datą zamówienia a datą wysyłki.
YearHired: DatePart("yyyy",[HireDate]) Tworzy pole o nazwie RokZatrudnienia, a następnie używa funkcji DatePart w celu wyświetlenia roku zatrudnienia każdego pracownika.
MinusThirty: Date( )- 30 Tworzy pole o nazwie Minus30, a następnie używa funkcji Date w celu wyświetlenia daty wcześniejszej o 30 dni od bieżącej daty.

Powrót do początku

Funkcje agregujące języka SQL w zapytaniach

Wyrażenia w poniższej tabeli używają funkcji SQL, które agregują lub podsumowują dane. Często są wyświetlane funkcje, takie jak Sum, Counti Avg są określane jako funkcje agregujące.

Oprócz funkcji agregowania program Access udostępnia również funkcje agregujące domeny, które umożliwiają selektywne sumowanie lub zliczanie wartości. Dzięki nim możliwe jest na przykład policzenie wartości tylko z określonego zakresu lub wyszukanie wartości w innej tabeli. Funkcje agregujące domeny obejmują funkcje DSum, DCount i DAvg.

Aby obliczyć sumy, często trzeba utworzyć zapytanie podsumowujące. Aby na przykład podsumować według grupy, użyj zapytania podsumowującego. Aby włączyć zapytanie podsumowujące z siatki projektu zapytania, wybierz pozycję Sumy w menu Widok .

Wyrażenie Opis
RowCount: Count(*) Tworzy pole o nazwie LicznikWierszy, a następnie używa funkcji Count w celu policzenia liczby rekordów w zapytaniu, w tym również rekordów z polami o wartości null (pustymi).
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 Tworzy pole o nazwie FreightPercentage, a następnie oblicza procent opłat frachtowych w każdej sumze częściowej, dzieląc sumę wartości w Freight polu przez sumę wartości w Subtotal polu. W tym przykładzie użyto Sum tej funkcji. Tego wyrażenia należy użyć z zapytaniem podsumowującym. Jeśli właściwość pola jest ustawiona Format na Percentwartość , nie dołączaj *100. Aby uzyskać więcej informacji na temat tworzenia zapytania podsumowującego, zobacz Sumowanie danych przy użyciu zapytania.
AverageFreight: DAvg("[Freight]", "[Orders]") Tworzy pole o nazwie ŚredniFracht, a następnie używa funkcji DAvg w celu obliczenia średniej opłaty frachtowej dla wszystkich zamówień połączonych w zapytaniu podsumowującym.

Powrót do początku

Pola z brakującymi danymi

Przedstawione poniżej wyrażenia działają z polami, w których może brakować informacji, czyli na przykład z polami mającymi wartość null (nieznaną lub niezdefiniowaną). Często spotyka się wartości null, takie jak nieznana cena nowego produktu lub wartość, którą współpracownik zapomniał dodać do zamówienia. Zdolność bazy danych do wyszukiwania i przetwarzania wartości null może być krytyczna dla jej działania, a wyrażenia w poniższej tabeli stanowią przykłady typowych sposobów przetwarzania wartości null.

Wyrażenie Opis
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) Tworzy pole o nazwie BieżącyKrajRegion, a następnie używa funkcji IIf i IsNull w celu wyświetlenia pustego ciągu w polu, jeśli pole KrajRegion ma wartość null. W przeciwnym razie wyświetla zawartość pola KrajRegion.
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) Tworzy pole o nazwie Wyprzedzenie, a następnie używa funkcji IIf i IsNull w celu wyświetlenia komunikatu „Uwaga: brak daty!”, jeśli jedno z pól DataWymagana lub DataWysyłki ma wartość null. W przeciwnym razie wyświetla różnicę w tych datach.
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) Tworzy pole o nazwie SprzedażPółroczna, a następnie wyświetla sumę wartości pól SprzedażKw1 i SprzedażKw2, używając wcześniej funkcji Nz w celu przekonwertowania wszystkich wartości null na zero.

Powrót do początku

Pola obliczeniowe z podzapytaniami

Pole obliczeniowe można utworzyć także przy użyciu zapytania zagnieżdżonego, nazywanego również podzapytaniem. Wyrażenie w poniższej tabeli jest przykładem pola obliczeniowego pobierającego wyniki z podzapytania.

Wyrażenie Opis
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) Tworzy pole o nazwie Kategoria, a następnie wyświetla wartość pola NazwaKategorii, jeśli wartość IdentyfikatorKategorii z tabeli Kategorie jest taka sama jak wartość IdentyfikatorKategorii z tabeli Produkty.

Powrót do początku

Dopasowywanie wartości tekstowych

Przykładowe wyrażenia w poniższej tabeli przedstawiają kryteria dopasowujące cały tekst lub jego część.

Pole Wyrażenie Opis
MiastoOdbiorcy "London" Wyświetla zamówienia wysłane do Krakowa.
MiastoOdbiorcy "London" Or "Hedge End" Or Używa operatora do wyświetlania zamówień wysłanych do Londynu lub Hedge End.
KrajRegionWysyłki In("Canada", "UK") Używa operatora do In wyświetlania zamówień wysłanych do Kanady lub Wielkiej Brytanii.
KrajRegionWysyłki Not "USA" Not Używa operatora do wyświetlania zamówień wysłanych do krajów/regionów innych niż USA.
NazwaProduktu Not Like "C*" Not Używa operatora i symbolu wieloznacznego * do wyświetlania produktów, których nazwy nie zaczynają się od komórki C.
NazwaFirmy >="N" Wyświetla zamówienia wysłane do firm, których nazwy zaczynają się od liter N za pośrednictwem Z.
KodProduktu Right([ProductCode], 2)="99" Używa funkcji Right w celu wyświetlenia zamówień z wartościami ProductCode, które kończą się ciągiem 99.
NazwaOdbiorcy Like "S*" Wyświetla zamówienia wysłane do klientów, których nazwy zaczynają się od litery S.

Powrót do początku

Kryteria oparte na zgodności dat

Wyrażenia w poniższej tabeli przedstawiają sposób użycia dat i związanych z nimi funkcji w wyrażeniach kryteriów. Aby uzyskać więcej informacji na temat wprowadzania i używania wartości dat, zobacz artykuł Formatowanie pola daty i godziny.

Pole Wyrażenie Opis
DataWysyłki #2/2/2017# Wyświetla zamówienia wysłane 2 lutego 2017 r.
DataWysyłki Date() Wyświetla zamówienia wysłane danego dnia.
DataWymagana Between Date( ) And DateAdd("m", 3, Date( )) Between...And Używa operatora oraz funkcji DateAdd i Date w celu wyświetlenia zamówień wymaganych od daty bieżącej do trzech miesięcy od daty bieżącej.
DataZamówienia < Date( ) - 30 Używa funkcji Date w celu wyświetlenia zamówień starszych niż 30 dni.
DataZamówienia Year([OrderDate])=2017 Używa funkcji Year w celu wyświetlenia zamówień złożonych w roku 2017.
DataZamówienia DatePart("q", [OrderDate])=4 Używa funkcji DatePart w celu wyświetlenia zamówień z czwartego kwartału.
DataZamówienia DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 Używa funkcji DateSerial, Year i Month w celu wyświetlenia zamówień z ostatniego dnia każdego miesiąca.
DataZamówienia Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) Używa funkcji Year i Month oraz operatora And w celu wyświetlenia zamówień dla bieżącego roku i miesiąca.
DataWysyłki Between #1/5/2017# And #1/10/2017# Between...AndUżywa operatora do wyświetlania zamówień wysłanych nie wcześniej niż 5 stycznia 2017 r. i nie później niż 10 stycznia 2017 r.
DataWymagana Between Date( ) And DateAdd("M", 3, Date( )) Używa operatora do Between...And wyświetlania zamówień wymaganych między dzisiejszą datą a trzema miesiącami od daty bieżącej.
DataUrodzenia Month([BirthDate])=Month(Date()) Używa funkcji Month i Date w celu wyświetlenia danych pracowników, których urodziny przypadają w danym miesiącu.

Powrót do początku

Znajdowanie brakujących danych

Wyrażenia w poniższej tabeli działają z polami, w których potencjalnie brakuje informacji — czyli takimi, które mogą zawierać wartość null lub ciąg o zerowej długości. Wartość null oznacza brak informacji. Nie oznacza ona wartości zerowej ani żadnej innej wartości. Program Access umożliwia obsługę pól z brakującymi informacjami, ponieważ jest ona niezbędna dla zapewnienia integralności bazy danych. W rzeczywistym świecie często brakuje informacji, nawet jeśli to tylko stan tymczasowy (na przykład gdy nie ustalono jeszcze ceny nowego produktu). Dlatego baza danych odzwierciedlająca element świata rzeczywistego, na przykład firmę, musi mieć możliwość rejestrowania braku informacji. Do rozpoznawania wartości null w polu lub kontrolce służy funkcja IsNull, natomiast funkcja Nz służy do konwertowania wartości null na zero.

Pole Wyrażenie Opis
RegionOdbiorcy Is Null Wyświetla zamówienia klientów, których pole RegionOdbiorcy zawiera wartość null (brak wartości).
RegionOdbiorcy Is Not Null Wyświetla zamówienia klientów, których pole RegionOdbiorcy nie jest puste.
Faks "" Wyświetla zamówienia klientów, którzy nie mają urządzeń faksujących, na co wskazuje ciąg zerowej długości w polu Faks, zamiast wartości null (brak wartości).

Powrót do początku

Wzorce dopasowywania rekordów oparte na operatorze Like

Operator Like zapewnia dużą elastyczność podczas próby dopasowania wierszy zgodnych ze wzorcem, ponieważ można go używać Like z symbolami wieloznaczowymi i definiować wzorce zgodne z programem Access. Na przykład * symbol wieloznaczny (gwiazdka) odpowiada sekwencji znaków dowolnego typu i ułatwia znalezienie wszystkich nazw rozpoczynających się od litery. Za pomocą wyrażenia Like "S*" można na przykład znaleźć wszystkie nazwy zaczynające się od litery S. Aby uzyskać więcej informacji, zobacz artykuł Operator Like.

Pole Wyrażenie Opis
NazwaOdbiorcy Like "S*" Znajduje wszystkie rekordy, w których wartość pola NazwaOdbiorcy rozpoczyna się od litery S.
NazwaOdbiorcy Like "*Imports" Znajduje wszystkie rekordy, w których wartość pola NazwaOdbiorcy kończy się wyrazem „Contoso”.
NazwaOdbiorcy Like "[A-D]*" Znajduje wszystkie rekordy, w których wartość pola NazwaOdbiorcy rozpoczyna się od litery A, B, C lub D.
NazwaOdbiorcy Like "*ar*" Znajduje wszystkie rekordy, w których wartość pola NazwaOdbiorcy zawiera sekwencję liter „ar”.
NazwaOdbiorcy Like "Maison Dewe?" Znajduje wszystkie rekordy, w których wartość pola NazwaOdbiorcy zawiera wyraz „Maison” w pierwszej części wartości i pięcioliterowy ciąg, w którym cztery pierwsze litery to „Dewe”, a ostatnia litera jest nieznana.
NazwaOdbiorcy Not Like "A*" Znajduje wszystkie rekordy, w których wartość pola NazwaOdbiorcy nie rozpoczyna się od litery A.

Powrót do początku

Dopasowywanie wierszy za pomocą funkcji agregujących SQL

Aby selektywnie zsumować, policzyć lub uśrednić wartości, należy skorzystać z funkcji SQL lub agregującej domeny. Można na przykład zliczyć tylko wartości z określonego zakresu lub prowadzące do uzyskania wartości Tak. Innym przykładem może być potrzeba wyszukania wartości w innej tabeli w celu wyświetlenia tej wartości. W przykładowych wyrażeniach w poniższej tabeli użyto funkcji agregujących dziedziny w celu wykonania obliczeń na zbiorze wartości i użycia wyników jako kryterium zapytania.

Pole Wyrażenie Opis
Fracht > (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) Używa funkcji DStDev i DAvg w celu wyświetlenia wszystkich zamówień, w których koszty frachtu przekroczyły wartość średniego frachtu powiększoną o odchylenie standardowe.
Ilość > DAvg("[Quantity]", "[Order Details]") Używa funkcji DAvg w celu wyświetlenia produktów zamówionych w ilościach przekraczających średnią wielkość zamówienia.

Powrót do początku

Dopasowywanie pól przy użyciu podzapytań

Wartość do użycia jako kryterium można także obliczyć przy użyciu zapytania zagnieżdżonego, nazywanego również podzapytaniem. Przykładowe wyrażenia w poniższej tabeli dopasowują wiersze na podstawie wyników zwróconych przez podzapytanie.

Pole Wyrażenie Wyświetlana wartość
CenaJednostkowa (SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") Produkty, których cena jest taka sama, jak cena Syropu anyżowego.
CenaJednostkowa >(SELECT AVG([UnitPrice]) FROM [Products]) Produkty, których cena przekracza średnią cenę.
Wynagrodzenia > ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) Wynagrodzenie każdego przedstawiciela handlowego zarabiającego więcej niż każdy z pracowników, których nazwa stanowiska zawiera słowo „Kierownik” lub „Wiceprezes”.
WielkośćZamówienia: [CenaJednostkowa] * [Ilość] > (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) Zamówienia, których suma jest większa niż średnia wartość zamówienia.

Powrót do początku

Zapytania aktualizujące

Użyj zapytania aktualizującego, aby zmodyfikować dane w co najmniej jednym istniejącym polu bazy danych. Na przykład można przy jego użyciu zastąpić wartości lub usunąć je całkowicie. W poniższej tabeli przedstawiono niektóre sposoby używania wyrażeń w zapytaniach aktualizujących. Użyj tych wyrażeń w wierszu Update To w siatce projektu zapytania dla pola, które chcesz zaktualizować.

Aby uzyskać więcej informacji o tworzeniu zapytań aktualizujących, zobacz temat Tworzenie i uruchamianie zapytania aktualizującego.

Pole Wyrażenie Wynik
Tytuł "Salesperson" Zmienia wartość tekstową na wyraz „Sprzedawca”.
RozpoczęcieProjektu #8/10/17# Zmienia datę na 10 sierpnia 2017 r.
Wycofany Yes Zmienia wartość Nie w polu typu Tak/Nie na Tak.
NumerCzęści "PN" & [PartNumber] Dodaje oznaczenie „NC” na początku każdego wskazanego numeru części.
SumaPozycji [UnitPrice] * [Quantity] Oblicza iloczyn ceny jednostkowej i ilości.
Fracht [Freight] * 1.5 Zwiększa opłaty przewozowe o 50 procent.
Sprzedaż DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) Jeśli identyfikatory produktów w bieżącej tabeli odpowiadają identyfikatorom produktów w tabeli Szczegóły zamówień, aktualizuje podsumowania sprzedaży na podstawie ilości i ceny jednostkowej produktu.
KodPocztowyOdbiorcy Right([ShipPostalCode], 5) Odrzuca początkowe znaki, pozostawiając pięć pierwszych znaków od prawej.
CenaJednostkowa Nz([UnitPrice]) Zmienia wartość null (wartość nieznaną lub niezdefiniowaną) na zero (0) w polu o nazwie UnitPrice.

Powrót do początku

Instrukcje SQL

Structured Query Language (SQL) to język zapytań używany w programie Access. Każde zapytanie utworzone w widoku projektu zapytania można wyrazić również za pomocą języka SQL. Aby wyświetlić instrukcję SQL dla dowolnego zapytania, wybierz pozycję Widok SQL w menu Widok . W poniższej tabeli przedstawiono przykładowe instrukcje SQL używające wyrażenia.

Instrukcja SQL zawierająca wyrażenie Wynik
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; Wyświetla wartości pól Imię i Nazwisko pracowników o nazwisku Danseglio.
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; Wyświetla wartości pól IdentyfikatorProduktu i NazwaProduktu z tabeli Produkty tych rekordów, w których wartość IdentyfikatorKategorii zgadza się z wartością IdentyfikatorKategorii w otwartym formularzu NoweProdukty.
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; Oblicza średnią cenę końcową dla zamówień, których wartość w polu CenaRozszerzona przekracza wartość 1000, a następnie wyświetla wynik w polu o nazwie „Średnia cena końcowa”.
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; W polu o nazwie „Liczba ID produktów” wyświetla łączną liczbę produktów dla kategorii, które zawierają ponad 10 produktów.

Powrót do początku

Wyrażenia używane w tabelach

Dwa najbardziej typowe sposoby użycia wyrażeń w tabelach dotyczą przypisywania wartości domyślnej i tworzenia reguły poprawności.

Domyślne wartości pól

Podczas projektowania bazy danych może wystąpić potrzeba przypisania wartości domyślnej do pola lub kontrolki. Następnie program Access dostarcza tę wartość podczas tworzenia nowego rekordu zawierającego pole lub gdy jest tworzony obiekt zawierający kontrolkę. Wyrażenia w poniższej tabeli zawierają przykładowe wartości domyślne dla pola lub kontrolki. Jeśli kontrolka jest powiązana z polem w tabeli, a pole ma wartość domyślną, wartość domyślna kontrolki ma pierwszeństwo.

Pole Wyrażenie Domyślna wartość w polu
Ilość 1 1
Region "MT" MT
Region "New York, N.Y." Szczecin (Należy zauważyć, że wartość zawierająca znaki interpunkcyjne musi być ujęta w cudzysłowy).
Faks "" Ciąg zerowej długości wskazuje, że dane pole powinno być domyślnie puste, zamiast zawierać wartość null.
Data zamówienia Date( ) Dzisiejsza data
Data_wykonania Date() + 60 Data 60 dni późniejsza od daty bieżącej.

Powrót do początku

Reguły poprawności pól

Przy użyciu wyrażenia można utworzyć regułę sprawdzania poprawności dla pola lub kontrolki. Program Access wymusza wówczas tę regułę podczas wprowadzania danych do pola lub kontrolki. Aby utworzyć regułę poprawności, zmodyfikuj ValidationRule właściwość pola lub kontrolki. Należy również rozważyć ustawienie ValidationText właściwości, która przechowuje tekst wyświetlany w programie Access, gdy reguła poprawności jest naruszona. Jeśli nie ustawisz ValidationText tej właściwości, program Access wyświetli domyślny komunikat o błędzie.

W przykładach w poniższej tabeli przedstawiono wyrażenia reguł poprawności właściwości ValidationRule i skojarzony tekst tej ValidationText właściwości.

Właściwość RegułaPoprawności Właściwość KomunikatOBłędzie
<> 0 Wprowadź wartość różną od zera.
0 Or > 100 Wartość musi być równa 0 lub większa niż 100.
Like "K???" Wartość musi być złożona z czterech znaków i musi zaczynać się od litery K.
< #1/1/2017# Wprowadź datę wcześniejszą niż 01.01.2017.
>= #1/1/2017# And < #1/1/2008# Data musi przypadać w 2017 roku.

Aby uzyskać więcej informacji na temat sprawdzania poprawności danych, zobacz artykuł Tworzenie reguły sprawdzania poprawności do sprawdzania poprawności danych w polu.

Powrót do początku

Wyrażenia używane w makrach

W niektórych przypadkach może być konieczne wykonanie akcji lub serii akcji w makrze tylko w przypadku spełnienia określonego warunku. Załóżmy na przykład, że pewna akcja ma być wykonywana tylko wtedy, gdy wartość pola tekstowego Licznik wyniesie 10. Wyrażenie służy do definiowania warunku w bloku Jeżeli:

[Counter]=10

Podobnie jak w przypadku ValidationRule właściwości wyrażenie w bloku Jeżeli jest wyrażeniem warunkowym. Musi ono rozwiązać problem z albo True .False Akcja jest wykonywana tylko wówczas, gdy warunek jest spełniony.

Wyrażenie służące do wykonania akcji If
[City]="Paris" Wrocław jest wartością kontrolki Miasto w formularzu, z poziomu którego zostało uruchomione makro.
DCount("[OrderID]", "Orders") > 35 Istnieje więcej niż 35 elementów w polu IdentyfikatorZamówienia tabeli Zamówienia.
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 W tabeli Szczegóły zamówień istnieją więcej niż 3 elementy, dla których pole IdentyfikatorZamówienia jest zgodne z polem IdentyfikatorZamówienia w formularzu Zamówienia.
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# Data w polu DataWysyłki w formularzu, z którego zostało uruchomione makro, nie jest wcześniejsza niż 2 lutego 2017 r. i nie późniejsza niż 2 marca 2017 r.
Forms![Products]![UnitsInStock] < 5 Wartość pola StanMagazynu w formularzu Produkty jest mniejsza niż 5.
IsNull([FirstName]) Wartość pola Imię w formularzu, z poziomu którego zostało uruchomione makro, jest równa null (nie ma wartości). To wyrażenie jest równoważne z wyrażeniem [Imię] Is Null.
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 Wartość pola KrajRegion w formularzu, z poziomu którego zostało uruchomione makro, jest równa Zjednoczone Królestwo, a wartość w polu PodsumowaniaZamówień formularza PodsumowaniaSprzedaży jest większa niż 100.
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 Wartość pola KrajRegion w formularzu, z poziomu którego zostało uruchomione makro, jest równa Francja, Włochy lub Hiszpania, a długość kodu pocztowego jest inna niż 5 znaków.
MsgBox("Confirm changes?",1)=1 Kliknięto przycisk OK w oknie dialogowym wyświetlonym przez funkcję MsgBox. W przypadku kliknięcia w tym oknie dialogowym przycisku Anuluj program Access zignoruje akcję.

Powrót do początku

Zobacz też