SQL-Grundlagen: Aktionsabfragen

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Wer schon etwas länger mit Access arbeitet, kennt das: Sie möchten mal eben den Wert eines Feldes für alle Datensätze ändern oder auch eine bestimmte Gruppe von Datensätzen löschen. Manuell in der Datenblattansicht ist das aber nicht zu erledigen, weil die Anzahl der Datensätze dafür zu groß ist. Dafür extra eine Aktionsabfrage erstellen und ausführen Nein, das ist auch zuviel Aufwand. Also bleibt nur eine Möglichkeit: Sie schaffen sich einige Grundlagen zum Thema Aktionsabfragen unter SQL drauf und erledigen die genannten Aufgaben schnell vom Direktfenster aus.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1212_SQLAktionsabfragen.mdb.

Aufruf

Zum Ausführen einer Aktionsabfrage über das Direktfenster können Sie zwei verschiedene Methoden verwenden. Beide werden im Artikel Aktionsabfragen per VBA ausführlich erläutert. Im vorliegenden Artikel verwenden wir ausschließlich die Execute-Methode des mit CurrentDb gelieferten Objekts. Dies sieht, am einfachen Beispiel einer Löschabfrage, etwa so aus:

CurrentDb.Execute "DELETE FROM tblTest", dbFailOnError

Mit dieser Anweisung, abgesetzt im Direktfenster des VBA-Editors, das Sie mit der Tastenkombination Strg + G öffnen, würden Sie alle Datensätze der Tabelle tblTest löschen (siehe Bild 1). Die Execute-Anweisung erwartet die SQL-Variante der Aktionsabfrage als Parameter in Anführungszeichen. Der Wert dbFailOnError für den zweiten Parameter sorgt dafür, dass eventuell auftretenden Fehler gemeldet werden.

Absetzen einer SQL-Anweisung per Direktfenster

Bild 1: Absetzen einer SQL-Anweisung per Direktfenster

Damit Sie etwas Spaß an den Beispielen des Artikels haben, finden Sie in der Beispieldatenbank ein Formular namens frmSQLAktionsabfragen. Dort können Sie Aktionsabfragen zum Ausprobieren eingeben und auf Ausführen klicken – dies ist erstens etwas einfacher als der Weg über das Direktfenster und zweitens erhalten Sie auch noch Feedback, wieviele Datensätze von der änderung betroffen sind (siehe Bild 2).

Hilfsformular zum Ausführen von SQL-Aktionsabfragen

Bild 2: Hilfsformular zum Ausführen von SQL-Aktionsabfragen

Das Formular ist außerdem an eine Tabelle namens tblAktionsabfragen gebunden, die alle Beispielaufrufe dieses Artikels speichert – Sie können diese also im Formular durchlaufen und ausprobieren. Der notwendige Code hinter der Schaltfläche ist einfach:

Private Sub cmdAusfuehren_Click()
     Dim db As DAO.Database
     Set db = CurrentDb
     db.Execute Me!txtAktionsabfrage, dbFailOnError
     MsgBox "Anzahl betroffener Datensätze: " _
         & db.RecordsAffected
     Set db = Nothing
End Sub

Er führt lediglich die Aktionsabfrage aus und fragt nachher mit der Eigenschaft RecordsAffected ab, wieviele Datensätze von der änderung betroffen sind.

Die tatsächlich für die Schaltfläche hinterlegte Prozedur ist etwas komplizierter, weil diese es erlaubt, die durchgeführten änderungen wieder zu verwerfen – dieses Thema werden wir jedoch in einem anderen Artikel behanden, aktuell dient dies nur Ihrer Bequemlichkeit.

Syntax ermitteln

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar