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.
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).
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