Access-o-Mania

Access-Forum => Tabelle/Abfrage => Thema gestartet von: berndi am Dezember 18, 2017, 12:20:37

Titel: Datensätze löschen
Beitrag von: berndi am Dezember 18, 2017, 12:20:37
Hallo Zusammen,
ich arbeite schon viele Jahre mit Access und bekomme eine einfache Aufgabe nicht gelöst - richtig peinlich!!!
Zur Aufgabenstellung: ich habe eine Artikelstammdatentabelle aus der ich uralte Artikel herauslöschen möchte. Dazu habe ich eine weitere Tabelle erstellt die alle nicht mehr benötigten Artikelnummern erhält. Die Artikelnummer ist gleichzeitig bei beiden Tabellen der Index. Wenn ich beide Tabellen in einer Abfrage verknüpfe und die Originaltabelle anzeigen lasse, zeigt es mir auch die zu löschenden Produkte an. Wenn ich ganz einfach vorgehe und die Datensätze markiere und auf "entf" drücke, löscht es Datensätze. Leider nur nicht die angezeigten in der OriginalArtikeltabelle sondern die Sätze in der Tabelle die die zu löschenden Artikel definiert!!
Wenn ich eine Löschabfrage mache:
DELETE gartNichtverkaufteSeit2014.Artikelnummer, gart.*
FROM gart INNER JOIN gartNichtverkaufteSeit2014 ON gart.Artikelnummer = gartNichtverkaufteSeit2014.Artikelnummer
WHERE (((gartNichtverkaufteSeit2014.Artikelnummer)=[gart].[Artikelnummer]));
heißt es "löschen aus angegebenen Tabellen nicht möglich"

Ich hoffe, dass ich mich einigermaßen verständlich ausgedrückt habe, denn ich habe keinen Plan!

vielen Dank im Vorraus

Bernd
Titel: Re: Datensätze löschen
Beitrag von: DF6GL am Dezember 18, 2017, 12:54:47
Hallo,

Delete * from gart  where exists
      (
        select b.Artikelnummer  from gartNichtverkaufteSeit2014 as b
        where gart.Artikelnummer = b.Artikelnummer
      )
Titel: Re: Datensätze löschen
Beitrag von: berndi am Dezember 18, 2017, 17:18:45
Hallo Franz,
leider komme ich nicht klar. Ich nehme an, dass dein Code nicht einfach in der SQL-Ansicht einer Abfrage eingefügt werden kann.
Dann müsste ich die SQL-Anweisung in einer Prozedur ausführen - oder? Ich habe schon ewig nicht mehr programmiert aber ich werde es wieder herausfinden wie man das macht. Kann es sein, dass Du "exists" schreiben wolltest und nicht "exits"?

viele Grüße
Bernd
Titel: Re: Datensätze löschen
Beitrag von: MzKlMu am Dezember 18, 2017, 17:23:37
Hallo,
ja, es heißt exists.
Zitat
Ich nehme an, dass dein Code nicht einfach in der SQL-Ansicht einer Abfrage eingefügt werden kann.
Doch, kannst Du direkt reinkopieren. Und dann auf das rote Ausrufezeichen Klicken. Da das eine einmalige Aktion ist, brauchst Du da keine Prozedur.

Zitat
leider komme ich nicht klar.
das ist eine wenig hilfreiche Bemerkung. Wo hängt es denn ?
Titel: Re: Datensätze löschen
Beitrag von: berndi am Dezember 18, 2017, 18:54:34
Hallo Klaus,
vielen Dank für Deine Hilfe (und die von Franz natürlich) dass ich nur auf das "Ausrufezeichen" drücken kann, kannte ich so noch nicht. Ich habe mir den Code im Entwurfansicht angeschaut und das sah gar nicht richtig aus  ::). Die seltsame Formatierung hat mich aus irritiert. Somit habe ich es gar nicht weiter versucht.
Jetzt hat es allerdings geklappt. Sehr schön und vielen Dank nochmals.

Bernd
Titel: Re: Datensätze löschen
Beitrag von: DF6GL am Dezember 18, 2017, 20:02:32
Hallo,
Zitat
"exists" schreiben wolltest und nicht "exits"?

in der Tat, habe es im Post korrigiert.   8)