Jeśli chcesz, aby zapytanie w programie Access wyświetlało monit o podanie danych przy każdym uruchomieniu, 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
- Używanie parametrów w zapytaniach
- Określanie typów danych parametrów
- Tworzenie formularza zbierającego parametry
- Tworzenie formularza zbierającego parametry dla raportu
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 je w widoku projektu.
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
- Krok 2. Tworzenie modułu sprawdzającego, czy formularz parametrów jest już załadowany
- Krok 3. Tworzenie makra sterującego formularzem i raportem
- Krok 4. Dodawanie przycisków poleceń OK i Anuluj do formularza
- Krok 5. Używanie danych formularza jako kryteriów zapytania
- Krok 6. Dodawanie akcji makra do zdarzeń raportu
- Krok 7. Wypróbowanie formularza
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 FunctionZapisz 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, jak pokazano w poniższej tabeli.
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 Forms , nazwy formularza i nazwy kontrolki:
- 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]
- 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:
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
Po utworzeniu wszystkich obiektów programu Access warto wypróbować tę funkcję. Otwórz raport w widoku raportu lub podglądzie wydruku i zwróć uwagę, że zanim program Access wyświetli raport, formularz parametru zostanie otwarty 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.