Jeśli chcesz, aby przy każdym uruchomieniu zapytania w programie Access był wyświetlany monit o wprowadzenie danych wejściowych, możesz utworzyć zapytanie parametryczne.
Możesz również utworzyć formularz w celu gromadzenia wartości parametrów, które będą używane do ograniczania rekordów zwracanych dla zapytań, formularzy i raportów. W tym artykule wyjaśniono, jak korzystać z formularzy, aby usprawnić używanie parametrów w zapytaniach, formularzach i raportach.
W tym artykule
Omówienie
W programie Access za pomocą kryteriów w zapytaniu parametrycznym można ograniczyć zestaw rekordów zwracanych przez to zapytanie. Może się okazać, że pola dialogowe udostępniane przez zapytanie parametryczną są niewystarczające w stosunku do Twoich potrzeb. W takich przypadkach możesz utworzyć formularz, który będzie lepiej spełniał określone wymagania dotyczące zbierania parametrów. W tym artykule wyjaśniono, jak utworzyć formularz, który zbiera parametry raportu i zapytania. W tym artykule założono, że potrafisz tworzyć zapytania i definiować parametry w zapytaniach. Aby wykonać poniższe czynności, trzeba co najmniej umieć utworzyć zapytanie wybierające.
W tym artykule podano przykłady użycia parametrów w zapytaniach. Nie zawiera on wyczerpującej dokumentacji dotyczącej określania kryteriów.
-
Aby uzyskać więcej informacji na temat tworzenia zapytania wybierającego, zobacz artykuł Tworzenie prostego zapytania wybierającego.
-
Aby uzyskać więcej ogólnych informacji na temat zapytań, zobacz artykuł Wprowadzenie do zapytań.
-
Aby uzyskać więcej informacji o definiowaniu parametrów w zapytaniach, zobacz artykuł Używanie parametrów w celu wyświetlania monitu o wprowadzenie informacji podczas uruchamiania zapytania.
-
Aby uzyskać więcej informacji o tym, jak określać kryteria w zapytaniach, zobacz artykuł Przykłady kryteriów zapytań.
Używanie parametrów w zapytaniach
Używanie parametrów w zapytaniach jest równie proste, jak tworzenie zapytania używającego kryteriów. Zapytanie można zaprojektować w taki sposób, aby był wyświetlany monit o podanie jednej informacji, na przykład numeru części, lub kilku danych, na przykład dwóch dat. Dla każdego parametru zapytanie parametryczne wyświetla oddzielne okno dialogowe, w którym należy wpisać wartość parametru.
Dodawanie parametru do zapytania
-
Utwórz zapytanie wybierające, a następnie otwórz widok projektu zawierający to zapytanie.
-
W wierszu Kryteria pola, do którego chcesz zastosować dany parametr, wpisz w nawiasach kwadratowych tekst, który ma być wyświetlany w oknie dialogowym parametru. Na przykład:
[Data rozpoczęcia]
Po uruchomieniu zapytania parametrycznego w oknie dialogowym zostanie wyświetlony monit bez nawiasów.
W przypadku monitów o podanie parametrów można również użyć wyrażenia, na przykład:
Between [Data rozpoczęcia] And [Data zakończenia]
Uwaga: Dla każdego monitu o podanie parametru jest wyświetlane osobne okno dialogowe. W drugim przykładzie są wyświetlane dwa okna: jedno dla parametru Data rozpoczęcia i jedno dla parametru Data zakończenia.
-
Powtórz krok 2 dla każdego pola, do którego chcesz dodać parametry.
Za pomocą powyższej procedury można dodać parametr do zapytań następujących typów: wybierające, krzyżowe, dołączające, tworzące tabele i aktualizujące.
Można również dodać parametr do zapytania składającego, wykonując następujące czynności:
-
Otwórz zapytanie składające w widoku SQL.
-
Dodaj klauzulę WHERE zawierającą każde pole, którego ma dotyczyć monit o podanie parametru.
Jeśli klauzula WHERE już istnieje, sprawdź, czy pola, których ma dotyczyć monit o podanie parametrów, już istnieją w klauzuli — jeśli nie, dodaj je.
-
Zamiast używać kryterium w klauzuli WHERE, użyj monitu o podanie parametru.
Określanie typów danych parametrów
Można również określić, jaki typ danych powinien być akceptowany przez parametr. Typ danych można określić dla dowolnego parametru, ale szczególnie istotne jest określenie typu dla danych liczbowych, walutowych oraz daty/godziny. Określenie typu danych akceptowanego przez parametr umożliwia wyświetlanie pomocnego komunikatu o błędzie w przypadku, gdy użytkownik wprowadzi nieprawidłowy typ danych — na przykład tekst, gdy oczekiwanym typem danych jest waluta.
Uwaga: Jeśli konfiguracja parametru przewiduje akceptowanie danych tekstowych, wszelkie wprowadzone dane są interpretowane jako tekst i nie jest wyświetlany żaden komunikat o błędzie.
Aby określić typ danych dla parametrów w zapytaniu, wykonaj następujące czynności:
-
Po otwarciu kwerendy w widoku projektu na karcie Projektowanie, w grupie Pokazywanie/ukrywanie kliknij przycisk Parametry.
-
W oknie dialogowym Parametry kwerendy, w kolumnie Parametr wpisz monit dla każdego parametru, dla którego chcesz określić typ danych. Upewnij się, że każdy parametr jest zgodny z monitem użytym w wierszu Kryteria siatki projektu kwerendy.
-
W kolumnie Typ danych wybierz typ danych dla każdego parametru.
Tworzenie formularza zbierającego parametry
Zapytania parametryczne udostępniają wbudowane okno dialogowe, które służy do zbierania parametrów, jednak ich funkcjonalność jest ograniczona. Użycie formularza do zbierania parametrów pozwala korzystać z następujących funkcji:
-
Możliwość używania kontrolek dla określonego typu danych, na przykład kontrolek kalendarza dla dat.
-
Trwałość zbieranych parametrów, dzięki czemu można ich używać w więcej niż jednym zapytaniu.
-
Możliwość używania pól kombi lub pól listy w celu zbierania parametrów, co pozwala na wybieranie pozycji z listy dostępnych wartości danych.
-
Możliwość dostarczania kontrolek dla innych funkcji, na przykład otwierania lub odświeżania zapytania.
W poniższym klipie wideo przedstawiono sposób tworzenia prostego formularza w celu zbierania parametrów zapytania zamiast używania okien dialogowych skojarzonych zazwyczaj z zapytaniami parametrycznymi.
Tworzenie formularza zbierającego parametry dla raportu
To zadanie można wykonać na kilka sposobów, my jednak przedstawimy tylko jedną technikę, wykorzystującą głównie makra. Aby utworzyć formularz zbierający parametry dla raportu, wykonaj poniższe czynności.
Krok 1. Tworzenie formularza akceptującego dane wejściowe
-
Na karcie Tworzenie w grupie Formularze kliknij przycisk Projekt formularza.
-
W widoku projektu naciśnij klawisz F4, aby wyświetlić arkusz właściwości, a następnie określ właściwości formularza zgodnie z poniższą tabelą.
Właściwość
Ustawienie
Podpis
Wprowadź nazwę, która ma być wyświetlana na pasku tytułu formularza.
Widok domyślny
Formularz pojedynczy
Zezwalaj na widok formularza
Tak
Zezwalaj na widok arkusza danych
Nie
Zezwalaj na widok tabeli przestawnej
Nie
Zezwalaj na widok wykresu przestawnego
Nie
Paski przewijania
Żadne
Selektory rekordów
Nie
Przyciski nawigacyjne
Nie
Styl obramowania
Okno dialogowe
-
Dla każdego parametru, który ma być zbierany przez formularz, kliknij przycisk Pole tekstowe w grupie Kontrolki na karcie Projektowanie.
-
Ustaw właściwości pól tekstowych zgodnie z poniższą tabelą.
Właściwość
Ustawienie
Nazwa
Wprowadź nazwę, która opisuje parametr, na przykład Data rozpoczęcia.
Format
Wybierz format, który odzwierciedla typ danych pola parametru. Na przykład dla pola daty wybierz pozycję Data ogólna.
-
Zapisz formularz i nadaj mu nazwę, na przykład formKryteria.
Krok 2. Tworzenie modułu sprawdzającego, czy formularz parametrów jest już załadowany
-
Na karcie Tworzenie w grupie Makra i kod kliknij pozycję Moduł.
W Edytorze Visual Basic zostanie otwarty nowy moduł.
-
Wpisz lub wklej następujący kod w Edytorze Visual Basic:
Function IsLoaded(ByVal strFormName As String) As Boolean Dim oAccessObject As AccessObject Set oAccessObject = CurrentProject.AllForms(strFormName) If oAccessObject.IsLoaded Then If oAccessObject.CurrentView <> acCurViewDesign Then IsLoaded = True End If End If End Function
-
Zapisz moduł z unikatową nazwą, a następnie zamknij Edytor Visual Basic.
Krok 3. Tworzenie makra sterującego formularzem i raportem
Używając funkcji podmakra makra programu Access, możemy zdefiniować wszystkie wymagane kroki, które trzeba wykonać w jednym makrze. Utworzymy cztery podmakra — Otwórz okno dialogowe, Zamknij okno dialogowe, OK i Anuluj — aby sterować różnymi zadaniami potrzebnymi do wykonania tej procedury. Posługując się poniższym zrzutem ekranu, utwórz nowe makro z następującymi podmakrami i akcjami. Uwaga: w tym przykładzie nasz formularz parametru ma nazwę frmCriteria. Dostosuj swoje makro, aby było zgodne z nazwą formularza, który został utworzony wcześniej. Musisz także pamiętać, aby kliknąć pozycję Pokaż wszystkie akcje na karcie Projektowanie, aby wyświetlić wszystkie akcje makra.
Zapisz i zamknij makro. Nadaj nazwę dla makra, na przykład Makro Zakres dat.
Krok 4. Dodawanie przycisków poleceń OK i Anuluj do formularza
-
Otwórz ponownie formularz parametru utworzony wcześniej w widoku projektu.
-
Upewnij się, że opcja Użyj kreatorów kontrolek w grupie Kontrolki na karcie Projektowanie nie jest zaznaczona.
-
Na karcie Projektowanie w grupie Kontrolki kliknij pozycję Przycisk.
-
Umieść wskaźnik myszy poniżej pól tekstowych w swoim formularzu, a następnie przeciągnij, aby utworzyć przycisk polecenia OK.
-
Jeżeli arkusz właściwości jest niewidoczny, naciśnij klawisz F4, aby go wyświetlić.
-
Ustaw właściwości przycisku OK zgodnie z poniższą tabelą.
Właściwość
Ustawienie
Nazwa
OK
Podpis
OK
Domyślny
Tak
PrzyKliknięciu
Wprowadź nazwę makra, na przykład Makro Zakres dat.OK.
-
Utwórz przycisk polecenia Anuluj i ustaw jego właściwości zgodnie z poniższą tabelą.
Właściwość
Ustawienie
Nazwa
Anuluj
Podpis
Anuluj
PrzyKliknięciu
Wprowadź nazwę makra, na przykład Makro Zakres dat.Anuluj.
-
Zapisz i zamknij formularz.
Krok 5. Używanie danych formularza jako kryteriów zapytania
-
Otwórz utworzone wcześniej zapytanie w widoku projektu.
-
Wprowadź kryteria dla danych. Użyj obiektu Formularz, nazwy formularza i nazwy elementu kontrolka:
-
Na przykład w bazie danych programu Access (accdb lub mdb) w przypadku formularza o nazwie formKryteria należy użyć następującego wyrażenia, aby odwołać się do kontrolek Data rozpoczęcia i Data zakończenia użytych w zapytaniu:
Between [Formularze]![formKryteria]![Data rozpoczęcia] And [Formularze]![formKryteria]![Data zakończenia]
-
Krok 6. Dodawanie akcji makra do zdarzeń raportu
-
Otwórz raport, którego chcesz użyć, w widoku projektu.
-
Jeżeli arkusz właściwości jest niewidoczny, naciśnij klawisz F4, aby go wyświetlić.
-
Upewnij się, że właściwość Źródło rekordów raportu używa zapytania parametrycznego zdefiniowanego wcześniej.
-
Ustaw te dwie dodatkowe właściwości raportu zgodnie z poniższą tabelą.
Właściwość
Ustawienie
PrzyOtwarciu
Wprowadź nazwę makra, na przykład Makro Zakres dat.Otwórz okno.
PrzyZamknięciu
Wprowadź nazwę makra, na przykład Makro Zakres dat.Zamknij okno.
W przypadku zdarzenia Otwórz raportu program Access uruchomi akcje zdefiniowane w podmakrze Otwórz okno dialogowe obiektu Makro Zakres dat. Podobnie w przypadku zamykania raportu program Access uruchomi akcje zdefiniowane w podmakrze Zamknij okno dialogowe obiektu Makro Zakres dat.
-
Zapisz i zamknij raport.
Krok 7. Wypróbowanie formularza
Teraz, gdy wszystkie obiekty programu Access zostały już utworzone, warto wypróbować formularz. Otwórz raport w widoku Widok raportu lub Podgląd wydruku i zwróć uwagę, że zanim program Access wyświetli raport, formularz parametrów jest wyświetlany w trybie okna dialogowego. Wprowadź wymagane kryteria w polach tekstowych utworzonych wcześniej, a następnie kliknij przycisk polecenia OK w formularzu. Program Access ukryje następnie formularz (Visible = No) i otworzy raport zawierający tylko te dane, które są zgodne z wprowadzonymi kryteriami. Jest to możliwe, ponieważ zapytanie parametryczne, na którym jest oparty raport, może odczytywać wartości w kontrolkach w ukrytym formularzu. Gdy zamkniesz raport, program Access zamknie również formularz parametrów.