DELETE-Anweisung (Microsoft Access SQL)

Gilt für: Access 2013, Office 2013

Erstellt eine Löschabfrage, die Datensätze aus einer oder mehreren Tabellen in der FROM-Klausel löscht, die die Kriterien der WHERE-Klausel erfüllen.

Syntax

DELETE [table.*] FROM table WHERE criteria

Die DELETE-Anweisung setzt sich wie folgt zusammen:

Part

Beschreibung

Tabelle

Der optionale Name der Tabelle, aus der Datensätze gelöscht werden.

Tabelle

Der Name der Tabelle, aus der Datensätze gelöscht werden.

Kriterien

Ein Ausdruck, der bestimmt, welche Datensätze gelöscht werden sollen.

Bemerkungen

DELETE ist besonders nützlich, wenn Sie viele Datensätze löschen möchten.

Wenn Sie eine Tabelle vollständig aus der Datenbank löschen möchten, können Sie die Execute-Methode mit einer DROP-Anweisung verwenden. Beim Löschen der Tabelle geht allerdings auch die Struktur verloren. Wenn Sie dagegen die DELETE-Anweisung verwenden, werden nur die Daten gelöscht, die Tabellenstruktur und alle Tabelleneigenschaften wie Feldattribute und Indizes bleiben erhalten.

Sie können die DELETE-Anweisung verwenden, um Datensätze aus Tabellen zu entfernen, die in einer 1:n-Beziehung mit anderen Tabellen stehen. Durch Löschweitergaben werden Datensätze in Tabellen, die sich auf der n-Seite der Beziehung befinden, gelöscht, wenn der entsprechende Datensatz auf der 1-Seite der Beziehung in der Abfrage gelöscht wird. In der Beziehung zwischen der Customers-Tabelle (Kunden) und der Orders-Tabelle (Bestellungen) stellt erstgenannte Tabelle die 1-Seite und letztgenannte Tabelle die n-Seite der Beziehung zwischen den Tabellen dar. Wird ein Datensatz aus der Customers-Tabelle gelöscht, werden die entsprechenden Datensätze auch aus der Orders-Tabelle gelöscht, wenn die Option für Löschweitergaben angegeben wurde.

Über eine Löschabfrage werden Datensätze vollständig gelöscht, nicht nur die Daten in spezifischen Feldern. Wenn Sie Daten aus einem spezifischen Feld löschen möchten, erstellen Sie eine Aktualisierungabfrage, die die Werte in diesen Feldern in den Wert Null ändert.

Wichtig

  • Nachdem Sie Datensätze über eine Löschabfrage entfernt haben, können Sie diesen Vorgang nicht rückgängig machen. Wenn Sie zunächst wissen möchten, welche Datensätze gelöscht werden, überprüfen Sie im Vorfeld die Ergebnisse einer Auswahlabfrage, die die gleichen Kriterien wie die Löschabfrage verwendet, und führen Sie dann erst die Löschabfrage aus.
  • Bewahren Sie jederzeit Sicherungskopien Ihrer Daten auf. Wenn Sie die falschen Datensätze gelöscht haben, können Sie sie aus Ihren Sicherungskopien wieder abrufen.

Beispiel

Im folgenden Beispiel werden alle Datensätze der Mitarbeiter gelöscht, die über die Position eines Trainees verfügen. Wenn die FROM-Klausel nur eine Tabelle einschließt, muss der Tabellenname nicht in der DELETE-Anweisung aufgelistet werden.

    Sub DeleteX() 
     
        Dim dbs As Database, rst As Recordset 
     
        ' Modify this line to include the path to Northwind 
        ' on your computer. 
        Set dbs = OpenDatabase("Northwind.mdb") 
     
        ' Delete employee records where title is Trainee.     
        dbs.Execute "DELETE * FROM " _ 
            & "Employees WHERE Title = 'Trainee';" 
         
        dbs.Close 
     
    End Sub