Warum noch ein Access-Buch?
Für wen ist das Buch?
Jetzt bestellen
+ direkter Download des eBooks!
Nur EUR 59,95!
Fehler gefunden?
Bitte melden!
Wünsche an das Buch?
Her damit!
Was denken die Leser über dieses Buch?
Lesen Sie aktuelle Rezensionen!
Kapitel des noch nicht veröffentlichten Buchs zum Downloaden, Probelesen und Kommentieren
Beispieldatenbanken
Zusätzliches Material

Das Buch im HTML-Format

Für unbestimmte Zeit bieten Addison-Wesley und André Minhorst den kompletten Inhalt des Buchs als Download an. Schauen Sie rein und informieren Sie sich über den Inhalt! Und wenn Ihnen das Buch nützlich erscheint und Sie glauben, dass Sie etwas gelernt haben oder durch das Gelesene sogar etwas Zeit und somit Geld bei Ihrer Arbeit einsparen konnten, können Sie sich ja beim Autor und beim Verlag revanchieren - beispielsweise durch den Kauf dieses Buchs.

Am schönsten wäre es natürlich, wenn Sie das Buch direkt hier bestellen - Sie erhalten das Buch dann direkt vom Verlag, und der Autor und Verlag haben dann noch mehr davon, als wenn Sie es anderswo kaufen.

Danke für Ihr Interesse!

8.4.2 Daten löschen

8.4.3 Daten an bestehende Tabelle anfügen

Die Anweisung zum Anfügen von Daten an eine bestehende Tabelle heißt INSERT INTO. Sie hat die folgende Syntax:

INSERT INTO

Als geben Sie den Namen der Tabelle an, an die die Daten angefügt werden sollen.

Für den Ausdruck Daten> gibt es zwei Möglichkeiten:

  • Angabe einer SELECT-Anweisung
  • Direkte Angabe der Felder und der einzufügenden Werte
  • Anzufügende Daten per SELECT-Anweisung angeben

    Wenn Sie eine SELECT-Anweisung als Datenherkunft für das Anfügen von Daten an eine Tabelle verwenden, müssen Sie darauf achten, dass die Datentypen der anzufügenden Felder mit den Zielfeldern übereinstimmen und dass alle Felder, die eine Eingabe erfordern, auch gefüllt werden.

    Die folgende Abfrage kopiert alle Datensätze der Produkte-Tabelle in die Tabelle tblProdukteArchiv, die auslaufen und deren Lagerbestand erschöpft ist:

    INSERT INTO tblProdukteArchiv(ProduktID, Produkt, Preis, KategorieID,
    HerstellerID, LaeuftAus, Lagerbestand)
    SELECT ProduktID, Produkt, Preis, KategorieID, HerstellerID,
    LaeuftAus, Lagerbestand
    FROM tblProdukte
    WHERE LaeuftAus = True AND Lagerbestand = 0;

    Eine kürzere Fassung dieses SQL-Ausdrucks wäre folgende:

    INSERT INTO tblProdukteArchiv
    SELECT ProduktID, Produkt, Preis, KategorieID, HerstellerID,
    LaeuftAus, Lagerbestand
    FROM tblProdukte
    WHERE LaeuftAus = True AND Lagerbestand = 0;

    Und nun die kürzeste Version:

    INSERT INTO tblProdukteArchiv
    SELECT * FROM tblProdukte
    WHERE LaeuftAus = True AND Lagerbestand = 0;

    Anzufügende Daten direkt angeben

    Die erste und längste Variante des oben genannten Beispiels ist auch Grundlage für das Anfügen eines Datensatzes, dessen Daten nicht aus einer Tabelle ermittelt werden:

    INSERT INTO tblProdukteArchiv(ProduktID, Produkt, Preis,
    KategorieID, HerstellerID, LaeuftAus, Lagerbestand)
    VALUES(100, 'Testprodukt', 50, 2, 3, TRUE, 0)

    Die einzufügenden Werte geben Sie in diesem Fall direkt in der VALUES-Liste an. Beachten Sie, dass Sie genau die Reihenfolge einhalten, die durch die Feldliste im INSERT INTO-Abschnitt angegeben ist, und dass die Syntax für die Datentypen korrekt ist: Texte in Hochkommata, Datumswerte gemäß Abschnitt 8.3.4 unter »Vergleiche mit Datumsangaben« formatiert.

    Diese Variante der INSERT INTO-Anweisung funktioniert nur, wenn das Feld ProduktID nicht als Autowert-Feld deklariert ist. In einer Tabelle zum Archivieren von Datensätzen kann es sinnvoll sein, keinen Autowert zu verwenden, sondern die ProduktID zu übernehmen - so können später Informationen über Bestellungen dieses Produkts wieder hergestellt werden.

    Wenn das Feld ProduktID auch in der Zieltabelle tblProdukteArchiv den Datentyp Autowert hat, können Sie diesem Feld keinen Wert mit der Anfügeabfrage übergeben. Die obige Variante müssten Sie entsprechend kürzen, damit Access die ProduktID selbst anlegen kann:

    INSERT INTO tblProdukteArchiv(Produkt, Preis, KategorieID,
    HerstellerID, LaeuftAus, Lagerbestand)
    VALUES('Testprodukt', 50, 2, 3, TRUE, 0)

    Sie können auch feste Werte mit dem SELECT-Schlüsselwort angeben:

    INSERT INTO tblProdukteArchiv(Produkt, Preis, KategorieID,
    HerstellerID, LaeuftAus, Lagerbestand)
    SELECT 'Testprodukt', 50, 2, 3, TRUE, 0

    Nächster Abschnitt:

    8.4.4 Neue Tabelle mit Daten erstellen

    © 2006-2008 André Minhorst Alle Rechte vorbehalten.