larryfilou Geschrieben 19. Januar 2006 Teilen Geschrieben 19. Januar 2006 Hi an alle: Hab folgende Aufgabenstellung bekommen und frage ich inzwischen, ob das überhaupt realisierbar ist: Erstellung einer Lagerverwaltung: Aufgabe: 1) Jede gelieferte Ware wird auf EINEM EIN-EINDEUTIGEN Lagerplatz abgelegt. 2) Dieser LAgerpaltz wird mit Menge und LIEFERDATUM gespeichert. 3) Entnahme nach dem FIFO Prinzip: Es wird immer die ÄLTESTE Ware zuerst entnommen. 4) Teilmengenentnahmen müssen möglich sein. Problem: Ich suche die Ware X, sortiere sie nach Lieferdatum ältestes zuerst, so weit so gut. Aber dann muss ich ne Schleife starten, die checkt, ob auf dem ältesten Lagerplatz genug Waren sind. Wenn ja, wird die entsprechende Menge abgezogen, wenn der Lagerplatz dabei geleert wird, muss der Datensatz gelöscht werden, um den Lagerplatz frei zu geben. Wenn nein, muss ich den zweitältesten datensatz dazunehmen, solange, bis die benötigte Menge abgedeckt wird... Geht das in ACCESS überhaupt? :confused: Danke für jegliche Hilfe! larryfilou Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Melkor Geschrieben 19. Januar 2006 Teilen Geschrieben 19. Januar 2006 Hi Larryfilou, das sollte möglich sein. Kannst du VBA programmieren? also mit dem VBA-Editor in Access umgehen? Das würde die Sache vereinfachen. Mit Makros oder Abfragen wüsste ich da nichts zu. Also hier mal die Logik: for X = 0 to Anzahl if Lagerbestand[Anzahl] = 0 do Anweisungen... endif endfor Ich bin nicht mehr so fit drin, aber so in etwa müsste das aussehen. Natürlich müssen in die Variablen die entsprechenden Datensätze rein, aber wenn du kein VBA programmieren kannst sollte da lieber jemand anderes helfen, der fitter in VBA ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Der Kleine Geschrieben 19. Januar 2006 Teilen Geschrieben 19. Januar 2006 Da braucht man doch keine Schleifen programmieren, sondern einfach nach dem Eingangsdatum sortieren und von vorne solange abziehen, bis die bestimmte Menge erreicht ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
larryfilou Geschrieben 19. Januar 2006 Autor Teilen Geschrieben 19. Januar 2006 Wie würde ich das dann implementieren? Wenn ich die Abfrage gemacht habe: "Teil X sortiert nach Lieferdatum" stehen in der Ausgabe sagen wir mal 5 Datensätze. Wie sage ich ihm, dass er nur auf den nächsten Datensatz zugreifen darf, wenn der vorherige komplett leer ist? :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Der Kleine Geschrieben 19. Januar 2006 Teilen Geschrieben 19. Januar 2006 Du musst doch sowieso jeden Datensatz, wo noch etwas abgeht, anpacken und um einen Betrag verringern. Also kannst du ihn einzelnd einlesen, ändern, speichern und zum nächsten Datensatz gehen. DoCmd.GoToRecord , , acNext Wenn die Menge der Lieferung z. B. in einem Array abgespeichert ist, dann durchläuftst du dieses Array solange, setzt es bei der verbleibnden Menge auf Null (bzw. bei Entnahme auf den Gleichen Wert wie hineinbringen - so daß alles wieder raus ist - falls du eine Historie über die Einlagerungen benötigst), verringerst deine noch benötigte Menge um den ausgetragenden Inhalt. Beim letztn Mal wird deine benötigte Menge 0 und dein Array entsprechend um den Restbetrag gekürzt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
larryfilou Geschrieben 23. Januar 2006 Autor Teilen Geschrieben 23. Januar 2006 Thema erledigt, danke! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.