Hallo zusammen,
ich würde gerne eine Abfrage (oder Reihe von Abfragen) entwerfen die folgenden Effekt haben soll:
Prüfung eines Datensatzes auf mehrfach vorkommende Elemente, Reduzierung dieser auf nur ein Element pro Guppe (bis hierhin hab ich es schon geschafft) und dann Hinzufügen der Elemente (aus der vorherigen Abfrage) die noch nicht in einer Nachschlagetabelle stehen.
Die Daten haben als Format Text.
Ich habe schon viele unterschiedliche Kombinationen ausprobiert (hauptsächlich mit Select und Append Abfragen und verschiedenen Bedingungen) bin aber leider nie auf ein (in allen Fällen) sinniges Ergebniss gekommen, ich hoffe ihr könnt mir weiterhelfen.
Viele Grüße
Kladdi
Update:
Habe jetzt bei dem entsprechenden Feld der Nachfragetabelle eingestellt das Dublikate nicht zugelassen werden dürfen, geht zwar ist aber eher unbefriedigend und führt zu sehr dämlicher IDvergabe.
Wenn ihr einen besseren Weg kennt wäre ich über Hilfe immernoch begeister. ;)
Anbei nochmal der Code meiner Qry s:
Zum Auswählen:
SELECT Sheet1.[Trans# Currency], First(Sheet1.[Trans# Currency]) AS [FirstOfTrans# Currency]
FROM Sheet1
GROUP BY Sheet1.[Trans# Currency];
und zum Hinzufügen:
INSERT INTO tblBookingCurrency ( bocuTransCurrency )
SELECT qryCheckDataBocu.[FirstOfTrans# Currency]
FROM qryCheckDataBocu;
Hallo,
wenn du die Abfrage 1 so gestaltest, dass sie nur Datensätze liefert die in der Zieltabelle NICHT vorkommen,
Solltest du beim Übernehmen des Abfrageergebnisses keine duplizierten Einträge erhalten.
Sieh dir dazu folgenden Link an:
http://www.donkarl.com?FAQ3.16 (http://www.donkarl.com?FAQ3.16)
HTH
Vielen Dank für die schnelle Antwort.
Leider harpert es bei mir bei der Umsetztung. :(
Als Beispiel war bei donkarl ja dieses gegeben:
Zitat
SELECT A.*
FROM A LEFT JOIN B ON A.Id = B.Id
WHERE B.Id Is Null
Bis auf die Tatsache das ich meine Verbindung leider auch über das Element welches ich suche mache und statt dem A.* nur eine bestimmte Spalte von A sehen will sieht mein Code soweit ich erkennen kann gleich aus:
SELECT Sheet1.[Trans# Currency]
FROM Sheet1 LEFT JOIN tblBookingCurrency ON Sheet1.[Trans# Currency] = tblBookingCurrency.bocuTransCurrency
WHERE tblBookingCurrency.bocuTransCurrency ="IsNull";
Leider bekomme ich keinerlei Ergebnis.
In der Tabelle A (Sheet1) stehen 5 Datensätze (in der Spalte Trans#Currency steht: USD,USD,EUR,EUR,EUR) in der Tabelle B(tblBookingCurrency) stehen noch gar keine Daten.
Nach meinem Verständniss müsste mir dieser Code doch jetzt eigentlich alle Daten aus der Spalte Trans#Currency von Sheet1 anzeigen, oder?
Liegt das nicht Anzeigen einfach nur daran, dass ich diese beiden Spalten als Schlüssel gewählt habe oder unterläuft mir hier grade ein noch drastischerer Denkfehler?
Mit leichter Verzweifelung,
Kladdi
P.S.: Die Tabelle "Sheet1" ist aus Excel importiert und enthält bis auf die Trans#Currency (meines Wissens nach) keinen Wert den ich in irgendeiner Weise in dieser Konstellation als Schlüssel nutzen könnte.
Hallo,
SELECT DISTINCT Sheet1.[Trans# Currency]
FROM Sheet1 LEFT JOIN tblBookingCurrency ON Sheet1.[Trans# Currency]= tblBookingCurrency.bocuTransCurrency
WHERE tblBookingCurrency.bocuTransCurrency Is Null;
DISTINCT Bewirkt, dass keine Duplikate der Daten aus 'A' angezeigt werden.
Is Null wird OHNE '=' und OHNE Gänsefüße als Kriterium angegeben.
HTH
Nochmals vielen Dank,
das war jetzt tatsächlich zu 100% die Lösung die ich gesucht habe, auf dieses Schlüsselwort und meine falsche Schreibweise bin ich einfach nicht gekommen. :)
Mfg
Kladdi