W programie Access można utworzyć pole wielowartościowe z wieloma wartościami (maksymalnie 100). Można również utworzyć pole odnośnika, które wyświetla przyjazną dla użytkownika wartość powiązaną z wartością w innym źródle danych. Podczas tworzenia zapytania dotyczącego pola odnośnika lub pola wielowartościowego występują unikatowe zagadnienia. Aby uzyskać więcej informacji, zobacz Twórca lub usuwanie pola wielowartościowego i Twórca lub usuwanie pola odnośnika.
W tym artykule
Wyświetlanie wartości powiązanej pola odnośnika w zapytaniu
Wartość wyświetlana pola odnośnika jest domyślnie automatycznie wyświetlana w widoku arkusza danych zapytania. Podczas tworzenia zapytania można zastąpić to zachowanie, aby zamiast tego była wyświetlana wartość powiązana. W tym przykładzie załóżmy, że chcesz zobaczyć wartość powiązaną pola odnośnika w tabeli Siedziba główna, która "wyszukuj" nazwę województwo Nowej Anglii.
-
Otwórz zapytanie w widoku projektu.
-
W tym przykładzie dodaj tabele Centrala i NewEngland .
Obie tabele powinny zostać sprzężone.
Aby uzyskać więcej informacji, zobacz Łączenie tabel i zapytań.
-
Przeciągnij pole wraz z polem odnośnika do siatki projektu zapytania. W tym przykładzie dodaj pole Miasto i STAN.NE .
-
Kliknij pole Odnośnik, a następnie na karcie Projektowanie w grupie Pokazywanie/ukrywanie kliknij pozycję Arkusz właściwości. W tym przykładzie użyj pola STAN.NE .
-
W arkuszu właściwości wybierz kartę Odnośnik , a następnie we właściwości Kontrolka wyświetlania wybierz pozycję Pole tekstowe.
Wynik Teraz podczas wyświetlania zapytania w widoku arkusza danych jest wyświetlana odpowiadająca im wartość powiązana wartości wyświetlanej.
Używanie wartości wyświetlanej dla pola odnośnika w zapytaniu
Podczas tworzenia pola odnośnika jest tworzone sprzężenie między wartością powiązaną a wartością Wyświetlana. Chociaż w zapytaniu nie można bezpośrednio użyć wartości Wyświetlanej, można użyć odpowiedniej wartości z innego źródła danych. W tym przykładzie załóżmy, że jako kryterium chcesz użyć wartości wyświetlanej pola odnośnika NEState w tabeli Siedziba główna w zapytaniu.
-
Otwórz zapytanie w widoku projektu.
-
W tym przykładzie dodaj tabele Centrala i NewEngland .
Obie tabele powinny zostać sprzężone. Aby uzyskać więcej informacji, zobacz Łączenie tabel i zapytań.
-
Przeciągnij pola, których chcesz użyć, do siatki zapytania. W tym przykładzie przeciągnij tabelę Miasto z tabeli Siedziba główna do pierwszej kolumny: STAN.NE z tabeli Siedziba główna do drugiej kolumny, a nazwa _ województwo z tabeli NewEngland do trzeciej kolumny.
-
Wyczyść pole wyboru Pokażnazwy województwo w siatce zapytania.
-
W siatce zapytania w obszarze Nazwa_województwo w wierszu Kryteria wprowadź ciąg Vermont.
Kryteria zapytania są oparte na kolumnie Województwo , która oczywiście ma taką samą wartość jak Wartość wyświetlana NEState, ale nie jest wyświetlana w widoku arkusza danych.
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
Wynik Wyświetlany jest tylko wiersz zawierający ciąg Vermont .
Używanie pola wielowartościowego w zapytaniu
Po wyświetleniu pola wielowartościowego w zapytaniu można wyświetlić kompletne pole wielowartościowe zawierające wszystkie wartości rozdzielone przecinkami w jednym wierszu lub spłaszczone dane w osobnym wierszu dla każdej wartości. Załóżmy na przykład, że masz tabelę Problemy , która zawiera pole Tytuł dla każdego problemu i pole AssignedTo z wieloma wartościami, aby przypisać problemy do osób.
Wyświetlanie wszystkich wartości w polu wielowartościowym w jednym wierszu
-
Otwórz zapytanie w widoku projektu.
-
W tym przykładzie dodaj tabelę Problemy .
-
Przeciągnij pola do siatki projektu zapytania. W tym przykładzie przeciągnij pole Tytuł i pole wielowartościowe AssignedTo .
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
Wynik Zgodnie z oczekiwaniami w jednej kolumnie jest wyświetlane pole Tytuł , a w drugiej — pole wielowartościowe AssignedTo :
Wyświetlanie każdej wartości pola wielowartościowego w jednym wierszu (widok spłaszczony)
-
Otwórz zapytanie w widoku projektu.
-
W tym przykładzie dodaj tabelę Problemy .
-
Przeciągnij pola do siatki zapytania. W tym przykładzie przeciągnij pole Tytuł i pole wielowartościowe AssignedTo.Value .
Format <nazwa_pola>. Wartość dołącza właściwość Value jako ciąg . Wartość pola AssignedTo .
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
Wynik Dane są tak spłaszczane, że pole Tytuł jest powtarzane, a każda wartość pola wielowartościowego AssignedTo jest wyświetlana w odpowiednim wierszu:
Dodawanie kryteriów do pola wielowartościowego w zapytaniu
Rozmieszczenie tych samych kryteriów w siatce zapytania w różnych kolumnach siatki ma duży wpływ na wyniki zapytania.
Dodawanie kryteriów, które wyświetlają wszystkie wartości w polu wielowartościowym w jednym wierszu
Program Access najpierw utworzy zestaw wyników, a następnie doda kryteria.
-
Otwórz zapytanie w widoku projektu.
-
W tym przykładzie dodaj tabelę Problemy .
-
Przeciągnij pola do siatki zapytania. W tym przykładzie przeciągnij pole Tytuł , pole wielowartościowe AssignedTo i AssignedTo.Value .
-
Wyczyść pole wyboru Pokaż dla pola AssignedTo.Value w siatce zapytania.
-
W siatce zapytania w obszarze AssignedTo.Value w wierszu Kryteria wprowadź ciąg "NOT "David Hamilton".
Widok SQL jest pomocny:
SELECT Title, AssignedTo FROM Issues WHERE NOT AssignedTo.Value = “David Hamilton”;
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
Wynik Trzy problemy nie przypisane do Davida Hamiltona są wyświetlane w wartości domyślnej.
Dodawanie kryteriów, w których każda wartość jest wyświetlana w polu wielowartościowym w jednym wierszu (widok spłaszczony)
Program Access najpierw utworzy spłaszczony zestaw wyników, a następnie doda kryteria.
-
Otwórz zapytanie w widoku projektu.
-
W tym przykładzie dodaj tabelę Problemy .
-
Przeciągnij pola do siatki zapytania. W tym przykładzie przeciągnij pole Tytuł i pole wielowartościowe AssignedTo.Value .
-
W siatce zapytania w obszarze AssignedTo.Value w wierszu Kryteria wpisz NOT "David Hamilton".
Widok SQL jest pomocny:
SELECT Issues.Title, AssignedTo.Value FROM Issues WHERE NOT AssignedTo.Value = “David Hamilton”
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
Wynik Każdy problem, który nie został przypisany do Davida Hamiltona, jest wyświetlany w spłaszczanej wartości.
Dodawanie wielu kryteriów do pola wielowartościowego w zapytaniu
Czasami trzeba wyszukać dopasowanie na więcej niż jednej wartości wewnątrz pola wielowartościowego. Załóżmy na przykład, że chcesz wyświetlić te problemy, w których zarówno "Kelly Rollin", jak i "Lisa Miller" należą do wartości w polu AssignedTo
-
Otwórz zapytanie w widoku projektu.
-
W tym przykładzie dodaj tabelę Problemy .
-
Przeciągnij pola do siatki zapytania. W tym przykładzie przeciągnij pole Tytuł i pole wielowartościowe AssignedTo .
-
W siatce zapytania w obszarze PrzypisaneDo w wierszu Kryteria wprowadź ciąg "Kelly Rollin" AND "Lisa Miller".
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
Wynik Te dwie kwestie, które są przypisane do "Kelly Rollin" i "Lisa Miller" są wyświetlane.
Grupowanie i zliczanie pola wielowartościowego w zapytaniu
Do wykonywania obliczeń, grupowania i sortowania wartości przechowywanych w polu wielowartościowym należy użyć> nazwa_pola <. Pole wartości. Aby uzyskać więcej informacji na temat zapytań grupowych, zobacz Zliczanie danych przy użyciu zapytania.
Aby zliczyć liczbę problemów przypisanych do każdej osoby
-
Otwórz zapytanie w widoku projektu.
-
W tym przykładzie dodaj tabelę Problemy .
-
Przeciągnij pola, których chcesz użyć, do siatki zapytania. W tym przykładzie przeciągnij pole AssignedTo.Value do pierwszej kolumny, a pole Tytuł do drugiej kolumny.
-
Na karcie Projektowanie w grupie Pokazywanie/ukrywanie kliknij pozycję Sumy.
W siatce zapytania zostanie wyświetlony wiersz Suma . Pole Grupuj według jest domyślnie wyświetlane w komórce Suma poniżej każdego pola w zapytaniu.
-
W siatce zapytania w obszarze Tytuł w wierszu Suma kliknij pozycję Liczba.
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
Wynik Liczba problemów przypisanych do osoby jest wyświetlana w widoku spłaszczonym.
Aby zliczyć liczbę osób przypisanych do poszczególnych problemów
-
Otwórz zapytanie w widoku projektu.
-
W tym przykładzie dodaj tabelę Problemy .
-
Przeciągnij pola, których chcesz użyć, do siatki zapytania. W tym przykładzie przeciągnij pole Tytuł do pierwszej kolumny i przeciągnij pole Przypisane Do do drugiej kolumny.
-
Na karcie Projektowanie w grupie Pokazywanie/ukrywanie kliknij pozycję Sumy.
W siatce zapytania zostanie wyświetlony wiersz Suma . Pole Grupuj według jest domyślnie wyświetlane w komórce Suma pod polem Tytuł w zapytaniu. Wyrażenie jest domyślnie wyświetlane w komórce Suma pod polem AssignedTo , ponieważ nie można wykonać operacji Grupuj według bezpośrednio na polu wielowartościowym, tylko <nazwa_pola>. Pole wartości.
-
W siatce zapytania w obszarze Przypisane Do w wierszu Suma kliknij pozycję Liczba.
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
Wynik Liczba osób przypisanych do danego problemu jest wyświetlana w widoku spłaszczonym.
Używanie zapytania dołączania z polem wielowartościowym
Za pomocą zapytania dołączanego można wstawić pojedynczą wartość w polu wielowartościowym. Załóżmy na przykład, że chcesz dodać tekst "Tomasz Michalscy" do pola AssignedTo z wieloma wartościami w tabeli Problemy.
Uwaga Jest to jedyny typ zapytania dołączania, które współdziała z polem wielowartościowym.
-
Otwórz zapytanie w widoku projektu.
-
Dodaj tabelę Problemy .
-
Na karcie Projektowanie kliknij pozycję Dołącz.
-
W oknie dialogowym Dołączanie wybierz pozycję Problemy, a następnie kliknij przycisk OK.
-
W wierszu Dołącz do siatki projektu wybierz pozycję AssignedTo.Value.
-
W wierszu Pole siatki projektu wprowadź tekst "Michał Tomasz".
-
Aby ograniczyć operację dołączania do określonych problemów, dodaj pole do siatki projektu, takie jak Tytuł, usuń tytuł z wiersza Dołącz do , a następnie wprowadź kryteria, takie jak "Problem 3".
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
W programie Access może zostać wyświetlony monit o potwierdzenie dołączenia zaznaczonego wiersza. Kliknij przycisk Tak , aby wstawić wiersz, lub kliknij przycisk Nie , aby anulować.
Wynik "Tomasz Michalszek" jest teraz dodawany do pola AssignedTo dla problemu 3.
Ważne Nie można użyć zapytania dołączającego odwołującego się do tabeli zawierającej pole wielowartościowe. Na przykład następujące zapytanie jest nieprawidłowe:
INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;
Używanie zapytania aktualizującego z polem wielowartościowym
Za pomocą zapytania aktualizującego można zmienić jedną wartość w polu wielowartościowym na inną wartość. W tym przykładzie chcesz zaktualizować pole wielowartościowe AssignedTo, aby zamienić pole "Kelly Rollin" na "Aneta Duda".
-
Otwórz zapytanie w widoku projektu.
-
Dodaj tabelę Problemy .
-
Na karcie Projektowanie kliknij pozycję Aktualizuj.
-
Przeciągnij pole AssignedTo.Value do siatki Kwerenda.
-
W wierszu Aktualizacja do wpisz "Lisa Miller".
-
W wierszu Kryteria wprowadź tekst "Kelly Rollin".
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
W programie Access może zostać wyświetlony monit o potwierdzenie dołączenia zaznaczonego wiersza. Kliknij przycisk Tak , aby wstawić wiersz, lub kliknij przycisk Nie , aby anulować.
Wynik Lisa Miller zastępuje Kelly Rollin w polu AssignedTo dla wszystkich odpowiednich problemów.
Używanie zapytania usuwające z polem wielowartościowym
Podczas pracy z tabelą zawierającą pole wielowartościowe można usuwać rekordy zawierające określoną wartość w polu wielowartościowym lub usuwać określoną wartość z pola wielowartościowego we wszystkich rekordach w tabeli. W poniższym przykładzie załóżmy, że chcesz usunąć "Dawida Hamiltona" z tabeli Problemy.
Ważne W przypadku usunięcia pola wielowartościowego zawierającego dane za pomocą zapytania usuwanego te dane zostaną trwale zgubione — nie można cofnąć usunięcia. Dlatego należy utworzyć kopię zapasową bazy danych przed usunięciem jakichkolwiek pól tabeli lub innych części bazy danych.
Aby usunąć określoną wartość z pola wielowartościowego we wszystkich rekordach
-
Na karcie Tworzenie w grupie Kwerendy kliknij pozycję Projekt kwerendy.
-
Dodaj tabelę Problemy .
-
Otwórz zapytanie w widoku projektu.
-
Na karcie Projektowanie kliknij pozycję Usuń.
-
W wierszu Kryteria wprowadź ciąg "David Hamilton".
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
W programie Access może zostać wyświetlony monit o potwierdzenie usunięcia rekordów. Kliknij przycisk Tak , aby usunąć rekordy, lub kliknij przycisk Nie , aby anulować.
Wynik David Hamilton jest usuwany ze wszystkich odpowiednich problemów.
Usuwanie rekordów zawierających określoną wartość w polu wielowartościowym
-
Na karcie Tworzenie w grupie Kwerendy kliknij pozycję Projekt kwerendy.
-
Dodaj tabelę Problemy .
-
Otwórz zapytanie w widoku projektu.
-
Na karcie Projektowanie kliknij pozycję Usuń grupę.
-
Na karcie Projektowanie w grupie Wyniki kliknij strzałkę w obszarze Widok , a następnie kliknij pozycję Widok SQL.
-
Wprowadź następującą instrukcję SQL:
DELETE FROM Issues WHERE (((Issues.AssignedTo.Value)="David Hamilton"));
Uwaga W takim przypadku można używać tylko instrukcji SQL, a nie siatki Projektu. Po przełączeniu do widoku siatki projektu program Access doda gwiazdkę (*) po instrukcji DELETE, którą należy usunąć z widoku SQL.
-
Na karcie Projektowanie w grupie Wyniki kliknij przycisk Uruchom.
W programie Access może zostać wyświetlony monit o potwierdzenie usunięcia rekordów. Kliknij przycisk Tak , aby usunąć rekordy, lub kliknij przycisk Nie , aby anulować.
Wynik Wszystkie problemy, do których przypisano Davida Hamiltona, są usuwane.