collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 70
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 4
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13808
  • stats Beiträge insgesamt: 64126
  • stats Themen insgesamt: 8674
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Datensätze löschen  (Gelesen 119 mal)

Offline berndi

  • Newbie
  • Beiträge: 20
Datensätze löschen
« 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
« Letzte Änderung: Dezember 18, 2017, 18:55:06 von berndi »
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23143
Re: Datensätze löschen
« Antwort #1 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
      )

Offline berndi

  • Newbie
  • Beiträge: 20
Re: Datensätze löschen
« Antwort #2 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
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7014
Re: Datensätze löschen
« Antwort #3 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 ?
Gruß
Klaus
 

Offline berndi

  • Newbie
  • Beiträge: 20
Re: Datensätze löschen
« Antwort #4 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
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23143
Re: Datensätze löschen
« Antwort #5 am: Dezember 18, 2017, 20:02:32 »
Hallo,
Zitat
"exists" schreiben wolltest und nicht "exits"?

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