Przewodnik po relacjach pomiędzy tabelami

Celem tworzenia dobrych projektów baz danych jest między innymi wyeliminowanie nadmiarowości danych (czyli danych zduplikowanych). Aby osiągnąć ten cel, najpierw dzieli się dane na wiele tabel tematycznych, tak aby każdy fakt był reprezentowany tylko raz. Następnie w programie Microsoft Office Access 2007 określa się sposób ponownego zestawiania tych podzielonych informacji — w tym celu w tabelach powiązanych umieszcza się pola wspólne. Jednak aby poprawnie wykonać tę czynność, należy najpierw zrozumieć relacje występujące pomiędzy tabelami, a następnie określić te relacje w bazie danych programu Office Access 2007.

W tym artykule

Wprowadzenie

Typy relacji między tabelami

Dlaczego warto tworzyć relacje pomiędzy tabelami?

Opis więzów integralności

Wyświetlanie relacji pomiędzy tabelami

Tworzenie relacji pomiędzy tabelami

Usuwanie relacji pomiędzy tabelami

Zmienianie relacji pomiędzy tabelami

Wymuszanie więzów integralności

Wprowadzenie

Po utworzeniu tabeli odpowiadającej każdemu tematowi w bazie danych należy w programie Office Access 2007 określić sposób, który umożliwi ponowne zestawienie tych informacji, jeśli okaże się to potrzebne. W tym celu umieszcza się pola wspólne w powiązanych ze sobą tabelach oraz definiuje relacje pomiędzy tabelami. Następnie można tworzyć kwerendy, formularze i raporty, dzięki którym będą wyświetlane informacje z kilku tabel jednocześnie. Przykładowy formularz przedstawiony poniżej zawiera informacje pochodzące z kilku tabel:

Formularz Zamówienia, w którym są jednocześnie wyświetlane powiązane informacje pochodzące z pięciu tabel

1. Informacje w tym formularzu pochodzą z tabeli Klienci...

2. ...tabeli Zamówienia...

3. ...tabeli Produkty...

4. ...oraz tabeli Szczegóły zamówień.

Nazwa klienta w polu Faktura dla jest pobierana z tabeli Klienci, wartości identyfikatora zamówienia i daty zamówienia pochodzą z tabeli Zamówienia, nazwa produktu pochodzi z tabeli Produkty, a wartości ceny jednostkowej i ilości — z tabeli Szczegóły zamówień. Te tabele są powiązane ze sobą wzajemnie w różny sposób, co umożliwia przekazywanie informacji z poszczególnych tabel do formularza.

W powyższym przykładzie konieczna jest koordynacja pól w tabelach, która zagwarantuje wyświetlenie informacji dotyczących tego samego zamówienia. Taką koordynację uzyskuje się dzięki relacjom pomiędzy tabelami. Relacja pomiędzy tabelami działa przez dopasowywanie danych w polach kluczy — często są to pola o tej samej nazwie w obu tabelach. W większości przypadków te pasujące pola to klucz podstawowy z jednej tabeli, dostarczający unikatowego identyfikatora każdego rekordu, oraz klucz obcy w drugiej tabeli. Pracowników można na przykład skojarzyć z zamówieniami, za które odpowiadają, tworząc relację wykorzystującą pole Identyfikator pracownika z tabel Pracownicy i Zamówienia.

Pole Identyfikator pracownika w tabeli Pracownicy jest używane jako klucz podstawowy, a w tabeli Zamówienia jako klucz obcy.

1. Pole Identyfikator pracownika występuje w obu tabelach — jako klucz podstawowy...

2. ...oraz jako klucz obcy.

Początek strony

Typy relacji pomiędzy tabelami

Występują trzy typy relacji pomiędzy tabelami.

  • Relacja jeden-do-wielu

    Rozważmy przykład bazy danych do śledzenia zamówień, która zawiera tabelę Klienci i tabelę Zamówienia. Klient może złożyć dowolną liczbę zamówień. W związku z tym każdemu klientowi reprezentowanemu w tabeli Klienci może odpowiadać wiele zamówień reprezentowanych w tabeli Zamówienia. Dlatego relacja pomiędzy tabelą Klienci a tabelą Zamówienia to relacja jeden-do-wielu.

    Aby w projekcie bazy danych utworzyć relację jeden-do-wielu, należy klucz podstawowy znajdujący się po stronie „jeden” relacji dodać jako pole lub pola do tabeli po stronie „wiele” tej relacji. W tym przykładzie należy dodać nowe pole — jest to pole identyfikatora z tabeli Klienci — do tabeli Zamówienia i nadać mu nazwę Identyfikator klienta. Dzięki temu program Access będzie mógł za pomocą numeru identyfikacyjnego klienta wyszukać właściwego klienta dla każdego zamówienia.

  • Relacja wiele-do-wielu

    Rozważmy przykład relacji pomiędzy tabelą Produkty a tabelą Zamówienia. Jedno zamówienie może obejmować wiele produktów. Z drugiej strony jeden produkt może się znaleźć w wielu zamówieniach. Dlatego każdemu rekordowi z tabeli Zamówienia może odpowiadać wiele rekordów z tabeli Produkty. Ponadto każdemu rekordowi z tabeli Produkty może odpowiadać wiele rekordów z tabeli Zamówienia. Relacja tego typu jest nazywana relacją wiele-do-wielu, ponieważ każdemu produktowi może odpowiadać wiele zamówień, a każdemu zamówieniu — wiele produktów. Należy zauważyć, że aby wykryć istniejące relacje wiele-do-wielu pomiędzy tabelami, trzeba się przyjrzeć obu stronom relacji.

    Aby utworzyć relację wiele-do-wielu, należy utworzyć trzecią tabelę, często zwaną tabelą skrzyżowań, która rozbija relację wiele-do-wielu na dwie relacje jeden-do-wielu. Do tej trzeciej tabeli wstawia się klucze podstawowe z obu pierwotnych tabel. Skutkiem tego trzecia tabela rejestruje każde wystąpienie relacji. Tabele Zamówienia i Produkty są na przykład powiązane relacją wiele-do-wielu zdefiniowaną przez utworzenie dwóch relacji jeden-do-wielu z tabelą Szczegóły zamówień. Każde zamówienie może dotyczyć wielu produktów, a każdy produkt może występować w wielu zamówieniach.

  • Relacja jeden-do-jednego

    W relacji jeden-do-jednego z każdym rekordem w pierwszej tabeli może być związany tylko jeden pasujący rekord w drugiej tabeli, a z każdym rekordem w drugiej tabeli może być związany tylko jeden pasujący rekord w pierwszej tabeli. Ten typ relacji jest nietypowy, ponieważ najczęściej informacje powiązane w ten sposób są przechowywane w jednej tabeli. Za pomocą relacji jeden-do-jednego można podzielić tabelę z wieloma polami, odizolować fragment tabeli ze względów bezpieczeństwa lub przechowywać informacje odnoszące się tylko do podzbioru tabeli głównej. Określenie takiej relacji wymaga, aby obie tabele używały wspólnego pola.

Początek strony

Dlaczego warto tworzyć relacje pomiędzy tabelami?

Relacje pomiędzy tabelami można tworzyć bezpośrednio za pomocą okna Relacje lub przez przeciągnięcie pola z okienka Lista pól. Przy użyciu relacji pomiędzy tabelami programOffice Access 2007 określa sposób sprzęgania tabel, gdy trzeba ich użyć w obiekcie bazy danych. Istnieje kilka powodów, dla których warto tworzyć relacje pomiędzy tabelami przed tworzeniem innych obiektów bazy danych, takich jak formularze, kwerendy, makra i raporty.

  • Relacje pomiędzy tabelami pomagają w projektowaniu kwerend

    Aby pracować z rekordami z więcej niż jednej tabeli, często należy utworzyć kwerendę sprzęgającą te tabele. Kwerenda działa przez dopasowywanie wartości pola klucza podstawowego pierwszej tabeli do pola klucza obcego drugiej tabeli. Aby na przykład zwrócić wiersze zawierające zamówienia każdego klienta, należy utworzyć kwerendę sprzęgającą tabelę Klienci z tabelą Zamówienia przy użyciu pola Identyfikator klienta. W oknie Relacje można ręcznie określić pola do sprzężenia. Jeśli jednak pomiędzy tabelami jest już zdefiniowana relacja, program Office Access 2007 podaje sprzężenie domyślne na podstawie istniejącej relacji pomiędzy tabelami. Ponadto jeśli używany jest jeden z kreatorów kwerend, program Access przy użyciu informacji zebranych z już zdefiniowanych relacji pomiędzy tabelami przedstawia rozszerzone opcje do wyboru i wstępnie uzupełnia ustawienia właściwości odpowiednimi wartościami domyślnymi.

  • Relacje pomiędzy tabelami pomagają w projektowaniu formularzy i raportów

    Podczas projektowania formularza lub raportu program Office Access 2007 przy użyciu informacji zebranych z już zdefiniowanych relacji pomiędzy tabelami przedstawia rozszerzone opcje do wyboru i wstępnie uzupełnia ustawienia właściwości odpowiednimi wartościami domyślnymi.

  • Relacje pomiędzy tabelami to podstawa, dzięki której można wymuszać więzy integralności zapobiegające powstawaniu rekordów odłączonych w bazie danych. Rekord odłączony to rekord odwołujący się do rekordu, który nie istnieje — na przykład rekord zamówienia, który odwołuje się do nieistniejącego rekordu klienta.

    Podczas projektowania bazy danych posiadane informacje dzieli się na tabele, z których każda ma klucz podstawowy. Następnie w tabelach powiązanych dodaje się klucze obce, które odwołują się do kluczy podstawowych. Te pary klucz obcy-klucz podstawowy stanowią podstawę relacji pomiędzy tabelami i kwerend wielotabelowych. Dlatego ważne jest synchronizowanie tych odwołań klucz obcy-klucz podstawowy. Więzy integralności pomagają w synchronizowaniu odwołań i zależą od relacji pomiędzy tabelami.

Początek strony

Opis więzów integralności

Podczas projektowania bazy danych informacje dzieli się na wiele tabel tematycznych, aby zminimalizować nadmiarowość danych. Następnie w programie Office Access 2007 określa się sposób ponownego zestawiania danych, umieszczając pola wspólne w powiązanych tabelach. Aby na przykład utworzyć relację jeden-do-wielu, należy klucz podstawowy z tabeli po stronie „jeden” dodać jako pole w tabeli po stronie „wiele”. Aby ponownie zestawić dane, program Access sprawdza wartość w tabeli po stronie „wiele” i wyszukuje odpowiadającą jej wartość w tabeli po stronie „jeden”. Dzięki temu wartości w tabeli po stronie „wiele” odwołują się do odpowiednich wartości w tabeli po stronie „jeden”.

Przypuśćmy, że istnieje relacja jeden-do-wielu między tabelami Spedytorzy i Zamówienia oraz trzeba usunąć pewnego spedytora. Jeśli usuwanemu spedytorowi odpowiadają zamówienia w tabeli Zamówienia, to po usunięciu rekordu spedytora staną się one rekordami odłączonymi. Zamówienia te będą wciąż zawierać identyfikator spedytora, ale identyfikator ten nie będzie już prawidłowy, ponieważ przestanie istnieć rekord, do którego on się odwołuje.

Więzy integralności mają na celu zapobieganie powstawaniu rekordów odłączonych i synchronizowanie odwołań, tak aby ta teoretyczna sytuacja nigdy nie wystąpiła.

Więzy integralności wymusza się przez włączenie ich dla relacji pomiędzy tabelami (aby uzyskać instrukcje krok po kroku, zobacz Włączanie więzów integralności). Jeśli więzy integralności są wymuszone, program Access odrzuca każdą operację, która naruszyłaby te więzy w danej relacji pomiędzy tabelami. Oznacza to, że program Access odrzuci zarówno aktualizacje zmieniające obiekt docelowy odwołania, jak i operacje usuwające obiekt docelowy odwołania. Możliwe jednak, że wystąpi całkowicie uzasadniona potrzeba zmiany klucza podstawowego spedytora, któremu odpowiadają zamówienia w tabeli Zamówienia. W takim przypadku tak naprawdę potrzebna jest automatyczna aktualizacja wszystkich wierszy, na które wpływa ta zmiana, w ramach jednej operacji. W ten sposób program Access gwarantuje wykonanie pełnej aktualizacji, dzięki czemu baza danych nie będzie niespójna w wyniku zaktualizowania tylko niektórych wierszy. W tym celu program Access udostępnia opcję Kaskadowo aktualizuj pola pokrewne. Gdy użytkownik wymusi więzy integralności i wybierze opcję Kaskadowo aktualizuj pola pokrewne, a następnie zaktualizuje klucz podstawowy, program Access automatycznie zaktualizuje wszystkie pola, które odwołują się do klucza podstawowego.

Ponadto może wystąpić uzasadniona potrzeba usunięcia wiersza i wszystkich wierszy pokrewnych — na przykład rekordu Spedytor i wszystkich zamówień powiązanych z danym spedytorem. W programie Access służy do tego opcja Kaskadowo usuń rekordy pokrewne. Gdy użytkownik wymusi więzy integralności i wybierze opcję Kaskadowo usuń rekordy pokrewne, a następnie usunie rekord po stronie relacji, po której znajduje się klucz podstawowy, program Access automatycznie usunie wszystkie rekordy odwołujące się do klucza podstawowego.

Początek strony

Wyświetlanie relacji pomiędzy tabelami

Aby wyświetlić relacje pomiędzy tabelami, kliknij przycisk Relacje na karcie Narzędzia bazy danych. Zostanie otwarte okno Relacje, w którym będą wyświetlone istniejące relacje. Jeśli nie ma jeszcze zdefiniowanych relacji pomiędzy tabelami i okno Relacje jest otwierane pierwszy raz, pojawi się monit o dodanie do okna tabeli lub kwerendy.

Otwieranie okna Relacje

  1. Kliknij przycisk pakietu Microsoft Office Obraz przycisku pakietu Office , a następnie kliknij pozycję Otwórz.

  2. W oknie dialogowym Otwieranie wybierz i otwórz bazę danych.

  3. Na karcie Narzędzia bazy danych w grupie Pokazywanie/ukrywanie kliknij pozycję Relacje.

  4. Jeśli baza danych zawiera relacje, zostanie wyświetlone okno Relacje. Jeśli baza danych nie zawiera relacji i okno Relacje jest otwierane pierwszy raz, zostanie wyświetlone okno dialogowe Pokazywanie tabeli. Kliknij przycisk Zamknij, aby zamknąć okno dialogowe.

  5. Na karcie Projektowanie w grupie Relacje kliknij przycisk Wszystkie relacje.

    Zostaną wyświetlone wszystkie relacje zdefiniowane w bazie danych. Należy pamiętać, że tabele ukryte (czyli tabele, dla których zaznaczono pole wyboru Ukryta w oknie dialogowym Właściwości) oraz ich relacje nie zostaną wyświetlone, chyba że w oknie dialogowym Opcje nawigacji jest wybrana opcja Pokaż ukryte obiekty.

    Aby uzyskać więcej informacji na temat opcji Pokaż ukryte obiekty, zobacz artykuł Przewodnik po okienku nawigacji.

okno Relacje

1. Klucz podstawowy

2. Linia reprezentująca relację

3. Klucz obcy

Relację pomiędzy tabelami reprezentuje linia relacji narysowana między tabelami w oknie Relacje. Jeśli w relacji nie są wymuszane więzy integralności, to ma ona postać cienkiej linii między polami wspólnymi obsługującymi relację. Zaznaczenie relacji przez kliknięcie linii powoduje pogrubienie tej linii. Jeśli w relacji są wymuszane więzy integralności, linia jest grubsza na obu końcach. Ponadto nad grubszym fragmentem linii po jednej stronie relacji jest wyświetlana liczba 1, a nad grubszym fragmentem po drugiej stronie jest wyświetlany symbol nieskończoności ().

Gdy okno Relacje jest aktywne, dostępne są następujące polecenia na Wstążce (interfejs użytkownika Microsoft Office Fluent):

Na karcie Projektowanie w grupie Narzędzia:

  • Edytuj relacje    Otwiera okno dialogowe Edytowanie relacji. Po zaznaczeniu linii relacji można kliknąć przycisk Edytuj relacje, aby zmienić relację pomiędzy tabelami. Można także kliknąć dwukrotnie linię relacji.

  • Wyczyść układ    Usuwa wszystkie tabele i relacje z widoku w oknie Relacje. Należy pamiętać, że to polecenie tylko ukrywa tabele i relacje — nie usuwa ich w rzeczywistości.

  • Raport relacji    Tworzy raport, w którym wyświetlane są tabele i relacje zawarte w bazie danych. Raport pokazuje tylko tabele i relacje, które nie są ukryte w oknie Relacje.

Na karcie Projektowanie w grupie Relacje:

  • Pokaż tabelę    Otwiera okno dialogowe Pokazywanie tabeli, umożliwiając wybranie tabel i kwerend do wyświetlenia w oknie Relacje.

  • Ukryj tabelę    Ukrywa wybraną tabelę w oknie Relacje.

  • Relacje bezpośrednie    Wyświetla w oknie Relacje wszystkie relacje i tabele powiązane odpowiadające wybranej tabeli (jeśli nie są jeszcze wyświetlone).

  • Wszystkie relacje    Wyświetla w oknie Relacje wszystkie relacje i tabele pokrewne znajdujące się w bazie danych. Należy pamiętać, że tabele ukryte (czyli tabele, dla których zaznaczono pole wyboru Ukryta w oknie dialogowym Właściwości) oraz ich relacje nie zostaną wyświetlone, chyba że w oknie dialogowym Opcje nawigacji jest wybrana opcja Pokaż ukryte tabele.

    Aby uzyskać więcej informacji na temat opcji Pokaż ukryte obiekty, zobacz Przewodnik po okienku nawigacji.

  • Zamknij    Zamyka okno Relacje. Jeśli w układzie okna Relacje zostały wprowadzone zmiany, zostanie wyświetlony monit o ich zapisanie.

Początek strony

Tworzenie relacji pomiędzy tabelami

Relację pomiędzy tabelami można utworzyć przy użyciu okna Relacje lub przez przeciągnięcie pola do arkusza danych z okienka Lista pól. Podczas tworzenia relacji pomiędzy tabelami pola wspólne nie muszą mieć tych samych nazw (choć często mają). Ważniejsze jest to, że pola wspólne muszą mieć ten sam typ danych. Jednak jeśli polem klucza podstawowego jest pole typu Autonumerowanie, polem klucza obcego może być również pole typu Liczba, o ile właściwość RozmiarPola obu pól jest taka sama. Na przykład pole typu Autonumerowanie można powiązać z polem typu Liczba, jeśli właściwość RozmiarPola obu tych pól ma wartość Liczba całkowita długa. Gdy oba pola wspólne są polami typu Liczba, muszą mieć takie samo ustawienie właściwości RozmiarPola.

Tworzenie relacji pomiędzy tabelami za pomocą okna Relacje

  1. Kliknij przycisk pakietu Microsoft Office Obraz przycisku pakietu Office , a następnie kliknij pozycję Otwórz.

  2. W oknie dialogowym Otwieranie wybierz i otwórz bazę danych.

  3. Na karcie Narzędzia bazy danych w grupie Pokazywanie/ukrywanie kliknij pozycję Relacje.

  4. Jeśli nie zostały jeszcze zdefiniowane relacje, zostanie automatycznie wyświetlone okno dialogowe Pokazywanie tabeli. Jeśli nie zostanie ono wyświetlone, na karcie Projektowanie w grupie Relacje kliknij przycisk Pokaż tabelę.

    W oknie dialogowym Pokazywanie tabeli są wyświetlane wszystkie tabele i kwerendy zawarte w bazie danych. Aby zobaczyć tylko tabele, kliknij kartę Tabele. Aby zobaczyć tylko kwerendy, kliknij kartę Kwerendy. Aby zobaczyć tabele i kwerendy, kliknij kartę Obie.

  5. Zaznacz jedną lub kilka tabel albo kwerend, a następnie kliknij przycisk Dodaj. Gdy zakończysz dodawanie tabel i kwerend do okna Relacje, kliknij przycisk Zamknij.

  6. Przeciągnij pole (zwykle klucz podstawowy) z jednej tabeli do pola wspólnego (klucza obcego) w drugiej tabeli. Aby przeciągnąć kilka pól, przed przeciągnięciem kliknij kolejne pola przy naciśniętym klawiszu CTRL.

    Zostanie wyświetlone okno dialogowe Edytowanie relacji.

  7. Sprawdź, czy pokazane nazwy pól oznaczają pola wspólne relacji. Jeśli nazwa pola jest niepoprawna, kliknij ją i wybierz z listy nowe pole.

    Aby w relacji wymusić więzy integralności, zaznacz pole wyboru Wymuszaj więzy integralności. Aby uzyskać więcej informacji na temat więzów integralności, zobacz sekcje Opis więzów integralności oraz Wymuszanie więzów integralności.

  8. Kliknij przycisk Utwórz.

    Między dwiema tabelami zostanie narysowana linia relacji. Jeśli zostało zaznaczone pole wyboru Wymuszaj więzy integralności, linia będzie grubsza na obu końcach. Ponadto, jeśli zostało zaznaczone pole wyboru Wymuszaj więzy integralności, nad grubszym odcinkiem linii po jednej stronie relacji zostanie wyświetlona liczba 1, a nad grubszym odcinkiem linii po drugiej stronie zostanie wyświetlony symbol nieskończoności ().

Przeciągnij pole z tabeli do odpowiadającego mu pola w innej tabeli

Uwagi : 

  • Tworzenie relacji jeden-do-jednego    Oba pola wspólne (zwykle pola klucza podstawowego i klucza obcego) muszą mieć unikatowy indeks. Oznacza to, że właściwość Indeksowane tych pól powinna być ustawiona na Tak (Bez duplikatów). Jeśli oba pola mają unikatowy indeks, program Access tworzy relację jeden-do-jednego.

  • Tworzenie relacji jeden-do-wielu    Pole po stronie „jeden” relacji (zwykle pole klucza podstawowego) musi mieć unikatowy indeks. Oznacza to, że właściwość Indeksowane tego pola powinna być ustawiona na Tak (Bez duplikatów). Pole po stronie „wiele” nie powinno mieć unikatowego indeksu. Może mieć indeks, ale musi zezwalać na duplikaty. Oznacza to, że właściwość Indeksowane tego pola powinna być ustawiona na Nie lub Tak (Duplikaty OK). Gdy jedno pole ma unikatowy indeks, a drugie nie, program Access tworzy relację jeden-do-wielu.

Tworzenie relacji pomiędzy tabelami za pomocą okienka Lista pól

W programie Office Access 2007 można dodać pole do istniejącej tabeli otwartej w widoku arkusza danych, przeciągając je z okienka Lista pól. W okienku Lista pól są pokazane pola dostępne w tabelach powiązanych oraz pola dostępne w innych tabelach. Przeciągnięcie pola z „innej” (niepowiązanej) tabeli, a następnie wykonanie wszystkich kroków Kreatora odnośników, spowoduje automatyczne utworzenie nowej relacji jeden-do-wielu pomiędzy tabelą z okienka Lista pól a tabelą, do której zostało przeciągnięte pole. W tej relacji, utworzonej przez program Access, domyślnie nie są wymuszane więzy integralności. Więzy integralności można wymusić przez edycję relacji. Aby uzyskać więcej informacji, zobacz sekcję Zmienianie relacji pomiędzy tabelami.

Otwieranie tabeli w widoku arkusza danych

  1. Kliknij przycisk pakietu Microsoft Office Obraz przycisku pakietu Office , a następnie kliknij pozycję Otwórz.

  2. W oknie dialogowym Otwieranie wybierz i otwórz bazę danych.

  3. W okienku nawigacji kliknij prawym przyciskiem myszy tabelę, do której chcesz dodać pole w celu utworzenia relacji, a następnie kliknij polecenie Widok arkusza danych w menu skrótów.

Otwieranie okienka Lista pól

  • Na karcie Arkusz danych w grupie Pola i kolumny kliknij pozycję Dodaj istniejące pola.

    Obraz wstążki programu Access

    Zostanie wyświetlone okienko Lista pól.

W okienku Lista pól są wyświetlane wszystkie inne tabele z bazy danych, pogrupowane w kategorie. Gdy użytkownik pracuje z tabelą w widoku bazy danych, program Access wyświetla pola w okienku Lista pól w jednej z dwóch kategorii: Pola dostępne w powiązanych tabelach i Pola dostępne w innych tabelach. W pierwszej kategorii są wymienione wszystkie tabele, które pozostają w relacji z aktualnie opracowywaną tabelą, w drugiej zaś — wszystkie tabele, z którymi ta tabela nie ma relacji.

W okienku Lista pól należy kliknąć znak plus (+) obok nazwy tabeli, aby wyświetlić listę wszystkich dostępnych w niej pól. Aby dodać pole do opracowywanej tabeli, należy przeciągnąć żądane pole z okienka Lista pól do tabeli w widoku arkusza danych.

Dodawanie pola i tworzenie relacji za pomocą okienka Lista pól

  1. Na karcie Arkusz danych w grupie Pola i kolumny kliknij pozycję Dodaj istniejące pola.

    Obraz wstążki programu Access

    Zostanie wyświetlone okienko Lista pól.

  2. W obszarze Pola dostępne w innych tabelach kliknij znak plus (+) obok nazwy tabeli, aby wyświetlić listę pól zawartych w tej tabeli.

  3. Przeciągnij odpowiednie pole z okienka Lista pól do tabeli otwartej w widoku arkusza danych.

  4. Gdy zostanie wyświetlony wiersz wstawiania, upuść pole w odpowiednim miejscu.

    Zostanie uruchomiony Kreator odnośników.

  5. Postępuj zgodnie z instrukcjami, aby ukończyć pracę z Kreatorem odnośników.

    Pole zostanie wyświetlone w tabeli w widoku arkusza danych.

Przeciągnięcie pola z „innej” (niepowiązanej) tabeli, a następnie wykonanie wszystkich kroków Kreatora odnośników, spowoduje automatyczne utworzenie nowej relacji jeden-do-wielu pomiędzy tabelą z okienka Lista pól a tabelą, do której zostało przeciągnięte pole. W tej relacji, utworzonej przez program Access, domyślnie nie są wymuszane więzy integralności. Więzy integralności można wymusić przez edycję relacji. Aby uzyskać więcej informacji, zobacz sekcję Zmienianie relacji pomiędzy tabelami.

Początek strony

Usuwanie relacji pomiędzy tabelami

Aby usunąć relację pomiędzy tabelami, należy usunąć linię relacji w oknie Relacje. Należy starannie ustawić wskaźnik tak, aby wskazywał linię relacji, a następnie kliknąć tę linię. Zaznaczona linia relacji jest pogrubiona. Po zaznaczeniu linii relacji należy nacisnąć klawisz DELETE. Usunięcie relacji powoduje również usunięcie obsługi więzów integralności tej relacji, jeśli została ona włączona. Skutkiem tego program Access nie będzie już automatycznie zapobiegał tworzeniu rekordów odłączonych po stronie „wiele” relacji.

  1. Kliknij przycisk pakietu Microsoft Office Obraz przycisku pakietu Office , a następnie kliknij pozycję Otwórz.

  2. W oknie dialogowym Otwieranie wybierz i otwórz bazę danych.

  3. Na karcie Narzędzia bazy danych w grupie Pokazywanie/ukrywanie kliknij pozycję Relacje.

Zostanie wyświetlone okno Relacje.

Jeśli nie zdefiniowano jeszcze żadnych relacji i okno Relacje jest otwierane po raz pierwszy, zostanie wyświetlone okno dialogowe Pokazywanie tabeli. W przypadku wyświetlenia tego okna dialogowego kliknij przycisk Zamknij.

  1. Na karcie Projektowanie w grupie Relacje kliknij przycisk Wszystkie relacje.

Zostaną wyświetlone wszystkie tabele mające relacje, a także linie relacji.

  1. Kliknij linię oznaczającą relację, którą chcesz usunąć. Zaznaczona linia relacji jest pogrubiona.

  2. Naciśnij klawisz DELETE.

    — lub —

    Kliknij prawym przyciskiem myszy, a następnie kliknij polecenie Usuń.

  3. W programie Access może zostać wyświetlony komunikat Czy na pewno chcesz trwale usunąć wybraną relację z bazy danych?. W przypadku wyświetlenia tego komunikatu potwierdzającego kliknij przycisk Tak.

Uwaga : Jeśli dowolna z tabel występująca w relacji jest używana — na przykład przez inną osobę lub proces albo w otwartym obiekcie bazy danych (takim jak formularz) — jej usunięcie nie będzie możliwe. Aby usunięcie relacji było możliwe, należy najpierw zamknąć wszystkie otwarte obiekty używające tych tabel.

Początek strony

Zmienianie relacji pomiędzy tabelami

Aby zmienić relację pomiędzy tabelami, należy ją zaznaczyć w oknie Relacje, a następnie przeprowadzić jej edycję. Należy starannie ustawić wskaźnik tak, aby wskazywał linię relacji, a następnie kliknięciem zaznaczyć tę linię. Zaznaczona linia relacji jest pogrubiona. Po zaznaczeniu linii relacji należy kliknąć dwukrotnie lub kliknąć przycisk Edytuj relacje w grupie Narzędzia na karcie Projektowanie. Zostanie wyświetlone okno dialogowe Edytowanie relacji.

Wprowadzanie zmian w oknie dialogowym Edytowanie relacji

  1. Kliknij przycisk pakietu Microsoft Office Obraz przycisku pakietu Office , a następnie kliknij pozycję Otwórz.

  2. W oknie dialogowym Otwieranie wybierz i otwórz bazę danych.

  3. Na karcie Narzędzia bazy danych w grupie Pokazywanie/ukrywanie kliknij pozycję Relacje.

Zostanie wyświetlone okno Relacje.

Jeśli nie zdefiniowano jeszcze żadnych relacji i okno Relacje jest otwierane po raz pierwszy, zostanie wyświetlone okno dialogowe Pokazywanie tabeli. W przypadku wyświetlenia tego okna dialogowego kliknij przycisk Zamknij.

  1. Na karcie Projektowanie w grupie Relacje kliknij przycisk Wszystkie relacje.

Zostaną wyświetlone wszystkie tabele mające relacje, a także linie relacji. Należy pamiętać, że tabele ukryte (czyli tabele, dla których zaznaczono pole wyboru Ukryty w oknie dialogowym Właściwości) oraz ich relacje nie zostaną wyświetlone, chyba że w oknie dialogowym Opcje nawigacji jest wybrana opcja Pokaż ukryte obiekty.

Aby uzyskać więcej informacji na temat opcji Pokaż ukryte obiekty, zobacz artykuł Przewodnik po okienku nawigacji.

  1. Kliknij linię oznaczającą relację, którą chcesz zmienić. Zaznaczona linia relacji jest pogrubiona.

  2. Kliknij dwukrotnie linię relacji.

    — lub —

    Na karcie Projektowanie w grupie Narzędzia kliknij przycisk Edytuj relacje.

    Zostanie wyświetlone okno dialogowe Edytowanie relacji.

    Okno dialogowe Edytowanie relacji

  3. Wprowadź zmiany, a następnie kliknij przycisk OK.

    Okno dialogowe Edytowanie relacji umożliwia zmianę relacji pomiędzy tabelami. W szczególności można zmienić tabele, kwerendy lub pola po dowolnej stronie relacji. Ponadto można ustawić typ sprzężenia lub wymusić więzi integralności i wybrać opcję operacji kaskadowych. Aby uzyskać więcej informacji na temat typu sprzężenia i sposobu ustawiania go, zobacz sekcję Ustawianie typu sprzężenia. Aby uzyskać więcej informacji na temat sposobu wymuszania więzów integralności i wybierania opcji operacji kaskadowych, zobacz sekcję Wymuszanie więzów integralności.

Ustawianie typu sprzężenia

Po zdefiniowaniu relacji pomiędzy tabelami informacje na temat tej relacji są wykorzystywane w projektach kwerend. Na przykład, jeśli użytkownik zdefiniuje relację między dwiema tabelami, a następnie zacznie tworzyć kwerendę korzystającą z tych tabel, program Access automatycznie wybierze domyślne pasujące pola na podstawie pól określonych w relacji. Te początkowe wartości domyślne kwerendy można zastąpić, ale wartości pochodzące z relacji często okazują się poprawne. Ponieważ poza najprostszymi bazami danych dopasowywanie i łączenie danych z więcej niż jednej tabeli jest często wykonywaną czynnością, ustawienie wartości domyślnych przez utworzenie relacji może zaoszczędzić czas i zapewnić różne korzyści.

Kwerenda wielotabelowa łączy informacje z więcej niż jednej tabeli dzięki dopasowaniu wartości z pól wspólnych. Operacja powodująca dopasowywanie i łączenie jest nazywana sprzężeniem. Załóżmy na przykład, że użytkownik chce wyświetlić zamówienia klientów. Tworzy więc kwerendę sprzęgającą tabelę Klienci i tabelę Zamówienia przy użyciu pola Identyfikator klienta. Wynik kwerendy zawiera informacje o klientach i informacje o zamówieniach wyłącznie z tych wierszy, w których zostało odnalezione odpowiednie dopasowanie.

Jedną z wartości, którą można określić w każdej relacji, jest typ sprzężenia. Typ sprzężenia w programie Access określa, które rekordy mają być uwzględnione w wyniku kwerendy. Jako przykładu można ponownie użyć kwerendy sprzęgającej tabelę Klienci i tabelę Zamówienia przy użyciu pola wspólnego z identyfikatorem klienta. W przypadku użycia domyślnego typu sprzężenia (zwanego sprzężeniem wewnętrznym) kwerenda zwraca tylko wiersze klientów i wiersze zamówień, w których pola wspólne (zwane również polami sprzężonymi) są równe.

Załóżmy jednak, że trzeba uwzględnić wszystkich klientów — nawet tych, którzy jeszcze nie złożyli zamówień. W tym celu należy zmienić typ sprzężenia ze sprzężenia wewnętrznego na tzw. lewe sprzężenie zewnętrzne. Lewe sprzężenie zewnętrzne zwraca wszystkie wiersze z tabeli po lewej stronie relacji oraz tylko pasujące wiersze z tabeli po prawej stronie. Prawe sprzężenie zewnętrzne zwraca wszystkie wiersze z prawej strony i tylko pasujące wiersze z lewej strony.

Uwaga : W tym przypadku określenia „lewe” i „prawe” odnoszą się do położenia tabeli w oknie dialogowym Edytowanie relacji, a nie w oknie Relacje.

Należy się zastanowić, jaki wynik kwerendy sprzęgającej tabele relacji będzie potrzebny najczęściej, a następnie odpowiednio ustawić typ sprzężenia.

Ustawianie typu sprzężenia

  1. W oknie dialogowym Edytowanie relacji kliknij przycisk Typ sprzężenia.

    Zostanie wyświetlone okno dialogowe Właściwości sprzężenia.

  2. Kliknij odpowiednią opcję, a następnie kliknij przycisk OK.

W poniższej tabeli (opracowanej dla tabel Klienci i Zamówienia) przedstawiono trzy opcje wyświetlane w oknie dialogowym Właściwości sprzężenia, typ używanego w nich sprzężenia oraz informację, czy są uwzględniane wszystkie wiersze, czy pasujące wiersze z poszczególnych tabel.

Wybór

Sprzężenie relacyjne

Lewa tabela

Prawa tabela

1. Uwzględnia tylko wiersze, w których sprzężone pola z obu tabel są równe.

Sprzężenie wewnętrzne

Pasujące wiersze

Pasujące wiersze

2. Uwzględnia WSZYSTKIE rekordy z tabeli Klienci i tylko te rekordy z tabeli Zamówienia, dla których sprzężone pola są równe.

Lewe sprzężenie zewnętrzne

Wszystkie wiersze

Pasujące wiersze

3. Uwzględnia WSZYSTKIE rekordy z tabeli Zamówienia i tylko te rekordy z tabeli Klienci, dla których sprzężone pola są równe.

Prawe sprzężenie zewnętrzne

Pasujące wiersze

Wszystkie wiersze

W przypadku wybrania opcji 2 lub opcji 3 na linii relacji zostanie wyświetlona strzałka. Ta strzałka wskazuje stronę relacji, dla której są pokazane tylko pasujące wiersze.

Wprowadzanie zmian w oknie dialogowym Właściwości sprzężenia

  1. Kliknij przycisk pakietu Microsoft Office Obraz przycisku pakietu Office , a następnie kliknij pozycję Otwórz.

  2. W oknie dialogowym Otwieranie wybierz i otwórz bazę danych.

  3. Na karcie Narzędzia bazy danych w grupie Pokazywanie/ukrywanie kliknij pozycję Relacje.

Zostanie wyświetlone okno Relacje.

Jeśli nie zdefiniowano jeszcze żadnych relacji i okno Relacje jest otwierane po raz pierwszy, zostanie wyświetlone okno dialogowe Pokazywanie tabeli. W przypadku wyświetlenia tego okna dialogowego kliknij przycisk Zamknij.

  1. Na karcie Projektowanie w grupie Relacje kliknij przycisk Wszystkie relacje.

Zostaną wyświetlone wszystkie tabele mające relacje, a także linie relacji. Należy pamiętać, że tabele ukryte (czyli tabele, dla których zaznaczono pole wyboru Ukryta w oknie dialogowym Właściwości) oraz ich relacje nie zostaną wyświetlone, chyba że w oknie dialogowym Opcje nawigacji jest wybrana opcja Pokaż ukryte obiekty.

Aby uzyskać więcej informacji na temat opcji Pokaż ukryte obiekty, zobacz artykuł Przewodnik po okienku nawigacji.

  1. Kliknij linię oznaczającą relację, którą chcesz zmienić. Zaznaczona linia relacji jest pogrubiona.

  2. Kliknij dwukrotnie linię relacji.

    — lub —

    Na karcie Projektowanie w grupie Narzędzia kliknij przycisk Edytuj relacje.

    Zostanie wyświetlone okno dialogowe Edytowanie relacji.

  3. Kliknij przycisk Typ sprzężenia.

  4. W oknie dialogowym Właściwości sprzężenia kliknij odpowiednią opcję, a następnie kliknij przycisk OK.

    Okno dialogowe Właściwości sprzężenia

  5. Wprowadź ewentualne dodatkowe zmiany w relacji, a następnie kliknij przycisk OK.

Początek strony

Wymuszanie więzów integralności

Więzy integralności mają na celu zapobieganie powstawaniu rekordów odłączonych i synchronizowanie odwołań, tak aby nie było rekordów odwołujących się do rekordów, które już nie istnieją. Więzy integralności wymusza się przez włączenie ich dla relacji pomiędzy tabelami. Jeśli więzy integralności są wymuszone, program Access odrzuca każdą operację, która naruszyłaby te więzy w danej relacji pomiędzy tabelami. Program Access odrzuca więc aktualizacje zmieniające obiekt docelowy odwołania, a także operacje usuwające obiekt docelowy odwołania. Jeśli program Access ma propagować aktualizacje i usunięcia odwołań, tak aby wszystkie powiązane wiersze były zmieniane w odpowiedni sposób, zobacz sekcję Ustawianie opcji operacji kaskadowych.

Włączanie lub wyłączanie więzów integralności

  1. Kliknij przycisk pakietu Microsoft Office Obraz przycisku pakietu Office , a następnie kliknij pozycję Otwórz.

  2. W oknie dialogowym Otwieranie wybierz i otwórz bazę danych.

  3. Na karcie Narzędzia bazy danych w grupie Pokazywanie/ukrywanie kliknij pozycję Relacje.

Zostanie wyświetlone okno Relacje.

Jeśli nie zdefiniowano jeszcze żadnych relacji i okno Relacje jest otwierane po raz pierwszy, zostanie wyświetlone okno dialogowe Pokazywanie tabeli. W przypadku wyświetlenia tego okna dialogowego kliknij przycisk Zamknij.

  1. Na karcie Projektowanie w grupie Relacje kliknij przycisk Wszystkie relacje.

Zostaną wyświetlone wszystkie tabele mające relacje, a także linie relacji. Należy pamiętać, że tabele ukryte (czyli tabele, dla których zaznaczono pole wyboru Ukryty w oknie dialogowym Właściwości) oraz ich relacje nie zostaną wyświetlone, chyba że w oknie dialogowym Opcje nawigacji jest wybrana opcja Pokaż ukryte obiekty.

Aby uzyskać więcej informacji na temat opcji Pokaż ukryte obiekty, zobacz artykuł Przewodnik po okienku nawigacji.

  1. Kliknij linię oznaczającą relację, którą chcesz zmienić. Zaznaczona linia relacji jest pogrubiona.

  2. Kliknij dwukrotnie linię relacji.

    — lub —

    Na karcie Projektowanie w grupie Narzędzia kliknij przycisk Edytuj relacje.

    Zostanie wyświetlone okno dialogowe Edytowanie relacji.

  3. Zaznacz pole wyboru Wymuszaj więzy integralności.

  4. Wprowadź ewentualne dodatkowe zmiany w relacji, a następnie kliknij przycisk OK.

Po wymuszeniu więzów integralności są stosowane następujące reguły:

  • Nie można wprowadzić wartości w polu klucza obcego tabeli powiązanej, jeśli ta wartość nie istnieje w polu klucza podstawowego tabeli podstawowej — czynność ta powoduje powstanie rekordów odłączonych.

  • Nie można usunąć rekordu z tabeli podstawowej, jeśli w tabeli powiązanej istnieją rekordy pasujące do niego. Nie można na przykład usunąć rekordu pracownika z tabeli Pracownicy, jeśli w tabeli Zamówienia istnieją zamówienia przypisane temu pracownikowi. Można jednak zdecydować się na usunięcie rekordu podstawowego oraz wszystkich rekordów pokrewnych w ramach jednej operacji, zaznaczając pole wyboru Kaskadowo usuń rekordy pokrewne.

  • Nie można zmienić wartości klucza podstawowego w tabeli podstawowej, jeśli spowodowałoby to powstanie rekordów odłączonych. Nie można na przykład zmienić numeru zamówienia w tabeli Zamówienia, jeśli w tabeli Szczegóły zamówienia istnieją pozycje przypisane do tego zamówienia. Można jednak zdecydować się na zaktualizowanie rekordu podstawowego oraz wszystkich rekordów pokrewnych w ramach jednej operacji, zaznaczając pole wyboru Kaskadowo aktualizuj pola pokrewne.

    Uwagi : Jeśli przy włączaniu więzów integralności występują problemy, warto pamiętać, że do wymuszenia tych więzów jest wymagane spełnienie następujących warunków:

    • Pole wspólne z tabeli podstawowej musi być kluczem podstawowym lub mieć unikatowy indeks.

    • Pola wspólne muszą mieć ten sam typ danych. Jedynym wyjątkiem jest możliwość powiązania pola typu Autonumerowanie z polem typu Liczba, którego właściwość RozmiarPola ma ustawienie Liczba całkowita długa.

    • Obie tabele muszą znajdować się w tej samej bazie danych programu Access. Więzów integralności nie można wymusić w tabelach połączonych. Jednak jeśli tabele źródłowe mają format programu Access, można otworzyć bazę danych, w której są przechowywane, i włączyć więzy integralności w tej bazie danych.

Ustawianie opcji operacji kaskadowych

Może się zdarzyć, że wystąpi uzasadniona potrzeba zmiany wartości po stronie „jeden” relacji. W takim przypadku program Access powinien automatycznie w ramach jednej operacji zaktualizować wszystkie wiersze, na które wpływa ta zmiana. W ten sposób aktualizacja jest wykonywana w pełni, dzięki czemu baza danych nie będzie niespójna w wyniku zaktualizowania tylko niektórych wierszy. Aby uniknąć tego problemu, program Access udostępnia opcję Kaskadowo aktualizuj pola pokrewne. Gdy użytkownik wymusi więzy integralności i wybierze opcję Kaskadowo aktualizuj pola pokrewne, a następnie zaktualizuje klucz podstawowy, program Access automatycznie zaktualizuje wszystkie pola, które odwołują się do klucza podstawowego.

Ponadto może wystąpić potrzeba usunięcia wiersza i wszystkich wierszy pokrewnych, na przykład rekordu spedytora i wszystkich zamówień powiązanych z danym spedytorem. W programie Access służy do tego opcja Kaskadowo usuń rekordy pokrewne. Gdy użytkownik wymusi więzy integralności i wybierze opcję Kaskadowo usuń rekordy pokrewne, to w momencie usunięcia rekordu zawierającego klucz podstawowy program Access automatycznie usunie wszystkie rekordy, które odwołują się do klucza podstawowego.

Włączanie lub wyłączanie aktualizowania kaskadowego i/lub usuwania kaskadowego

  1. Kliknij przycisk pakietu Microsoft Office Obraz przycisku pakietu Office , a następnie kliknij pozycję Otwórz.

  2. W oknie dialogowym Otwieranie wybierz i otwórz bazę danych.

  3. Na karcie Narzędzia bazy danych w grupie Pokazywanie/ukrywanie kliknij pozycję Relacje.

Zostanie wyświetlone okno Relacje.

Jeśli nie zdefiniowano jeszcze żadnych relacji i okno Relacje jest otwierane po raz pierwszy, zostanie wyświetlone okno dialogowe Pokazywanie tabeli. W przypadku wyświetlenia tego okna dialogowego kliknij przycisk Zamknij.

  1. Na karcie Projektowanie w grupie Relacje kliknij przycisk Wszystkie relacje.

Zostaną wyświetlone wszystkie tabele mające relacje, a także linie relacji. Należy pamiętać, że tabele ukryte (czyli tabele, dla których zaznaczono pole wyboru Ukryty w oknie dialogowym Właściwości) oraz ich relacje nie zostaną wyświetlone, chyba że w oknie dialogowym Opcje nawigacji jest wybrana opcja Pokaż ukryte obiekty.

Aby uzyskać więcej informacji na temat opcji Pokaż ukryte obiekty, zobacz Przewodnik po okienku nawigacji.

  1. Kliknij linię oznaczającą relację, którą chcesz zmienić. Zaznaczona linia relacji jest pogrubiona.

  2. Kliknij dwukrotnie linię relacji.

    — lub —

    Na karcie Projektowanie w grupie Narzędzia kliknij przycisk Edytuj relacje.

    Zostanie wyświetlone okno dialogowe Edytowanie relacji.

  3. Zaznacz pole wyboru Wymuszaj więzy integralności.

  4. Zaznacz pole wyboru Kaskadowo aktualizuj pola pokrewne lub Kaskadowo usuń rekordy pokrewne albo zaznacz oba te pola.

  5. Wprowadź ewentualne dodatkowe zmiany w relacji, a następnie kliknij przycisk OK.

Uwaga : Jeśli klucz podstawowy jest polem typu Autonumerowanie, zaznaczenie pola wyboru Kaskadowo aktualizuj pola pokrewne nie wywoła żadnych skutków, ponieważ zmiana wartości pola typu Autonumerowanie jest niemożliwa.

Początek strony

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×