Mit Aktualisierungsabfragen in Access-Datenbanken können Sie Daten vorhandener Datensätzen erweitern, ändern oder löschen. Aktualisierungsabfragen können Sie sich als leistungsfähige Version des Dialogfelds Suchen und Ersetzen vorstellen. Mit einer Aktualisierungsabfrage können Sie keine neuen Datensätze zu einer Datenbank hinzufügen oder Datensätze aus einer Datenbank löschen.
Verwenden Sie eine Anfügeabfrage, um neue Datensätze zu einer Datenbank hinzuzufügen bzw. eine Löschabfrage, um ganze Datensätze aus einer Datenbank zu löschen.
Inhalt dieses Artikels
- Übersicht
- Verwenden einer Aktualisierungsabfrage
- Aktualisieren von Daten einer Tabelle mit den Daten einer anderen
- Aufheben der Blockierung einer Abfrage durch den Modus "Deaktiviert"
- SQL-Version: UPDATE-Anweisung
Übersicht
Die Ähnlichkeiten und Unterschiede zwischen dem Feld "Suchen und Ersetzen" und einer Aktualisierungsabfrage sind nachstehend aufgeführt:
Wie im Dialogfeld Suchen und Ersetzen können Sie mit einer Aktualisierungsabfrage den zu ersetzenden Wert und den neuen Wert angeben:
Im Gegensatz zum Dialogfeld Suchen und Ersetzen bietet eine Aktualisierungsabfrage die folgenden Möglichkeiten:
- Verwenden von Kriterien, die nicht von dem zu ersetzenden Wert abhängig sind
- Aktualisieren einer größeren Menge von Datensätzen in einem Schritt
- Gleichzeitiges Ändern von Datensätzen in mehr als einer Tabelle
Einschränkungen für aktualisierbare Felder
Mit einer Aktualisierungsabfrage können die Daten in den folgenden Feldtypen nicht aktualisiert werden:
Berechnete Felder Die Werte in berechneten Feldern befinden sich nicht dauerhaft in Tabellen. Nachdem Sie in Access berechnet wurden, sind sie nur im temporären Speicher des Computers vorhanden. Da berechnete Felder keinen dauerhaften Speicherort aufweisen, können Sie diese nicht aktualisieren.
Felder aus einer Summenabfrage oder einer Kreuztabellenabfrage Die Werte in diesen Abfragearten werden berechnet und können daher nicht mit einer Aktualisierungsabfrage aktualisiert werden.
AutoWert-Felder Standardmäßig werden die Werte in AutoWert-Feldern nur geändert, wenn Sie einer Tabelle einen Datensatz hinzufügen.
Felder in Abfragen mit eindeutigen Werten und Abfragen mit eindeutigen Datensätzen Die Werte in solchen Abfragen werden zusammengefasst. Einige der Werte stellen einen einzelnen Datensatz dar, andere stellen mehr als einen Datensatz dar. Der Aktualisierungsvorgang ist nicht möglich, da nicht ermittelt werden kann, welche Datensätze als Duplikate ausgeschlossen wurden und daher nicht alle erforderlichen Datensätze aktualisiert werden können. Diese Einschränkung gilt unabhängig davon, ob Sie eine Aktualisierungsabfrage verwenden oder versuchen, Daten manuell zu aktualisieren, indem Sie Werte in ein Formular oder ein Datenblatt eingeben.
Felder in einer Union-Abfrage Daten aus Feldern in einer Union-Abfrage können nicht aktualisiert werden, da jeder Datensatz, der in zwei oder mehr Datenquellen angezeigt wird, nur einmal im Ergebnis der Union-Abfrage angezeigt wird. Da einige doppelte Datensätze in den Ergebnissen nicht enthalten sind, kann Access nicht alle erforderlichen Datensätze aktualisieren.
Primärschlüsselfelder In einigen Fällen, z. B. wenn das Primärschlüsselfeld in einer Tabellenbeziehung verwendet wird, kann das Feld erst aktualisiert werden, wenn Sie die Beziehung für die automatische Aktualisierungsweitergabe einrichten.
Hinweis
Bei der Aktualisierungsweitergabe aktualisiert Access automatisch die Fremdschlüsselwerte, wenn in einer übergeordneten Tabelle ein Primärschlüsselwert geändert wird.
Verwenden einer Aktualisierungsabfrage
Als bewährte Methode beim Erstellen einer Updateabfrage erstellen Sie zunächst eine Auswahlabfrage, die die datensätze identifiziert, die Sie aktualisieren möchten, und konvertieren Sie diese Abfrage dann in eine Updateabfrage, die Sie ausführen können, um die Datensätze zu aktualisieren. Indem Sie zuerst Daten auswählen, können Sie überprüfen, ob Sie die gewünschten Datensätze aktualisieren, bevor Sie tatsächlich Daten ändern.
Tipp
Bevor Sie eine Aktualisierungsabfrage ausführen, sollten Sie Ihre Datenbank sichern. Da Sie die Ergebnisse einer Aktualisierungsabfrage nicht rückgängig machen können, wird mithilfe einer Sicherung sichergestellt, dass Sie im Bedarfsfall die Änderungen zurücknehmen können.
Sichern der Datenbank
- Klicken Sie auf die Registerkarte Datei , und wählen Sie dann Speichern unter aus.
- Wählen Sie auf der rechten Seite unter Erweitert die Option Datenbank sichern aus.
- Geben Sie im Dialogfeld Sicherung speichern unter einen Namen und speicherort für die Sicherungskopie an, und wählen Sie dann Speichern aus.
Die ursprüngliche Datei wird von Access geschlossen, eine Sicherungskopie wird erstellt, und die ursprüngliche Datei wird wieder geöffnet.
Schließen Sie die ursprüngliche Datei, wenn Sie eine Sicherung wiederherstellen möchten, und benennen Sie sie um, damit für die Sicherungskopie der Name der ursprünglichen Version verwendet werden kann. Weisen Sie der Sicherungskopie den Namen der ursprünglichen Version zu, und öffnen Sie dann die umbenannte Sicherungskopie in Access.
In diesem Abschnitt
- Schritt 1: Erstellen einer Auswahlabfrage zum Identifizieren der Datensätze, die aktualisiert werden sollen
- Schritt 2: Aktualisieren der Datensätze
Schritt 1: Erstellen einer Auswahlabfrage zum Identifizieren der Datensätze, die aktualisiert werden sollen
Öffnen Sie die Datenbank, die die Datensätze enthält, die Sie aktualisieren möchten.
Wählen Sie auf der Registerkarte Erstellen in der Gruppe Abfragen die Option Abfrageentwurf aus.
Wählen Sie die Registerkarte Tabellen aus.
Wählen Sie die Tabelle(n) aus, die die zu aktualisierenden Datensätze enthält, wählen Sie Hinzufügen und dann Schließen aus.
Die Tabelle oder Tabellen werden als ein oder mehrere Fenster im Abfrage-Designer angezeigt, und die Fenster listen alle Felder in jeder Tabelle auf. Diese Abbildung zeigt den Abfrage-Designer mit einer typischen Tabelle.
Im Abfrage-Designer angezeigte Tabelle
AbfrageentwurfsbereichDoppelklicken Sie in den Tabellenfenstern auf die Felder, die Sie aktualisieren möchten. Die ausgewählten Felder werden in der Zeile Feld im Abfrageentwurfsbereich angezeigt.
Im Abfrageentwurfsbereich können Sie ein Tabellenfeld pro Spalte hinzufügen.
Doppelklicken Sie im Tabellenfenster auf das Sternchen (*) am Anfang der Liste mit den Tabellenfeldern, um alle Felder in einer Tabelle schnell hinzuzufügen. In dieser Abbildung wird der Abfrageentwurfsbereich mit allen hinzugefügten Feldern angezeigt.
Wenn Sie die Abfrageergebnisse aufgrund von Feldwerten einschränken möchten, geben Sie im Abfrageentwurfsbereich in der Zeile Kriterien die Kriterien ein, die zum Einschränken der Ergebnisse verwendet werden sollen.
Tabelle mit Beispielkriterien
In der folgenden Tabelle sind einige Beispielkriterien mit den jeweiligen Auswirkungen auf die Ergebnisse einer Abfrage aufgeführt.Hinweis
In vielen Beispielen dieser Tabelle werden Platzhalterzeichen verwendet, damit die Abfrage flexibler ist und bessere Ergebnisse liefert.
Kriterien Auswirkung >234 Gibt alle Zahlen größer als 234 zurück. Verwenden Sie < 234, um alle Zahlen zu finden, die kleiner als 234 sind. >="Cajhen" Gibt alle Datensätze ab Motte bis zum Ende des Alphabets zurück. Zwischen dem 02.02.2020 und dem 01.12.2020# Gibt Datumsangaben vom 2.02.17 bis zum 1.12.17 (ANSI-89) zurück. Wenn Ihre Datenbank die ANSI-92-Wildcardzeichen verwendet, verwenden Sie einfache Anführungszeichen (') anstelle von Nummernzeichen (#). Beispiel: Zwischen "2/2/2020" und "12/1/2020" . Nicht "Deutschland" Findet alle Datensätze, in denen die genauen Inhalte des Felds nicht "Deutschland" entsprechen. Durch das Kriterium werden Datensätze zurückgegeben, die neben "Deutschland" noch weitere Zeichen enthalten, z. B. "Deutschland (Euro)" oder "Europa (Deutschland)". Nicht "T*" Sucht alle Datensätze mit Ausnahme von Datensätzen, die mit T beginnen. Wenn Ihre Datenbank den ANSI-92-Platzhalterzeichensatz verwendet, verwenden Sie anstelle des Sternchens () das Prozentzeichen (*%). Nicht "*t" Findet alle Datensätze, die nicht auf "t" enden. Verwenden Sie das Prozentzeichen (%) anstelle des Sternchens (*), wenn Ihre Datenbank den ANSI-92-Platzhalter-Zeichensatz verwendet. In(Kanada,GB) Findet in einer Liste alle Datensätze, die "Kanada" oder "GB" enthalten. Wie "[A-D]*" Findet in einem Textfeld alle Datensätze, die mit den Buchstaben A bis D beginnen. Wenn in der Datenbank ANSI-92-Platzhalterzeichen verwendet werden, verwenden Sie das Prozentzeichen (%) anstelle des Sternchens (*). Wie "*ar*" Ruft alle Datensätze ab, die die Buchstabenfolge "ar" enthalten. Wenn in der Datenbank ANSI-92-Platzhalterzeichen verwendet werden, fügen Sie anstelle des Sternchens (*) das Prozentzeichen (%) ein. Wie "Maison Dewe?" Findet alle Datensätze, die mit "Maison" beginnen und eine zweite aus 5 Buchstaben bestehende Zeichenfolge enthalten, deren erste 4 Buchstaben "Dewe" lauten und deren letzter Buchstabe unbekannt ist. Wenn Ihre Datenbank den ANSI-92-Wildcardzeichensatz verwendet, verwenden Sie anstelle des Fragezeichens (?) den Unterstrich (_). #2/2/2020# Sucht alle Datensätze für den 2. Februar 2020. Wenn Ihre Datenbank den ANSI-92-Zeichensatz verwendet, setzen Sie das Datum in einfache Anführungszeichen (') anstelle von Nummernzeichen (#); Beispiel: ('2/2/2020'). < Date() - 30 Gibt mit der Funktion Datum alle Daten zurück, die mehr als 30 Tage zurückliegen. Datum() Gibt mit der Funktion Datum alle Datensätze mit dem Tagesdatum zurück. Zwischen Datum() und DateAdd("M", 3, Datum()) Verwendet die Funktionen Datum und DateAdd, um alle Datensätze zwischen dem Tagesdatum und dem Datum in drei Monaten ab heute zurückzugeben. Ist Null Gibt alle Datensätze zurück, die einen (leeren oder nicht definierten) NULL-Wert enthalten. Ist Nicht Null Gibt alle Datensätze zurück, die einen Wert enthalten. "" Gibt alle Datensätze zurück, die eine leere Zeichenfolge enthalten. Leere Zeichenfolgen verwenden Sie, wenn Sie einem erforderlichen Feld einen Wert hinzufügen müssen, Sie aber diesen Wert noch nicht kennen. Beispielsweise könnte ein Feld eine Faxnummer erfordern, aber manche Ihrer Kunden haben möglicherweise kein Faxgerät. In diesem Fall geben Sie doppelte Anführungszeichen ohne Leerzeichen dazwischen ("") anstelle einer Zahl ein. Wählen Sie auf der Registerkarte Abfrageentwurf in der Gruppe Ergebnisse die Option Ausführen aus.
Überprüfen Sie, ob die Abfrage die Datensätze zurückgibt, die Sie aktualisieren möchten.
Um alle Felder, die im Abfrageentwurf nicht enthalten sein sollen, zu entfernen, wählen Sie die Felder aus und drücken ENTF.
Wenn Sie weitere Felder, die in der Abfrage enthalten sein sollen, hinzufügen möchten, ziehen Sie diese Felder in den Abfrageentwurfsbereich.
Schritt 2: Aktualisieren der Datensätze
Wählen Sie auf der Registerkarte Abfrageentwurf in der Gruppe Abfragetyp die Option Aktualisieren aus.
In diesem Verfahren erfahren Sie, wie Sie eine Auswahlabfrage in eine Updateabfrage ändern. Wenn Sie dies tun, fügt Access die Zeile Update zu im Abfrageentwurfsraster hinzu. Die folgende Abbildung zeigt eine Aktualisierungsabfrage, die alle nach dem 5. Januar 2005 erworbenen Ressourcen zurückgibt und den Speicherort für alle Datensätze, die dieses Kriterium erfüllen, in "Warehouse 3" ändert.
Suchen Sie das Feld, das die Daten enthält, die Sie ändern möchten, und geben Sie dann in die Zeile Aktualisieren für dieses Feld den Ausdruck (Ihre Änderungskriterien) ein.
In der Zeile Aktualisieren können Sie jeden gültigen Ausdruck verwenden.
Tabelle mit Beispielausdrücken
Die folgende Tabelle enthält Beispielausdrücke und beschreibt, wie damit Daten geändert werden.Ausdruck Ergebnis "Verkaufsberater/in" Ändert in einem Feld Kurzer Text einen Textwert in Salesperson. #8/10/20# Ändert in einem Datums-/Uhrzeitfeld einen Datumswert in 10-Aug-20. Ja Ändert in einem Feld vom Datentyp "Ja/Nein" den Wert Nein in Ja. "TN" & [Teilenummer] Fügt "TN" am Anfang jeder angegebenen Teilenummer an. [Einzelpreis] * [Menge] Multipliziert die Werte im Feld "Einzelpreis" mit "Menge". [Fracht] * 1,5 Erhöht die Werte in einem Feld namens "Fracht" um 50 %. DSum("[Quantity] * [UnitPrice]",
"Bestelldetails", "[ProductID]=" & [ProductID])Wenn die Werte von ArtikelNr in der aktuellen Tabelle mit den Werten von ArtikelNr in der Tabelle Bestelldetails übereinstimmen, wird mit diesem Ausdruck der Gesamtumsatz aktualisiert, indem die Werte im Feld Menge mit den Werten im Feld Einzelpreis multipliziert werden. Der Ausdruck verwendet die Funktion DomSumme, da sie für mehr als eine Tabelle und mehr als ein Tabellenfeld ausgeführt werden kann. Rechts([BestimmungsortPLZ], 5) Schneidet die linken Zeichen in einem Text oder einer numerischen Zeichenfolge ab (entfernt sie) und belässt die fünf rechten Zeichen. Wenn(IstNull([Einzelpreis]), 0, [Einzelpreis]) Ändert im Feld "Einzelpreis" einen (unbekannten oder nicht definierten) Nullwert in Null (0). Wählen Sie auf der Registerkarte Abfrageentwurf in der Gruppe Ergebnisse die Option Ausführen aus.
Eine Warnmeldung wird angezeigt.Wählen Sie Ja aus, um die Abfrage auszuführen und die Daten zu aktualisieren.
Hinweis
Wenn Sie die Abfrage ausführen, werden Sie möglicherweise bemerken, dass einige Felder im Resultset fehlen. Falls die Abfrage Felder enthält, die Sie nicht aktualisieren, werden diese von Access standardmäßig nicht in den Ergebnissen angezeigt. Beispielsweise können Sie ID-Felder aus zwei Tabellen einschließen, um sicherzustellen, dass Ihre Abfrage die richtigen Datensätze identifiziert und aktualisiert. Wenn Sie diese ID-Felder nicht aktualisieren, werden sie von Access nicht in den Ergebnissen angezeigt.
Aktualisieren von Daten einer Tabelle mit den Daten einer anderen
Wenn Sie Daten einer Tabelle mit den Daten einer anderen aktualisieren müssen, beachten Sie die folgende Regel: Die Datentypen der Quell- und Zielfelder müssen entweder übereinstimmen oder kompatibel sein.
Wenn Sie die Daten in einer Tabelle mit den Daten einer anderen aktualisieren und kompatible statt übereinstimmende Datentypen verwenden, werden außerdem von Access die Datentypen dieser Felder in der Zieltabelle konvertiert. Deshalb sind einige Daten in der Zieltabelle möglicherweise abgeschnitten (gelöscht). Im Abschnitt Beschränkungen für Datentypkonvertierungen sind die Möglichkeiten zum Konvertieren von Datentypen aufgeführt. In der Tabelle in diesem Abschnitt wird außerdem erläutert, wann durch das Konvertieren eines Datentyps einige oder alle Daten in einem Feld geändert oder entfernt werden und welche Daten entfernt werden können.
Zum Aktualisieren von Daten in einer Tabelle mit den Daten einer anderen Tabellen sind im Wesentlichen die folgenden Schritte erforderlich:
- Erstellen Sie eine Aktualisierungsabfrage, und fügen Sie der Abfrage die Quell- und Zieltabellen hinzu.
- Verknüpfen Sie die Tabellen in den Feldern, die die verwandten Informationen enthalten.
- Fügen Sie der Zeile Feld des Abfrageentwurfsbereichs die Namen der Zielfelder hinzu.
- Fügen Sie die Namen Ihrer Quellfelder der Zeile Aktualisieren auf des Abfrageentwurfsbereichs mithilfe der folgenden Syntax hinzu: [source_table]. [source_field].
Die Schritte in diesem Abschnitt setzen die Verwendung von zwei ähnlichen Tabellen voraus. In diesem Beispiel befindet sich die Tabelle Clients in einer Datenbank, die Sie gerade geerbt haben, und enthält aktuellere Daten als die Tabelle Customers. Sie können sehen, dass sich einige Der Namen und Adressen des Managers geändert haben. Aus diesem Grund entscheiden Sie sich, die Tabelle Customers mit den Daten aus der Tabelle Clients zu aktualisieren.
Kliententabelle
| Klienten-ID | Name | Adresse | Ort | Bundesland/Kanton | PLZ | Land/Region | Telefon | Contact |
|---|---|---|---|---|---|---|---|---|
| 1 | Baldwin Museum of Science | Hauptstraße 1 | Berlin | Berlin | 12345 | Deutschland | (01234) 12 34-56 | Jörg Bott |
| 2 | Blue Yonder Airlines | Montagsweg 123 | Kiel | Schleswig-Holstein | 23456 | Deutschland | (0123) 6 78-9 | Cristina Potra |
| 3 | Coho Winery | 3122 75. Ave. S.W. | Frankfurt am Main | Hessen | 34567 | Deutschland | (0456) 1 23-0 | David Probst |
| 4 | Contoso Pharmaceuticals | Beispielallee 234 | München | Bayern | NS1 EW2 | Deutschland | (098) 9 02-01 | David Ahs |
| 5 | Fourth Coffee | Donnerstagsgasse 345 | Hamburg | 56789 | Deutschland | (0123) 2 34 56 78 | Per Reitzel | |
| 6 | Consolidated Messenger | Beispielgasse 123 | Frankfurt am Main | Hessen | 34567 | Deutschland | (0456) 1 23-4 | Michael Anderberg |
| 7 | Graphic Design Institute | Freitagsweg 78 | Essen | Nordrhein-Westfalen | 87654 | Deutschland | (04567) 78 91 23 45 | Sara Hettich |
| 8 | Litware, Inc. | Sonntagsalle 3 | Dortmund | Nordrhein-Westfalen | 31415 | Deutschland | (05678) 56 78 91 23 | Michael Brundage |
| 9 | Tailspin Toys | Sonntagsalle 4 | Dortmund | Nordrhein-Westfalen | 31415 | Deutschland | (05678) 56 78 91 23 | Daniel Brunner |
Die Kundentabelle
| Kunden-ID | Name | Adresse | Ort | Bundesland/Kanton | PLZ | Land oder Region | Telefon | Manager |
|---|---|---|---|---|---|---|---|---|
| 1 | Baldwin Museum of Science | Hauptstraße 1 | Berlin | Berlin | 12345 | Deutschland | (01234) 12 34-56 | Martin Rienstra |
| 2 | Blue Yonder Airlines | Montagsweg 123 | Kiel | Schleswig-Holstein | 23456 | Deutschland | (0123) 6 78-9 | Cristina Potra |
| 3 | Coho Winery | 3122 75. Ave. S.W. | Frankfurt am Main | Hessen | 34567 | Deutschland | (0456) 1 23-0 | David Probst |
| 4 | Contoso Pharmaceuticals | Beispielallee 234 | München | Bayern | NS1 EW2 | Deutschland | (098) 9 02-01 | David Ahs |
| 5 | Fourth Coffee | Samstagsweg 789 | Hamburg | 56789 | Deutschland | (0123) 2 34 56 78 | Per Reitzel | |
| 6 | Consolidated Messenger | Beispielgasse 123 | Frankfurt am Main | Hessen | 34567 | Deutschland | (0456) 1 23-4 | Kim Ralls |
| 7 | Graphic Design Institute | Mittwochsallee 345 | Essen | Nordrhein-Westfalen | 87654 | Deutschland | (04567) 78 91 23 45 | Gretchen Rivas |
| 8 | Litware, Inc. | Sonntagsalle 3 | Dortmund | Nordrhein-Westfalen | 31415 | Deutschland | (05678) 56 78 91 23 | Jesper Aaberg |
| 9 | Tailspin Toys | Sonntagsalle 4 | Dortmund | Nordrhein-Westfalen | 31415 | Deutschland | (05678) 56 78 91 23 | Daniel Brunner |
Denken Sie im Weiteren daran, dass die Datentypen für jedes Tabellenfeld zwar nicht übereinstimmen müssen, aber kompatibel sein müssen. Access muss in der Lage sein, die Daten in der Quelltabelle in einen Typ zu konvertieren, den die Zieltabelle verwenden kann. In einigen Fällen kann der Konvertierungsprozess einige Daten löschen. Weitere Informationen zu Einschränkungen beim Konvertieren von Datentypen finden Sie im Abschnitt Einschränkungen für Datentypkonvertierungen.
Erstellen und Ausführen der Aktualisierungsabfrage
Hinweis
Für die folgenden Schritte wird die Verwendung der beiden Beispieltabellen oben angenommen. Sie können die Schritte für Ihre Daten anpassen.
- Wählen Sie auf der Registerkarte Erstellen in der Gruppe Abfragen die Option Abfrageentwurf aus.
- Wählen Sie Tabellen hinzufügen aus.
- Doppelklicken Sie auf die Quell- und Zieltabellen, um sie der Abfrage hinzuzufügen. Jede Tabelle wird im oberen Abschnitt des Abfrage-Designers in einem Fenster angezeigt.
- In den meisten Fällen verknüpft Access verwandte Felder in einer Abfrage automatisch. Wenn Sie Felder, die verwandte Informationen erhalten, manuell verknüpfen möchten, ziehen Sie das zu verknüpfende Feld aus der einen Tabelle zum entsprechenden Feld in der anderen Tabelle.
Wenn Sie beispielsweise die zuvor gezeigten Beispieltabellen verwenden, ziehen Sie das Feld Client-ID in das Feld Kunden-ID. Access erstellt eine Beziehung zwischen diesen Feldern in den beiden Tabellen und verwendet diese Beziehung, um verknüpfte Datensätze zu verknüpfen. - Wählen Sie auf der Registerkarte Abfrageentwurf in der Gruppe Abfragetyp die Option Aktualisieren aus.
- Doppelklicken Sie in der Zieltabelle auf die Felder, die Sie aktualisieren möchten. Jedes Feld wird in der Zeile Feld im Abfrageentwurfsbereich angezeigt.
Fügen Sie alle Felder außer dem Feld "Kunden-ID" hinzu, wenn Sie die Beispieltabellen verwenden. Der Name der Zieltabelle wird in der Zeile Tabelle des Entwurfsbereichs angezeigt. - Fügen Sie in der Zeile Aktualisieren auf der Abfrage in jeder der Spalten, die ein Zielfeld enthält, den Namen der Quelltabelle und das Feld in der Quelltabelle hinzu, das dem Feld in der Zieltabelle entspricht, und stellen Sie sicher, dass Sie diese Syntax verwenden: [Tabelle].[ Feld] , wobei Sie Tabellen- und Feldnamen in eckige Klammern einschließen und Tabellen- und Feldnamen durch einen Punkt trennen.
Diese Abbildung zeigt einen Teil des Entwurfsrasters unter Verwendung der Beispieltabellen. Beachten Sie die Syntax für die Tabellen- und Feldnamen in der Zeile Aktualisieren auf .
Denken Sie im Weiteren daran, dass Sie die Tabellen- und Feldnamen in der Zeile Aktualisieren auf richtig schreiben müssen und dass Sie alle Interpunktionszeichen in der ursprünglichen Tabelle und den Feldnamen übereinstimmen müssen. Sie müssen jedoch nicht mit der Groß-/Kleinschreibung übereinstimmen. - Wählen Sie auf der Registerkarte Abfrageentwurf in der Gruppe Ergebnisse die Option Ausführen aus.
- Wenn Sie aufgefordert werden, das Update zu bestätigen, wählen Sie Ja aus.
Beschränkungen für Datentypkonvertierungen
In der folgenden Tabelle werden die Access-Datentypen aufgeführt, Beschränkungen beim Konvertieren von Datentypen erläutert und kurz mögliche Datenverluste beim Konvertieren beschrieben.
| Konvertierung in | Von | Änderungen oder Einschränkungen |
|---|---|---|
| Kurzer Text | Langer Text | Access löscht außer den ersten 255 alle Zeichen. |
| Zahl | Keine Einschränkungen. | |
| Datum/Uhrzeit | Keine Einschränkungen. | |
| Währung | Keine Einschränkungen. | |
| AutoWert | Keine Einschränkungen. | |
| Ja/Nein | Der Wert "-1" ("Ja" in einem Ja/Nein-Feld) wird in "Ja" konvertiert. Der Wert "0" ("Nein" in einem Ja/Nein-Feld) wird in "Nein" konvertiert. | |
| Hyperlink | Access schneidet Hyperlinks ab, die mehr als 255 Zeichen umfassen. | |
| Langer Text | Kurzer Text | Keine Einschränkungen. |
| Zahl | Keine Einschränkungen. | |
| Datum/Uhrzeit | Keine Einschränkungen. | |
| Währung | Keine Einschränkungen. | |
| AutoWert | Keine Einschränkungen. | |
| Ja/Nein | Der Wert "-1" ("Ja" in einem Ja/Nein-Feld) wird in "Ja" konvertiert. Der Wert "0" ("Nein" in einem Ja/Nein-Feld) wird in "Nein" konvertiert. | |
| Hyperlink | Keine Einschränkungen. | |
| Zahl | Kurzer Text | Text muss aus Zahlen und gültigen Währungs- und Dezimaltrennzeichen bestehen. Die Anzahl der Zeichen im Feld "Text" muss in dem für das Feld "Zahl" festgelegten Größenbereich liegen. |
| Langer Text | Das Feld "Langer Text" darf nur Text und gültige Währungs- und Dezimaltrennzeichen enthalten. Die Anzahl der Zeichen im Feld "Langer Text" muss innerhalb der für das Feld Zahl festgelegten Größe liegen. | |
| Zahl, jedoch mit einer anderen Feldgröße oder Genauigkeit | Werte dürfen nicht größer oder kleiner als die Werte sein, die in der neuen Feldgröße gespeichert werden können. Wenn Sie die Genauigkeit ändern, rundet Access möglicherweise einige Werte. | |
| Datum/Uhrzeit | Welche Datumsangaben konvertiert werden können, hängt von der Größe des Felds "Zahl" ab. Denken Sie daran, dass Access alle Datumsangaben als serielle Datumsangaben und die Datumswerte als Gleitkommazahlen mit doppelter Genauigkeit speichert. Access verwendet den 30. Dezember 1899 als Datum 0. Datumsangaben außerhalb des Bereichs 18. April 1899 und 11. September 1900 übersteigen die Größe eines Bytefelds. Datumsangaben außerhalb des Bereichs 13. April 1810 und 16. September 1989 überschreiten die Größe eines Integer-Felds. Legen Sie für die Eigenschaft Feldgröße des Zahl-Felds den Wert Long Integer oder größer fest, um alle möglichen Datumsangaben aufnehmen zu können. |
|
| Währung | Werte dürfen die für das Feld festgelegte Größenbeschränkung nicht überschreiten (oder unterschreiten). Sie können beispielsweise das Feld "Währung" nur dann in ein Feld "Integer" umwandeln, wenn diese Werte größer als 255 und kleiner als 32.767 sind. | |
| AutoWert | Werte müssen innerhalb der für das Feld festgelegten Größenbeschränkung liegen. | |
| Ja/Nein | Ja-Werte werden in "-1" konvertiert. Nein-Werte werden in "0" konvertiert. | |
| Datum/Uhrzeit | Kurzer Text | Ursprünglicher Text muss als Datum oder als Datum/Uhrzeit-Kombination erkennbar sein. Beispiel: 18-Jan-2020. |
| Langer Text | Ursprünglicher Text muss als Datum oder als Datum/Uhrzeit-Kombination erkennbar sein. Beispiel: 18-Jan-2020. | |
| Zahl | Wert muss zwischen -657.434 und 2.958.465,99998843 liegen. | |
| Währung | Wert muss zwischen -657.434 € und 2.958.465,9999 € liegen. | |
| AutoWert | Wert muss größer als -657.434 und kleiner als 2.958.466 sein. | |
| Ja/Nein | Der Wert -1 (Ja) wird in den 29. Dezember 1899 konvertiert. Der Wert 0 (Nein) wird in Mitternacht (12:00 Uhr) konvertiert. | |
| Währung | Kurzer Text | Text muss aus Zahlen und gültigen Trennzeichen bestehen. |
| Langer Text | Text muss aus Zahlen und gültigen Trennzeichen bestehen. | |
| Zahl | Keine Einschränkungen. | |
| Datum/Uhrzeit | Keine Einschränkungen, der Wert wird von Access jedoch möglicherweise gerundet | |
| AutoWert | Keine Einschränkungen. | |
| Ja/Nein | Der Wert "-1" ("Ja") wird in "1 €" konvertiert. Der Wert "0" ("Nein") wird in "0 €" konvertiert. | |
| AutoWert | Kurzer Text | Nicht zulässig, wenn das AutoWert-Feld als Primärschlüssel dient. |
| Langer Text | Nicht zulässig, wenn das AutoWert-Feld als Primärschlüssel dient. | |
| Zahl | Nicht zulässig, wenn das AutoWert-Feld als Primärschlüssel dient. | |
| Datum/Uhrzeit | Nicht zulässig, wenn das AutoWert-Feld als Primärschlüssel dient. | |
| Währung | Nicht zulässig, wenn das AutoWert-Feld als Primärschlüssel dient. | |
| Ja/Nein | Nicht zulässig, wenn das AutoWert-Feld als Primärschlüssel dient. | |
| Ja/Nein | Kurzer Text | Ursprünglicher Text darf nur aus "Ja", "Nein", "Wahr", "Falsch", "Ein" oder "Aus" bestehen. |
| Langer Text | Ursprünglicher Text darf nur aus "Ja", "Nein", "Wahr", "Falsch", "Ein" oder "Aus" bestehen. | |
| Zahl | Null wird in "Nein" konvertiert, alle anderen Werte werden in "Ja" konvertiert. | |
| Datum/Uhrzeit | Null oder 24:00:00 Uhr wird in "Nein" konvertiert, alle anderen Werte werden in "Ja" konvertiert. | |
| Währung | Keine und leere Zeichenfolgen werden in "Nein" konvertiert, alle anderen Werte werden in "Ja" konvertiert. | |
| AutoWert | Alle Werte werden in "Ja" konvertiert. | |
| Hyperlink | Kurzer Text | Wenn der ursprüngliche Text eine gültige Webadresse wie adatum.com, www.adatum.com oder http://www.adatum.com enthält, konvertiert Access den Text in einen Link. Access versucht, andere Werte zu konvertieren, d. h., dass unterstrichener Text angezeigt wird und der Mauszeiger seine Form ändert, wenn Sie auf den Hyperlink zeigen, die Hyperlinks jedoch nicht funktionieren. Der Text kann jedes gültige Webprotokoll enthalten, einschließlich http://, gopher://, telnet://, ftp:// und wais://. |
| Langer Text | Siehe vorherigen Eintrag. Es gelten dieselben Einschränkungen. | |
| Zahl | Nicht zulässig, wenn ein Zahl-Feld Teil einer Beziehung ist. Wenn es sich beim ursprünglichen Wert um eine gültige IP-Adresse (vier Dreiergruppen Zahlen, die durch einen Punkt voneinander getrennt sind) handelt und die Zahlen mit einer Webadresse übereinstimmen, ergibt die Konvertierung einen gültigen Hyperlink. Andernfalls fügt Access http:// an den Anfang jedes Werts an, und die resultierenden Links sind ungültig. | |
| Datum/Uhrzeit | Access fügt http:// an den Anfang jeder Adresse an, aber die resultierenden Links funktionieren fast nie. | |
| Währung | Access fügt http:// an den Anfang jedes Werts an, aber wie Datumsangaben funktionieren die resultierenden Links fast nie. | |
| AutoWert | Nicht zulässig, wenn das AutoWert-Feld Teil einer Beziehung ist. Access fügt http:// an den Anfang jedes Werts an, aber die resultierenden Links funktionieren fast nie. | |
| Ja/Nein | Access konvertiert alle Ja-Werte in -1 und alle Nein-Werte in 0 und fügt http:// an den Anfang jedes Werts an. Der resultierende Hyperlink funktioniert nicht. |
Beenden des Modus "Deaktiviert" zum Blockieren einer Abfrage
Wenn Sie versuchen, eine Aktionsabfrage auszuführen, und Sie den Eindruck haben, dass nichts passiert, überprüfen Sie die Statusleiste von Access auf die folgende Meldung:
Die Aktion oder das Ereignis wurde durch den Modus 'Deaktiviert' blockiert.
Standardmäßig sind in Access alle Aktionsabfragen (Aktualisierungs-, Anfüge-, Lösch- oder Tabellenerstellungsabfragen) deaktiviert, sofern sich die Datenbank nicht an einem vertrauenswürdigen Speicherort befindet oder die Datenbank nicht signiert und nicht vertrauenswürdig ist. Wenn Sie keine dieser Aktionen ausgeführt haben, können Sie trotzdem die Abfrage für die aktuelle Datenbanksitzung nur aktivieren, indem Sie auf der Statusleiste auf Inhalt aktivieren klicken.
SQL-Version: UPDATE-Anweisung
Wenn Sie mit der Arbeit mit SQL vertraut sind, können Sie auch mithilfe der SQL-Ansicht eine UPDATE-Anweisung schreiben. Wenn Sie die SQL-Ansicht verwenden möchten, erstellen Sie eine neue, leere Abfrage, und wechseln Sie dann zur SQL-Ansicht.
Dieser Abschnitt enthält die Syntax für eine UPDATE-Anweisung und ein entsprechendes Beispiel.
Syntax
UPDATE-Tabelle SET newvalueWHERE-Kriterien;
Die UPDATE-Anweisung besteht aus den folgenden Teilen:
| Teil | Beschreibung |
|---|---|
| Tabelle | Der Name der Tabelle, die die Daten enthält, die Sie ändern möchten. |
| NeuerWert | Ein Ausdruck für den Wert, der in ein bestimmtes Feld in den aktualisierten Datensätzen eingefügt werden soll. |
| Kriterien | Ein Ausdruck, der festlegt, welche Datensätze aktualisiert werden. Nur Datensätze, die dem Ausdruck entsprechen, werden aktualisiert. |
Hinweise
Die UPDATE-Anweisung ist besonders hilfreich, wenn Sie viele Datensätze ändern möchten oder die zu ändernden Datensätze in mehreren Tabellen vorhanden sind.
Mehrere Felder können gleichzeitig geändert werden. Im folgenden Beispiel werden für Versandfirmen im Vereinigten Königreich die Werte für "Order Amount" um 10 % und die Werte für "Freight" um 3 % erhöht:
UPDATE Orders
SET OrderAmount = OrderAmount * 1.1,
Freight = Freight * 1.03
WHERE ShipCountry = 'UK';