Aktionsabfragen

Nehmen wir einmal an, in Deutschland käme es zu einer großen Föderalismusreform und Bayern würde mit Baden-Württemberg zu einem Südstaat fusionieren. Wir könnten nun einfach in unserer Tabelle der Bundesländer die Einträge „Baden-Württemberg“ und „Bayern“ jeweils mit „Südstaat“ überschreiben. Dann hätten wir allerdings zwei Einträge für nur ein Bundesland, was nicht sehr sinnvoll wäre. Statt dessen ändern wir nur den Text von „Bayern“ zu „Südstaat“, ändern sämtliche Einträge in der Tabelle tblOrte auf „2“, in denen bisher eine „1“ stand, und löschen zuletzt in der Tabelle tblLänder den Eintrag „Baden-Württemberg“.

In tblOrte könnten allerdings Hunderte von Datensätzen betroffen sein, so dass eine manuelle Änderung einen enormen Aufwand bedeuten würde. Wie gut, dass es spezielle Abfragen gibt, mit denen man dies automatisieren kann. Dazu erstellen wir zunächst eine Abfrage, die nur die zu ändernden Werte in tblOrte anzeigt:

Abfrage1
tblOrte
*
IDOrt
txtOrt
lngLand
SELECT lngLand
FROM tblOrte
WHERE lngLand = 1;
ÿtr
Feld: lngLand  
Tabelle: tblOrte  
Sortierung:    
Anzeigen:
Kriterien: 1  
oder:    
     
Abfrage1
lngLand
1

Alle Abfragen, die wir bisher kennengelernt haben, waren sogenannte Auswahlabfragen. Jetzt werden wir diese Abfrage in einem anderen Abfragetyp ändern, nämlich in eine Aktualisierungsabfrage. Dazu wählen wir in der Entwurfsansicht den Abfragetyp namens Aktualisieren. Der untere Teil des Entwurfsfensters verändert sich nun: Die Zeilen „Anzeigen“ und „Sortierung“ verschwinden, statt dessen erscheint eine neue Zeile „Aktualisieren“.

Feld: lngLand  
Tabelle: tblOrte  
Aktualisieren:    
Kriterien: 1  
oder:    
     

Das Kriterium „1“ ist erhalten geblieben. In der neuen Zeile „Aktualisieren“ tragen wir jetzt eine „2“ ein:

UPDATE tblOrte
SET lngLand = 2
WHERE lngLand = 1;
Feld: lngLand  
Tabelle: tblOrte  
Aktualisieren: 2  
Kriterien: 1  
oder:    
     

Wenn wir jetzt einfach wieder zur Datenblattansicht wechseln, sehen wir unverändert unsere alten Werte. Obwohl wir den Abfragetyp geändert haben, hat sich in der Datenblattansicht noch nichts verändert.

Abfrage1
lngLand
1

Versuchen wir es nun mit der Schaltfläche Ausführen:

 Microsoft Access

Sie beabsichtigen, 1 Zeile(n) zu aktualisieren.

Sobald Sie auf 'Ja' geklickt haben, können Sie die Änderungen nicht mehr mit dem Befehl 'Rückgängig' zurücknehmen.  
Möchten Sie diese Datensätze wirklich aktualisieren?

 

Wir wählen „Ja“, öffnen danach die Tabelle tblOrte und sehen, dass im Feld lngLand überall dort, wo bisher eine „1“ stand, jetzt eine „2“ steht. Unsere Aktualisierungsabfrage war also erfolgreich!

Folgende Arten von Aktionsabfragen gibt es: