MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 05.07.2006, 12:43   #1
mark-williams
Neuer Benutzer
Neuer Benutzer
Standard Acc2002/XP - Problem mit Anfügeabfrage, bzw. Löschabfrage

Hallo Leute!

Ich habe ein Problem:
Ich muss mehrere Tabellen importieren und die Datensätze zusammenfügen. Damit keine
doppelten Datensätze importiert, bzw. eingefügt werden, wollte ich eine Anfüge-Abfrage
erstellen, die das verhindert. Das habe ich aber leider nicht hinbekommen ...
Wollte daher nun so vorgehen: Zuerst eine Löschabrage durchführen, die mir die Datensätze
aus Tabelle 2 löscht, die mit Tabelle 1 übereinstimmen und dann eben diese "bereinigte"
Tabelle anfügen. Nun habe ich aber auch Probleme mit der Löschabfrage. Bei folgendem Code:
Code:

DELETE tbl_Temp.Feld1, tbl_Temp.Feld2, tbl_Temp.Feld3 
FROM   tbl_aussortiert, tbl_Temp 
WHERE  tbl_Temp.Feld1=[tbl_aussortiert].[Feld1] 
AND    tbl_Temp.Feld2=[tbl_aussortiert].[Feld2] 
AND    tbl_Temp.Feld3=[tbl_aussortiert].[Feld3];
erhalte ich die Fehlermeldung "Geben sie die Tabelle an, die die zu löschenden Datensätze
enthält", obwohl ich diese doch angegeben habe, oder??

Ich habe auch schon folgendes probiert:
Code:

DELETE tbl_Temp.Feld3 
FROM tbl_Temp 
WHERE (((tbl_Temp.Feld3) In (SELECT tbl_Temp FROM [tbl_aussortiert])));
Dort verlangt er aber so verlangt er aber immer einen Parameterwert.
Wie gesagt, ich möchte nur, dass mir die Löschabfrage die Datensätze in tbl_Temp löscht,
deren Inhalt schon in tbl_aussortiert vorhanden ist (die anderen soll er natürlich lassen) ...
Könnt ihr mir helfen??

mfg Mark
mark-williams ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.07.2006, 12:58   #2
J_Eilers
MOF Guru
MOF Guru
Standard

Hi,

mit einer Löschabfrage kannst du immer nur ganze Datensätze löschen. Also sollte man am Besten den * verwenden und keine Feldnamen angeben. Übrigends kannst du das auch direkt in der Anfrage vermeiden:

Code:

INSERT INTO Tabelle 
  (Feld1, 
   Feld, 
   Feld3)
SELECT
  Feld1,
  Feld2,
  Feld3
FROM
  Tabelle2 LEFT JOIN Tabelle ON
    Tabelle2.Feld1 = Tabelle.Feld1 
    AND Tabelle2.Feld2 = Tabelle.Feld2
    AND Tabelle2.Feld3 = Tabelle2.Feld3
WHERE
  Tabelle.Feld Is Null
Kann auch ein RIGHT JOIN sein, mir ist grad alles zu warm hier...

__________________

Bis denn dann
Jan


FAQ | relationale Datenbanken | Grundlagen | DBWIKI | Josef's Access Seite | Meine Homepage und Access | Abhängigkeiten | Suchen und Nachschlagen | Tab2Web |
SQL-Codes bitte formatieren und als Code posten. Danke!

Bitte keine Fragen als PN! Probleme gehören ins Forum und mit Feedback kann man sie auch lösen.
J_Eilers ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 05.07.2006, 15:08   #3
mark-williams
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Jan!

Super, habe ein bisschen rumprobiert und nun klappt es !!! Hast mir wirklich weitergeholfen,
hab schon lange nach einer Lösung gesucht .. Hier der fertige Code:
Code:

INSERT INTO tbl_aussortiert ( Feld1, Feld2, Feld3 )
SELECT tbl_Temp.Feld1, tbl_Temp.Feld2, tbl_Temp.Feld3
FROM tbl_Temp LEFT JOIN tbl_aussortiert ON
(tbl_Temp.Feld1=tbl_aussortiert.Feld1) AND
(tbl_Temp.Feld2=tbl_aussortiert.Feld2) AND
(tbl_Temp.Feld3=tbl_aussortiert.Feld3)
WHERE ((([tbl_aussortiert.Feld1]) Is Null));
Vielen Dank, mfg Mark
mark-williams ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:39 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.