Porównywanie dwóch tabel i wyszukiwanie niedopasowanych rekordów

Czasami może pojawić się potrzeba porównania dwóch tabel oraz zidentyfikowania rekordów, które nie mają odpowiadających im rekordów w drugiej tabeli. Najłatwiejszym sposobem zidentyfikowania tych rekordów jest użycie Kreatora kwerend wyszukujących niedopasowane dane. Po utworzeniu przez kreatora kwerendy można zmodyfikować jej projekt w celu dodania lub usunięcia pola lub dodania sprzężenia między dwoma tabelami (aby wskazać pola, których wartości powinny zostać dopasowane). Można także utworzyć własną kwerendę, aby znaleźć niedopasowane rekordy bez użycia kreatora.

W tym artykule przedstawiono sposób uruchamiania Kreatora kwerend wyszukujących niedopasowane dane, modyfikowania danych wyjściowych kreatora i tworzenia własnej kwerendy w celu wyszukania niedopasowanych rekordów.

W tym artykule


Kiedy należy wyszukiwać niedopasowane rekordy?

Poniżej opisano dwa typowe przypadki, w których może pojawić się potrzeba porównania dwóch tabel i wyszukania niedopasowanych rekordów. Zależnie od sytuacji wyszukanie niedopasowanych rekordów może być pierwszą z kilku wykonywanych czynności. W tym artykule omówiono tylko wyszukiwanie niedopasowanych rekordów.

  • Pierwsza tabela służy do przechowywania danych o elemencie (takim jak produkt), a w drugiej są przechowywane dane o akcjach (takich jak zamówienia), których dotyczy ten element.    

Na przykład w szablonie bazy danych Northwind 2007 dane o produktach są przechowywane w tabeli Produkty, a dane o tym, jakie produkty znajdują się w poszczególnych zamówieniach, są przechowywane w tabeli Szczegóły zamówień. Ponieważ (zgodnie z projektem) dane o zamówieniach nie są przechowywane w tabeli Produkty, nie można, patrząc jedynie na tabelę Produkty, rozpoznać sprzedanych produktów. Nie pozwala na to także przeglądanie samej tabeli Szczegóły zamówień, ponieważ są w niej przechowywane tylko dane o sprzedanych produktach. Aby ustalić, jakie produkty nie zostały nigdy sprzedane, należy porównać obie tabele.

Aby przejrzeć listę elementów z pierwszej tabeli, które nie mają odpowiadających im akcji w drugiej tabeli, należy użyć kwerendy wyszukującej niedopasowane dane.

  • W dwóch tabelach znajdują się informacje nakładające się, zbędne lub sprzeczne, które trzeba połączyć w jednej tabeli.    

Załóżmy na przykład, że pierwsza tabela nazywa się Odbiorcy, a druga Klienci. Tabele są niemal identyczne, ale co najmniej jedna z nich zawiera rekordy, których brakuje w drugiej tabeli. Aby skonsolidować tabele, należy wcześniej ustalić, które rekordy są unikatowe dla poszczególnych tabel.

W takiej sytuacji metody opisane w tym artykule mogą pomóc, ale zakres artykułu nie obejmuje pozostałych możliwych czynności. W niektórych przypadkach można użyć Kreatora kwerend wyszukujących niedopasowane dane, aby zidentyfikować niedopasowane rekordy. Pobranie połączonego zestawu rekordów wymaga użycia wyników wyszukiwania w celu utworzenia kwerendy składającej. Użytkownicy potrafiący pisać instrukcje w języku SQL (Structured Query Language) mogą nie używać Kreatora kwerend wyszukujących niedopasowane dane i ręcznie napisać kwerendę składającą.

Problem z informacjami nakładającymi się, zbędnymi lub sprzecznymi można napotkać, szukając zduplikowanych danych w więcej niż jednej tabeli.

Aby uzyskać więcej informacji na temat kwerend składających albo na temat wyszukiwania, ukrywania, lub usuwania zduplikowanych danych, skorzystaj z łączy w sekcji Zobacz też.

 Uwaga   W przykładach zawartych w tym artykule jest używana baza danych, która została utworzona za pomocą szablonu bazy danych Northwind 2007.

PokażPokaż, jak skonfigurować bazę danych Northwind 2007

  1. Kliknij przycisk Microsoft Office Obraz przycisku, a następnie kliknij polecenie Nowy.
  1. W lewym okienku w obszarze Kategorie szablonów kliknij przycisk Szablony lokalne.
  2. W obszarze Szablony lokalne kliknij pozycję Northwind 2007, a następnie kliknij przycisk Utwórz.
  3. Postępuj zgodnie ze wskazówkami na stronie Northwind Traders (na karcie obiektu Ekran uruchamiania), aby otworzyć bazę danych, a następnie zamknij okno dialogowe Logowanie.

Początek strony Początek strony

Używanie Kreatora kwerend wyszukujących niedopasowane dane do porównywania dwóch tabel

  1. Na karcie Tworzenie w grupie Inne kliknij polecenie Kreator kwerend.
  1. W oknie dialogowym Nowa kwerenda kliknij dwukrotnie polecenie Kreator kwerend wyszukujących niedopasowane dane.
  2. Na pierwszej stronie kreatora wybierz tabelę zawierającą niedopasowane rekordy, a następnie kliknij przycisk Dalej. Aby na przykład wyświetlić listę niesprzedanych produktów z bazy danych Northwind 2007, należy wybrać tabelę Produkty.
  3. Na drugiej stronie kreatora wybierz tabelę pokrewną, a następnie kliknij przycisk Dalej. Aby postępować zgodnie z przykładem, wybierz tabelę Szczegóły zamówień.
  4. Na trzeciej stronie kreatora zaznacz pola tworzące relacje z tabelami, kliknij przycisk < = >, a następnie kliknij przycisk Dalej. Można zaznaczyć tylko jedno pole z każdej tabeli. Aby postępować zgodnie z przykładem, wybierz pole ID z tabeli Produkty i pole ID produktu z tabeli Szczegóły zamówienia. Upewnij się, że zostały dopasowane prawidłowe pola, przeglądając tekst w polu Pola pasujące.

Należy zauważyć, że pola ID i ID produktu mogły zostać wcześniej zaznaczone ze względu na istniejące relacje wbudowane w szablonie.

  1. Na czwartej stronie kreatora kliknij dwukrotnie pola pierwszej tabeli, które mają zostać wyświetlone, a następnie kliknij przycisk Dalej. Aby postępować zgodnie z przykładem, wybierz pola ID i Nazwa produktu.
  2. Na piątej stronie kreatora można wybrać opcję wyświetlania wyników lub modyfikowania projektu kwerendy. W tym przykładzie kliknij opcję Wyświetl wyniki. Zaakceptuj sugerowaną nazwę dla kwerendy, a następnie kliknij przycisk Zakończ.

Projekt kwerendy można zmodyfikować, aby dodać inne kryteria, zmienić porządek sortowania, dodać lub usunąć pola. Aby uzyskać więcej informacji na temat modyfikowania kwerendy wyszukującej niedopasowane rekordy, przeczytaj następną sekcję. Aby uzyskać więcej ogólnych informacji na temat tworzenia i modyfikowania kwerend, skorzystaj z łączy w sekcji Zobacz też.

Początek strony Początek strony

Tworzenie i modyfikowanie kwerendy wyszukującej niedopasowane dane w celu porównania według więcej niż jednego pola

  1. Na karcie Tworzenie w grupie Inne kliknij polecenie Kreator kwerend.
  1. W oknie dialogowym Nowa kwerenda, kliknij dwukrotnie polecenie Kreator kwerend wyszukujących niedopasowane dane.
  2. Na pierwszej stronie kreatora wybierz tabelę zawierającą niedopasowane rekordy, a następnie kliknij przycisk Dalej. Aby na przykład wyświetlić listę niesprzedanych produktów z bazy danych Northwind 2007, należy wybrać tabelę Produkty.
  3. Na drugiej stronie kreatora wybierz tabelę pokrewną, a następnie kliknij przycisk Dalej. Aby postępować zgodnie z przykładem, wybierz tabelę Szczegóły zamówień.
  4. Na trzeciej stronie kreatora zaznacz pola tworzące relacje z tabelami, kliknij przycisk < = >, a następnie kliknij przycisk Dalej. Można wybrać tylko jedno pole z każdej tabeli. Aby postępować zgodnie z przykładem, wybierz pole ID z tabeli Produkty i pole ID produktu z tabeli Szczegóły zamówień. Upewnij się, że zostały dopasowane prawidłowe pola, przeglądając tekst w polu Pola pasujące. Pozostałe pola można połączyć po zakończeniu pracy kreatora.

Należy zauważyć, że pola ID i ID produktu mogły zostać wcześniej zaznaczone ze względu na istniejące relacje wbudowane w szablonie.

  1. Na czwartej stronie kreatora kliknij dwukrotnie pola, które mają zostać wyświetlone z pierwszej tabeli, a następnie kliknij przycisk Dalej. Aby postępować zgodnie z przykładem, wybierz pola ID i Nazwa produktu.
  2. Na piątej stronie kliknij opcję Modyfikuj projekt, a następnie kliknij przycisk Zakończ.

Zostanie otwarta kwerenda w widoku projektu.

  1. W siatce kwerendy projektu można zauważyć, że tabele są połączone polami (w tym przypadku są to pola ID i ID produktu), które wskazano na trzeciej stronie kreatora. Utwórz sprzężenie dla każdej z pozostałych par pól pokrewnych, przeciągając pola z pierwszej tabeli (zawierającej niedopasowane rekordy) do drugiej. W tym przykładzie przeciągnij pole Cena katalogowa z tabeli Produkty do pola Cena jednostkowa w tabeli Szczegóły zamówień.
  2. Kliknij dwukrotnie sprzężenie (linię łączącą pola), aby wyświetlić okno dialogowe Właściwości sprzężenia. Dla każdego sprzężenia wybierz opcję zawierającą wszystkie rekordy z tabeli Produkty, a następnie kliknij OK.

W siatce kwerendy projektu można zauważyć, że na jednym końcu każdego ze sprzężeń znajduje się strzałka.

Styl linii wskazuje typ sprzężenia.

Objaśnienie 1 Utworzenie sprzężenia pomiędzy polami Cena katalogowa i Cena jednostkowa powoduje ograniczenie danych wyjściowych. Tylko rekordy z pasującymi danymi w polach w obu tabelach zostaną umieszczone w wynikach kwerendy.
Objaśnienie 2 Po zmianie właściwości sprzężenia będzie ono ograniczać tylko tabelę, na którą wskazuje strzałka. Wyniki kwerendy będą zawierały wszystkie rekordy, od których biegnie strzałka.

 Uwaga   Należy sprawdzić, czy wszystkie strzałki na sprzężeniach wskazują w tym samym kierunku.

  1. Dla tabeli zawierającej pokrewne rekordy (w tym przykładzie tabeli Szczegóły zamówień) kliknij dwukrotnie każde pole połączone z pierwszą tabelą, z wyjątkiem pola wybranego na trzeciej stronie kreatora (w tym przypadku pola ID produktu). Dla każdego z tych pól wyczyść pole wyboru w wierszu Pokaż i wpisz funkcję Is Null w wierszu Kryteria.
  2. Kryteria można też dodać do innych pól kwerendy, aby utworzyć pola obliczeniowe na podstawie wartości z pierwszej tabeli.
  3. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.

Kwerenda zwraca nazwy produktów, które nie należą do istniejących zamówień.

Początek strony Początek strony

Tworzenie własnych kwerend w celu znalezienia niedopasowanych rekordów

  1. Na karcie Tworzenie w grupie Inne kliknij polecenie Projekt kwerendy.
  1. W oknie dialogowym Pokazywanie tabeli kliknij dwukrotnie tabelę zawierającą niedopasowane rekordy, a następnie kliknij dwukrotnie tabelę z rekordami pokrewnymi.
  2. Zamknij okno dialogowe Pokazywanie tabeli.
  3. W siatce projektu kwerendy pola pokrewne obu tabel powinny być połączone za pomocą linii nazywanych sprzężeniami. Jeżeli tak nie jest, należy utworzyć sprzężenia, przeciągając każde pole pokrewne z pierwszej tabeli (zawierającej niedopasowane rekordy) do drugiej tabeli (zawierającej rekordy pokrewne).
  4. Kliknij dwukrotnie sprzężenie, aby otworzyć okno dialogowe Właściwości sprzężenia. Dla każdego sprzężenia wybierz opcję 2, a następnie kliknij przycisk OK.

W siatce kwerendy projektu na końcu sprzężeń zostaną dodane strzałki.

 Uwaga   Sprawdź, czy wszystkie sprzężenia wskazują w tym samym kierunku. Kwerenda nie zostanie uruchomiona, jeśli strzałki będą wskazywać w różnych kierunkach. Kwerenda może nie zostać uruchomiona, jeśli dowolne ze sprzężeń nie będzie strzałką. Strzałki sprzężeń powinny biec od tabeli zawierającej niedopasowane rekordy.

  1. W tabeli zawierającej niedopasowane rekordy kliknij dwukrotnie pola, które mają zostać zwrócone przez kwerendę.

Można też wprowadzić kryteria dla dowolnego z tych pól lub utworzyć pola obliczeniowe.

  1. Dla tabel z rekordami pokrewnymi kliknij dwukrotnie każde pole połączone z pierwszą tabelą. Dla każdego z tych pól wyczyść pole Pokaż i wpisz funkcję Is Null w wierszu Kryteria.
  2. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.

Początek strony Początek strony

 
 
Dotyczy:
Access 2007