Tworzenie i uruchamianie kwerendy usuwającej
Applies ToAccess dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Jeśli chcesz szybko usunąć dużo danych lub regularnie usuwać zestaw danych w bazie danych programu Access dla komputerów stacjonarnych, zapytanie usuwające lub aktualizujące może być przydatne, ponieważ zapytania umożliwiają określenie kryteriów szybkiego znajdowania i usuwania danych. Użycie zapytania może być również czasowe, ponieważ można ponownie użyć zapisanego zapytania.

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.

Jeśli chcesz usunąć tylko kilka rekordów, nie potrzebujesz zapytania. 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 zawarte w tym artykule są przeznaczone tylko do używania z bazami danych dla komputerów stacjonarnych. W aplikacjach sieci Web programu Access nie można używać zapytań usuwanych ani aktualizujących.

W tym artykule

Wybieranie typu zapytania

Możesz użyć zapytania aktualizującego lub zapytania usuwające, aby usunąć dane z bazy danych. Wybierz zapytanie na podstawie szczegółów w poniższej tabeli:

Typ zapytania

Okoliczności użycia

Wyniki

Używanie zapytania usuwające

Aby jednocześnie usunąć całe rekordy (wiersze) z tabeli lub z dwóch powiązanych tabel.

Uwaga: Jeśli rekordy znajdują się po stronie "jeden" relacji jeden-do-wielu, może być konieczna zmiana relacji przed uruchomieniem zapytania usuwające. Zobacz sekcję dotyczącą usuwania danych z powiązanych tabel.

Kwerendy usuwające usuwają wszystkie dane w każdym polu, łącznie z wartością klucza, dzięki czemu rekord jest unikatowy

Korzystanie z kwerendy aktualizującej

Aby usunąć poszczególne wartości pól z tabeli.

Ułatwia usuwanie wartości, aktualizując istniejące wartości do wartości null (czyli bez danych) lub ciągu o zerowej długości (pary podwójnych cudzysłowów bez spacji między nimi).

Początek strony

Elementy do zweryfikowania przed użyciem zapytania w celu usunięcia danych

  • Upewnij się, że plik nie jest plikiem 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 i kliknij polecenie Właściwości.

    3. Sprawdź, czy jest zaznaczony atrybut Tylko do odczytu .

  • Sprawdź, czy masz uprawnienia niezbędne do usuwania rekordów z bazy danych. Jeśli nie masz pewności, skontaktuj się z administratorem systemu lub projektantem bazy danych.

  • Upewnij się, że w bazie danych została włączona zawartość. Domyślnie program Access blokuje wszystkie zapytania funkcjonalne (zapytania usuwające, aktualizujące i tworzące tabele), chyba że baza danych jest zaufana. Aby uzyskać informacje na temat oznaczania bazy danych jako zaufanej, zobacz sekcję Zatrzymywanie blokowania zapytania przez tryb wyłączony.

  • Poproś innych użytkowników bazy danych o zamknięcie wszystkich tabel, formularzy, zapytań i raportów używających danych, które chcesz usunąć. Pomaga to uniknąć naruszeń blokady.

  • Przed edytowaniem lub usuwaniem rekordów dobrym pomysłem jest utworzenie kopii zapasowej bazy danych na wypadek, gdyby trzeba było cofnąć zmiany.

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

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

  1. Kliknij kartę Plik > Otwórz.

  2. Przejdź do 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ż pozycję 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: Jeśli korzystasz z bazy danych tylko do odczytu lub bazy danych utworzonej w poprzedniej wersji programu Access, może zostać wyświetlony komunikat, że nie można utworzyć kopii zapasowej bazy danych.

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.

Używanie zapytania usuwające

Aby utworzyć zapytanie usuwające, kliknij kartę Tworzenie w grupie Zapytania i 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 zapytania. Na liście pól kliknij dwukrotnie gwiazdkę (*), aby dodać wszystkie pola tabeli do siatki projektu.

Używanie określonych kryteriów w zapytaniu usuwanym

Ważne: Użyj kryteriów, aby zwrócić tylko rekordy, które chcesz usunąć. W przeciwnym razie zapytanie usuwające usuwa każdy rekord w tabeli.

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

Przykład użycia tej opcji: Załóżmy, że chcesz usunąć wszystkie zamówienia oczekujące dla klienta. Aby znaleźć tylko te rekordy, należy dodać pola Identyfikator klienta i Data zamówienia do siatki projektu zapytania, a następnie wprowadzić numer identyfikacyjny klienta i datę, od której zamówienia tego klienta stały się nieprawidłowe.

  1. Na karcie Projektowanie kliknij pozycję Widok > 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 dwukrotnie zapytanie w okienku nawigacji.

Początek strony

Korzystanie z kwerendy aktualizującej

Uwaga: Nie można użyć opcji kwerendy aktualizującej w aplikacji sieci Web programu Access.

W tej sekcji wyjaśniono, jak za pomocą zapytania aktualizującego usuwać poszczególne pola z tabel. Pamiętaj, że uruchomienie zapytania aktualizującego w celu usunięcia danych spowoduje zmianę istniejących wartości na null lub ciąg znaków o zerowej długości (parę podwójnych cudzysłowów bez spacji między nimi), w zależności od określonych kryteriów.

  1. Kliknij kartę Tworzenie i w grupie Zapytania kliknij pozycję Projekt zapytania.

  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 zapytania. W oknie zostaną wyświetlone wszystkie pola w wybranej tabeli.

  3. Kliknij dwukrotnie gwiazdkę (*), aby dodać wszystkie pola tabeli do siatki projektu. Dodanie wszystkich pól tabeli umożliwia zapytanie usuwające usunięcie całych rekordów (wierszy) z tabeli.

    Opcjonalnie możesz 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 na temat używania kryteriów, zobacz tabelę Przykładowe kryteria zapytań wybierających .

    Uwaga: Za pomocą kryteriów są zwracane tylko rekordy, które chcesz zmienić. W przeciwnym razie zapytanie aktualizujące ustawia wartość NULL dla każdego rekordu w każdym z pól w zapytaniu.

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

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

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

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

Początek strony

Informacje dodatkowe

Usuwanie danych z tabel pokrewnych

Aby usunąć dane z kilku powiązanych tabel, należy włączyć opcje Więzy integralności i Kaskadowo usuń rekordy pokrewne dla każdej relacji. Dzięki temu zapytanie może usuwać dane z tabel po stronie "jeden" i "wiele" relacji. Przygotowanie do usunięcia powiązanych danych wymaga weryfikacji następujących elementów:

  • Określ, które rekordy znajdują się po stronie "jeden" relacji i które znajdują się po stronie "wiele".

  • Jeśli chcesz usunąć rekordy po stronie "jeden" relacji i rekordy pokrewne po stronie "wiele", włącz zestaw reguł o nazwie Więzy integralności i włącz usuwanie kaskadowe. W tej sekcji wyjaśniono więzy integralności oraz sposób wykonywania obu zadań.

  • Jeśli chcesz usunąć rekordy tylko po stronie "jeden" relacji, najpierw usuń tę relację, a następnie usuń dane.

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

Aby sprawdzić, które rekordy znajdują się po stronie "jeden" i "wiele" relacji, na karcie Narzędzia bazy danych w grupie Relacje kliknij pozycję Relacje. Na karcie Relacje zostaną wyświetlone tabele w bazie danych i relacje. Każda relacja jest przedstawiana jako linia łącząca tabele między polami.

Na poniższej ilustracji przedstawiono typową relację. Większość relacji w bazie danych (jeśli nie wszystkie) ma stronę "jeden" i stronę "wiele". Diagram relacji oznacza stronę "jeden" cyfrą (1) i stroną "wiele" z symbolem 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 po usunięciu rekordów po stronie "wiele" relacji zazwyczaj nie usuwa się 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 są zgodne z wartościami w kolumnie klucza podstawowego innej tabeli.

Edytowanie relacji

Wykonaj poniższe czynności tylko wtedy, gdy chcesz usunąć dane po stronie "jeden" i "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 biorące udział w operacji usuwania, a następnie w menu skrótów kliknij polecenie Edytuj relację .

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

  4. Zaznacz pole wyboru Kaskadowo usuń rekordy pokrewne .

    Uwaga: Dopóki ta właściwość nie zostanie ponownie wyłączona, 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 związane z relacją, aby móc przywrócić relację po usunięciu danych.

  3. Kliknij prawym przyciskiem myszy relację (linię) łączącą tabele biorące udział w operacji 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 "jeden" i upuść je w polu klucza obcego tabeli "wiele". Zostanie wyświetlone okno dialogowe Edytowanie relacji . Jeśli stara relacja wymuszała więzy integralności, wybierz pozycję Wymuszaj więzy integralności, a następnie kliknij przycisk Utwórz. W przeciwnym razie po prostu kliknij pozycję Utwórz.

Początek strony

Przykładowe kryteria dla zapytań wybierających

W poniższej tabeli wymieniono niektóre przykładowe kryteria, których można użyć w zapytaniach wybierających, aby upewnić się, że usuwane są 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ć wyrażenia < 234.

>= "Kajhen"

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-12-01'.

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 tekstowym znajduje wszystkie rekordy zaczynające się od liter 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 z dnia 2 lutego 2010 r. 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())

Używa funkcji Date i DateAdd w celu zwrócenia wszystkich rekordów między dzisiejszą datą a datą późniejszą o trzy miesiące.

Is Null

Zwraca wszystkie rekordy zawierające wartość null (pustą lub niezdefiniowaną).

Is Not Null

Zwraca wszystkie rekordy zawierające dowolną wartość (bez wartości null).

""

Zwraca wszystkie rekordy zawierające ciąg znaków o zerowej długości. Ciągów znaków o zerowej długości używa się, gdy trzeba dodać wartość do wymaganego pola, ale nie wiadomo jeszcze, jaka jest rzeczywista wartość. 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 tworzysz zapytanie usuwające przy użyciu wielu tabel, a właściwość Unikatowe rekordy zapytania jest ustawiona na Nie, program Access wyświetli komunikat o błędzie. Nie można usunąć z określonych tabel podczas uruchamiania 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 wybrana jako zaufana lub która nie znajduje się w zaufanej lokalizacji, program Access blokuje uruchamianie wszystkich zapytań 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.

Po wyświetleniu tego komunikatu wykonaj następujące czynności, aby włączyć zablokowana zawartość:

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

Początek strony

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.