Za pomocą funkcji tekstowych można tworzyć w programie Access wyrażenia umożliwiające manipulowanie tekstem na wiele sposobów. Na przykład możesz zechcieć wyświetlić w formularzu tylko część numeru seryjnego. Może też być konieczne połączenie (połączenie) kilku ciągów, na przykład nazwiska i imienia. Jeśli nie znasz jeszcze wyrażeń, zobacz Tworzenie wyrażenia.
Poniżej przedstawiono listę najbardziej typowych operacji na ciągach w programie Access oraz funkcji, których można użyć do ich wykonania:
| Cel | Użyj... | Na przykład... | Wyniki |
|---|---|---|---|
| Zwracanie znaków od początku ciągu | Funkcja Left | =Left([LiczbaKolejna];2) | Jeśli [SerialNumber] to "CD234", wynikiem jest "CD". |
| Zwracanie znaków z końca ciągu | Funkcja Right | =Right([LiczbaKolejna];3) | Jeśli parametrem [SerialNumber] jest "CD234", wynikiem jest "234". |
| Znajdowanie pozycji znaku w ciągu | Funkcja InStr | =InStr(1;[Imię];"i") | Jeśli [Imię] to "Tomasz", wynikiem jest 4. |
| Zwracanie znaków ze środka ciągu | Funkcja Mid | =FRAGMENT.TEKSTU([LiczbaKolejna];2;2) | Jeśli argument [SerialNumber] to "CD234", wynikiem jest "D2". |
| Przycinanie spacji wiodących lub końcowych z ciągu | Funkcje LTrim, RTrim i Trim | =Trim([FirstName]) | Jeśli [Imię] to " Tomasz ", wynikiem jest "Tomasz". |
| Łączenie dwóch ciągów | Operator znaku plus (+)* | =[Imię] + [Nazwisko] | Jeśli [Imię] to "Tomasz", a [Nazwisko] to Wilkowski, wynikiem będzie "Kowalczyk" |
| Łączenie dwóch ciągów znaków ze spacją między nimi | Operator znaku plus (+)* | =[Imię] + " " + [Nazwisko] | Jeśli [Imię] to "Tomasz", a [Nazwisko] to Wilkowski, wynikiem będzie "Tomasz Kowalski" |
| Zmienianie wielkości liter ciągu na wielkie lub małe lub wielkie | Funkcja UCase lub funkcja LCase | =UCase([FirstName]) | Jeśli [Imię] to "Tomasz", wynikiem będzie "COLIN". |
| Określanie długości ciągu | Funkcja Len | =Len([Imię]) | Jeśli [Imię] to "Tomasz", wynik wynosi 5. |
* Okej, więc to nie jest funkcja, to jest operator. Jest to jednak najszybszy sposób łączenia ciągów. W bazie danych dla komputerów stacjonarnych do łączenia można również użyć operatora handlowego "i" (&).
W programie Access jest o wiele więcej funkcji związanych z tekstem. Dobrym sposobem na ich poznanie jest otwarcie Konstruktora wyrażeń i przejrzenie list funkcji. Konstruktor wyrażeń jest dostępny niemal wszędzie tam, gdzie chcesz utworzyć wyrażenie — zazwyczaj jest tam mały przycisk Konstruuj , który wygląda następująco:
Aby zademonstrować Konstruktora wyrażeń, otwórzmy go z poziomu właściwości Źródło kontrolki w formularzu lub widoku. Użyj jednej z poniższych procedur w zależności od tego, czy korzystasz z bazy danych dla komputerów stacjonarnych, czy z aplikacji sieci Web programu Access.
Wyświetlanie Konstruktora wyrażeń w bazie danych dla komputerów stacjonarnych
Otwórz bazę danych dla komputerów stacjonarnych (accdb).
Naciśnij klawisz F11, aby otworzyć okienko nawigacji, jeśli nie jest jeszcze otwarte.
Jeśli formularz jest już dostępny, kliknij go prawym przyciskiem myszy w okienku nawigacji, a następnie kliknij polecenie Widok układu. Jeśli nie masz formularza do pracy, kliknij pozycję Utwórz>formularz.
Kliknij prawym przyciskiem myszy pole tekstowe w formularzu, a następnie kliknij polecenie Właściwości.
W arkuszu właściwości kliknij pozycję Wszystkie >źródła kontrolki, a następnie kliknij przycisk Konstruuj
po prawej stronie pola właściwości Źródło formantu.
W obszarze Elementy wyrażeń rozwiń węzeł Funkcje , a następnie kliknij pozycję Funkcje wbudowane.
W obszarze Kategorie wyrażeń kliknij pozycję Tekst.
W obszarze Wartości wyrażeń klikaj poszczególne funkcje i czytaj krótkie opisy w dolnej części Konstruktora wyrażeń.
Uwaga
Nie wszystkie z tych funkcji są dostępne we wszystkich kontekstach; Program Access automatycznie filtruje listę w zależności od tego, które z nich działają w danym kontekście.
Łączenie funkcji tekstowych w celu uzyskania większej elastyczności
Niektóre funkcje tekstowe mają argumenty numeryczne, które w niektórych przypadkach trzeba obliczać przy każdym wywołaniu funkcji. Na przykład funkcja Left przyjmuje ciąg i liczbę, na przykład =Left(SerialNumber, 2). Jest to doskonałe rozwiązanie, jeśli wiesz, że zawsze potrzebujesz dwóch lewych znaków, ale co zrobić, jeśli liczba potrzebnych znaków różni się w zależności od elementu? Zamiast po prostu "kodować" liczbę znaków, możesz wprowadzić inną funkcję, która ją obliczy.
Oto przykład liczb seryjnych, z których każda ma łącznik gdzieś w ciągu. Jednak pozycja łącznika może być różna:
| Numer seryjny |
|---|
| 3928-29993 |
| 23-9923 |
| 333-53234 |
| 3399940-444 |
Aby wyświetlić liczby tylko z lewej strony łącznika, musisz za każdym razem wykonać obliczenie, aby dowiedzieć się, gdzie znajduje się łącznik. Jedną z opcji jest zrobienie czegoś takiego:
=Left([LiczbaKolejna],InStr(1,[NumerKolejny],"-")-1)
Zamiast wprowadzać liczbę jako drugi argument funkcji Left, dołączyliśmy funkcję InStr, która zwraca pozycję łącznika w numerze seryjnym. Odejmij 1 od tej wartości, a otrzymasz prawidłową liczbę znaków, którą ma zwrócić funkcja LEWY. Na pierwszy rzut oka wydaje się to trochę skomplikowane, ale przy odrobinie eksperymentów można połączyć dwa lub więcej wyrażeń w celu uzyskania pożądanych wyników.