erweitern ZielTabelle um Tabelleneinträge aus QuellTabelle

Moderator: ModerationP

erweitern ZielTabelle um Tabelleneinträge aus QuellTabelle

Beitragvon #1Lennart » 22. Aug 2019, 15:54

Hallo zusammen,

ich zweifel grad an meinem Verstand und würde mich über einen Hinweis freuen.

Access sagt: "Anzahl der Abfragewerte und Zielfelder stimmt nicht überein." :roll: :(

Ich hab doch in beiden Zeilen 7 Felder ???

INSERT INTO Aufhebungen (Name, Vorname, PLZ, Ort, Straße, Hausnummer, Mobilfunkrufnummer)
SELECT Löschhilfe (Name, Vorname, PLZ, Ort, Straße, HsNr, Rufnummer)

die auch so in der Reihenfolge angezeigt werden und auch alles Textfelder sind. :twisted: :(

Mein Ziel war es die ZielTabelle Aufhebungen um Tabelleneinträge zu erweitern / zu vergrößern die sich in der QuellTabelle Löschhilfe befinden. Besonders elegant wäre es, wenn ich noch eine Bedingung einbringen könnte, das diese "Aktualisierung" nur erfolgt, wenn auch im Feld Löschen Ja in der QuellTabelle Löschhilfe ein x steht.

Mit Update habe ich auch schon experimetiert, aber UPDATE überschrieb leider alle vorhandenen Einträge in der Zieltabelle mit denen aus der Quelltabelle - was nicht beabsichtigt war. UPDATE ergänzt leider nicht die Zieltabelle um neue Feldeinträge / Datensätze.

Wer Kann helfen? vielen Dank.

mit freundlichen Grüßen
Zuletzt geändert von shift-del am 22. Aug 2019, 16:16, insgesamt 1-mal geändert.
Grund: Thema nach Access Forum verschoben
#1Lennart
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8
Registriert: 22. Aug 2019, 15:37

Re: erweitern ZielTabelle um Tabelleneinträge aus QuellTabel

Beitragvon mmarkus » 22. Aug 2019, 18:58

#1Lennart hat geschrieben:INSERT INTO Aufhebungen (Name, Vorname, PLZ, Ort, Straße, Hausnummer, Mobilfunkrufnummer)
SELECT Löschhilfe (Name, Vorname, PLZ, Ort, Straße, HsNr, Rufnummer)



Erstmal solltest du dich damit beschäftigen, wie ein Select Statement aufgebaut ist.
Insert into, Select Into, Select, Update usw. haben alle einen anderen Aufbau.

Siehe:
https://www.sql-und-xml.de/sql-tutorial/
ms access what else
mmarkus
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1529
Registriert: 16. Apr 2012, 16:07
Wohnort: Oberösterreich

Re: erweitern ZielTabelle um Tabelleneinträge aus QuellTabel

Beitragvon knobbi38 » 22. Aug 2019, 21:33

Hallo Lennart,

wenn dich Englisch nicht stört, gibt es hier ein Tutorial, wo einzelne Übungen für SQL zum ausprobieren angeboten werden:
https://www.w3schools.com/sql/default.asp
Der SQL Befehl INSERT INTO SELECT mit der entsprechend Syntax wird hier aufgeführt:
https://www.w3schools.com/sql/sql_insert_into_select.asp
Probiere mit "Try it yourself" ruhig mal die eine oder andere Variante Online aus.

Gruß Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1176
Registriert: 02. Jul 2015, 14:23

Re: erweitern ZielTabelle um Tabelleneinträge aus QuellTabel

Beitragvon Bitsqueezer » 23. Aug 2019, 13:44

Hallo,

korrekt wäre:

Code: Alles auswählen
INSERT INTO Aufhebungen (Name, Vorname, PLZ, Ort, Straße, Hausnummer, Mobilfunkrufnummer)
SELECT Name, Vorname, PLZ, Ort, Straße, HsNr, Rufnummer
FROM Löschhilfe


Das wird allerdings nur dann funktionieren, wenn es in "Aufhebungen" nicht noch weitere Felder gibt, die keinen Default-Wert haben. Ein AutoID-Feld würde man hier nicht einfügen, da sich das selbst hochzählt (und damit einen Default-Wert hat). Wenn Du aber etwa ein weiteres Feld "Kommentar" hast, bei dem leere Eingaben nicht zulässig sind und das keinen Default-Wert hat, würde die Anweisung ebenfalls abbrechen.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7032
Registriert: 21. Jun 2007, 12:17

Re: erweitern ZielTabelle um Tabelleneinträge aus QuellTabel

Beitragvon #1Lennart » 23. Aug 2019, 18:52

Dank Eurer Hilfe habe ich

INSERT INTO Aufhebungen ( Name, Vorname, PLZ, Ort, Straße, Hausnummer, Mobilfunkrufnummer, Bemerkungen )
SELECT Name, Vorname, PLZ, Ort, Straße, HsNr, Rufnummer, Löschen
FROM Löschhilfe
WHERE [Löschhilfe].[Löschen] ='x'

zum Laufen gebracht und es funktioniert wie beabsichtigt. Nun hätte ich gern noch eine Erweiterung, um in einer anderen Tabelle Daten zu löschen

DELETE * FROM [Aktuelle Tabelle] WHERE [Rufnummer]=[Löschhilfe].[Rufnummer] AND [Löschhilfe].[Löschen]='x';

Es wird Syntaxfehler (fehlender Operator) gemeldet bei [Löschhilfe].[Löschen]='x' - warum? [Löschhilfe].[Löschen]='x' wurde doch oben auch nicht beanstandet.
#1Lennart
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8
Registriert: 22. Aug 2019, 15:37

Re: erweitern ZielTabelle um Tabelleneinträge aus QuellTabel

Beitragvon #1Lennart » 25. Aug 2019, 20:24

Hallo zusammen,
vielen vielen Dank für Ihren / Deinen / Euren Hinweise.

Dank Euch und besonders mein Dank an Bitsqueezer habe ich nun

eine funktionierende Anfügeabfrage:

INSERT INTO Aufhebungen ( Name, Vorname, PLZ, Ort, Straße, Hausnummer, Mobilfunkrufnummer, Bemerkungen )
SELECT Name, Vorname, PLZ, Ort, Straße, HsNr, Rufnummer, Löschen
FROM Löschhilfe
WHERE [Löschhilfe].[Löschen] ='x';

um die aus der [Aktuellen Tabelle] zu löschende Daten zuerst aufzunehmen

und dann eine separat funktionierende Löschabfrage:

DELETE *
FROM [Aktuelle Tabelle]
WHERE Rufnummer IN
(
SELECT
Rufnummer
FROM
Löschhilfe
WHERE
Löschen = 'x'
);

die ich nun nacheinander anstoße, da es leider nicht möglich ist, es in einem Aufwasch zu machen.

Auch wenn meine Lösung nun so aussieht wie nach dem Motto: "Diese Daten sind zu löschen - aber machen Sie vorher eine Kopie" :lol:
habe ich nun eine Lösung die funktioniert.

Daher nochmals vielen Dank Dir / Ihnen / Euch die mir auch mit der INSERT und der DELETE geholfen haben.
#1Lennart
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8
Registriert: 22. Aug 2019, 15:37


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste