Przewodnik po składni wyrażenia

Podczas korzystania z programu Microsoft Access często występują sytuacje, gdy trzeba pracować z wartościami, których nie określono bezpośrednio w danych. Mogą to być na przykład informacje niezbędne do obliczenia całkowitej wartości zamówienia albo podatku od wartości zamówienia. Te wartości można obliczyć za pomocą wyrażeń. Aby użyć wyrażeń, należy je napisać, stosując odpowiednią składnię. Składnia to zestaw reguł dotyczących prawidłowego łączenia wyrazów i symboli w wyrażeniu. Odczytywanie wyrażeń w programie Access przysparza na początku trochę trudności. Jednak po zapoznaniu się ze składnią oraz wykonaniu kilku ćwiczeń praktycznych język ten stanie się bardziej zrozumiały.

W tym artykule

Omówienie wyrażeń

Składniki wyrażeń

Obiekty, kolekcje i właściwości

Identyfikatory

Funkcje, operatory, stałe i wartości

Limit zagnieżdżania wyrażeń w bazie danych sieci Web wynosi 65

Omówienie wyrażeń

Wyrażenie to połączenie niektórych lub wszystkich z następujących elementów: funkcji wbudowanych lub zdefiniowanych przez użytkownika, identyfikatorów, operatorów, wartości i stałych. Wynikiem wyrażenia jest pojedyncza wartość.

Składniki wyrażenia

Poniższe przykładowe wyrażenie zawiera typowe składniki:

=Sum([Purchase Price])*0.08 
  • Sum() to wbudowana funkcja

  • [Purchase Price] to identyfikator

  • * to operator matematyczny

  • 0.08 to stała

Tego wyrażenia można użyć w stopce formularza lub raportu do obliczania podatku od sprzedaży dla grupy pozycji.

Wyrażenia mogą być bardziej złożone lub prostsze od wyrażenia z tego przykładu. Na przykład to wyrażenie wartość logiczna składa się tylko z operatora i stałej:

>0

To wyrażenie zwraca wartość:

  • True (prawda), gdy jest porównywane z liczbą większą od 0.

  • False (fałsz), gdy jest porównywane z liczbą mniejszą od 0.

Można go użyć we właściwości Reguła poprawności kontrolki lub pola tabeli w celu zagwarantowania wprowadzania wyłącznie wartości dodatnich. Wyrażenia są używane w wielu różnych miejscach do wykonywania obliczeń, przeprowadzania operacji na znakach czy testowania danych. Tabele, zapytania, formularze, raporty i makra mają właściwości akceptujące wyrażenia. Wyrażeń można na przykład używać we właściwościach kontrolki Źródło kontrolki oraz Wartość domyślna. Można ich także używać we właściwości Reguła poprawności pola tabeli.

Początek strony

Składniki wyrażeń

Aby utworzyć wyrażenie, należy połączyć identyfikatory za pomocą funkcji, operatorów, stałych i wartości. Każde prawidłowe wyrażenie musi zawierać co najmniej jedną funkcję lub co najmniej jeden identyfikator, może także zawierać stałe lub operatory. Możesz również użyć wyrażenia jako części innego wyrażenia — zazwyczaj jako argumentu funkcji. Jest to nazywane zagnieżdżaniem.

  • Identyfikatory    Mają zazwyczaj następującą postać:

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

    Wystarczy określić taką liczbę części identyfikatora, która pozwoli zagwarantować jego unikatowość w kontekście wyrażenia. Identyfikator często ma postać [Object name].

  • Funkcje    Mają zazwyczaj następującą postać:

    Function(argument, argument)

    Jednym z argumentów jest najczęściej identyfikator lub wyrażenie. Niektóre funkcje nie wymagają argumentów. Przed użyciem danej funkcji zapoznaj się z jej składnią. Aby uzyskać więcej informacji, zobacz Funkcje (według kategorii).

  • Operatory    Mają zazwyczaj następującą postać:

    Identifier operator identifier

    Wyrażenie może również mieć inną postać — wyjątki zostały podane w sekcji Operatory.

  • Stałe    Mają zazwyczaj następującą postać:

    Identifier comparison_operator  constant
  • Wartości    Wartości mogą występować w wielu miejscach wyrażenia.

Początek strony

Obiekty, kolekcje i właściwości

Wszystkie tabele, zapytania, formularze, raporty i pola w bazie danych programu Access to obiekty. Każdy obiekt ma nazwę. Niektóre obiekty są już nazwane — na przykład tabela Kontakty w bazie danych utworzonej na podstawie szablonu Kontakty w programie Microsoft Office Access. Nazwa obiektu jest definiowana podczas jego tworzenia.

Zestaw wszystkich elementów określonego typu obiektu jest nazywany kolekcją. Kolekcją jest na przykład zestaw wszystkich tabel w bazie danych. Niektóre obiekty, które są elementami kolekcji w bazie danych, mogą być także kolekcjami zawierającymi inne obiekty. Obiekt tabeli jest na przykład kolekcją zawierającą obiekty pól.

Obiekty mają właściwości, które opisują charakterystykę obiektu i umożliwiają jej zmienianie. Obiekt zapytania ma na przykład właściwość Widok domyślny, która opisuje sposób wyświetlania zapytania po jego uruchomieniu i pozwala go określić.

Poniższy diagram ilustruje relacje między kolekcjami, obiektami i właściwościami:

Relacje między kolekcjami, obiektami i właściwościami

3. Właściwość

2. Obiekt

1. Kolekcja

Początek strony

Identyfikatory

Użycie obiektu, kolekcji lub właściwości w wyrażeniu polega na odwołaniu się do tego elementu za pomocą identyfikatora. Identyfikator zawiera nazwę elementu, który identyfikujesz, oraz nazwę elementu, do którego należy. Identyfikator pola zawiera na przykład nazwę pola oraz nazwę tabeli, do której należy to pole. Poniżej przedstawiono przykład takiego identyfikatora:

[Customers]![BirthDate]

W niektórych przypadkach identyfikatorem jest sama nazwa elementu. Ma to miejsce wtedy, gdy nazwa elementu jest unikatowa w kontekście tworzonego wyrażenia. Pozostała część identyfikatora wynika z kontekstu. Jeśli na przykład projektujesz zapytanie używające tylko jednej tabeli, jako identyfikatory będą służyć same nazwy pól, ponieważ nazwy pól w tabeli muszą być unikatowe. Ze względu na to, że używasz tylko jednej tabeli, nazwa tabeli jest implikowana w każdym identyfikatorze użytym w zapytaniu jako odwołanie do pola.

W innych przypadkach należy wyraźnie podać części identyfikatora, aby odwołanie działało. Ma to miejsce wtedy, gdy identyfikator nie jest unikatowy w kontekście wyrażenia. Jeśli występuje wieloznaczność, trzeba wyraźnie określić wystarczającą liczbę części identyfikatora, aby zagwarantować jego unikatowość w danym kontekście. Załóżmy na przykład, że projektujesz zapytanie, które używa tabeli Produkty oraz tabeli Zamówienia, przy czym w obu tabelach znajduje się pole IdentyfikatorProduktu. W takim przypadku identyfikator używany w zapytaniu, który odwołuje się do jednego z pól IdentyfikatorProduktu, musi zawierać oprócz nazwy pola także nazwę tabeli — na przykład:

[Products]![ProductID]

Operatory w identyfikatorze    W identyfikatorze można użyć trzech operatorów:

  • wykrzyknika (!),

  • kropki (.),

  • nawiasu kwadratowego ([ ]).

Aby użyć tych operatorów, należy ująć każdą część identyfikatora w nawiasy kwadratowe, a następnie połączyć je przy użyciu operatora wykrzyknika lub kropki. Na przykład identyfikator pola Nazwisko w tabeli Pracownicy można wyrazić jako [Employees]![Last Name]. Operator wykrzyknika informuje program Access, że element następujący po operatorze należy do kolekcji, która znajduje się przed operatorem wykrzyknika. W tym przypadku [Nazwisko] to obiekt pola, który należy do kolekcji [Pracownicy] będącej obiektem tabeli.

Ściśle rzecz biorąc, nie zawsze trzeba ujmować identyfikator lub jego część w nawiasy kwadratowe. Jeżeli w identyfikatorze nie ma spacji ani innych znaków specjalnych, program Access automatycznie dodaje nawiasy podczas odczytywania wyrażenia. Warto jednak wpisywać nawiasy samodzielnie — pozwala to uniknąć błędów oraz daje wizualną wskazówkę, że określona część wyrażenia jest identyfikatorem.

Początek strony

Funkcje, operatory, stałe i wartości

Aby utworzyć wyrażenie, nie wystarczy użyć samych operatorów — trzeba wykonać pewien typ akcji. Do wykonywania akcji w wyrażeniu służą funkcje, operatory i stałe.

Funkcje

Funkcja jest procedurą, której można użyć w wyrażeniu. Niektóre funkcje, takie jak Date, działają bez konieczności podawania danych wejściowych. Większość funkcji wymaga jednak danych wejściowych, nazywanych argumentami.

W przykładzie na początku tego artykułu funkcja DatePart używa dwóch argumentów: interwału (o wartości "yyyy") oraz daty (o wartości [Customers]![BirthDate]). Funkcja DatePart wymaga co najmniej tych dwóch argumentów (interwału i daty), jednak akceptuje do czterech argumentów.

Na poniższej liście wymieniono niektóre funkcje często używane w wyrażeniach. Aby uzyskać więcej informacji dotyczących składni używanej z daną funkcją, kliknij odpowiednie link.

  • Funkcja Date służy do wstawiania bieżącej daty systemowej do wyrażenia. Jest ona często używana w połączeniu z funkcją Format, a także z identyfikatorami pól, które zawierają dane typu data/godzina.

    =Date()
  • Funkcja DatePart służy do określania lub wyodrębniania części daty — zazwyczaj data jest uzyskiwana z identyfikatora pola, jednak czasami z wartości daty zwracanej przez inną funkcję, taką jak Date.

    DatePart ( "yyyy", Date())
  • Funkcja DateDiff służy do określania różnicy między dwiema datami — zazwyczaj między datą uzyskaną z identyfikatora pola a datą uzyskaną za pomocą funkcji Date.

    =DateDiff(“d”, Now(), [Orders].[ReceiveBefore])-10 
  • Funkcja Format służy do stosowania formatu do identyfikatora i do wyników innej funkcji.

    Format([Date],"ww")=Format(Now(),"ww")-1 
  • Funkcja IIf służy do wyznaczania wartości prawda lub fałsz dla wyrażenia. Zależnie od wyznaczonej wartości wyrażenia (prawda lub fałsz) jest zwracana określona wartość.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
  • Funkcja InStr służy do wyszukiwania pozycji znaku lub ciągu w obrębie innego ciągu. Wyszukiwany ciąg jest zazwyczaj uzyskiwany z identyfikatora pola.

    InStr(1,[IPAddress],".")
  • Funkcje Left, Mid i Right służą do wyodrębniania znaków z ciągu: skrajnego znaku z lewej strony (Left), znaku o określonym położeniu w środku ciągu (Mid) oraz skrajnego znaku z prawej strony (Right). Są one zazwyczaj używane w połączeniu z funkcją InStr. Ciąg, z którego te funkcje wyodrębniają znaki, jest najczęściej uzyskiwany z identyfikatora pola.

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

Lista funkcji znajduje się w artykule Funkcje (według kategorii).

Operatory

Operator jest słowem lub symbolem wskazującym określoną relację arytmetyczną lub logiczną między innymi elementami wyrażenia. Operatory mogą być następujące:

  • Arytmetyczne, takie jak znak plus (+).

  • Porównania, takie jak znak równości (=).

  • Logiczne, takie jak Not.

  • Łączenia, takie jak &.

  • Specjalne, takie jak Like.

Operatory zazwyczaj służą do wskazywania relacji między dwoma identyfikatorami. W poniższych tabelach opisano operatory, których można używać w wyrażeniach w programie Access.

Arytmetyczne   

Za pomocą operatorów arytmetycznych można obliczyć wartość na podstawie dwóch lub więcej liczb albo zmienić wartość liczby z dodatniej na ujemną.

Operator

Zastosowanie

Przykład

+

Zsumowanie dwóch liczb.

[Suma częściowa]+[Podatek]

-

Obliczenie różnicy dwóch liczb lub wskazanie ujemnej wartości liczby.

[Cena]-[Rabat]

*

Pomnożenie dwóch liczb.

[Ilość]*[Cena]

/

Podzielenie pierwszej liczby przez drugą.

[Suma]/[Liczba_pozycji]

\

Zaokrąglenie obu liczb do postaci całkowitej, podzielenie pierwszej liczby przez drugą i wskazanie części całkowitej wyniku.

[Zarejestrowane]\[Pokoje]

Mod

Podzielenie pierwszej liczby przez drugą i zwrócenie tylko reszty.

[Zarejestrowane] Mod [Pokoje]

^

Podniesienie liczby do określonej potęgi.

Liczba ^ Wykładnik

Porównania   

Operatory porównania służą do porównywania wartości i zwracania wyniku w postaci „prawda”, „fałsz” lub „null” (wartość nieznana).

Operator

Zastosowanie

<

Określenie, czy pierwsza wartość jest mniejsza niż druga.

<=

Określenie, czy pierwsza wartość jest mniejsza niż druga lub jej równa.

>

Określenie, czy pierwsza wartość jest większa niż druga

>=

Określenie, czy pierwsza wartość jest większa niż druga lub jej równa.

=

Określenie, czy pierwsza wartość jest równa drugiej.

<>

Określenie, czy pierwsza wartość nie jest równa drugiej.

We wszystkich przypadkach jeśli wartość pierwsza lub druga to Null, wynik również ma wartości Null. Wartość Nulloznacza wartość nieznaną, dlatego wynik jakiegokolwiek porównania z wartością Null również jest nieznany.

Logiczne    

Operatory logiczne służą do łączenia dwóch wartości i zwracania wyniku w postaci „prawda”, „fałsz” lub „Null”. Operatory logiczne są czasem nazywane operatorami Boole'a.

Operator

Zastosowanie

Opis

And

Wyr1 And Wyr2

Zwraca wartość „prawda”, jeśli Wyr1 i Wyr2 mają wartość „prawda”.

Or

Wyr1 Or Wyr2

Zwraca wartość „prawda”, jeśli Wyr1 lub Wyr2 ma wartość „prawda”.

Eqv

Wyr1 Eqv Wyr2

Zwraca wartość „prawda”, jeśli Wyr1 i Wyr2 mają wartość „prawda” lub Wyr1 i Wyr2 mają wartość „fałsz”.

Not

Not Wyr

Zwraca wartość „prawda”, jeśli Wyr nie ma wartości „prawda”.

Xor

Wyr1 Xor Wyr2

Zwraca wartość „prawda”, jeśli jedno z wyrażeń Wyr1 lub Wyr2 ma wartość „prawda”, ale nie oba.

Łączenia    

Za pomocą operatorów łączenia można złączyć dwie wartości tekstowe w jeden ciąg.

Operator

Zastosowanie

Opis

&

ciąg1 & ciąg2

Łączy dwa ciągi w jeden.

+

ciąg1 + ciąg2

Łączy dwa ciągi w jeden i propaguje wartości null.

Specjalne   

Operatorów specjalnych używa się w sposób opisany w poniższej tabeli.

Operator

Opis

Informacje uzupełniające

Is Null or Is Not Null

Ustala, czy wartość jest czy nie jest wartością Null.

Like "pattern"

Dopasowuje wartości ciągów za pomocą operatorów symboli wieloznacznych ? i *.

Operator Like

Between val1 And val2

Ustala, czy wartość liczbowa lub data należy do zakresu.

Operator Between...And

In(string1,string2...)

Określa, czy dana wartość ciągu należy do zestawu wartości ciągów.

Operator In

Stałe

Stała to znana wartość, która się nie zmienia i której można użyć w wyrażeniu. W programie Access są dostępne cztery często używane stałe:

  • True wskazuje, czy coś jest logicznie prawdziwe.

  • False wskazuje, czy coś jest logicznie fałszywe.

  • Null wskazuje brak znanej wartości.

  • "" (empty string) wskazuje wartość, o której wiadomo, że jest pusta.

Stałych można używać jako argumentów funkcji lub stosować je w wyrażeniu jako część kryterium. Można na przykład użyć stałej oznaczającej ciąg pusty ("") jako części kryterium dla kolumny w zapytaniu, aby wyznaczyć wartości pól dla tej kolumny. W tym celu jako kryterium należy wprowadzić ciąg <>"". W tym przykładzie ciąg <> to operator, a ciąg "" to stała. Razem wskazują, że identyfikator, którego dotyczą, powinien zostać porównany z pustym ciągiem. Wyrażenie wynikowe jest prawdziwe, gdy identyfikator przyjmuje wartość inną niż pusty ciąg.

Podczas używania stałej Null należy zachować ostrożność. W większości wypadków użycie stałej Null w połączeniu z operatorem porównania powoduje błąd. Aby porównać wartość z wartością Null w wyrażeniu, należy użyć operatora Is Null lub Is Not Null.

Wartości

W wyrażeniach można używać wartości literałów, takich jak liczba 1254 lub ciąg „Wprowadź liczbę z zakresu od 1 do 10”. W razie potrzeby można też używać wartości liczbowych składających się z serii cyfr oraz znaku i separatora dziesiętnego. W przypadku braku znaku program Access traktuje wartość jako wartość dodatnią. Aby określić wartość ujemną, należy dodać znak minus (-). Można także używać notacji wykładniczej. W tym celu należy użyć litery „E” lub „e” oraz znaku wykładnika (na przykład 1,0E-6).

Gdy jako wartości używasz ciągów tekstowych, umieść je w cudzysłowie, aby program Access poprawnie je interpretował. W pewnych sytuacjach program Access automatycznie wstawia znaki cudzysłowu. Na przykład podczas wpisywania tekstu w wyrażeniu reguły poprawności lub kryteriów zapytania program Access automatycznie umieszcza ciągi tekstowe w cudzysłowie.

Gdy na przykład wpiszesz tekst Paris, program Access wyświetli w wyrażeniu ciąg "Paris". Aby wyrażenie utworzyło ciąg, który będzie ujęty w cudzysłów, należy ująć zagnieżdżony ciąg w apostrofy (') lub trzy podwójne cudzysłowy ("). Na przykład następujące wyrażenia są równoważne:

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

Aby używać wartości daty/godziny, należy umieszczać wartości między znakami numeru (#). Przykładami prawidłowych wartości daty/godziny są ciągi #07.03.17#, #07 mar 17# i #7 marca 2017#. Gdy program Access napotka prawidłową wartość daty/godziny otoczoną znakami #, automatycznie traktuję tę wartość jak wartość o typie danych Data/Godzina.

Początek strony

Limit zagnieżdżania wyrażeń w bazie danych sieci Web wynosi 65

Wyrażenia zagnieżdżone głębiej niż na 65 poziomów nie będą działać w przeglądarce, więc nie powinno się używać takich wyrażeń w bazie danych sieci Web programu Access. Nie zostaną wyświetlone żadne komunikaty o błędach — wyrażenie po prostu nie będzie działać.

Użycie operatorów &, AND i OR może spowodować powstanie dodatkowych poziomów zagnieżdżania na serwerze, które nie są odzwierciedlane w kliencie programu Access. Na przykład wyrażenie "a" & "b" & "c" nie jest zagnieżdżane w Konstruktorze wyrażeń, ale w programie SharePoint przybiera postać concatenate.Db("a", concatenate.Db("b", "c") ). Takie przekształcenie tworzy dodatkowy poziom zagnieżdżenia. Użycie wielu operatorów &, AND lub OR pod rząd w jednym wyrażeniu może powodować przekroczenie limitu zagnieżdżania serwera równego 65, przez co wyrażenie nie będzie działać w przeglądarce.

Początek strony

Zobacz też

Używanie Konstruktora wyrażeń

Wprowadzenie do wyrażeń

Tworzenie wyrażenia

Przykłady wyrażeń

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×