Zusammenfassung
Sie erfahren, wie Sie Aktionsabfragen zum Ändern, Löschen oder Hinzufügen von Daten in neue oder bestehende Tabellen verwenden.
Techniken
Abfragen, Aktionsabfragen, SQL, VBA
Voraussetzungen
Access 2000 oder höher
Beispieldateien
AktionsabfragenMitSQL97.mdb, AktionsabfragenMitSQL00.mdb
Aktionsabfragen mit SQL
André Minhorst, Duisburg
Das Bearbeiten von Daten ist eine der Hauptfunktionen von Datenbankanwendungen. In Access geschieht das entweder von Hand in Formularen, per VBA oder per Aktionsabfrage. Letztere lassen sich nicht nur aus dem Datenbankfenster heraus, sondern auch per VBA aufrufen und auch erstellen. Dabei sind Aktionsabfragen in den meisten Fällen wesentlich schneller als die entsprechenden Anweisungen der Datenzugriffstechniken DAO und ADO. Grund genug, Aktionsabfragen einmal genauer unter die Lupe zu nehmen.
Grundlagen
SQL bietet neben den SELECT-Abfragen zum Auswählen von Daten aus den Tabellen einer Datenbank auch die Möglichkeit, Daten zu ändern. Dazu stellt SQL eine Reihe unterschiedlicher Aktionsabfragen bereit, von denen jede für eine bestimmte Änderungsart zuständig ist:
Anfügeabfragen (INSERT INTO): Hinzufügen kompletter Datensätze in bestehende Tabellen
Aktualisierungsabfragen (UPDATE): Aktualisieren von bestehenden Datensätzen
Löschabfragen (DELETE): Löschen von Datensätzen einer Tabelle
Tabellenerstellungsabfragen (SELECT INTO): Gleichzeitiges Erstellen einer Tabelle und Hinzufügen von Daten
Erstellen und Ausführen
Aktionsabfragen liegen wie Auswahlabfragen als gespeicherte Abfrage oder als Zeichenkette vor (SQL-String). Gespeicherte Abfragen kann man sowohl von der Benutzungsoberfläche von Access aus als auch per Code starten. Ausschließlich per Code lassen sich dynamisch zusammengesetzte SQL-Strings aufrufen.
Erstellen einer Aktionsabfrage
Um eine Aktionsabfrage zu erstellen, gehen Sie wie beim Erstellen einer Auswahlabfrage vor. Klicken Sie auf der Registerseite Abfragen des Datenbankfensters auf die Schaltfläche Neu und wählen Sie den Eintrag Entwurfsansicht aus.
Im nun erscheinenden Dialog Tabelle anzeigen wählen Sie die Tabellen aus, die Sie für die Aktionsabfrage benötigen.

Abb. 1: Auswahl des Abfragetyps

Abb. 2: Anzeigen der Datenblattansicht

Abb. 3: Datenblattansicht per Kontextmenü

Abb. 4: Anzeige der unterschiedlichen Aktionsabfragen
Hierbei hängt es von der Art der Aktionsabfrage ab, ob die hier ausgewählten Tabellen lediglich die Daten liefern oder Ziel der Datenmanipulation sind.
Bei der Aktualisierungsabfrage und der Löschabfrage ist die ausgewählte Tabelle das Ziel der Aktion, während Sie bei Anfügeabfragen und Tabellenerstellungsabfragen zunächst die Quelle der anzufügenden Daten auswählen.
Wenn Sie die gewünschte Tabelle oder Abfrage ausgewählt haben, können Sie auf die herkömmliche Entwurfsansicht von Abfragen zugreifen.
Um aus der Abfrage eine Aktionsabfrage zu erstellen, wählen Sie aus dem Menü Abfragen einen der Einträge Tabellenerstellungsabfrage..., Aktualisierungsabfrage, Anfügeabfrage... oder Löschabfrage aus (s. Abb. 1).
An den Pünktchen erkennen Sie bereits die Abfragetypen, die im nächsten Schritt noch einen zusätzlichen Dialog öffnen, um weitere Tabellen für die Zusammenstellung der Aktionsabfrage zu erfragen.
Voransicht des Ergebnisses
Alle Aktionsabfragen bieten die Möglichkeit, sich vorher die betroffenen Datensätze anzusehen. Dazu klicken Sie bei aktivierter Entwurfsansicht einfach auf die Schaltfläche Ansicht (bei aktiviertem Datenblattansicht-Symbol) oder wählen dort den Eintrag Datenblattansicht aus.
Alternativ und noch schneller geht das mit dem entsprechenden Eintrag des Kontextmenüs (s. Abb. 3).
Darstellung
Aktionsabfragen werden im Datenbankfenster wie alle anderen Sonderlinge mit einem speziellen Symbol dargestellt (s. Abb. 4).
Einstellungen
Im Optionen-Dialog gibt es eine Einstellung, mit der Sie festlegen können, dass vor dem Ausführen einer Aktionsabfrage eine Meldung ausgegeben wird und eine Rückfrage vor der Durchführung der Datenänderung erfolgt. Sie finden diese Einstellung namens Aktionsabfragen im Bereich Bestätigung der Registerseite Bearbeiten/Suchen dieses Dialogs.
Parameter
Genau wie in herkömmlichen Access-Abfragen können Sie innerhalb von Aktionsabfragen Parameter verwenden. Dazu geben Sie den gewünschten Platzhalter einfach wie in folgendem Beispiel in eckigen Klammern an:
DELETE Artikelname
FROM Artikel
WHERE Artikelname Like [Geben Sie den Namen des zu löschenden Artikels ein];
Access- und benutzerdefinierte Funktionen
Solange Sie nur mit Access beziehungsweise mit der Jet-Engine als Backend arbeiten, können Sie die in Access eingebauten Funktionen sowie benutzerdefinierte Funktionen in Aktionsabfragen verwenden.
Ist das nicht der Fall, weil Sie etwa mit der MSDE oder dem SQL Server arbeiten, steht eine Alternative auf dem Plan: Setzen Sie die Abfrage inklusive des per Funktion ermittelten Wertes dynamisch zusammen und lassen Sie diese dann durch den jeweiligen Datenbankserver bearbeiten.
Kompatibilität der Datentypen
Bei Abfragen, die Daten an eine bestehende Tabelle anfügen oder Datensätze ändern, sollten Sie darauf achten, dass die einzufügenden Werte mit den Datentypen der Zielfelder kompatibel sind.
In vielen Fällen kann Access zwar eine Konvertierung vornehmen, aber dies kostet natürlich Performance - und damit gerade beim Anfügen oder Aktualisieren großer Mengen Daten viel Zeit.
Daten hinzufügen
Für das Hinzufügen neuer Datensätze in eine bestehende Tabelle ist unter SQL die INSERT INTO-Abfrage verantwortlich. Es gibt zwei Varianten der INSERT INTO-Abfrage, die die anzufügenden Daten auf unterschiedliche Weise ermitteln.
|