W tym artykule wyjaśniono, jak tworzyć wyrażenia warunkowe (nazywane również wyrażeniami logicznymi) w programie Access. Wyrażenie warunkowe ma wartość prawda lub fałsz, a następnie zwraca wynik spełniający określony warunek. Jeśli używasz funkcji w wyrażeniach warunkowych, możesz również określić akcję dla wartości, które nie spełniają warunku w wyrażeniu. Można na przykład utworzyć wyrażenie, które znajdzie całą sprzedaż z marżą zysku w wysokości 10 procent lub mniejszą, a następnie określić, że te liczby mają być wyświetlane na czerwono, lub zamienić wartości na komunikat.
W tym artykule
Opis wyrażeń warunkowych
Wyrażenie warunkowe to typ wyrażenia, które testuje dane w celu sprawdzenia, czy spełnia warunek, a następnie wykonuje akcję w zależności od wyniku. Na przykład wyrażenie może szukać wartości dat późniejszych niż określona data rozpoczęcia, a następnie wyświetlać komunikat o błędzie podczas próby wprowadzenia daty wcześniejszej niż zdefiniowana data rozpoczęcia.
Wyrażenia warunkowe mają ten sam formularz i mają tę samą podstawową składnię co inne wyrażenia. Można ich używać w taki sam sposób, jak w przypadku innych wyrażeń:
-
W przypadku pól tabeli wyrażenie jest dodawane do właściwości Reguła poprawności tego pola. Użytkownicy muszą następnie wprowadzać wartości w polu, które są zgodne z warunkami w wyrażeniu. Jeśli na przykład w polu Data/godzina zostanie użyte wyrażenie, takie jak >=#2000-01-01 #, użytkownicy muszą wprowadzić wartości równe 1 stycznia 2000 lub późniejsze.
-
W przypadku kontrolek w formularzach możesz dodać wyrażenie do właściwości Źródło kontrolki lub Reguła poprawności kontrolki. Zazwyczaj do właściwości Reguła poprawności dodaje się wyrażenia warunkowe i do właściwości Źródło kontrolki są dodawane wyrażenia obliczające wartości. Na przykład użycie >=#2000-01-01# we właściwości Reguła poprawności kontrolki uniemożliwia użytkownikom wprowadzenie nieprawidłowej daty. Użycie wyrażenia, takiego jak Date() we właściwości Źródło kontrolki , powoduje wyświetlenie bieżącej daty jako wartości domyślnej.
-
W przypadku zapytań możesz dodać wyrażenia warunkowe do pustej komórki w wierszu Pole lub użyć wyrażenia w wierszu Kryteria zapytania. W przypadku użycia wyrażenia w wierszu Pole wyniki są wyświetlane jako kolumna w wynikach zapytania. Jeśli wyrażenie jest używane jako kryterium dla istniejącego pola, wyrażenie działa jako filtr i ogranicza rekordy zwracane przez zapytanie.
Możesz na przykład użyć tego wyrażenia w wierszu Pole zapytania: =IIf([Data zamówienia]<=#2018-04-01#,[Data zamówienia]"Zamówienie wprowadzone po 1 kwietnia"). Wyrażenie określa kryterium daty (<=#2018-04-01#). Po uruchomieniu zapytania są wyświetlane wszystkie wartości dat spełniające kryterium, a wszystkie wartości dat, które nie spełniają kryterium, są zastępowane komunikatem "Kolejność wprowadzona po 1 kwietnia". W procedurach opisanych w sekcji Dodawanie wyrażenia do zapytania wyjaśniono, jak używać tego wyrażenia w zapytaniu.
Natomiast użycie tego wyrażenia w polu Kryteria zapytania powoduje zwrócenie tylko tych rekordów, które mają daty spełniające kryterium: Podaj wartość #2018-04-01# AND #2018-05-15#.
Aby uzyskać więcej informacji na temat tworzenia i używania wyrażeń, zobacz artykuł Dowiedz się, jak tworzyć wyrażenia.
Tworzenie wyrażenia warunkowego
W procedurach w tej sekcji wyjaśniono, jak dodać wyrażenie warunkowe do tabeli, kontrolki w formularzu lub raporcie i zapytania. Każdy zestaw kroków używa nieco innego wyrażenia do testowania wartości w polu typu Data/godzina i podejmowania akcji w zależności od tego, czy wartości dat spełniają określony warunek.
Dodawanie wyrażenia do pola tabeli
-
W okienku nawigacji kliknij prawym przyciskiem myszy tabelę, którą chcesz zmienić, i w menu skrótów kliknij polecenie Widok projektu.
-
W kolumnie Typ danych kliknij pole Data/godzina.
-
W obszarze Właściwości pola na karcie Ogólne kliknij pole właściwości Reguła poprawności i wpisz następujące wyrażenie:
>=#2000-01-01#
Uwaga: Nie trzeba używać formatu daty w Stanach Zjednoczonych. Możesz użyć formatu daty dla swojego kraju/regionu lub ustawień regionalnych. Wartość daty należy jednak otoczyć znakami numeru (#), jak pokazano.
-
Kliknij kolumnę obok pozycji Tekst sprawdzania poprawności i wpisz ten ciąg tekstowy:
Data musi być większa niż 1 stycznia 2000.
Ponownie możesz użyć lokalnego formatu daty.
-
Zapisz zmiany i przełącz się do widoku arkusza danych. Aby to zrobić, kliknij prawym przyciskiem myszy kartę dokumentu tabeli, a następnie w menu skrótów kliknij polecenie Widok arkusza danych .
-
Wpisz wartość daty w polu Data/godzina wcześniejsza niż 1 stycznia 2000. Program Access wyświetli komunikat określony w polu właściwości Reguła poprawności i nie będzie można opuścić tego pola, chyba że zostanie wprowadzona wartość, która zostanie obliczona jako prawdziwa.
Dodawanie wyrażenia do kontrolki
-
W okienku nawigacji kliknij prawym przyciskiem myszy formularz, który chcesz zmienić, a następnie w menu skrótów kliknij polecenie Widok projektu .
-
Kliknij prawym przyciskiem myszy kontrolkę powiązaną z polem typu Data/godzina, a następnie w menu skrótów kliknij polecenie Właściwości .
Zostanie wyświetlony arkusz właściwości kontrolki.
-
Na karcie Dane lub Wszystkie kliknij pole obok pozycji Reguła poprawności i wpisz następujące wyrażenie:
>=#2000-01-01#
Uwaga: Nie trzeba używać formatu daty w Stanach Zjednoczonych. Możesz użyć formatu daty dla swojego kraju/regionu lub ustawień regionalnych. Wartość daty należy jednak otoczyć znakami numeru (#), jak pokazano.
-
Kliknij kolumnę obok pozycji Tekst sprawdzania poprawności i wpisz ten ciąg tekstowy:
Data musi być większa niż 1 stycznia 2000.
-
Zapisz zmiany i przełącz się z powrotem do widoku formularza. W tym celu kliknij prawym przyciskiem myszy kartę dokumentu formularza, a następnie w menu skrótów kliknij polecenie Widok formularza .
Dodawanie wyrażenia do zapytania
-
W okienku nawigacji kliknij prawym przyciskiem myszy kwerendę, którą chcesz zmienić, a następnie w menu skrótów kliknij polecenie Widok projektu.
-
Kliknij pustą komórkę w wierszu Pole siatki projektu i wpisz następujące wyrażenie:
=IIf([Field_Name]<=#2018-04-01# , [Field_Name] , "Data późniejsza niż 1 kwietnia 2018")
Podczas wpisywania wyrażenia upewnij się, że oba wystąpienia Field_Name są zamieniane na nazwę pola Typu data/godzina. Ponadto jeśli tabela nie zawiera dat starszych niż 1 kwietnia 2018 r., zmień daty w wyrażeniu, aby działały z danymi.
-
Zapisz zmiany, a następnie kliknij pozycję Uruchom , aby wyświetlić wyniki.
Wyrażenie działa w następujący sposób: Pierwszy argument (=IIf([Field_Name]<=#2018-04-01#) określa warunek, który muszą spełnić dane — daty muszą mieć datę wcześniejszą niż 1 kwietnia 2018 r. Drugi argument ([Field_Name]) określa, co użytkownicy widzą, gdy warunek jest prawdziwy — daty w polu. Trzeci argument ("Data późniejsza niż 1 kwietnia 2018")) określa komunikat wyświetlany użytkownikom, gdy dane nie spełniają tego warunku.
Podczas pracy pamiętaj, że nie wszystkie wyrażenia warunkowe używają funkcji IIf . Ponadto należy pamiętać, że funkcja IIf jest częścią wyrażenia wymagającą argumentów, a nie samego wyrażenia.
Aby uzyskać więcej informacji o wyrażeniach i sposobach ich używania, zobacz artykuł Dowiedz się, jak tworzyć wyrażenia.
Przykłady wyrażeń warunkowych
Wyrażenia w poniższej tabeli przedstawiają niektóre sposoby obliczania wartości prawda i fałsz. W tych wyrażeniach użyto funkcji IIf (Natychmiastowe jeżeli) w celu określenia, czy warunek jest prawdziwy, czy fałsz, a następnie zwraca jedną wartość, jeśli warunek jest prawdziwy, a inną wartość, jeśli warunek jest fałszywy.
Aby uzyskać więcej informacji, zobacz artykuł Funkcja IIf .
Wyrażenie |
Opis |
=IIf([Potwierdzono] = "Tak", "Zamówienie potwierdzono", "Zamówienia nie potwierdzono") |
Wyświetla komunikat "Zamówienie potwierdzone", jeśli wartość pola Potwierdzone to Tak. W przeciwnym razie zostanie wyświetlony komunikat "Zamówienie nie zostało potwierdzone". |
=IIf(IsNull([Kraj/region]);" ", [Kraj/region]) |
Wyświetla pusty ciąg, jeśli wartość pola Kraj/region ma wartość Null. W przeciwnym razie zostanie wyświetlona wartość pola Kraj/region. |
=IIf(IsNull([Region]);[Miasto]&" "& [Kod Pocztowy], [Miasto]&" "&[Region]&" " &[Kod Pocztowy]) |
Wyświetla wartości pól Miasto i Kod Pocztowy, jeśli wartość pola Region ma wartość Null. W przeciwnym razie wyświetlane są wartości pól Miasto, Region i Kod Pocztowy. |
=IIf(IsNull([DataWysyłki] - [DataWysyłki]), "Sprawdź brakującą datę", [DataWymagane] - [DataWysyłki]) |
Wyświetla komunikat "Sprawdź brak daty", jeśli wynikiem odejmowania wartości pola DataWysyłki od pola RequiredDate jest Null. W przeciwnym razie wyświetla różnicę między wartościami pól DataDate I DataWysyłki. |