Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Feld einmalig exportieren und kennzeichen

Begonnen von UliBrenn, Dezember 28, 2013, 16:37:02

⏪ vorheriges - nächstes ⏩

UliBrenn

Hallo zusammen,
bei mir stellt sich hinsichtlich einer Lagernummer (L_Nummer)  folgendes Problem, welches  ich alleine nicht lösen kann. :-[ 

In der Tabelle Bestelllungen in meiner Access-Datenbank gibt es das Feld ,,L_Nummer", die ich für eine weitere Verarbeitung einmalig nach Excel exportieren muss.
Die Tabelle Bestellungen verfügt über das  Importdatum des Datensatzes, welches beim Anfügen als Default-Wert generiert wird.
Das Problem: Durch eine weitere Anfügeabfrage kann es zu Mehrfacheinträgen der ,,L_Nummer" in der Tabelle Bestellungen kommen.
D.h. die identische L_Nummer wird erneut einmal oder ggf. mehrfach angefügt. 

Nun soll ein Code (vielleicht eine Case-Schleife oder If?)herausfinden, ob die L_Nummer bereits einmal exportiert wurde. Angedacht hatte ich dies mithilfe eines ,,Ja/Nein-Feld" namens L_Nummer_exportiert und ggf. den Zeitpunkt in einem weiteren Feld.

Die Idee für den Ablauf ist wie folgt:
1.       Anfügeabfrage fügt neue Datensätze samt L_Nummer an die Tabelle tbl_Bestellungen an
2.       Im Feld Erfassungsdatum wird dabei das heutige Datum vergeben
3.       Ein Code überprüft nun alle Daten im Feld L_Nummer mit sich selbst, d.h gibt es die L_Nummer bereits mit dem Feld L_Nummer_exportiert  ,,ja".
4.       Ist Punkt 3 wahr, so werden die Einträge der jeweiligen L_Nummer  im Feld L_Nummer_exportiert  auf ,,Ja" gestellt.
5.       Eine Auswahlabfrage mit select distinct  übergibt nun alle L_Nummern mit Kennzeichen ,,nein" im Feld L_Nummer_exportiert und übergibt die Daten an Excel.
6.       Eine Aktualisierungsabfrage aktualisiert nun bei den Datensätzen mit L_Nummer_exportiert auf ,,nein" auf ,,ja" vergibt im Feld Exportdatum das aktuelle Datum.
Mir ist vor allem Punkt 3 und 4 nicht klar. Die Abfragen und die Übergabe an Excel habe ich bereits geschafft. Ich hoffe, ich konnte mein Problem so einigermaßen schildern. Am Ende soll eben gewährleistet sein, dass ich die L_Nummer nur einmal exportiere. Danke für Eure Hilfe! U. Tolles neues Forum :) :)

Stapi

Hallo

Mal neutral Betrachtet, da du von Bestellungen sprichst ist diese Bestellnummer "Eindeutig" so kannst du doch einen anderen Weg beschreiten in dem Überprüfst ob die Bestellung nach Excel exportiert worden ist bzw. ob die Datei schon vorhanden ist. Nun wenn gewollt die Datei komplett ersetzen oder nicht ersetzen
Grüße aus dem schönen NRW
Stefan

database

#2
Hallo,

ganz klar ist mir dein Ansinnen noch nicht.
Für mich beißt sich da was gewaltig ... in eben diesen Punkten 3 und 4.
Wenn du an eine Bestelltabelle Datensätze anhängst, kann man normalerweise davon ausgehen, dass dabei wie in deinem Fall,
Eine Lagernummer des Öfteren in der Bestelltabelle vorhanden sein wird.
Nach deinem Ablauf suchst du mit Punkt 3 nach Übereinstimmungen von L_Nummern die vorher, also im Zuge einer vorangegangenen Bestellung, nach Excel exportiert wurden.
Mit Punkt 4 VERHINDERST du dann den Export dieser Lagernummer.

Soll das bedeuten, dass du immer nur NEUE, also noch nie exportierte L_Nummern nach Excel exportieren willst?

Du kannst die Punkte 3 und 4 'codefrei' mit einer Abfrage abarbeiten, die müsste dann sinngemäß so aussehen:

UPDATE Bestellungen SET L_Nummer_exportiert = True
WHERE L_Nummer In (SELECT L_Nummer FROM Bestellungen WHERE L_Nummer_exportiert=True) AND L_Nummer_exportiert = False;


Diese Abfrage setzt die 'L_Nummern-Duplikate' im Feld L_Nummer_exportiert auf Wahr (Ja), übrig bleiben dann jene Datensätze, in denen L_Nummer_exportiert auf False (Nein) steht, die du dann mit  ...


SELECT L_Nummer FROM Bestellungen WHERE L_Nummer_exportiert = False


... aus der Tabelle holen kannst um sie an Excel zu liefern.
Und mit der Abfrage ...


UPDATE Bestellungen SET L_Nummer_exportiert = True
WHERE L_Nummer_exportiert = False


...aktualisierst du die übriggebliebenen Datensätze - die ja nun bereits exportiert sein sollten.

ZitatDie Abfragen und die Übergabe an Excel habe ich bereits geschafft
Dann gehe ich davon aus, dass du da ja schon ein Codegerüst hast, in das du die obigen SQL-Schnippsel einbauen kannst.
Oder brauchst du überhaupt die vollständige Routine?

HTH








UliBrenn

#3
Hallo Peter! Halle Stefan!
Habt herzlichen Dank für Eure Hilfe! :) :) :) Das Prinzip der Aktualisierungsabfrage für Punkt 3+4 habe ich nach längerem Anstarren auch verstanden. Wäre aber so nie drauf gekommen. Du hast bei mir ein kniffliges Problem gelöst!
Den Übertrag in einen Code/Ablauf habe ich geschafft. Viele Grüße & guten Rutsch!
P.s. @Stefan: Ja! Das Problem ist, dass die gleiche Lagernummer eben in mehreren Bestellungen vorkommen kann, ich sie aber nur einmal exportieren muss.