Tworzenie i uruchamianie zapytania usuwającego

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

Kwerenda usuwająca lub aktualizująca może być przydatna, gdy chcesz szybko usunąć dużą ilość danych lub regularnie usuwać zestaw danych w bazie danych programu Access dla komputerów stacjonarnych, ponieważ takie zapytania umożliwiają określenie kryteriów w celu szybkiego znajdowania i usuwania danych. Korzystanie z zapytania może także pozwolić zaoszczędzić czas, ponieważ zapisanego zapytania można użyć ponownie.

Uwaga

Przed usunięciem danych lub uruchomieniem zapytania usuwającego należy upewnić się, że wykonano kopię zapasową bazy danych programu Access dla komputerów stacjonarnych.

W przypadku usuwania tylko kilku rekordów korzystanie z zapytania nie jest konieczne. Wystarczy otworzyć tabelę w widoku arkusza danych, zaznaczyć pola (kolumny) lub rekordy (wiersze), które chcesz usunąć, a następnie nacisnąć klawisz DELETE.

Ważne

Informacje podane w tym artykule dotyczą wyłącznie baz danych dla komputerów stacjonarnych. W aplikacjach sieci Web programu Access nie można używać zapytań usuwających ani aktualizujących.

W tym artykule

Wybieranie typu kwerendy

Aby usunąć dane z bazy danych, możesz użyć kwerendy aktualizującej lub usuwającej. Wybierz zapytanie na podstawie szczegółowych informacji zawartych w poniższej tabeli:

Typ zapytania Okoliczności użycia Wyniki
Używanie kwerendy usuwającej Aby jednocześnie usunąć całe rekordy (wiersze) z tabeli lub dwóch powiązanych tabel.
Uwaga: Jeśli rekordy znajdują się po stronie "jeden" relacji jeden-do-wielu, może być konieczna zmiana tej relacji przed uruchomieniem zapytania usuwającego. Zobacz sekcję dotyczącą usuwania danych z tabel pokrewnych.
Zapytania usuwające usuwają wszystkie dane z każdego pola, łącznie z wartością klucza, dzięki której rekord jest unikatowy
Używanie kwerendy aktualizującej Aby usunąć z tabeli poszczególne wartości pól. Ułatwia usuwanie wartości przez zaktualizowanie istniejących wartości do postaci wartości null (tzn. brak danych) lub ciągu o zerowej długości (para znaków podwójnego cudzysłowu bez spacji między nimi).

Początek strony

Czynności do sprawdzenia przed użyciem zapytania w celu usunięcia danych

  • Upewnij się, że plik nie jest tylko do odczytu:

    1. Kliknij prawym przyciskiem myszy przycisk Start i kliknij polecenie Otwórz Eksploratora Windows.
    2. Kliknij prawym przyciskiem myszy plik bazy danych, a następnie kliknij polecenie Właściwości.
    3. Sprawdź, czy jest zaznaczony atrybut tylko do odczytu .
  • Sprawdź, czy masz niezbędne uprawnienia do usuwania rekordów z bazy danych. W razie wątpliwości należy skontaktować się z administratorem systemu lub projektantem bazy danych.

  • Upewnij się, że włączono zawartość w bazie danych. Domyślnie program Access blokuje wszystkie kwerendy funkcjonalne (zapytania usuwające, aktualizujące i tworzące tabele), chyba że najpierw baza danych zostanie ustawiona jako zaufana. Aby uzyskać informacje dotyczące ustawiania bazy danych jako zaufanej, zobacz sekcję Zatrzymywanie blokowania zapytania przez tryb wyłączony.

  • Poproś innych użytkowników bazy danych, aby zamknęli wszystkie tabele, formularze, kwerendy i raporty, w których są używane dane, które chcesz usunąć. Pomaga to uniknąć naruszeń blokady.

  • Przed edytowaniem lub usunięciem rekordów warto sporządzić kopię zapasową bazy danych , na wypadek gdyby zaszła potrzeba cofnięcia wprowadzonych zmian.

Porada

Jeśli z bazą danych łączy się wielu użytkowników, może być konieczne zamknięcie bazy danych, a następnie otwarcie jej ponownie w trybie wyłączności .

Aby otworzyć bazę danych w trybie wyłączności

  1. Kliknij kartę>Plik Otwórz.
  2. Przejdź do wybranej bazy danych i wskaż ją, kliknij strzałkę obok przycisku Otwórz , a następnie kliknij pozycję Otwórz z wyłącznością.
    Otwieranie pliku w trybie wyłączności

Wykonywanie kopii zapasowej bazy danych

  1. Kliknij kartę Plik , wskaż polecenie Zapisz jako.
  2. Kliknij pozycję Zapisz bazę danych jako, a następnie kliknij pozycję Wykonaj kopię zapasową bazy danych. Program Access zamknie oryginalny plik, utworzy kopię zapasową, a następnie ponownie otworzy oryginalny plik.
  3. Kliknij pozycję Zapisz jako , określ nazwę i lokalizację kopii zapasowej, a następnie kliknij przycisk Zapisz.

Uwaga

W przypadku korzystania z bazy danych tylko do odczytu lub bazy danych utworzonej w poprzedniej wersji programu Access może zostać wyświetlony komunikat z informacją, że utworzenie kopii zapasowej bazy danych jest niemożliwe.

Aby przywrócić dane z kopii zapasowej, zamknij oryginalny plik i zmień jego nazwę, dzięki czemu będzie można użyć nazwy oryginalnej wersji dla kopii zapasowej. Przypisz nazwę oryginalnej wersji do kopii zapasowej, a następnie otwórz kopię zapasową w programie Access.

Korzystanie z kwerendy usuwającej

Aby utworzyć zapytanie usuwające, kliknij kartę Tworzenie , a następnie w grupie Kwerendy kliknij pozycję Projekt zapytania. Kliknij dwukrotnie każdą tabelę, z której chcesz usunąć rekordy, a następnie kliknij przycisk Zamknij.

Tabela zostanie wyświetlona jako okno w górnej części siatki projektu kwerendy. Na liście pól kliknij dwukrotnie gwiazdkę (*), aby dodać wszystkie pola tabeli do siatki projektu.

Używanie określonych kryteriów w zapytaniu usuwającym

Ważne

Za pomocą kryteriów zwracane są tylko te rekordy, które mają zostać usunięte. W przeciwnym razie zapytanie usuwające usuwa wszystkie rekordy z tabeli.

Kliknij dwukrotnie pole, które chcesz określić jako kryterium usuwania, wprowadź jedno z kryteriów w wierszu Kryteria projektanta kwerend, a następnie wyczyść pole wyboru Pokaż dla każdego pola kryterium.

Przykład sytuacji, w której może być konieczne użycie tej opcji: Załóżmy, że trzeba usunąć wszystkie zamówienia oczekujące na realizację przez jednego klienta. Aby znaleźć tylko te rekordy, należy dodać pola Identyfikator klienta i Data zamówienia do siatki projektu kwerendy, a następnie wprowadzić numer identyfikacyjny klienta i datę, od której zamówienia tego klienta stają się nieważne.

  1. Na karcie Projektowanie kliknij pozycję Wyświetl>widok arkusza danych.
  2. Sprawdź, czy zapytanie zwraca rekordy, które chcesz usunąć, a następnie naciśnij klawisze CTRL+S, aby zapisać zapytanie.
  3. Aby uruchomić zapytanie, kliknij je dwukrotnie w okienku nawigacji.

Początek strony

Korzystanie z kwerendy aktualizującej

Uwaga

Opcji zapytania aktualizującego nie można używać w aplikacji sieci Web programu Access.

W tej sekcji wyjaśniono, jak używać kwerendy aktualizującej do usuwania poszczególnych pól z tabel. Pamiętaj, że uruchomienie kwerendy aktualizującej w celu usunięcia danych spowoduje zmianę istniejących wartości na NULL lub na ciąg o zerowej długości (para znaków podwójnego cudzysłowu bez spacji między nimi), w zależności od określonych kryteriów.

  1. Kliknij kartę Tworzenie , a następnie w grupie Kwerendy kliknij pozycję Projekt kwerendy.

  2. Zaznacz tabelę zawierającą dane, które chcesz usunąć (jeśli tabela jest powiązana, zaznacz tabelę po stronie "jeden" relacji), kliknij przycisk Dodaj, a następnie kliknij przycisk Zamknij.
    Tabela zostanie wyświetlona jako okno w górnej części siatki projektu kwerendy. Okno zawiera listę wszystkich pól wybranej tabeli.

  3. Kliknij dwukrotnie gwiazdkę (*), aby dodać wszystkie pola tabeli do siatki projektu. Dodanie wszystkich pól tabeli pozwala na usuwanie całych rekordów (wierszy) z tabeli za pomocą zapytania usuwającego.
    Opcjonalnie można wprowadzić kryteria dla jednego lub większej liczby pól w wierszu Kryteria projektanta, a następnie wyczyścić pole wyboru Pokaż dla każdego pola kryterium. Aby uzyskać więcej informacji o używaniu kryteriów, zobacz tabelę Przykładowe kryteria kwerend wybierających .

    Uwaga

    Kryteria służą do zwracania tylko tych rekordów, które mają zostać zmienione. W przeciwnym razie zapytanie aktualizujące ustawia wartość NULL dla każdego rekordu w każdym z pól zapytania.

  4. Na karcie Projektowanie w grupie Wyniki kliknij przycisk Widok, a następnie kliknij pozycję Widok arkusza danych.

  5. Sprawdź, czy zapytanie zwraca rekordy, które chcesz ustawić na wartość NULL lub ciąg znaków o zerowej długości (para znaków podwójnego cudzysłowu bez spacji między nimi ("").

  6. W razie potrzeby powtarzaj kroki od 3 do 5 i zmieniaj pola lub kryteria, aż zapytanie zwróci tylko te dane, które chcesz usunąć. Następnie naciśnij klawisze CTRL+S, aby zapisać zapytanie.

  7. Aby uruchomić zapytanie, kliknij je dwukrotnie w okienku nawigacji.

Początek strony

Informacje dodatkowe

Aby usunąć dane z kilku tabel pokrewnych, należy włączyć opcje Integralność referencyjna i Kaskadowo usuń rekordy pokrewne dla każdej relacji. Umożliwi to zapytaniu usunięcie danych z tabel po stronie "jeden" lub "wiele" relacji. Aby przygotować się do usunięcia powiązanych danych, należy sprawdzić następujące elementy:

  • Określ, które rekordy znajdują się po stronie "jeden" relacji, a które po stronie "wiele".
  • Aby usunąć rekordy po stronie "jeden" relacji, a powiązane rekordy po stronie "wiele", włącz zestaw reguł o nazwie Więzy integralności i włącz usuwanie kaskadowe. W tej sekcji opisano kroki dotyczące więzów integralności oraz sposób wykonywania obu tych zadań.
  • Jeśli trzeba usunąć rekordy tylko po stronie "jeden" relacji, należy najpierw usunąć tę relację, a następnie dane.

Jeśli musisz usunąć dane tylko po stronie "wiele" relacji, możesz utworzyć i uruchomić zapytanie usuwające bez konieczności zmieniania tej relacji.

Aby dowiedzieć się, które rekordy znajdują się po stronie "jeden" lub po stronie "wiele" relacji, na karcie Narzędzia bazy danych w grupie Relacje kliknij przycisk Relacje. Na karcie Relacje są wyświetlane tabele zawarte w bazie danych oraz relacje. Każda relacja jest przedstawiona jako linia łącząca tabele między polami.

Na poniższej ilustracji przedstawiono typową zależność. Większość, jeśli nie wszystkie, relacje w bazie danych mają stronę "jeden" i stronę "wiele". Diagram relacji oznacza stronę "jeden" za pomocą cyfry jeden (1), a stronę "wiele" za pomocą symbolu nieskończoności ().

Relacja między dwiema tabelami

Usunięcie rekordów po stronie "jeden" relacji powoduje również usunięcie wszystkich rekordów pokrewnych po stronie "wiele" relacji. Jednak usunięcie rekordów po stronie "wiele" relacji zwykle nie powoduje usunięcia rekordów po stronie "jeden".

Ponadto program Access automatycznie wymusza zestaw reguł nazywany więzami integralności. Te reguły zapewniają, że klucze obce w bazie danych zawierają poprawne wartości. Klucz obcy to kolumna, której wartości odpowiadają wartościom w kolumnie klucza podstawowego innej tabeli.

Edytowanie relacji

Poniższe kroki należy wykonywać tylko wtedy, gdy zachodzi potrzeba usunięcia danych po stronie "jeden" lub "wiele" relacji.

  1. Na karcie Narzędzia bazy danych w grupie Relacje kliknij pozycję Relacje.

  2. Kliknij prawym przyciskiem myszy relację (linię) łączącą tabele, których dotyczy operacja usuwania, a następnie w menu skrótów kliknij polecenie Edytuj relację .

  3. W oknie dialogowym Edytowanie relacji upewnij się, że jest zaznaczone pole wyboru Wymuszaj więzy integralności .

  4. Zaznacz pole wyboru Kaskadowo usuń rekordy pokrewne .

    Uwaga

    Do momentu ponownego wyłączenia tej właściwości usunięcie rekordu po stronie "jeden" relacji spowoduje usunięcie wszystkich powiązanych rekordów po stronie "wiele" relacji.

  5. Kliknij przycisk OK, zamknij okienko Relacje , a następnie przejdź do następnego zestawu kroków.

Usuwanie relacji

  1. Jeśli jeszcze tego nie zrobiono, otwórz okienko Relacje .
  2. Na karcie Narzędzia bazy danych w grupie Relacje kliknij pozycję Relacje.
    Zanotuj pola biorące udział w relacji, aby móc przywrócić relację po usunięciu danych.
  3. Kliknij prawym przyciskiem myszy relację (linię) łączącą tabele, których dotyczy operacja usuwania, a następnie w menu skrótów kliknij polecenie Usuń .

Uwaga

Aby przywrócić relację, wykonaj poprzednie kroki w celu otwarcia okienka Relacje , a następnie przeciągnij pole klucza podstawowego z tabeli po stronie "jeden" i upuść je w polu klucza obcego tabeli po stronie "wiele". Zostanie wyświetlone okno dialogowe Edytowanie relacji . Jeśli w starej relacji były wymuszane więzy integralności, wybierz pozycję Wymuszaj więzy integralności, a następnie kliknij przycisk Utwórz. W przeciwnym razie kliknij przycisk Utwórz.

Początek strony

Przykładowe kryteria zapytań wybierających

W poniższej tabeli podano kilka przykładowych kryteriów, których można użyć w kwerendach wybierających, aby zagwarantować, że zostaną usunięte tylko te dane, które mają zostać usunięte. W niektórych z tych przykładów użyto symboli wieloznacznych.

Kryteria Wynik
> 234 Zwraca wszystkie liczby większe niż 234. Aby znaleźć wszystkie liczby mniejsze niż 234, należy użyć < wartości 234.
>= "Cajhen" Zwraca wszystkie rekordy od nazwiska Misztal do końca alfabetu.
Between #2010-02-02# And #2010-12-01# Zwraca daty od 2 lutego 2010 do 1 grudnia 2010 (ANSI-89). Jeśli w bazie danych są używane symbole wieloznaczne ANSI-92, należy użyć cudzysłowów pojedynczych (') zamiast znaków numeru (#). Przykład: Between '2010-02-02' And '2010-01-12'.
Not "Niemcy" Znajduje wszystkie rekordy, w których dokładna zawartość pola nie jest równa „Niemcy”. Kryterium zwróci rekordy zawierające dodatkowe znaki oprócz wyrazu „Niemcy”, na przykład „Niemcy (euro)” lub „Europa (Niemcy)”.
Not "T*" Znajduje wszystkie rekordy oprócz rekordów zaczynających się od litery T. Jeśli w bazie danych jest używany zestaw symboli wieloznacznych ANSI-92, należy użyć znaku procentu (%) zamiast gwiazdki (*).
Not "*t" Znajduje wszystkie rekordy, które nie kończą się literą t. Jeśli w bazie danych jest używany zestaw symboli wieloznacznych ANSI-92, należy użyć znaku procentu (%) zamiast gwiazdki (*).
In(Kanada,USA) Znajduje na liście wszystkie rekordy zawierające wyrazy Kanada lub USA.
Like "[A-D]*" W polu typu Tekst znajduje wszystkie rekordy zaczynające się od liter z zakresu od A do D. Jeśli w bazie danych jest używany zestaw symboli wieloznacznych ANSI-92, należy użyć znaku procentu (%) zamiast gwiazdki (*).
Like "*ar*" Znajduje wszystkie rekordy zawierające sekwencję liter „ar”. Jeśli w bazie danych jest używany zestaw symboli wieloznacznych ANSI-92, należy użyć znaku procentu (%) zamiast gwiazdki (*).
Like "Maison Dewe?" Znajduje wszystkie rekordy, które zaczynają się od wyrazu „Maison” i zawierają drugi pięcioliterowy ciąg znaków, w którym pierwsze 4 litery to „Dewe”, a ostatnia litera jest nieznana. Jeśli w bazie danych jest używany zestaw symboli wieloznacznych ANSI-92, należy użyć znaku podkreślenia (_) zamiast znaku zapytania (?).
#2/2/2010# Znajduje wszystkie rekordy dla dnia 2 lutego 2010. Jeśli w bazie danych jest używany zestaw symboli wieloznacznych ANSI-92, należy ująć datę w cudzysłowy pojedyncze zamiast w znaki numeru ('2010-02-02').
< Date() - 30 Zwraca wszystkie daty starsze niż 30 dni za pomocą funkcji Date.
Date() Zwraca wszystkie rekordy zawierające dzisiejszą datę za pomocą funkcji Date.
Between Date() And DateAdd("M";3;Date()) Zwraca wszystkie rekordy między dzisiejszą datą a datą późniejszą o trzy miesiące za pomocą funkcji Date i DateAdd .
Is Null Zwraca wszystkie rekordy zawierające wartość null (pustą lub niezdefiniowaną).
Is Not Null Zwraca wszystkie rekordy zawierające jakąkolwiek wartość (nie będące wartością null).
"" Zwraca wszystkie rekordy zawierające ciąg znaków o zerowej długości. Ciąg znaków o zerowej długości jest używany wtedy, gdy trzeba dodać wartość do wymaganego pola, lecz rzeczywista wartość nie jest jeszcze znana. Pole może na przykład wymagać numeru faksu, lecz niektórzy klienci mogą nie mieć faksu. W takim przypadku zamiast wprowadzać liczbę, należy wprowadzić dwa znaki podwójnego cudzysłowu bez spacji między nimi ("").

Początek strony

Porady dotyczące rozwiązywania problemów

Dlaczego jest wyświetlany ten komunikat o błędzie i jak można poprawić ten błąd?

Jeśli utworzono zapytanie usuwające przy użyciu wielu tabel, a właściwość Unikatowe rekordy zapytania ustawiono na wartość Nie, program Access wyświetli komunikat o błędzie. Nie można usunąć z określonych tabel po uruchomieniu zapytania.

Aby usunąć ten problem, należy ustawić właściwość Rekordy unikatowe zapytania na Tak.

  1. Otwórz zapytanie usuwające w widoku projektowania.
  2. Jeśli arkusz właściwości zapytania jest zamknięty, naciśnij klawisz F4, aby go otworzyć.
  3. Kliknij projektanta zapytań, aby wyświetlić właściwości zapytania (a nie właściwości pola).
  4. W arkuszu właściwości zapytania odszukaj właściwość Unikatowe rekordy i ustaw ją na Tak.

Zatrzymywanie blokowania zapytania przez tryb wyłączony

Domyślnie po otwarciu bazy danych dla komputerów stacjonarnych, która nie została ustawiona jako zaufana lub która nie znajduje się w zaufanej lokalizacji, program Access blokuje uruchamianie wszystkich kwerend funkcjonalnych.

Jeśli użytkownik próbuje uruchomić zapytanie funkcjonalne i wydaje się, że nic się nie dzieje, należy sprawdzić, czy na pasku stanu programu Access jest wyświetlany następujący komunikat:

Akcja lub zdarzenie zostało zablokowane przez tryb wyłączony.

Gdy pojawi się ten komunikat, wykonaj następujące czynności, aby włączyć zablokowaną zawartość:

  • Na pasku komunikatów z ostrzeżeniem zabezpieczeń kliknij pozycję Włącz zawartość i ponownie uruchom zapytanie.

Początek strony