Wenn Sie entweder schnell viele Daten oder eine Reihe von Daten regelmäßig in einer Access-Desktopdatenbank löschen möchten, kann eine Lösch- oder Updateabfrage nützlich sein, da die Abfragen es ermöglichen, Kriterien anzugeben, um die Daten schnell zu finden und zu löschen. Die Verwendung einer Abfrage kann auch ein Zeitverwerter sein, da Sie eine gespeicherte Abfrage wiederverwenden können.
Hinweis: Sie sollten unbedingt eine Sicherungskopie Ihrer Access-Datenbank erstellen, bevor Sie Daten löschen oder eine Löschabfrage ausführen.
Wenn Sie nur wenige Datensätze löschen möchten, benötigen Sie keine Abfrage. Öffnen Sie einfach die Tabelle in der Datenblattansicht, wählen Sie die Felder (Spalten) oder Datensätze (Zeilen) aus, die Sie löschen möchten, und drücken Sie dann ENTF.
Wichtig: Die Informationen in diesem Artikel sind nur für die Verwendung mit Desktopdatenbanken vorgesehen. Sie können keine Lösch- oder Aktualisierungsabfragen in Access-Web-Apps verwenden.
Inhalt dieses Artikels
Auswählen eines Abfragetyps
Sie können entweder eine Aktualisierungsabfrage oder eine Löschabfrage verwenden, um Daten aus Ihrer Datenbank zu löschen. Wählen Sie eine Abfrage basierend auf den Details in der folgenden Tabelle aus:
Abfragetyp |
Verwendung |
Ergebnisse |
---|---|---|
Verwenden einer Löschabfrage |
So entfernen Sie ganze Datensätze (Zeilen) gleichzeitig aus einer Tabelle oder aus zwei verknüpften Tabellen. Hinweis: Wenn sich die Datensätze auf der "1"-Seite einer 1:n-Beziehung befinden, müssen Sie möglicherweise die Beziehung ändern, bevor Sie die Löschabfrage ausführen. Weitere Informationen finden Sie im Abschnitt zum Löschen von Daten aus verknüpften Tabellen. |
Löschen von Abfragen entfernen alle Daten in jedem Feld, einschließlich des Schlüsselwerts, der einen Datensatz eindeutig macht |
Verwenden einer Updateabfrage |
So löschen Sie einzelne Feldwerte aus einer Tabelle. |
Erleichtert das Löschen von Werten, indem die vorhandenen Werte entweder auf einen NULL-Wert (d. a. keine Daten) oder eine leere Zeichenfolge (ein Paar doppelter Anführungszeichen ohne Leerzeichen dazwischen) aktualisiert werden. |
Zu überprüfende Punkte, bevor Sie eine Abfrage zum Löschen von Daten verwenden
-
Stellen Sie sicher, dass die Datei keine schreibgeschützte Datei ist:
-
Klicken Sie mit der rechten Maustaste auf Start , und klicken Sie dann auf Windows-Explorer öffnen.
-
Klicken Sie mit der rechten Maustaste auf die Datenbankdatei, und klicken Sie auf Eigenschaften.
-
Überprüfen Sie, ob das Attribut Schreibgeschützt ausgewählt ist.
-
-
Vergewissern Sie sich, dass Sie über die erforderlichen Berechtigungen zum Löschen von Datensätzen aus der Datenbank verfügen. Wenn Sie nicht sicher sind, wenden Sie sich an Ihren Systemadministrator oder den Datenbank-Designer.
-
Stellen Sie sicher, dass Sie Inhalte in der Datenbank aktiviert haben. Standardmäßig blockiert Access alle Aktionsabfragen (Löschen, Aktualisieren und Tabellenerstellungsabfragen), es sei denn, Sie vertrauen der Datenbank zuerst. Informationen zum Vertrauen einer Datenbank finden Sie im Abschnitt Blockieren einer Abfrage durch den deaktivierten Modus.
-
Bitten Sie andere Benutzer der Datenbank, alle Tabellen, Formulare, Abfragen und Berichte zu schließen, die die daten verwenden, die Sie löschen möchten. Dies trägt dazu bei, Sperrverstöße zu vermeiden.
-
Bevor Sie Datensätze bearbeiten oder löschen, sollten Sie eine Sicherungskopie der Datenbank erstellen , wenn Sie Ihre Änderungen rückgängig machen möchten.
Tipp: Wenn eine große Anzahl von Benutzern eine Verbindung mit der Datenbank herstellt, müssen Sie die Datenbank möglicherweise schließen und dann im exklusiven Modus erneut öffnen.
So öffnen Sie eine Datenbank im exklusiven Modus
-
Klicken Sie auf die Registerkarte Datei > Öffnen.
-
Navigieren Sie zu der Datenbank, und zeigen Sie darauf, und klicken Sie auf den Pfeil neben der Schaltfläche Öffnen , und klicken Sie dann auf Exklusiv öffnen.
Sichern der Datenbank
-
Klicken Sie auf die Registerkarte Datei , und zeigen Sie auf Speichern unter.
-
Klicken Sie auf Datenbank speichern unter und anschließend auf Datenbank sichern. Die ursprüngliche Datei wird von Access geschlossen, eine Sicherungskopie wird erstellt, und die ursprüngliche Datei wird wieder geöffnet.
-
Klicken Sie auf Speichern unter , geben Sie einen Namen und speicherort für die Sicherungskopie an, und klicken Sie auf Speichern.
Hinweis: Wenn Sie eine schreibgeschützte oder eine Datenbank verwenden, die in der vorherigen Version von Access erstellt wurde, erhalten Sie möglicherweise eine Meldung, dass es nicht möglich ist, eine Sicherung der Datenbank zu erstellen.
Schließen Sie die Originaldatei, und weisen Sie einen anderen Namen zu, um eine vorhandene Sicherungskopie verwenden zu können, damit der Name der Originalversion für die Sicherungskopie verwendet werden kann. Weisen Sie der Sicherungskopie den Namen der Originalversion zu, und öffnen Sie die umbenannte Sicherungskopie in Access.
Verwenden einer Löschabfrage
Klicken Sie zum Erstellen einer Löschabfrage auf die Registerkarte Erstellen , und klicken Sie in der Gruppe Abfragen auf Abfrageentwurf. Doppelklicken Sie auf jede Tabelle, aus der Sie Datensätze löschen möchten, und klicken Sie dann auf Schließen.
Die Tabelle wird als Fenster im oberen Abschnitt des Abfrageentwurfsbereichs angezeigt. Doppelklicken Sie in der Liste der Felder auf das Sternchen (*), um alle Felder in der Tabelle dem Entwurfsraster hinzuzufügen.
Verwenden eines bestimmten Kriteriums in einer Löschabfrage
Wichtig: Verwenden Sie Kriterien, um nur die Datensätze zurückzugeben, die Sie löschen möchten. Andernfalls entfernt die Löschabfrage jeden Datensatz in der Tabelle.
Doppelklicken Sie auf das Feld, das Sie als Löschkriterium angeben möchten, geben Sie eines der Kriterien in die Zeile Kriterien des Abfrage-Designers ein, und deaktivieren Sie dann das Kontrollkästchen Anzeigen für jedes Kriterienfeld.
Ein Beispiel für die Verwendung dieser Option: Angenommen, Sie möchten alle ausstehenden Bestellungen für einen Kunden entfernen. Um nur diese Datensätze zu finden, fügen Sie dem Abfrageentwurfsbereich die Felder Kunden-ID und Bestelldatum hinzu. Anschließend geben Sie die ID-Nummer des Kunden und das Datum ein, an dem die Bestellungen dieses Kunden ungültig wurden.
-
Klicken Sie auf der Registerkarte Entwurf auf Ansicht > Datenblattansicht.
-
Überprüfen Sie, ob die Abfrage die Datensätze zurückgibt, die Sie löschen möchten, und drücken Sie dann STRG+S, um die Abfrage zu speichern.
-
Doppelklicken Sie im Navigationsbereich auf die Abfrage, um die Abfrage auszuführen.
Verwenden einer Aktualisierungsabfrage
Hinweis: Sie können die Abfrageoption aktualisieren nicht in einer Access-Web-App verwenden.
In diesem Abschnitt wird erläutert, wie Sie eine Aktualisierungsabfrage verwenden, um einzelne Felder aus Tabellen zu löschen. Denken Sie daran, dass das Ausführen einer Aktualisierungsabfrage zum Löschen von Daten die vorhandenen Werte abhängig von den angegebenen Kriterien in NULL oder eine leere Zeichenfolge (ein Paar doppelte Anführungszeichen ohne Leerzeichen dazwischen) ändert.
-
Klicken Sie auf die Registerkarte Erstellen , und klicken Sie in der Gruppe Abfragen auf Abfrageentwurf.
-
Wählen Sie die Tabelle aus, die die daten enthält, die Sie löschen möchten (wenn die Tabelle verknüpft ist, wählen Sie die Tabelle auf der "1"-Seite der Beziehung aus), klicken Sie auf Hinzufügen, und klicken Sie dann auf Schließen.
Die Tabelle wird als Fenster im oberen Abschnitt des Abfrageentwurfsbereichs angezeigt. Das Fenster listet alle Felder in der ausgewählten Tabelle auf.
-
Doppelklicken Sie auf das Sternchen (*), um alle Felder in der Tabelle dem Entwurfsraster hinzuzufügen. Durch Das Hinzufügen aller Tabellenfelder kann die Löschabfrage ganze Datensätze (Zeilen) aus der Tabelle entfernen.
Optional können Sie Kriterien für ein oder mehrere Felder in der Zeile Kriterien des Designers eingeben und dann das Kontrollkästchen Anzeigen für jedes Kriterienfeld deaktivieren. Weitere Informationen zur Verwendung von Kriterien finden Sie in der Tabelle Beispielkriterien für Auswahlabfragen .
Hinweis: Sie verwenden Kriterien, um nur die Datensätze zurückzugeben, die Sie ändern möchten. Andernfalls legt die Aktualisierungsabfrage jeden Datensatz in jedem der Felder in der Abfrage auf NULL fest.
-
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ergebnisse auf Ansicht und dann auf Datenblattansicht.
-
Stellen Sie sicher, dass die Abfrage die Datensätze zurückgibt, die Sie auf NULL oder eine leere Zeichenfolge festlegen möchten (ein Paar von doppelten Anführungszeichen ohne Leerzeichen dazwischen ("").
-
Wiederholen Sie bei Bedarf die Schritte 3 bis 5, und ändern Sie die Felder oder Kriterien, bis die Abfrage nur die Daten zurückgibt, die Sie löschen möchten. Drücken Sie dann STRG+S, um die Abfrage zu speichern.
-
Doppelklicken Sie im Navigationsbereich auf die Abfrage, um die Abfrage auszuführen.
Weitere Informationen
Bearbeiten der Beziehung
Führen Sie diese Schritte nur aus, wenn Sie Daten auf der Seite "1" und "n" einer Beziehung löschen müssen.
-
Klicken Sie auf der Registerkarte Datenbanktools in der Gruppe Beziehungen auf Beziehungen.
-
Klicken Sie mit der rechten Maustaste auf die Beziehung (die Zeile), die die am Löschvorgang beteiligten Tabellen verbindet, und klicken Sie dann im Kontextmenü auf Beziehung bearbeiten .
-
Stellen Sie im Dialogfeld Beziehungen bearbeiten sicher, dass das Kontrollkästchen Referenzielle Integrität erzwingen aktiviert ist.
-
Aktivieren Sie das Kontrollkästchen Verknüpfte Datensätze kaskadierender Löschen .
Hinweis: Bis Sie diese Eigenschaft erneut deaktivieren, werden beim Löschen eines Datensatzes auf der 1-Seite der Beziehung alle verknüpften Datensätze auf der "n"-Seite der Beziehung gelöscht.
-
Klicken Sie auf OK, schließen Sie den Bereich Beziehungen , und fahren Sie dann mit den nächsten Schritten fort.
Löschen einer Beziehung
-
Wenn Sie dies noch nicht getan haben, öffnen Sie den Bereich Beziehungen .
-
Klicken Sie auf der Registerkarte Datenbanktools in der Gruppe Beziehungen auf Beziehungen.
Notieren Sie sich die felder, die an der Beziehung beteiligt sind, damit Sie die Beziehung wiederherstellen können, nachdem Sie Ihre Daten gelöscht haben.
-
Klicken Sie mit der rechten Maustaste auf die Beziehung (die Zeile), die die am Löschvorgang beteiligten Tabellen verbindet, und klicken Sie dann im Kontextmenü auf Löschen .
Hinweis: Führen Sie zum Wiederherstellen der Beziehung die vorherigen Schritte aus, um den Bereich Beziehungen zu öffnen, ziehen Sie dann das Primärschlüsselfeld aus der Tabelle "1", und legen Sie es im Fremdschlüsselfeld der Tabelle "n" ab. Das Dialogfeld Beziehung bearbeiten wird angezeigt. Wenn die alte Beziehung referenzielle Integrität erzwungen hat, wählen Sie Referenzielle Integrität erzwingen aus, und klicken Sie dann auf Erstellen. Klicken Sie andernfalls einfach auf Erstellen.
Beispielkriterien für Ausgewählte Abfragen
In der folgenden Tabelle sind einige Beispielkriterien aufgeführt, die Sie in Auswahlabfragen verwenden können, wenn Sie sicherstellen möchten, dass Sie nur die Daten löschen, die gelöscht werden sollen. In einigen dieser Beispiele werden Wildcardzeichen verwendet.
Kriterien |
Auswirkung |
---|---|
> 234 |
Gibt alle Zahlen größer als 234 zurück. Verwenden Sie < 234, um nach allen Zahlen zu suchen, die kleiner als 234 sind. |
>= "Cajhen" |
Gibt alle Datensätze ab Motte bis zum Ende des Alphabets zurück. |
Zwischen #02.02.2010# und #12.01.2010# |
Gibt Datumsangaben vom 2. Februar 2010 bis zum 1. Dezember 2010 (ANSI-89) zurück. Wenn Ihre Datenbank die ANSI-92-Wildcardzeichen verwendet, verwenden Sie einfache Anführungszeichen (') anstelle von Nummernzeichen (#). Beispiel: Zwischen "2/2/2010" und "12/1/2010". |
Nicht "Deutschland" |
Findet alle Datensätze, in denen die genauen Inhalte des Felds nicht "Deutschland" entsprechen. Durch das Kriterium werden Datensätze zurückgegeben, die neben "Deutschland" noch weitere Zeichen enthalten, z. B. "Deutschland (Euro)" oder "Europa (Deutschland)". |
Nicht "T*" |
Findet alle Datensätze außer jenen, die mit "T" beginnen. Wenn in der Datenbank der ANSI-92-Platzhalterzeichensatz verwendet wird, verwenden Sie das Prozentzeichen (%) statt des Sternchens (*). |
Nicht "*t" |
Findet alle Datensätze, die nicht auf "t" enden. Verwenden Sie das Prozentzeichen (%) anstelle des Sternchens (*), wenn Ihre Datenbank den ANSI-92-Platzhalter-Zeichensatz verwendet. |
In(Kanada,GB) |
Findet in einer Liste alle Datensätze, die "Kanada" oder "GB" enthalten. |
Wie "[A-D]*" |
Sucht in einem Textfeld nach allen Datensätzen, die mit den Buchstaben A bis D beginnen. Wenn Ihre Datenbank den ANSI-92-Platzhalterzeichensatz verwendet, verwenden Sie anstelle des Sternchens (*) das Prozentzeichen (%) . |
Wie "*ar*" |
Ruft alle Datensätze ab, die die Buchstabenfolge "ar" enthalten. Wenn in der Datenbank ANSI-92-Platzhalterzeichen verwendet werden, fügen Sie anstelle des Sternchens (*) das Prozentzeichen (%) ein. |
Wie "Maison Dewe?" |
Findet alle Datensätze, die mit "Maison" beginnen und eine zweite aus 5 Buchstaben bestehende Zeichenfolge enthalten, deren erste 4 Buchstaben "Dewe" lauten und deren letzter Buchstabe unbekannt ist. Wenn in der Datenbank der ANSI-92-Platzhalterzeichensatz verwendet wird, verwenden Sie einen Unterstrich (_) statt des Fragezeichens (?). |
#2/2/2010# |
Sucht alle Datensätze für den 2. Februar 2010. Wenn Ihre Datenbank den ANSI-92-Wildcardzeichensatz verwendet, setzen Sie das Datum in einfache Anführungszeichen anstelle von Nummernzeichen ('2.02.2010'). |
< Datum() - 30 |
Gibt mit der Funktion Datum alle Daten zurück, die mehr als 30 Tage zurückliegen. |
Datum() |
Gibt mit der Funktion Datum alle Datensätze mit dem Tagesdatum zurück. |
Zwischen Datum() und DateAdd("M", 3, Datum()) |
Verwendet die Funktionen Date und DateAdd , um alle Datensätze zwischen dem heutigen Datum und drei Monaten ab dem heutigen Datum zurückzugeben. |
Ist Null |
Gibt alle Datensätze zurück, die einen (leeren oder nicht definierten) NULL-Wert enthalten. |
Ist Nicht Null |
Gibt alle Datensätze zurück, die einen beliebigen Wert enthalten (die nicht NULL sind). |
"" |
Gibt alle Datensätze zurück, die eine leere Zeichenfolge enthalten. Sie verwenden Zeichenfolgen der Länge Null, wenn Sie einem erforderlichen Feld einen Wert hinzufügen müssen, aber noch nicht wissen, was der tatsächliche Wert ist. Beispielsweise könnte ein Feld eine Faxnummer erfordern, aber manche Ihrer Kunden haben möglicherweise kein Faxgerät. In diesem Fall geben Sie anstelle einer Zahl ein Paar doppelte Anführungszeichen ohne Leerzeichen ein (""). |
Tipps zur Problembehandlung
Gründe für die Anzeige dieser Fehlermeldung und Vorgehensweise bei der Fehlerbehebung
Wenn Sie eine Löschabfrage mit mehreren Tabellen erstellen und die Unique Records-Eigenschaft der Abfrage auf Nein festgelegt ist, zeigt Access die Fehlermeldung an. Aus den angegebenen Tabellen konnte beim Ausführen der Abfrage nicht gelöscht werden .
Um dieses Problem zu beheben, legen Sie die Eigenschaft Eindeutige Datensätze der Abfrage auf Ja fest.
-
Öffnen Sie die Löschabfrage in der Entwurfsansicht.
-
Drücken Sie F4, wenn das Eigenschaftenblatt der Abfrage nicht geöffnet ist, um es zu öffnen.
-
Klicken Sie auf den Abfrage-Designer, um (anstelle der Feldeigenschaften) die Abfrageeigenschaften anzuzeigen.
-
Suchen Sie im Eigenschaftenfenster der Abfrage nach der Eigenschaft Eindeutige Datensätze, und legen Sie den Wert Ja fest.
Beenden des Modus "Deaktiviert" zum Blockieren einer Abfrage
Wenn Sie eine Desktopdatenbank öffnen, die Sie nicht als vertrauenswürdig ausgewählt haben oder die sich nicht an einem vertrauenswürdigen Speicherort befindet, blockiert Access die Ausführung aller Aktionsabfragen.
Wenn Sie versuchen, eine Aktionsabfrage auszuführen, und Sie den Eindruck haben, dass nichts passiert, überprüfen Sie die Statusleiste von Access auf die folgende Meldung:
Die Aktion oder das Ereignis wurde durch den Modus 'Deaktiviert' blockiert.
Wenn diese Meldung angezeigt wird, führen Sie den folgenden Schritt aus, um den blockierten Inhalt zu aktivieren:
-
Klicken Sie auf der Meldungsleiste für Sicherheitswarnungen auf Inhalt aktivieren, und führen Sie die Abfrage erneut aus.