window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Aktionsabfragen per VBA

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

Mit Aktionsabfragen ändern Sie Daten – ganz im Gegensatz zu Auswahlabfragen, mit denen Sie Daten selektieren. Die Grundlagen zur Erstellung von Aktionsabfragen mit der Entwurfsansicht für Abfragen haben wir in früheren Artikeln bereits behandelt, aber wir haben uns noch nicht im Detail angesehen, wie Sie solche Abfragen unter VBA ausführen.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1211_AktionsabfragenPerVBA.mdb.

Varianten

Es gibt mehrere Möglichkeiten, eine Aktionsabfrage unter VBA auszuführen. Die zwei bekanntesten sind die folgenden: Die erste ist die RunSQL-Methode des DoCmd-Objekts. Diese erwartet als Parameter den Namen einer gespeicherten Aktionsabfrage oder den entsprechenden SQL-Ausdruck. Optional kann eine Transaktion angegeben werden, in der die Aktionsabfrage ausgeführt wird. Die zweite Variante ist die Execute-Methode des Database-Objekts der DAO-Bibliothek. Sie bietet ebenfalls einen Parameter an, dem Sie den SQL-Ausdrucks der auszuführenden Abfrage zuweisen – jedoch keine gespeicherten Abfragen, die Sie mit der Abfrage-Entwurfsansicht erstellt haben! Der zweite Parameter jedoch dient der übergabe von Optionen.

Die Execute-Anweisung bietet wesentlich mehr Möglichkeiten als die RunSQL-Methode. Sie können beispielsweise Fehler abfragen, die beim Ausführen von Aktionsabfragen mit der Execute-Anweisung auftreten, oder Sie fragen die Anzahl der von der Aktionsabfrage betroffenen Datensätze ab. Schließlich können Sie auch noch den Primärschlüsselwert des zuletzt hinzugefügten Datensatzes ermitteln, sofern dieser mit einer Aktionsabfrage hinzugefügt wurde.

Einsatz der DoCmd.RunSQL-Methode

Die DoCmd.RunSQL-Methode ist prinzipiell mit dem Menübefehl zum Ausführen der aktuell im Datenbankfenster beziehungsweise im Navigationsbereich markierten Aktionsabfrage zu vergleichen. Der Unterschied ist, dass Sie bei der VBA-Anweisung noch den Namen der Anweisung angeben müssen. Um eine einfache Abfrage zum ändern eines Datensatzes auszuführen, legen Sie diese zunächst wie in Bild 1 an und speichern sie unter dem Namen qryLagerbestandErhoehen. Die Abfrage erhöht den Bestand des Artikels mit dem Wert 1 im Feld ArtikelID um 1.

Aktionsabfrage zum Erhöhen des Lagerbestandes eines Artikels um 1

Bild 1: Aktionsabfrage zum Erhöhen des Lagerbestandes eines Artikels um 1

Wechseln Sie dann in die SQL-Ansicht der Abfrage (am einfachsten durch einen Rechtsklick auf die Titelleiste der Abfrage und Auswahl des Eintrags SQL-Ansicht aus dem Kontextmenü) und kopieren Sie den dort angezeigten SQL-Ausdruck in die Zwischenablage (siehe Bild 2). Diese fügen Sie dann in Anführungszeichen als ersten Parameter der RunSQL-Methode im Direktfenster des VBA-Editors ein (Strg + G):

SQL-Ansicht der Abfrage qryLagerbestandErhoehen

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