Tworzenie formularza zawierającego podformularz (formularz jeden-do-wielu)

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Podczas pracy z danymi relacyjnymi w programie Access często zachodzi potrzeba wyświetlenia wielu tabel lub zapytań w tym samym formularzu. Na przykład możesz chcieć wyświetlić dane klientów z jednej tabeli i informacje o zamówieniach klientów z innej tabeli naraz. Ułatwia to podformularz, a program Access udostępnia kilka szybkich sposobów ich tworzenia.

Co chcesz zrobić?

Informacje na temat podformularzy

Podformularz to formularz wstawiony do innego formularza. Formularz podstawowy jest nazywany formularzem głównym, a formularz załączony nazywa się podformularzem. Połączenie formularza i podformularza jest niekiedy nazywane formularzem hierarchicznym, formularzem głównym/szczegółowym lub formularzem nadrzędnym/podrzędnym.

Podformularze są szczególnie przydatne, gdy zachodzi potrzeba przedstawienia danych pochodzących z tabel lub zapytań, które zawierają relacje jeden-do-wielu. W relacji tego typu wartość klucza podstawowego każdego rekordu w tabeli podstawowej jest zgodna z wartością w odpowiednim polu lub polach wielu rekordów w powiązanej tabeli. Można na przykład utworzyć formularz wyświetlający dane pracowników oraz podformularz wyświetlający zamówienia każdego z pracowników. Dane w tabeli Pracownicy to strona „jeden” relacji. Dane w tabeli Zamówienia to strona "wiele" relacji, ponieważ każdy z pracowników może mieć wiele zamówień.

Formularz zawierający podformularz

  1. W formularzu głównym wyświetlane są dane strony "jeden" relacji.

  2. Podformularz zawiera dane ze strony "wiele" tej relacji.

Formularz główny i podformularz w tego rodzaju formularzu są połączone, dzięki czemu w podformularzu wyświetlane są jedynie rekordy związane z bieżącym rekordem formularza głównego. Na przykład gdy w formularzu głównym wyświetlane są informacje dotyczące Anny Misiec, w podformularzu wyświetlane są jedynie jej zamówienia. Gdyby formularz i podformularz nie były połączone, w podformularzu byłyby wyświetlane wszystkie zamówienia, a nie jedynie złożone przez Annę.

W poniższej tabeli zdefiniowano terminy związane z podformularzami. Podczas wykonywania procedur opisanych w tym artykule program Access obsługuje większość szczegółów, ale warto znać zasady, gdy później zajdzie potrzeba wprowadzenia zmian.

Termin Definicja
Kontrolka podformularza Kontrolka, która osadza formularz w innym formularzu. Kontrolkę podformularza można traktować jako „widok” innego obiektu bazy danych (formularza, tabeli lub zapytania). Właściwości udostępniane przez kontrolkę podformularza umożliwiają łączenie danych wyświetlanych w kontrolce z danymi w formularzu głównym.
Właściwość Obiekt źródłowy Właściwość kontrolki podformularza, która określa obiekt wyświetlany w kontrolce.
Arkusz danych Wyświetla dane w prosty sposób w wierszach i kolumnach, podobnie do arkusza kalkulacyjnego. Kontrolka podformularza wyświetla arkusz danych, jeśli obiektem źródłowym jest tabela lub zapytanie, a także jeśli obiektem źródłowym jest formularz, którego Default View właściwość jest ustawiona na Datasheetwartość . W takich przypadkach podformularz jest niekiedy określany jako arkusz danych lub podarkusz danych, a nie jako podformularz.
Właściwość Podrzędne pola łączące Właściwość kontrolki podformularza określająca pole lub pola podformularza łączące go z formularzem głównym.
Właściwość Nadrzędne pola łączące Właściwość kontrolki podformularza określająca pole lub pola formularza głównego łączące go z podformularzem.

Uwaga

  • Aby uzyskać najlepsze wyniki, przed przystąpieniem do wykonywania procedur przedstawionych w tym artykule należy ustawić relacje między tabelami. Dzięki temu program Access automatycznie utworzy łącza między podformularzami i formularzami głównymi. Aby wyświetlić, dodać lub zmodyfikować relacje między tabelami w bazie danych, na karcie Narzędzia bazy danych w grupie Relacje kliknij przycisk Relacje.
  • Jeśli obiektem źródłowym kontrolki podformularza jest formularz, to kontrolka zawiera pola umieszczone w formularzu. Możesz ją wyświetlać jako pojedynczy formularz, formularz ciągły lub arkusz danych. Jedną z korzyści tworzenia podformularza na podstawie obiektu formularza jest możliwość dodawania do podformularza pól obliczeniowych, takich jak [Quantity] * [Unit price]:
  • Można wstawić do formularza widok arkusza danych lub widok przestawny, tworząc kontrolkę podformularza, której obiektem źródłowym jest tabela lub zapytanie. Aby uzyskać więcej informacji, zobacz sekcję Dodawanie danych relacyjnych do formularza bez tworzenia podformularza.

Początek strony

Tworzenie lub dodawanie podformularza

Poniższa tabela umożliwia wybór najodpowiedniejszej procedury w określonej sytuacji.

Scenariusz Zalecana procedura
Program Access ma utworzyć formularz główny i podformularz, a także utworzyć łącze między nimi. Tworzenie formularza zawierającego podformularz przy użyciu Kreatora formularzy
Istniejący formularz ma być używany jako formularz główny, a program Access ma utworzyć nowy podformularz i dodać go do formularza głównego. Dodawanie jednego lub wielu podformularzy do istniejącego formularza przy użyciu Kreatora podformularzy
Istniejący formularz ma być używany jako formularz główny, a jeden lub wiele istniejących formularzy zostanie dodane do tego formularza jako podformularze. Tworzenie podformularza przez przeciągnięcie jednego formularza na inny

Tworzenie formularza zawierającego podformularz przy użyciu Kreatora formularzy

Poniższa procedura umożliwia utworzenie nowego formularza połączonego z podformularzem przy użyciu Kreatora formularzy. Jest to również najszybszy sposób rozpoczęcia pracy, jeśli formularze, które mają być używane jako formularz główny i podformularz, nie zostały jeszcze utworzone.

  1. Na karcie Tworzenie w grupie Formularze kliknij pozycję Kreator formularzy.

  2. Na pierwszej stronie kreatora z listy rozwijanej Tabele/zapytania wybierz tabelę lub zapytanie. Na przykład aby utworzyć formularz Pracownicy wyświetlający zamówienia każdego z pracowników w podformularzu, wybierz pozycję Tabela: Pracownicy (strona "jeden" relacji jeden-do-wielu).

    Uwaga

    Nie ma znaczenia, które tabele lub zapytania zostaną wybrane jako pierwsze.

  3. Kliknij dwukrotnie te pola tabeli lub zapytania, które chcesz dołączyć.

  4. Z listy rozwijanej Tabele/zapytania na tej samej stronie kreatora wybierz kolejną tabelę lub kolejne zapytanie. W tym przykładzie wybierz tabelę Zamówienia (strona "wiele" relacji jeden-do-wielu).

  5. Kliknij dwukrotnie te pola tabeli lub zapytania, które chcesz dołączyć.

  6. Jeśli relacje zostały poprawnie ustawione przed uruchomieniem kreatora, kliknięcie przycisku Dalej spowoduje, że kreator wyświetli pytanie W jaki sposób dane mają być wyświetlane? — tj. według której tabeli lub którego zapytania. Wybierz tabelę po stronie „jeden” relacji jeden-do-wielu. Na przykład aby utworzyć formularz Pracownicy, wybierz pozycję wg tabeli Pracownicy. Kreator wyświetli mały diagram formularza. Formularz powinien przypominać następującą ilustrację:

    Zrzut ekranu przedstawiający stronę podformularza w Kreatorze formularzy

    Pole w dolnej części diagramu formularza reprezentuje podformularz.

    Uwaga

    Jeśli kreator nie wyświetli pytania W jaki sposób dane mają być wyświetlane?, oznacza to, że program Access nie wykrył relacji jeden-do-wielu między wybranymi tabelami lub zapytaniami. Kreator pozwoli na kontynuowanie, ale program Access nie doda podformularza do formularza. Można kliknąć przycisk Anuluj i sprawdzić relacje tabel przed kontynuowaniem.

  7. U dołu strony kreatora zaznacz opcję Formularz z podformularzem(ami), a następnie kliknij przycisk Dalej.

  8. Na stronie Jaki ma być układ podformularza? kliknij odpowiednią opcję układu, a następnie kliknij przycisk Dalej. W obu stylach układów dane podformularza są rozmieszczane w wierszach i kolumnach, ale układ tabelaryczny oferuje więcej opcji. Do podformularza tabelarycznego można dodawać kolory, grafiki i inne elementy formatowania, natomiast arkusz danych jest bardziej zwarty, jak widok arkusza danych tabeli.

  9. Na następnej stronie kreatora wybierz styl formatowania dla formularza, a następnie kliknij pozycję Dalej. Jeśli na poprzedniej stronie wybrano pozycję Tabelaryczny, wybrany styl formatowania zostanie również zastosowany do podformularza.

  10. Na ostatniej stronie kreatora wpisz odpowiednie tytuły formularzy. Program Access nadaje nazwy formularzom na podstawie wpisanych tytułów i nadaje etykietę podformularzowi na podstawie tytułu wpisanego dla podformularza.

  11. Określ, czy chcesz otworzyć formularz w widoku formularza, aby umożliwić wyświetlanie lub wprowadzanie informacji, czy w widoku projektu, aby można było modyfikować jego projekt, a następnie kliknij przycisk Zakończ. Program Access utworzy dwa formularze — jeden dla formularza głównego, który zawiera kontrolkę podformularza, a drugi dla samego podformularza.

Początek strony

Dodawanie jednego lub wielu podformularzy do istniejącego formularza przy użyciu Kreatora podformularzy

Tej procedury należy użyć, aby dodać jeden lub wiele podformularzy do istniejącego formularza. W przypadku każdego formularza można wybrać, aby program Access utworzył nowy formularz lub użył istniejącego formularza jako podformularza.

  1. Kliknij prawym przyciskiem myszy istniejący formularz w okienku nawigacji, a następnie kliknij pozycję Widok projektu.
  2. Na karcie Projekt formularza w grupie Kontrolki kliknij strzałkę w dół, aby wyświetlić galerię Kontrolki , i upewnij się, że pozycja Użyj kreatorów kontrolek jest zaznaczona .
  3. Na karcie Projekt formularza w grupie Formanty kliknij przycisk Podformularz/podraport .
  4. Kliknij formularz, w którym chcesz umieścić podformularz.
  5. Postępuj zgodnie z instrukcjami kreatora. Po kliknięciu przycisku Zakończ program Access wstawi kontrolkę podformularza w formularzu. Jeśli wybrano, aby program Access utworzył nowy formularz, który zostanie użyty jako podformularz zamiast użycia istniejącego formularza, program Access utworzy nowy obiekt formularza i doda go do okienka nawigacji.

Tworzenie podformularza przez przeciągnięcie jednego formularza na inny

Należy skorzystać z tej procedury, jeśli chcesz użyć istniejącego formularza jako formularza głównego i dodać do niego jeden lub wiele istniejących formularzy jako podformularze.

  1. W okienku nawigacji kliknij prawym przyciskiem myszy formularz, który ma być używany jako formularz główny, a następnie kliknij polecenie Widok układu.
  2. Z okienka nawigacji przeciągnij na formularz główny ten formularz, który ma zostać użyty jako podformularz. Program Access wstawi kontrolkę podformularza w formularzu głównym i utworzy łącze między kontrolką i formularzem przeciągniętym z okienka nawigacji. Na podstawie relacji zdefiniowanych w bazie danych program Access spróbuje również połączyć podformularz z formularzem głównym.
  3. Powtarzaj ten krok, aby dodać wszystkie dodatkowe podformularze do formularza głównego.
  4. Aby upewnić się, że formularze zostały pomyślnie połączone, na karcie Narzędzia główne w grupie Widoki kliknij przycisk Widok, kliknij pozycję Widok formularza, a następnie skorzystaj z selektora rekordu formularza głównego, przeglądając kilka rekordów. Jeśli filtr podformularza działa prawidłowo dla każdego pracownika, procedurę można uznać za zakończoną.

Jeśli powyższy test nie powiedzie się, oznacza to, że program Access nie mógł określić sposobu połączenia podformularza z formularzem głównym, a Link Child Fields właściwości i Link Master Fields kontrolki podformularza są puste. Należy skonfigurować te właściwości ręcznie, wykonując następujące czynności:

  1. Kliknij prawym przyciskiem myszy formularz główny w okienku nawigacji, a następnie kliknij pozycję Widok projektu .

  2. Kliknij kontrolkę podformularza, aby ją zaznaczyć.

  3. Jeśli okienko zadań Arkusz właściwości nie jest wyświetlane, naciśnij klawisz F4 , aby je wyświetlić.

  4. W okienku Arkusz właściwości kliknij kartę Dane.

  5. Kliknij przycisk Konstruuj obok Link Child Fields pola właściwości. Zostanie wyświetlone okno dialogowe Pola łączące podformularza .

  6. Z list rozwijanych Pola główne i Pola podrzędne wybierz pola, którymi chcesz połączyć formularze, a następnie kliknij przycisk OK. 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.

    Porada

    Jeśli pole, które ma zostać użyte do połączenia formularzy, nie jest wyświetlane, może być konieczne edytowanie źródła rekordów formularza głównego lub formularza podrzędnego w celu upewnienia się, że pole łączące zostało uwzględnione. Jeśli na przykład formularz jest oparty na zapytaniu, należy upewnić się, że pole łączące znajduje się w wynikach zapytania.

  7. Zapisz formularz główny i przełącz się do widoku formularza, a następnie sprawdź, czy formularz działa zgodnie z oczekiwaniami.

Otwieranie podformularza w nowym oknie w widoku projektu

Jeśli chcesz wprowadzić zmiany projektowe w podformularzu podczas pracy w jego formularzu głównym w widoku projektu, możesz otworzyć podformularz w osobnym oknie:

  1. Kliknij podformularz, aby go zaznaczyć.
  2. Na karcie Projekt formularza w grupie Narzędzia kliknij przycisk Podformularz w nowym oknie.

Początek strony

Zmienianie domyślnego widoku podformularza

Po dodaniu podformularza do formularza kontrolka podformularza/podraportu wyświetla podformularz zgodnie z Default View właściwością podformularza. Można ustawić następujące wartości dla tej właściwości:

  • Formularz pojedynczy
  • Formularze ciągłe
  • Arkusz danych
  • Formularz dzielony

W przypadku nowo utworzonego podformularza ta właściwość może mieć wartość Formularze ciągłe lub Pojedynczy formularz. Jednak jeśli właściwość podformularza zostanie ustawiona Default View na Datasheet, podformularz będzie wyświetlany jako arkusz danych w formularzu głównym.

Aby ustawić Default View właściwość podformularza:

  1. Zamknij otwarte obiekty.

  2. W okienku nawigacji kliknij prawym przyciskiem myszy podformularz, a następnie kliknij pozycję Widok projektu.

  3. Jeśli arkusz właściwości nie jest jeszcze wyświetlony, naciśnij klawisz F4 , aby go wyświetlić.

  4. Upewnij się, że z listy rozwijanej u góry okienka Arkusz właściwości została wybrana pozycja Formularz.

  5. Na karcie Format w okienku Arkusz właściwości ustaw odpowiedni widok dla właściwości Widok domyślny.

    Uwaga

    Jeśli widoku, którego chcesz użyć, nie ma na liście, upewnij się, że Allow...View właściwość tego widoku jest ustawiona na Tak. Na przykład jeśli jako widok domyślny formularza ma być ustawiony widok Arkusz danych, należy upewnić się, że właściwość Zezwalaj na widok arkusza danych ma wartość Tak.

  6. Zapisz i zamknij podformularz, a następnie otwórz formularz główny, aby sprawdzić rezultat.

Początek strony

Nie zawsze trzeba tworzyć osobny obiekt formularza, aby wyświetlić powiązane dane. Na przykład podczas pracy z formularzem w widoku układu lub widoku projektu można przeciągnąć tabelę lub zapytanie z okienka nawigacyjnego do formularza, a program Access utworzy kontrolkę Podformularz/podraport wyświetlający dane z tego obiektu. Właściwość Default View obiektu określa sposób wyświetlania danych. Zazwyczaj ta właściwość ma wartość Arkusz danych, ale można również ustawić Default View właściwość tabeli lub zapytania na Formularz pojedynczy, Formularz dzielony lub Formularze ciągłe, co pozwala na większą elastyczność wyświetlania powiązanych danych w formularzach.

Uwaga

Zmiana Default View właściwości tabeli lub zapytania określa sposób jej wyświetlania po każdym otwarciu, niezależnie od tego, czy zostanie otwarta z okienka nawigacji czy wyświetlona w kontrolce podformularza/podraportu. Ponieważ zmiana ustawień widoku tabeli może czasami powodować dezorientację w przypadku otwierania tabeli przy użyciu okienka nawigacji, w przypadku tej procedury zaleca się użycie zapytania zamiast tabeli.

Początek strony