Korzystanie z pól wielowartościowych w kwerendach

Ważne : Ten artykuł został przetłumaczony maszynowo, zobacz zastrzeżenie. Angielskojęzyczną wersję tego artykułu można znaleźć tutaj .

W programie Microsoft Office Access 2007 można utworzyć pole przechowujące wiele wartości, na przykład listę osób, do których przydzielono określony problem. Pola wielowartościowe sprawdzają się w niektórych sytuacjach, na przykład wówczas, gdy program Office Access 2007 jest używany do pracy z informacjami przechowywanymi na liście programu Windows SharePoint Services 3.0 i lista ta zawiera pole o jednym z typów pól wielowartościowych dostępnych w programie Windows SharePoint Services 3.0.

W tym artykule omówiono pola wartościowe i sposób ich używania w kwerendach.

W tym artykule

Co to jest pole wielowartościowe?

Wprowadzenie do kwerend

Wyświetlanie pola wielowartościowego w kwerendzie

Wyświetlanie poszczególnych wartości w polu wielowartościowym

Opis wartości powiązanej i wartość wyświetlana w polu odnośnika

Sposób wyświetlania wartości powiązanej w kwerendzie

Wprowadzanie kryteriów prostej kwerendy dla pola wielowartościowego

Wyszukiwanie więcej niż jedną wartość w polu wielowartościowym

Opis wpływu włącznie. Pole wartości na liście pól

Zliczanie, grupowania i innych funkcji agregujących

Kwerenda dołączająca za pomocą pola wielowartościowego

Korzystanie z kwerendy aktualizującej z polem wielowartościowym

Korzystanie z kwerendy usuwającej z polem wielowartościowym

Początek strony

Co to jest pole wielowartościowe?

Załóżmy, że pewne zadanie było przypisane do jednego z pracowników lub zleceniobiorców, ale zadecydowano, że należy przydzielić je kilku osobom. W programie Office Access 2007 można utworzyć pole wielowartościowe, które pozwoli wybrać osoby z listy.

Pole wielowartościowe

Po kliknięciu pola kombi zostaną zaznaczone pola wyboru, wskazując wybrane opcje. Można zaznaczyć lub wyczyścić odpowiednie elementy na liście, a następnie kliknąć przycisk OK w celu przesłania wyborów.

Pole kombi z polem wielowartościowym

Informacje o zaznaczonych osobach są przechowywane w polu wielowartościowym, a przy wyświetlaniu rozdzielane (domyślnie) przecinkami.

Pole wielowartościowe z wartościami rozdzielonymi przecinkiem

Pola wielowartościowe ułatwiają obsługę przypadków, w których trzeba zaznaczać i przechowywać więcej niż jedną opcję — bez konieczności tworzenia bardziej zaawansowanego projektu bazy danych. Pola wielowartościowe mają też znaczenie przy integracji z programem Windows SharePoint Services, gdyż listy w tym programie również obsługują takie pola.

Program Office Access 2007 pozwala przechowywać więcej niż jedną wartość w polu, co może wydawać się nietypową funkcją, gdyż większość relacyjnych systemów zarządzania bazami danych nie udostępnia takiej możliwości. W rzeczywistości aparat bazy danych programu Office Access 2007 nie przechowuje wartości w jednym polu. Dla użytkownika jest widoczne jedno pole, ale wartości są przechowywane niezależnie i zarządzane za pomocą ukrytych tabel systemowych. Aparat bazy danych programu Access automatycznie rozdziela i łączy dane w celu udostępnienia ich jako wartości w jednym polu.

W rzeczywistości pole wielowartościowe programu Access jest odwzorowaniem relacji typu wiele-do-wielu. Załóżmy na przykład, że w tabeli wydarzeń do każdego wydarzenia jest przypisywana pewna liczba odpowiedzialnych za nie pracowników. W takiej sytuacji można utworzyć pole wielowartościowe o nazwie „PrzypisaneDo”, służące do przypisywania wydarzeń pracownikom. Między wydarzeniami a pracownikami istnieje relacja wiele-do-wielu. Oznacza to, że wielu pracowników może być przypisanych do każdego wydarzenia, a każdy pracownik może być przypisany do wielu wydarzeń.

Początek strony

Wprowadzenie do kwerend

Głównym celem istnienia baz danych jest dostarczanie informacji: „Który z naszych produktów sprzedaje się najlepiej? Kto jest naszym najlepszym klientem? Dlaczego nie realizujemy naszych celów na obszarze sprzedaży?” Na wszystkie te pytania powinna odpowiedzieć dobrze zaprojektowana baza danych. Aby uzyskać odpowiedzi w bazie danych programu Access, tworzy się kwerendę i wprowadza potrzebne kryteria. Dane zawarte w kwerendzie mogą pochodzić z jednej lub kilku tabel. Gdy program Access pobierze dane stanowiące odpowiedź na pytanie, można te dane wyświetlić i analizować. Utworzonej kwerendy można użyć jako podstawy dla formularza, raportu, wykresu, a nawet kolejnej kwerendy.

W niektórych kwerendach programu Office Access 2007 można w określony sposób stosować pola wielowartościowe. Można wyświetlić pole wielowartościowe w kwerendzie, wyświetlić w kwerendzie poszczególne wartości z pola wielowartościowego oraz wykonywać wybrane operacje agregowania i kwerendy funkcjonalne za pomocą pól wielowartościowych.

Początek strony

Wyświetlanie pola wielowartościowego w kwerendzie

Gdy w kwerendzie jest wyświetlane pole wielowartościowe, należy zdecydować, czy ma być wyświetlane całe pole zawierające wszystkie wartości rozdzielone przecinkami, czy oddzielne wiersze dla poszczególnych wartości. Przypuśćmy na przykład, że istnieje tabela Issues (Problemy), która zawiera pole AssignedTo (Przydzielone do), służące do przydzielania problemów odpowiednim osobom. Kwerendę zawierającą pole AssignedTo można utworzyć, wykonując poniższą procedurę.

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij przycisk Projekt kwerendy.

    Obraz wstążki programu Access

  4. W oknie dialogowym Pokazywanie tabeli kliknij tabelę (w tym przykładzie — tabelę „Problemy”), która zawiera pole wielowartościowe, a następnie kliknij przycisk Dodaj.

  5. Kliknij przycisk Zamknij.

  6. Przeciągnij odpowiednie pola do siatki projektu kwerendy. W tym przykładzie przeciągnij do siatki kwerendy pole Title (Tytuł) i pole wielowartościowe o nazwie AssignedTo.

  7. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.

Wynik kwerendy będzie wyglądał tak jak na poniższym rysunku — w jednej kolumnie będzie wyświetlony tytuł problemu, a w drugiej pole wielowartościowe:

Wynik kwerendy pokazujący pola Title i AssignedTo

Przy tworzeniu kwerendy w widoku projektu program Access automatycznie generuje odpowiednią instrukcję w języku SQL (Structured Query Language). SQL to język kwerend używany w programie Access. Aby przełączyć się do widoku SQL w celu wyświetlenia instrukcji SQL, wykonaj poniższą procedurę.

  1. Na karcie Projektowanie w grupie Wyniki kliknij strzałkę pod przyciskiem Widok, aby wyświetlić menu Widok.

  2. Kliknij polecenie Widok SQL.

Instrukcja SQL ma następującą postać:

SELECT Issues.Title, 
Issues.AssignedTo
FROM Issues;

Początek strony

Wyświetlanie poszczególnych wartości pola wielowartościowego

Przypuśćmy, że trzeba rozwinąć pole AssignedTo (czyli inaczej mówiąc, spłaszczyć), tak aby każde imię i nazwisko, czyli wartość AssignedTo, było wyświetlane w osobnym wierszu. W tym celu należy określić właściwość Value, dodając ciąg „.Value” do ciągu „AssignedTo” w wierszu Pole, tak jak pokazano w poniższej siatce kwerendy:

Siatka kwerendy pokazująca pozycje Title i AssignedTo.Value

Jeśli w wierszu Pole zostanie określona wartość AssignedTo, po uruchomieniu kwerendy program Access wyświetli wszystkie wartości pola wielowartościowego w jednym wierszu. Jeśli natomiast zostanie użyta właściwość Value, tak jak w przypadku pozycji AssignedTo.Value, program Access wyświetli pole wielowartościowe w formie rozwiniętej, umieszczając każdą wartość w osobnym wierszu. Kwerendę wyświetlającą poszczególne wartości można utworzyć, wykonując poniższą procedurę.

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij przycisk Projekt kwerendy.

    Obraz wstążki programu Access

  4. W oknie dialogowym Pokazywanie tabeli kliknij tabelę (w tym przykładzie — tabelę „Problemy”), która zawiera pole wielowartościowe, a następnie kliknij przycisk Dodaj.

  5. Kliknij przycisk Zamknij.

  6. Przeciągnij pola, których chcesz używać (w tym przykładzie — pole wielowartościowe „PrzypisaneDo.Value”), do siatki kwerendy.

  7. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.

Wynik kwerendy pokazujący pozycję Title i poszczególne wartości AssignedTo

Przy tworzeniu kwerendy w widoku projektu program Access automatycznie generuje odpowiednią instrukcję w języku SQL (Structured Query Language). SQL to język kwerend używany w programie Access. Aby przełączyć się do widoku SQL w celu wyświetlenia instrukcji SQL, wykonaj poniższą procedurę.

  1. Na karcie Projektowanie w grupie Wyniki kliknij strzałkę pod przyciskiem Widok, aby wyświetlić menu Widok.

  2. Kliknij polecenie Widok SQL.

Instrukcja SQL ma następującą postać:

SELECT Issues.Title, 
Issues.AssignedTo.Value
FROM Issues;

Początek strony

Opis wartości powiązanej i wartości wyświetlanej pola odnośnika

Pole wielowartościowe jest polem odnośnika. Pole odnośnika to takie pole w tabeli, którego wartość jest pobierana z innej tabeli lub kwerendy albo z listy wartości. Od kilku wersji program Access obsługiwał jednowartościowe pola odnośników. Nowością w programie Office Access 2007 są wielowartościowe pola odnośników. Pole odnośnika stosuje się po to, aby zastąpić wyświetlanie liczby, na przykład identyfikatora (lub innej wartości klucza obcego), informacjami bardziej znaczącymi, na przykład nazwą. Na przykład zamiast wyświetlać numer identyfikacyjny kontaktu, program Access może wyświetlić nazwę kontaktu. Numer identyfikacyjny kontaktu to wartość powiązana. Jest ona automatycznie wyszukiwana w tabeli lub kwerendzie źródłowej i zastępowana nazwą kontaktu. Nazwa kontaktu to wartość wyświetlana.

Tak jak w przypadku jednowartościowego pola odnośnika mającego wartość wyświetlaną i wartość powiązaną, wielowartościowe pole odnośnika ma wartości wyświetlane, widoczne w interfejsie użytkownika, oraz wartości powiązane, przechowywane w tabeli. W przypadku każdego wpisu w polu wielowartościowym wartość wyświetlana jest wyszukiwana w odniesieniu do wartości powiązanej.

Oznacza to, że program Access często wyświetla wyszukaną wartość wyświetlaną, która różni się od wartości powiązanej przechowywanej w polu. W poprzednim przykładzie, w którym użyte było pole AssignedTo, w polu tym był przechowywany zestaw wartości identyfikatorów pracowników z kwerendy Contacts Extended (Kontakty — dane rozszerzone). Kwerenda Contacts Extended została wybrana jako źródło wierszy podczas tworzenia pola wielowartościowego.

Te identyfikatory pracowników to wartości powiązane. Jednak ponieważ pole AssignedTo jest polem odnośnika, program Access w wyniku kwerendy wyświetla zestaw wartości wyszukanych na podstawie odnośnika — w tym przypadku nazwy kontaktów. Nazwy kontaktów to wartości wyświetlane.

Arkusz danych z wartościami wyświetlanymi oraz arkusz danych z wartościami powiązanymi

1. Wartości wyświetlane

2. Wartości powiązane

Właściwości odnośnika pola wielowartościowego można wyświetlić w widoku projektu. Można to zrobić w następujący sposób:

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

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

  3. W okienku nawigacji kliknij prawym przyciskiem myszy tabelę, w której przechowywane jest pole wielowartościowe.

  4. Kliknij polecenie Widok projektu.

  5. Kliknij pole wielowartościowe (na przykład pole AssignedTo).

  6. W obszarze Właściwości pola kliknij kartę Odnośnik.

Właściwości wielowartościowego pola odnośnika

Ważne jest zrozumienie różnicy między wartością wyświetlaną a wartością powiązaną pola. Domyślnie w widoku arkusza danych automatycznie pokazywana jest wartość wyświetlana. Jednak to wartość powiązana jest wartością przechowywaną, stosowaną w kryteriach kwerend i domyślnie używaną przez program Access w sprzężeniach z innymi tabelami.

Początek strony

Jak wyświetlić wartość powiązaną w kwerendzie

Domyślnie w widoku arkusza danych automatycznie pokazywana jest wartość wyświetlana. Podczas tworzenia kwerendy można zastąpić to zachowanie, tak aby pokazać wartość powiązaną. Wymagane czynności przedstawiono w poniższej procedurze:

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij przycisk Projekt kwerendy.

    Obraz wstążki programu Access

  4. W oknie dialogowym Pokazywanie tabeli kliknij tabelę (w tym przykładzie — tabelę „Problemy”), która zawiera pole wielowartościowe, a następnie kliknij przycisk Dodaj.

  5. Kliknij przycisk Zamknij.

  6. Przeciągnij odpowiednie pola do siatki projektu kwerendy. W tym przykładzie przeciągnij do siatki kwerendy pole Title i pole wielowartościowe o nazwie AssignedTo.Value.

  7. Kliknij pole AssignedTo.Value w siatce kwerendy, aby pole to uzyskało fokus.

  8. Na karcie Projektowanie w grupie Pokazywanie/ukrywanie kliknij przycisk Arkusz właściwości.

  9. W arkuszu właściwości na karcie Odnośnik we właściwości Typ formantu wybierz pozycję Pole tekstowe.

Właściwość typu formantu w projekcie kwerendy

Zmiana właściwości typu formantu na Pole tekstowe powoduje wyłączenie normalnego zachowania kolumny odnośnika, skutkiem czego zamiast wartości wyświetlanej pojawia się wartość powiązana.

Wartość powiązana wyświetlona w wyniku kwerendy

Początek strony

Wprowadzanie kryteriów prostej kwerendy dla pola wielowartościowego

Przypuśćmy, że trzeba wyświetlić problemy przydzielone do pracownika „Kelly Rollin”. Można wprowadzić kryteria kwerendy w wierszu Kryteria w siatce kwerendy, ale wprowadzając kryteria dotyczące pola odnośnika, należy wprowadzić wartość powiązaną, a nie wyświetlaną. W tym przypadku można ustalić, że wartość powiązana odpowiadająca pozycji Kelly Rollin to 6. Jest to wartość klucza podstawowego, która w kwerendzie Contacts Extened odpowiada pozycji Kelly.

Aby utworzyć kwerendę wyświetlającą problemy przydzielone do pozycji Kelly:

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij przycisk Projekt kwerendy.

    Obraz wstążki programu Access

  4. W oknie dialogowym Pokazywanie tabeli kliknij tabelę (w tym przykładzie — tabelę „Problemy”), która zawiera pole wielowartościowe, a następnie kliknij przycisk Dodaj.

  5. Kliknij przycisk Zamknij.

  6. Przeciągnij odpowiednie pola do siatki kwerendy. W tym przykładzie przeciągnij pole Title do pierwszej kolumny w siatce. Następnie przeciągnij pole AssignedTo do drugiej kolumny.

  7. Na karcie siatki kwerendy w obszarze AssignedTo w wierszu Kryteria wprowadź wartość 6. Zwróć uwagę, że wprowadzasz wartość powiązaną, a nie wyświetlaną.

    Siatka kwerendy z kryteriami w polu wielowartościowym

  8. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom, aby uruchomić kwerendę.

Po uruchomieniu kwerendy jej wynik zostanie wyświetlony w widoku arkusza danych. Zwróć uwagę, że kwerenda zwraca tylko wiersze, w których występuje pozycja „Kelly Rollin”.

Wynik kwerendy, w którym wartość AssignedTo zawiera liczbę 6

Przy tworzeniu kwerendy w widoku projektu program Access automatycznie generuje odpowiednią instrukcję w języku SQL (Structured Query Language). SQL to język kwerend używany w programie Access. Aby przełączyć się do widoku SQL w celu wyświetlenia instrukcji SQL, wykonaj poniższą procedurę.

  1. Na karcie Projektowanie w grupie Wyniki kliknij strzałkę pod przyciskiem Widok, aby wyświetlić menu Widok.

  2. Kliknij polecenie Widok SQL.

Instrukcja SQL ma następującą postać:

SELECT Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

Wyszukiwanie tekstu zamiast numeru identyfikacyjnego

Czasami wprowadzanie numerów identyfikacyjnych może być uciążliwe i użytkownik jako wyszukiwaną wartość woli wprowadzić imię i nazwisko „Kelly Rollin”. Aby takie wyszukiwanie się powiodło, wynik kwerendy musi zawierać pole z imieniem i nazwiskiem w postaci tekstowej. Dzięki temu będzie można w tym polu wyszukać ciąg „Kelly Rollin”.

Nie można użyć pola AssignedTo.Value, ponieważ jego wartością powiązaną jest identyfikator, a więc w celu odfiltrowania tego pola należy wprowadzić właśnie identyfikator.

W tym przykładzie pole nazwy kontaktu nie znajduje się w tabeli, ale w kwerendzie źródłowej, która dostarcza wartości dla pola wielowartościowego AssignedTo. Można określić sprzężenie między tabelą lub kwerendą źródłową pola wielowartościowego a tabelą zawierającą pole wielowartościowe, aby do wyników kwerendy dołączyć określone pole z tabeli lub kwerendy źródłowej (w tym przykładzie pole nazwy kontaktu). Następnie można przeszukać tylko to pole, a nie pole wielowartościowe.

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij przycisk Projekt kwerendy.

    Obraz wstążki programu Access

  4. W oknie dialogowym Pokazywanie tabeli kliknij tabelę, która zawiera pole wielowartościowe (w tym przykładzie tabelę Issues), a następnie kliknij przycisk Dodaj.

  5. W oknie dialogowym Pokazywanie tabeli kliknij kartę Kwerendy, następnie kliknij kwerendę, która jest źródłem pola wielowartościowego (w tym przykładzie kwerendę Contacts Extended), a następnie kliknij przycisk Dodaj.

  6. Kliknij przycisk Zamknij.

  7. Przeciągnij odpowiednie pola do siatki kwerendy. W tym przykładzie przeciągnij pole Title z tabeli Issues do pierwszej kolumny w siatce. Następnie przeciągnij pole Contact Name (Nazwa kontaktu) z kwerendy Contacts Extended do drugiej kolumny i wyczyść pole wyboru Pokaż. Następnie przeciągnij pole AssignedTo do trzeciej kolumny.

  8. Jeśli między polem identyfikatora w kwerendzie Contacts Extended a polem AssignedTo.Value nie jest widoczna linia sprzężenia, tak jak to przedstawiono poniżej, kliknij i przeciągnij wskaźnik myszy od pola identyfikatora w kwerendzie Contacts Extended do pola AssignedTo.Value w tabeli Issues.

    Zostanie wyświetlona linia sprzężenia.

    Jeśli są widoczne inne linie sprzężenia, usuń je. Aby usunąć linię sprzężenia, wyróżnij ją kliknięciem, a następnie naciśnij klawisz Delete.

  9. W obszarze Contact Name siatki kwerendy w wierszu Kryteria wprowadź ciąg "Kelly Rollin".

    Siatka kwerendy z kryterium AssignedTo zawierającym ciąg "Kelly Rollin"

  10. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom, aby uruchomić kwerendę.

Po uruchomieniu kwerendy jej wynik zostanie wyświetlony w widoku arkusza danych. Zwróć uwagę, że w wyniku kwerendy pokazane są tylko wiersze, w których występuje pozycja „Kelly Rollin”. Ta technika jest skuteczna, ponieważ sprzężenie między identyfikatorem w tabeli lub kwerendzie źródłowej a polem AssignedTo.Value zwraca osobny wiersz dla każdej wartości pola wielowartościowego, a ponadto każdy wiersz zawiera pole Contact Name z imieniem i nazwiskiem. Ponieważ pole Contact Name jest polem obliczeniowym, a nie polem odnośnika, nie ma wartości powiązanej i wartości wyświetlanej. Jest tylko jedna wartość — nazwa kontaktu. Dlatego można podać odpowiedni tekst, w tym przypadku „Kelly Rollin”.

Wynik kwerendy z pozycją AssignedTo zawierającą ciąg "Kelly Rollin"

Przy tworzeniu kwerendy w widoku projektu program Access automatycznie generuje odpowiednią instrukcję w języku SQL (Structured Query Language). SQL to język kwerend używany w programie Access. Aby przełączyć się do widoku SQL w celu wyświetlenia instrukcji SQL, wykonaj poniższą procedurę.

  1. Na karcie Projektowanie w grupie Wyniki kliknij strzałkę pod przyciskiem Widok, aby wyświetlić menu Widok.

  2. Kliknij polecenie Widok SQL.

Instrukcja SQL ma następującą postać:

SELECT Issues.Title, Issues.AssignedTo 
FROM [Contacts Extended] INNER JOIN Issues ON
[Contacts Extended].ID = Issues.AssignedTo.Value
WHERE ((([Contacts Extended].[Contact Name])=
"Kelly Rollin"));

Początek strony

Wyszukiwanie więcej niż jednej wartości w polu wielowartościowym

Czasami może być konieczne wyszukanie dopasowania więcej niż jednej wartości. Przypuśćmy, że trzeba wyświetlić problemy, w których pole AssignedTo zawiera zarówno wartość „Kelly Rollin”, jak i wartość „Lisa Miller”. Wartość powiązana dla pozycji Kelly Rollin to 6, a dla pozycji Lisa Miller — 10. Aby określić kilka kryteriów dla pola wielowartościowego, można użyć operatorów AND i OR.

Aby utworzyć kwerendę, wykonaj poniższą procedurę.

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij polecenie Projekt kwerendy.

  4. W oknie dialogowym Pokazywanie tabeli kliknij tabelę, która zawiera pole wielowartościowe (w tym przykładzie tabelę Issues), a następnie kliknij przycisk Dodaj.

  5. Kliknij przycisk Zamknij.

  6. Przeciągnij odpowiednie pola do siatki kwerendy. W tym przykładzie przeciągnij pole Title do pierwszej kolumny w siatce. Następnie przeciągnij pole AssignedTo do drugiej kolumny.

  7. W siatce kwerendy w obszarze AssignedTo w wierszu kryteria wpisz 6-10.

    Kwerenda pokazująca użycie operatora AND w polu wielowartościowym

  8. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom, aby uruchomić kwerendę.

Po uruchomieniu kwerendy jej wynik zostanie wyświetlony w widoku arkusza danych.

Wynik kwerendy pokazujący użycie operatora AND w polu wielowartościowym

W wyniku są wyświetlane tylko te problemy, do których przydzielone są zarówno Kelly Rollin, jak i Lisa Miller. Przy tworzeniu kwerendy w widoku projektu program Access automatycznie generuje odpowiednią instrukcję w języku SQL (Structured Query Language). SQL to język kwerend używany w programie Access. Aby przełączyć się do widoku SQL w celu wyświetlenia instrukcji SQL, wykonaj poniższą procedurę.

  1. Na karcie Projektowanie w grupie Wyniki kliknij strzałkę pod przyciskiem Widok, aby wyświetlić menu Widok.

  2. Kliknij polecenie Widok SQL.

Instrukcja SQL ma następującą postać:

SELECT Issues.Title, Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6
And (Issues.AssignedTo.Value)=10));

Używanie operatora OR zamiast operatora AND

Przypuśćmy, że trzeba zmienić kwerendę w taki sposób, aby wyświetlane były wiersze, w których występuje pozycja „Kelly Rollin” lub pozycja „Lisa Miller”. Można przeprowadzić edycję instrukcji SQL w celu użycia operatora OR zamiast operatora AND. Wówczas instrukcja powinna mieć następującą postać:

SELECT Issues.Title, Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6
Or (Issues.AssignedTo.Value)=10));

Po uruchomieniu kwerendy jej wynik zostanie wyświetlony w widoku arkusza danych.

Kwerenda z użyciem operatora Or w polu wielowartościowym

W wyniku są wyświetlane tylko te problemy, do których przydzielone są albo Kelly Rollin, albo Lisa Miller.

Początek strony

Opis skutków dołączenia pola .Value do listy pól

Ważne jest zrozumienie skutków dołączenia pola .Value do listy kolumn wyjściowych kwerendy (listy SELECT). Pierwszym krokiem podczas przetwarzania kwerendy jest utworzenie zestawu wyników bez skutków działania filtru lub klauzuli WHERE. Do tego początkowego zestawu jest następnie stosowany filtr. Dlatego pomocne jest wyobrażenie sobie procesu, w którym najpierw generowany jest ten zestaw wyników, po czym następuje jego ograniczenie przez filtr w klauzuli WHERE. Rozważmy następujący przykład:

SELECT Issues.Title, AssignedTo
FROM Issues
WHERE NOT AssignedTo.Value = 3;

Początkowy zestaw wyników przed filtrowaniem może wyglądać następująco:

Title

AssignedTo

Problem 1

David Hamilton, Eva Valverde

Problem 2

Kathleen Gail Jensen, Kelly Rollin, Susan Burk, Lisa Miller

Problem 3

Jesper Aaberg, Kelly Rollin, Eva Valverde, Tom Michaels

Problem 4

Wei Yu, Lisa Miller

Problem 5

David Hamilton, Kathleen Gail Jensen

Problem 6

Sanjay Jacob, Kelly Rollin

Problem 7

Jesper Aaberg, Susan Burk

Problem 8

David Hamilton

Problem 9

Kelly Rollin, Lisa Miller

Problem 10

Eva Valverde, Tom Michaels

Następnie początkowy zestaw wyników jest przetwarzany na etapie filtrowania, który powoduje wybranie wierszy niezawierających pozycji David Hamilton, mającej identyfikator 3:

Title

AssignedTo

Problem 2

Kathleen Gail Jensen, Kelly Rollin, Susan Burk, Lisa Miller

Problem 3

Jesper Aaberg, Kelly Rollin, Eva Valverde, Tom Michaels

Problem 4

Wei Yu, Lisa Miller

Problem 6

Sanjay Jacob, Kelly Rollin

Problem 7

Jesper Aaberg, Susan Burk

Problem 9

Kelly Rollin, Lisa Miller

Problem 10

Eva Valverde, Tom Michaels

Teraz rozważmy drugi przykład — w tym przykładzie lista pól zawiera pole .Value. Najpierw zwróć uwagę, jak na skutek obecności pola .Value zmienia się początkowy zestaw wyników, przed filtrowaniem:

SELECT Issues.Title, AssignedTo.Value
FROM Issues
WHERE NOT AssignedTo.Value = 3;

Początkowy zestaw wyników przed filtrowaniem wygląda następująco:

Title

AssignedTo.Value

Problem 1

David Hamilton

Problem 1

Eva Valverde

Problem 2

Kathleen Gail Jensen

Problem 2

Kelly Rollin

Problem 2

Lisa Miller

Problem 2

Susan Burk

Problem 3

Eva Valverde

Problem 3

Jesper Aaberg

Problem 3

Kelly Rollin

Problem 3

Tom Michaels

Problem 4

Lisa Miller

Problem 4

Wei Yu

Problem 5

David Hamilton

Problem 5

Kathleen Gail Jensen

Problem 6

Kelly Rollin

Problem 6

Sanjay Jacob

Problem 7

Jesper Aaberg

Problem 7

Susan Burk

Problem 8

David Hamilton

Problem 9

Kelly Rollin

Problem 9

Lisa Miller

Problem 10

Tom Michaels

Problem 10

Eva Valverde

Następnie początkowy zestaw wyników jest przetwarzany na etapie filtrowania, który powoduje wybranie wierszy niezawierających pozycji David Hamilton, mającej identyfikator 3:

Title

AssignedTo.Value

Problem 1

Eva Valverde

Problem 2

Kathleen Gail Jensen

Problem 2

Kelly Rollin

Problem 2

Lisa Miller

Problem 2

Susan Burk

Problem 3

Eva Valverde

Problem 3

Jesper Aaberg

Problem 3

Kelly Rollin

Problem 3

Tom Michaels

Problem 4

Lisa Miller

Problem 4

Wei Yu

Problem 5

Kathleen Gail Jensen

Problem 6

Kelly Rollin

Problem 6

Sanjay Jacob

Problem 7

Jesper Aaberg

Problem 7

Susan Burk

Problem 9

Kelly Rollin

Problem 9

Lisa Miller

Problem 10

Tom Michaels

Problem 10

Eva Valverde

Wyobrażenie sobie zestawu wyników przed i po zastosowaniu filtru ułatwia poprawne przewidzenie wyniku kwerendy.

Początek strony

Liczenie, grupowanie i korzystanie z innych funkcji agregujących

Czasami trzeba wykonać obliczenia na grupach wartości przechowywanych w polu wielowartościowym. Na przykład ile problemów jest przydzielonych do każdej osoby? Ile osób jest przydzielonych do każdego problemu? Tego typu obliczenia można wykonywać, stosując funkcję agregującą w kwerendzie Sumy.

Funkcja agregująca wykonuje obliczenie na zestawie wartości, a następnie zwraca pojedynczą wartość. Suma, Policz i Średnia to trzy przykłady funkcji agregujących, za pomocą których można obliczać sumy. Można obliczać sumy wszystkich rekordów lub grup rekordów. Aby utworzyć podsumowanie według grup, należy w siatce kwerendy wybrać pole lub pola jako kryteria grupowania.

W poniższej procedurze pokazano, jak utworzyć kwerendę zliczającą problemy przydzielone do każdej osoby.

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij przycisk Projekt kwerendy.

    Obraz wstążki programu Access

  4. W oknie dialogowym Pokazywanie tabeli kliknij tabelę (w tym przykładzie — tabelę „Problemy”), która zawiera pole wielowartościowe, a następnie kliknij przycisk Dodaj.

  5. Kliknij przycisk Zamknij.

  6. Przeciągnij odpowiednie pola do siatki kwerendy. W tym przykładzie przeciągnij pole AssignedTo.Value do pierwszej kolumny w siatce. Następnie przeciągnij pole Title do drugiej kolumny.

  7. Na karcie Projektowanie w grupie Pokazywanie/ukrywanie kliknij przycisk Sumy.

    W siatce kwerendy zostanie wyświetlony wiersz Total (Podsumowanie). W komórce Total pod każdym polem kwerendy jest domyślnie wyświetlana pozycja Group By (Grupuj według).

  8. W siatce kwerendy w obszarze Title w wierszu Total (Podsumowanie) kliknij pozycję Count (Policz).

  9. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom, aby uruchomić kwerendę.

Podczas projektowania kwerendy określa się, które pola mają być używane do grupowania, a które do sumowania (obliczeń). W tym przykładzie do grupowania zostało użyte pole AssignedTo.Value, a do obliczania sumy — pole Title. W polach, które mają być używane do grupowania, należy wybrać pozycję Group By w wierszu Title. W polach, które mają być używane do obliczania sumy, należy wybrać typ obliczenia, na przykład Sum (Suma) lub Avg (Średnia). Zwróć uwagę, że jeśli do grupowania jest używane pole wielowartościowe, należy użyć pola .Value. W tym przykładzie do grupowania nie można użyć pola AssignedTo — należy użyć pola AssignedTo.Value. Ponadto pola .Value należy użyć, jeśli pole wielowartościowe jest używane do sortowania.

Uwaga : Gdy pole wielowartościowe jest używane do grupowania, należy użyć pola .Value. Gdy pole wielowartościowe jest używane do sortowania, również należy użyć pola .Value.

Po uruchomieniu kwerendy jej wynik zostanie wyświetlony w widoku arkusza danych.

Kwerenda licząca problemy przydzielone do każdej osoby

Aby zobaczyć instrukcję SQL tej kwerendy, przełącz się do widoku SQL, wykonując poniższą procedurę.

  1. Na karcie Projektowanie w grupie Wyniki kliknij strzałkę pod przyciskiem Widok, aby wyświetlić menu Widok.

  2. Kliknij polecenie Widok SQL.

Instrukcja SQL ma następującą postać:

SELECT Issues.AssignedTo.Value, 
Count(Issues.Title) AS CountOfTitle
FROM Issues
GROUP BY Issues.AssignedTo.Value;

Przypuśćmy, że trzeba dowiedzieć się, ile osób jest przydzielonych do każdego problemu. Można wówczas ustawić grupowanie według tytułu i wybrać opcję Count (Policz) jako obliczenie w polu wielowartościowym. Aby utworzyć kwerendę, wykonaj poniższą procedurę.

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij przycisk Projekt kwerendy.

    Obraz wstążki programu Access

  4. W oknie dialogowym Pokazywanie tabeli kliknij tabelę (w tym przykładzie — tabelę „Problemy”), która zawiera pole wielowartościowe, a następnie kliknij przycisk Dodaj.

  5. Kliknij przycisk Zamknij.

  6. Przeciągnij odpowiednie pola do siatki kwerendy. W tym przykładzie przeciągnij pole Title do pierwszej kolumny w siatce. Następnie przeciągnij pole AssignedTo do drugiej kolumny.

  7. Na karcie Projektowanie w grupie Pokazywanie/ukrywanie kliknij przycisk Sumy.

    W siatce kwerendy zostanie wyświetlony wiersz Total. Domyślnie w komórce Total pod polem Title w kwerendzie wyświetlana jest pozycja Group By. Pod polem AssignedTo w komórce Total jest domyślnie wyświetlana pozycja Expression (Wyrażenie) — jest tak dlatego, że nie można wykonać operacji grupowania w polu wielowartościowym. Jest to możliwe tylko w polu wielowartościowym .Value.

  8. W siatce kwerendy w obszarze AssignedTo w wierszu Total kliknij pozycję Count.

  9. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom, aby uruchomić kwerendę.

Po uruchomieniu kwerendy jej wynik zostanie wyświetlony w widoku arkusza danych.

Wynik kwerendy pokazujący liczbę osób przypadających na problem

Aby zobaczyć instrukcję SQL tej kwerendy, przełącz się do widoku SQL, wykonując poniższą procedurę.

  1. Na karcie Projektowanie w grupie Wyniki kliknij strzałkę pod przyciskiem Widok, aby wyświetlić menu Widok.

  2. Kliknij polecenie Widok SQL.

Instrukcja SQL ma następującą postać:

SELECT Issues.Title, 
Count(Issues.AssignedTo) AS CountOfAssignedTo
FROM Issues
GROUP BY Issues.Title;

Uwaga : W tej instrukcji SELECT języka SQL nie ma znaczenia, czy zostanie użyty zapis Count(Issues.AssignedTo), czy Count(Issues.AssignedTo.Value) — wynik będzie ten sam.

Początek strony

Używanie kwerendy dołączającej z polem wielowartościowym

Kwerenda dołączająca umożliwia wstawienie pojedynczej wartości do pola wielowartościowego. Przypuśćmy na przykład, że trzeba dodać pozycję „Kelly Rollin” do pola wielowartościowego AssignedTo związanego z określonym problemem. Należy najpierw ustalić wartości klucza podstawowego tego problemu oraz rekordu kontaktu Kelly. Załóżmy, że problemowi odpowiada wartość 10, a kontaktowi Kelly — wartość 6.

W poniższej procedurze pokazano, jak utworzyć kwerendę.

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij przycisk Projekt kwerendy.

    Obraz wstążki programu Access

  4. W oknie dialogowym Pokazywanie tabeli kliknij przycisk Zamknij.

  5. Na karcie Projektowanie w grupie Wyniki kliknij strzałkę pod przyciskiem Widok, aby wyświetlić menu Widok.

  6. Kliknij polecenie Widok SQL.

  7. W widoku SQL wpisz następującą instrukcję SQL:

    INSERT INTO Issues ( AssignedTo.[Value] )
    VALUES (6)
    WHERE ID = 10;
  8. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom, aby uruchomić kwerendę.

    W programie Access może pojawić się pytanie, czy chcesz dołączyć wybrany wiersz. Kliknij przycisk Tak, aby wstawić wiersz, lub przycisk Nie, aby anulować.

Pozycja Kelly zostanie wyświetlona w polu AssignedTo związanym z danym problemem. Jest to jedyna forma kwerendy dołączającej, która działa z polem wielowartościowym.

Uwaga : Kwerenda dołączająca to kwerenda, za pomocą której dodaje się rekordy z jednej tabeli do innej istniejącej tabeli. W programie Office Access 2007 nie można użyć kwerendy dołączającej, która odwołuje się do tabeli zawierającej pole wielowartościowe. Następująca kwerenda jest na przykład nieprawidłowa:

INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;

Początek strony

Używanie kwerendy aktualizującej z polem wielowartościowym

Kwerenda aktualizująca umożliwia zmianę wartości w istniejących rekordach. Gdy kwerenda aktualizująca jest używana do zaktualizowania tabeli zawierającej pola wielowartościowe, można zmienić pojedynczą wartość w polu wielowartościowym na inną wartość. Przypuśćmy, że trzeba zaktualizować pole wielowartościowe AssignedTo związane z określonym problemem — na przykład w celu zastąpienia pozycji „Kelly Rollin” pozycją „Lisa Miller”. Najpierw należy ustalić wartości klucza podstawowego danego problemu oraz rekordów kontaktów Kelly i Lisa. Przypuśćmy, że problemowi odpowiada wartość 8, kontaktowi Kelly — wartość 6, a kontaktowi Lisa — wartość 10.

W poniższej procedurze pokazano, jak utworzyć kwerendę.

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij polecenie Projekt kwerendy.

  4. W oknie dialogowym Pokazywanie tabeli kliknij przycisk Zamknij.

  5. Na karcie Projektowanie w grupie Wyniki kliknij strzałkę pod przyciskiem Widok, aby wyświetlić menu Widok.

  6. Kliknij polecenie Widok SQL.

  7. W widoku SQL wpisz następującą instrukcję SQL:

    UPDATE Issues 
    SET Issues.AssignedTo.Value = 10
    WHERE (((Issues.AssignedTo.Value)=6)
    AND ((Issues.ID)=8));

    Uwagi : 

    • Należy zawsze dołączyć klauzulę WHERE identyfikującą tylko te rekordy, które mają zostać zaktualizowane. W przeciwnym razie aktualizacja obejmie rekordy, które nie miały być zmieniane. Kwerenda aktualizująca bez klauzuli WHERE zmienia każdy wiersz w tabeli.

    • Można określić jedną wartość do zmiany.

  8. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom, aby uruchomić kwerendę.

    W programie Access może pojawić się pytanie, czy chcesz zaktualizować rekord. Kliknij przycisk Tak, aby zaktualizować wiersz, lub przycisk Nie, aby anulować.

Pozycja Lisa Miller zostanie wyświetlona zamiast pozycji Kelly Rollin w polu AssignedTo danego problemu.

Początek strony

Używanie kwerendy usuwającej z polem wielowartościowym

Kwerenda usuwająca umożliwia usuwanie rekordów z tabeli. Pracując z tabelą zawierającą pole wielowartościowe, można użyć kwerendy usuwającej w celu usunięcia rekordów zawierających określoną wartość z pola wielowartościowego lub w celu usunięcia określonej wartości pochodzącej z pola wielowartościowego we wszystkich rekordach w tabeli.

Przypuśćmy, że trzeba usunąć pozycję „Kelly Rollin” z pola AssignedTo w całej tabeli. Aby utworzyć kwerendę, wykonaj poniższą procedurę.

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

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

  3. Na karcie Tworzenie w grupie Inne kliknij polecenie Projekt kwerendy.

  4. W oknie dialogowym Pokazywanie tabeli kliknij przycisk Zamknij.

  5. Na karcie Projektowanie w grupie Wyniki kliknij strzałkę pod przyciskiem Widok, aby wyświetlić menu Widok.

  6. Kliknij polecenie Widok SQL.

  7. W widoku SQL wpisz następującą instrukcję SQL:

    DELETE Issues.AssignedTo.Value
    FROM Issues
    WHERE (((Issues.AssignedTo.Value)=6));
  8. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom, aby uruchomić kwerendę.

    W programie Access może pojawić się pytanie, czy chcesz usunąć rekordy. Kliknij przycisk Tak, aby usunąć rekordy, lub przycisk Nie, aby anulować.

Poniższa przykładowa kwerenda nie usuwa żadnych rekordów z tabeli Issues. Usuwa ona wartość pochodzącą z pola wielowartościowego AssignedTo w każdym rekordzie, w którym ta wartość występuje. Aby usunąć rekordy z tabeli Issues, nie należy określać pola po klauzuli DELETE w instrukcji SQL. Aby na przykład usunąć wszystkie problemy, w których lista osób z przydziałem do problemu zawiera pozycję „Kelly Rollin”, należy wprowadzić następującą instrukcję SQL:

DELETE 
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

Uwaga : Przy usuwaniu rekordów za pomocą kwerendy usuwającej należy zachować ostrożność. Usuniętych rekordów nie można odzyskać.

Początek strony

Uwaga : Zrzeczenie dotyczące tłumaczenia maszynowego: Ten artykuł został przetłumaczony przez system komputerowy bez interwencji człowieka. Firma Microsoft udostępnia te tłumaczenia maszynowe, aby ułatwić użytkownikom, którzy nie znają języka angielskiego, korzystanie z zawartości dotyczącej produktów, usług i technologii firmy Microsoft. Ponieważ ten artykuł został przetłumaczony maszynowo, może zawierać błędy w słownictwie, składniowe lub gramatyczne.

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.

×