Podczas pracy z danymi relacyjnymi (gdzie pokrewne dane są przechowywane w osobnych tabelach) często trzeba przeglądać dane z kilku tabel lub zapytań w tym samym raporcie. Przeglądając na przykład dane klientów, dobrze jest jednocześnie widzieć informacje o zamówieniach tych klientów. Podraport w programie Access to wygodne narzędzie służące do tego celu, ponieważ pozwala na logiczne i czytelne wyświetlanie w raporcie informacji o zamówieniach razem z informacjami o klientach. Program Access umożliwia szybkie tworzenie podraportów na kilka sposobów.
Co chcesz zrobić?
Opis podraportów
Podraport to raport wstawiony w innym raporcie. Podczas łączenia raportów jeden z nich musi być raportem głównym, zawierającym inny raport. Raport główny może być powiązany lub niepowiązany. Raport powiązany to taki, który może wyświetlać dane i który dla właściwości Źródło rekordów ma określoną tabelę, zapytanie lub instrukcję SQL. Raport niepowiązany nie jest oparty na tabeli, zapytaniu ani instrukcji SQL (czyli jego właściwość Źródło rekordów jest pusta).
Przykład niepowiązanego raportu głównego z dwoma niepokrewnymi podraportami
Niepowiązany raport główny nie może wyświetlać żadnych własnych danych, ale nadal może służyć jako raport główny dla niepokrewnych podraportów, które chcesz połączyć.
1. Niepowiązany raport główny zawiera dwa podraporty.
2. Jeden podraport zawiera podsumowanie sprzedaży według pracownika.
3. Drugi podraport zawiera podsumowanie sprzedaży według kategorii.
Przykład raportu głównego i podraportu, które są powiązane z tym samym źródłem rekordów
Przy użyciu raportu głównego można przedstawić rekordy szczegółowe, na przykład każdą sprzedaż w roku, a przy użyciu podraportu można przedstawić podsumowanie, na przykład sprzedaż całkowitą dla każdego kwartału.
1. Podraport podsumowuje roczną sprzedaż według kwartału.
2. Raport główny zawiera listę sprzedaży z każdego dnia.
Przykład raportu głównego i podraportu, które są powiązane z pokrewnymi źródłami rekordów
Raport główny może zawierać dane wspólne dla kilku podraportów. W takim przypadku podraport zawiera dane, które są pokrewne w stosunku do danych w raporcie głównym.
1. Raport główny zawiera nazwy wszystkich targów i miasta, w których się odbędą.
2. Podraport zawiera listę przedstawicieli, którzy wezmą udział w poszczególnych targach.
Podformularze w raporcie
Raport główny, oprócz dowolnej liczby podraportów, może także zawierać dowolną liczbę podformularzy. Ponadto raport główny może zawierać maksymalnie siedem poziomów podformularzy i podraportów. Na przykład raport może zawierać podraport, a ten podraport z kolei może zawierać podformularz lub podraport, i tak dalej, aż do siedmiu poziomów zagnieżdżenia.
Jeśli dodasz podformularz do raportu, a następnie otworzysz ten raport w widoku Raport, możesz filtrować rekordy i poruszać się po nich, używając podformularza. Kod języka Visual Basic for Applications (VBA) i osadzone makra dołączone do formularza i jego kontrolek będą nadal działać, jednak w tym kontekście niektóre zdarzenia będą wyłączone. Przy użyciu podformularza w raporcie nie można dodawać, edytować ani usuwać rekordów.
Łączenie raportu z podformularzem lub podraportem
Gdy wstawiasz podformularz lub podraport zawierający informacje pokrewne w stosunku do danych w raporcie głównym, kontrolka podraportu musi być połączona z raportem głównym. To połączenie gwarantuje, że rekordy wyświetlane w podformularzu lub podraporcie będą prawidłowo odnoszone do rekordów drukowanych na raporcie głównym.
Podczas tworzenia podformularza lub podraportu przy użyciu kreatora lub za pomocą przeciągania obiektu z okienka nawigacji do raportu program Access automatycznie łączy ten podformularz lub podraport z raportem głównym, jeśli jest spełniony jeden z poniższych warunków.
-
Dla wybieranych tabel lub dla tabel źródłowych wybieranych zapytań zostały zdefiniowane relacje.
-
Raport główny jest oparty na tabeli zawierającej klucz podstawowy, a podformularz lub podraport jest oparty na tabeli, która zawiera pole o takiej samej nazwie, jak klucz podstawowy, i ma taki sam lub zgodny typ danych. Jeśli na przykład klucz podstawowy tabeli źródłowej raportu głównego to pole Autonumerowanie, a jego właściwość RozmiarPola ma wartość Liczba całkowita długa, to odpowiadające mu pole w tabeli źródłowej podformularza lub podraportu musi być polem liczbowym, którego właściwość RozmiarPola ma wartość Liczba całkowita długa. Jeśli źródłem rekordów dla podformularza lub podraportu będzie zapytanie lub kilka zapytań, to tabele źródłowe tych zapytań muszą spełniać te same warunki.
Tworzenie podraportu
Jeśli podraport będzie łączony z raportem głównym, przed wykonaniem poniższej procedury upewnij się, że podlegające mu źródła rekordów są pokrewne.
Tworzenie podraportu przy użyciu Kreatora podraportów
Ta procedura zakłada, że masz już raport, do którego chcesz dodać podraport. Aby uzyskać więcej informacji o tworzeniu raportu, zobacz artykuły Tworzenie prostego raportu i Tworzenie raportu pogrupowanego lub podsumowującego.
-
W okienku nawigacji kliknij prawym przyciskiem myszy raport, do którego chcesz dodać podraport, a następnie kliknij polecenie Widok projektu.
-
Na karcie Projektowanie w grupie Kontrolki otwórz galerię Kontrolki, klikając strzałkę w dół w prawym dolnym rogu:
-
Upewnij się, że w wyświetlonym menu zaznaczono pole Użyj kreatorów kontrolek.
-
Ponownie otwórz galerię kontrolek, a następnie kliknij pozycję Podformularz/podraport.
-
Kliknij raport w miejscu, w którym chcesz umieścić podraport.
-
Jeśli zostanie wyświetlone okno dialogowe z powiadomieniem o zabezpieczeniach, kliknij pozycję Otwórz, aby uruchomić kreatora.
-
Jeśli chcesz utworzyć nowy podformularz lub podraport na podstawie tabeli lub zapytania, na pierwszej stronie Kreatora podraportów kliknij pozycję Użyj istniejących tabel i kwerend. Jeśli jako podraportu chcesz użyć istniejącego raportu lub formularza, kliknij pozycję Użyj istniejącego raportu lub formularza, zaznacz odpowiedni formularz lub raportu na liście, a następnie kliknij przycisk Dalej.
Uwaga: Jeśli baza danych nie zawiera żadnych innych raportów ani formularzy, lista będzie pusta, a opcja Użyj istniejącego raportu lub formularza nie będzie dostępna.
-
Jeśli na poprzedniej stronie kreatora została wybrana opcja Użyj istniejącego raportu lub formularza, pomiń ten krok i przejdź bezpośrednio do kroku 9. W przeciwnym razie na liście Tabele/kwerendy wybierz tabelę lub zapytanie zawierające pola, które chcesz uwzględnić w podraporcie, i kliknij dwukrotnie pola, które chcesz umieścić na liście Dostępne pola, aby dodać je do podraportu.
Jeśli planujesz połączenie podraportu z raportem głównym, pamiętaj o uwzględnieniu pól, przy użyciu których utworzysz to połączenie, nawet jeśli nie chcesz, aby były wyświetlane. Zazwyczaj pole łączące to pole identyfikatora. Na powyższej ilustracji tabela Zamówienia jest źródłem rekordów dla podraportu, a tabela Klienci jest źródłem rekordów dla raportu głównego. Tabela Zamówienia jest powiązana z tabelą Klienci za pomocą pola Identyfikator klienta, dlatego to pole zostało dodane do listy Wybrane pola.
Uwaga: W swoim podraporcie możesz uwzględnić pola z wielu tabel i zapytań. Gdy skończysz dodawać pola z jednej tabeli, wybierz następną tabelę lub zapytanie z listy Tabele/kwerendy, a następnie dodaj odpowiednie pola.
Kliknij przycisk Dalej, aby kontynuować.
-
Na tej stronie kreatora możesz określić, jak połączyć podraport z raportem głównym. Jeśli program Access znajdzie pola, które będą wydawać się odpowiednie do połączenia podraportu z raportem głównym, kreator wyświetli listę możliwych sugestii łączenia.
Możesz wybrać sugestię łączenia, która Ci najbardziej odpowiada, lub, jeśli nie chcesz łączyć podraportu z raportem głównym, możesz wybrać pozycję Brak. Jeśli chcesz połączyć podraport z raportem głównym, ale żadna z sugestii nie jest odpowiednia, kliknij pozycję Zdefiniuję samodzielnie.
Uwaga: Jeśli kreator nie znajdzie pól nadających się do utworzenia połączenia, nie wyświetli listy sugestii łączenia i automatycznie zaznaczy opcję Zdefiniuję samodzielnie.
W przypadku zaznaczenia opcji Zdefiniuję samodzielnie kreator wyświetli dwa zestawy list.
-
W obszarze Pola formularza/raportu wybierz pole lub pola z raportu głównego, za pomocą których chcesz połączyć raport główny z podformularzem lub podraportem. Możesz wybrać maksymalnie trzy pola, a każde wybrane pole musi być zgodne z polem pokrewnym w źródle danych podformularza lub podraportu.
-
W obszarze Pola podformularza/podraportu wybierz odpowiednie pole lub pola z podformularza lub podraportu, które łączą się z wybranymi polami raportu głównego.
-
Aby nie łączyć podformularza lub podraportu z raportem głównym, upewnij się, że wszystkie listy są puste.
Kliknij przycisk Dalej, aby kontynuować.
-
-
Na ostatniej stronie kreatora wpisz nazwę podformularza lub podraportu bądź kliknij pozycję Zakończ, aby zaakceptować nazwę domyślną.
Program Access doda kontrolkę podraportu do raportu i powiąże tę kontrolkę (czyli ustawi właściwość Obiekt źródłowy kontrolki) w następujący sposób:
-
Jeśli na pierwszej stronie kreatora wybrano opcję Użyj istniejącego raportu lub formularza, program Access powiąże kontrolkę podraportu z określonym przez Ciebie formularzem lub raportem.
-
Jeśli na pierwszej stronie kreatora wybrano opcję Użyj istniejących tabel i kwerend, program Access utworzy nowy obiekt raportu w okienku nawigacji, a następnie powiąże z nim kontrolkę podraportu. Nazwa nowego obiektu raportu będzie taka sama, jak nazwa wpisana na ostatniej stronie kreatora.
Dodawanie tabeli, zapytania, formularza lub raportu do raportu jako podraportu
Szybkim sposobem na dodanie podraportu do raportu jest otworzenie raportu głównego w widoku układu lub projektu, a następnie przeciągnięcie do niego obiektu z okienka nawigacji. Jeśli chcesz, aby podraport był połączony z raportem głównym, upewnij się, że podlegające źródła rekordów są pokrewne i że te źródła rekordów zawierają pola, które zostaną użyte w celu połączenia podformularza lub podraportu z raportem głównym.
-
W okienku nawigacji kliknij prawym przyciskiem myszy raport, którego chcesz użyć jako raportu głównego, a następnie w menu skrótów kliknij polecenie Widok układu lub Widok projektu.
-
Przeciągnij tabelę, zapytanie, formularz lub inny raport z okienka nawigacji do sekcji raportu głównego, w której chcesz umieścić podraport.
Program Access wykona jedną z następujących czynności:
-
Jeśli program Access będzie mógł określić, jak połączyć te dwa obiekty, doda do raportu kontrolkę podraportu. Jeśli dodasz formularz lub raport, program Access powiąże kontrolkę podraportu z tym obiektem. Jeśli dodasz tabelę lub zapytanie, program Access najpierw utworzy obiekt raportu, a następnie powiąże kontrolkę podraportu z tym nowym obiektem.
-
Jeśli program Access nie będzie mógł ustalić sposobu połączenia tych dwóch obiektów, zostanie wyświetlony Kreator podraportów. Aby kontynuować, wykonaj czynności opisane w sekcji Tworzenie podraportu przy użyciu Kreatora podraportów, rozpoczynając od kroku 9.
Po wykonaniu kroków kreatora program Access doda podraport do raportu.
Poniższa procedura umożliwia upewnienie się, że podformularz lub podraport został prawidłowo połączony z raportem głównym.
-
Kliknij kontrolkę podraportu, aby ją zaznaczyć.
-
Jeśli arkusz właściwości nie jest jeszcze wyświetlony, naciśnij klawisz F4, aby go wyświetlić.
-
Na karcie Dane arkusza właściwości sprawdź właściwości Nadrzędne pola łączące i Podrzędne pola łączące.
-
W przypadku niepołączonego podformularza lub podraportu obie te właściwości powinny być puste.
-
W przypadku połączonego podformularza lub podraportu właściwości Nadrzędne pola łączące i Podrzędne pola łączące powinny pokazywać pole lub pola, które wiążą ze sobą te dwa obiekty. Jeśli na przykład w raporcie głównym są wyświetlane informacje z tabeli Pracownicy, a w podformularzu lub podraporcie są wyświetlane informacje z tabeli Zamówienia, to właściwość Nadrzędne pola łączące powinna pokazywać pole Identyfikator z tabeli Pracownicy, a właściwość Podrzędne pola łączące powinna pokazywać pole Identyfikator pracownika z tabeli Zamówienia.
-
Może się zdarzyć, że te właściwości trzeba będzie edytować, aby podformularz lub podraport działał prawidłowo. Skorzystaj z poniższej procedury.
-
Na karcie Dane arkusza właściwości kliknij pole właściwości Nadrzędne pola łączące, a następnie kliknij przycisk Konstruuj .
Zostanie wyświetlone okno dialogowe Pola łączące podraportu.
-
Na listach Pola główne i Pola podrzędne wybierz pola, za pomocą których chcesz połączyć raporty. Jeśli nie masz pewności, których pól użyć, kliknij pozycję Sugeruj, aby program Access spróbował określić pola łączące. Po zakończeniu kliknij przycisk OK.
Jeśli pole, którego chcesz użyć do połączenia raportu, nie jest widoczne, musisz edytować źródło rekordów raportu głównego lub podformularza bądź podraportu w celu upewnienia się, że znajduje się w nim pole łączące. Jeśli na przykład raport jest oparty na zapytaniu, należy upewnić się, że pole łączące znajduje się w wynikach zapytania.
-
Zapisz raport główny i przejdź do widoku raportu, a następnie sprawdź, czy raport działa zgodnie z oczekiwaniami.
Dodawanie do raportu tabeli lub zapytania jako arkusza danych
Arkusz danych to prosta wizualna reprezentacja danych podobna do arkusza kalkulacyjnego. Każda kolumna w arkuszu danych reprezentuje pole w tabeli źródłowej lub w zapytaniu źródłowym, a każdy wiersz reprezentuje rekord. Aby wyświetlić arkusz danych w raporcie, można użyć kontrolki Podformularz/podraport. Ta metoda dobrze sprawdza się w sytuacji, kiedy chcesz uzyskać kompaktowy widok danych i nie potrzebujesz funkcji formatowania obiektu formularza lub raportu. Aby dodać arkusz danych do raportu:
-
W okienku nawigacji kliknij prawym przyciskiem myszy raport, którego chcesz użyć jako raportu głównego, a następnie w menu skrótów kliknij polecenie Widok projektu.
-
Na karcie Projektowanie w grupie Kontrolki otwórz galerię Kontrolki, klikając strzałkę w dół w prawym dolnym rogu:
-
Upewnij się, że w wyświetlonym menu nie zaznaczono pola Użyj kreatorów kontrolek.
-
Ponownie otwórz galerię kontrolek, a następnie kliknij pozycję Podformularz/podraport.
-
Kliknij raport w miejscu, w którym chcesz umieścić podraport.
-
Jeśli zostanie uruchomiony Kreator podraportów, kliknij pozycję Anuluj, aby go zamknąć.
-
Jeśli arkusz właściwości nie jest jeszcze wyświetlony, naciśnij klawisz F4, aby go wyświetlić.
-
W raporcie kliknij nową kontrolkę podraportu, aby ją zaznaczyć.
-
Na karcie Dane arkusza właściwości kliknij strzałkę w polu właściwości Obiekt źródłowy, a następnie kliknij tabelę lub zapytanie, które chcesz wyświetlić w kontrolce podraportu. Aby na przykład wyświetlić tabelę Zamówienia, kliknij pozycję Tabela.Zamówienia.
Program Access spróbuje połączyć arkusz danych z raportem głównym na podstawie relacji zdefiniowanych w bazie danych.
-
Na karcie Dane arkusza właściwości sprawdź właściwości Nadrzędne pola łączące i Podrzędne pola łączące.
-
W przypadku niepołączonego arkusza danych upewnij się, że obie te właściwości są puste.
-
W przypadku połączonego arkusza danych upewnij się, że właściwości Nadrzędne pola łączące i Podrzędne pola łączące pokazują pole lub pola, które wiążą raport główny z arkuszem danych. Jeśli na przykład w raporcie głównym są wyświetlane informacje z tabeli Pracownicy, a w arkuszu danych są wyświetlane informacje z tabeli Zamówienia, to właściwość Nadrzędne pola łączące powinna pokazywać pole Identyfikator z tabeli Pracownicy, a właściwość Podrzędne pola łączące powinna pokazywać pole Identyfikator pracownika z tabeli Zamówienia.
-
W niektórych przypadkach trzeba samodzielnie ustawić właściwości pola łączącego. Możesz to zrobić, wykonując poniższą procedurę.
-
Na karcie Dane arkusza właściwości kliknij pole właściwości Nadrzędne pola łączące, a następnie kliknij przycisk Konstruuj .
-
Jeśli zostanie wyświetlone okno dialogowe z powiadomieniem o zabezpieczeniach, kliknij pozycję Otwórz.
Zostanie wyświetlone okno dialogowe Pola łączące podraportu.
-
Na listach Pola główne i Pola podrzędne wybierz pola, za pomocą których chcesz połączyć raport główny z arkuszem danych. Jeśli nie masz pewności, których pól użyć, kliknij pozycję Sugeruj, aby program Access spróbował określić pola łączące. Po zakończeniu kliknij przycisk OK.
Jeśli pole, którego chcesz użyć do utworzenia połączenia, nie jest widoczne, musisz edytować źródło rekordów raportu głównego lub arkusza danych w celu upewnienia się, że znajduje się w nim pole łączące. Jeśli na przykład arkusz danych jest oparty na zapytaniu, należy upewnić się, że pole łączące znajduje się w wynikach zapytania.
-
Zapisz raport główny i przejdź do widoku raportu, a następnie sprawdź, czy raport działa zgodnie z oczekiwaniami.
Wprowadzanie zmian w projekcie podraportu
Po dodaniu podraportu do raportu możesz wprowadzić zmiany w projekcie podraportu lub możesz umieścić w raporcie głównym odwołania do danych podraportu. Poniższe sekcje zawierają porady dotyczące wykonywania tych zadań.
Otwieranie podformularza lub podraportu w nowym oknie w widoku projektu
Aby wprowadzić zmiany w projekcie podformularza lub podraportu podczas pracy w jego raporcie głównym w widoku projektu, możesz otworzyć podformularz lub podraport w osobnym oknie.
-
Kliknij podformularz lub podraport, aby go zaznaczyć.
-
Na karcie Projektowanie w grupie Narzędzia kliknij pozycję Podraport w nowym oknie.
Uwaga: To polecenie nie jest dostępne, jeśli kontrolka podformularza/podraportu jest powiązana z tabelą lub zapytaniem.
Wyświetlanie sumy z podraportu w raporcie głównym
Załóżmy, że używasz podraportu o nazwie Podraport Zamówienia, który zawiera pole tekstowe o nazwie Całkowita opłata za wysyłkę, i że to pole tekstowe oblicza sumę kolumny Opłata za wysyłkę. Aby wyświetlić tę sumę z podraportu w raporcie głównym, musisz dodać pole tekstowe do raportu głównego, a następnie przy użyciu wyrażenia odwołać się do pola tekstowego Całkowita opłata za wysyłkę w podraporcie. Możesz to zrobić, wykonując poniższą procedurę.
-
Kliknij prawym przyciskiem myszy raport główny w okienku nawigacji, a następnie w menu skrótów kliknij polecenie Widok projektu.
-
Na karcie Projektowanie w grupie Kontrolki kliknij pozycję Pole tekstowe.
-
Kliknij raport główny w miejscu, w którym chcesz umieścić nowe pole tekstowe.
-
Jeśli arkusz właściwości nie jest jeszcze wyświetlony, naciśnij klawisz F4, aby go wyświetlić.
-
Na karcie Dane arkusza właściwości wpisz następujące wyrażenie w polu właściwości Źródło kontrolki.
=IIf(Czy.Błąd([Podraport Zamówienia].[Raport]![Całkowita opłata za wysyłkę]),0,[Podraport Zamówienia].[Raport]![Całkowita opłata za wysyłkę])
Uwagi:
-
W tym przykładzie możesz użyć prostszego wyrażenia =[Podraport Zamówienia].[Raport]![Całkowita opłata za wysyłkę], jeśli jednak podraport nie będzie zawierać żadnych danych, kontrolka w raporcie głównym będzie wyświetlać błąd #Error. Użycie funkcji Czy.Błąd w ramach funkcji IIf, jak pokazano w pierwszym wyrażeniu, gwarantuje, że pole tekstowe w raporcie głównym będzie wyświetlać wartość zero (0), jeśli podraport nie zwróci żadnych danych.
-
Aby utworzyć wyrażenie, możesz użyć Konstruktora wyrażeń. W tym celu kliknij przycisk Konstruuj w polu właściwości Źródło kontrolki.
-
-
Na karcie Formatowanie arkusza właściwości ustaw odpowiednią wartość dla właściwości Format (w tym przypadku będzie to Waluta).
-
Zapisz raport i przejdź do widoku raportu, aby sprawdzić, czy obliczenie działa zgodnie z oczekiwaniami.