AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Materialbestand berechnen

Ein Thema von Luckner · begonnen am 3. Feb 2022 · letzter Beitrag vom 17. Feb 2022
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#1

Materialbestand berechnen

  Alt 3. Feb 2022, 12:46
Datenbank: Access • Version: 2003 • Zugriff über: ADOQUERY
Hallo,

meine Aufgabe ist einen Materialbestand in einem Lager mit einigen Lagerplätzen in qm zu berechnen. Vorab einige Infos. Das Lager hat zig Plätze mit einer Lagerplatznummer. Nicht alle Lagerplätze sind belegt. Auf den belegten Plätzen liegen 1 bis x Materialrollen. Jede Materialrolle hat eine Rollennr. Es können verschiedene Materiallien auf einem Lagerplatz liegen. Eine Materialrolle hat eine Breite von x cm und eine Länge von x Metern. Es gibt 3 relevaten Tabellen in MS-Access (leider). Tabelle Rollenlager besteht aus 2 Feldern: 1)Rollennr und 2) Lagerplatznr. Tabelle Materialrollen: Rollennr, Materialnr, Rollenbreite, Rollenlänge und weitere Angaben. In der Tabelle Rollenlager sind nur die Rollen eingetragen, die tatsächlich sich auf diesem Platz befinden. Rollen, die für die Produktion oder anderweiteig verwendet wurden, werden automatisch gelöscht. In Tabelle Materialrollen sind jedoch alle Rollen eingetragen seit Aufzeichnung.
Meine Idee ist erst eine neue Tabelle in Firebird zu erstellen z.B. Materialaktuell mit den Feldern Materialnr, Materialflaeche. In einer While-Schleife für jede Materialrollennr aus der Tabelle Rollenlager die entsprechende Materialnr aus der Tabelle Materialrollen herausselectieren, die Fläche berechnen und samt Materialnr und Fläche in die neue Tabelle einfügen.

Habe ich, bevor ich mich da ranmache, irgendetwas nicht bedacht? Oder gibt es andere, bessere Ideen? Danke, vorab, für die Unterstützung.

Gruß, Luckner
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
618 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Materialbestand berechnen

  Alt 3. Feb 2022, 14:47
Hallo, muss es unbedingt eine Tabelle sein? Live, also via View oder als Stored Procedure würde ich besser finden.
Ich habe keiner Erfahrung mit Access aber SQL unterstützt in Abfragen Sum() womit sich Summen bilden lassen ohne das selber machen zu müssen.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Materialbestand berechnen

  Alt 3. Feb 2022, 15:26
Es muß keine Tabelle sein. Eine Stored Procedure fände ich auch gut, aber Access ist auch nicht meine Ecke und deshalb keine Ahnung ob und wie. Am Ende sollte es auf dem Papier stehen.

Luckner

Geändert von Luckner ( 3. Feb 2022 um 15:29 Uhr)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Materialbestand berechnen

  Alt 3. Feb 2022, 16:56
Du schreibts es gibt 3 Tabellen, zählst aber nur Rollenlager und Materialrollen auf!
Es stellt sich die Frage nach der Beziehung zwischen den Tabellen.

rollennr + materialnr scheint der natürliche Schlüssel zu sein, der jede Position in Materialrollen eindeutig bestimmt.
Deshalb ist dieser Schlüssel auch in Rollenlager eingetragen, um die tatsächlich vorhandenen Materialrollen zu identifizieren.
SQL-Code:
select b.*
from rollenlager a
left join materialrollen b on (b.rollennr = a.rollennr) and (b.materialnr = a.materialnr)
Sollte alle Elemente aus Materialrollen liefern, die tatsächlich vorhanden sind.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Materialbestand berechnen

  Alt 3. Feb 2022, 17:04
Eine Stored Procedure fände ich auch gut, aber Access ist auch nicht meine Ecke und deshalb keine Ahnung ob und wie.
In Access schreibt man "stored Procedures" in VBA. Nichts, was man wirklich machen will.
Thomas Mueller
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.427 Beiträge
 
Delphi 7 Professional
 
#6

AW: Materialbestand berechnen

  Alt 3. Feb 2022, 18:04
Klingt mir schwer nach: Wir schreiben eine View. Um das zu vereinfachen, wäre es nett, wenn Du uns den Teil der Tabellendefinitionen zur Verfügungstellen könntest, der entweder als Schlüssel / Fremdschlüssel oder für die Ermittlung des gewünschten Ergebnisses erforderlich erscheint.

Verstehe ich das richtig:

Materialrollen enthält alles, was es je gegeben hat?
Rollenlager enthält alles, was es gerade im Moment der Auswertung tatsächlich im Lager gibt?

Blups Ansatz ist hier richtig, fraglich ist halt nur, was die dritte Tabelle enthält. Da müsste man dann mal schauen, inwieweit sie zur Verwendung kommen kann / muss und wie granular das Ergebnis sein soll.

Grob könnte man (mal aus dem Bauch heraus) Blups Idee so erweitern:
SQL-Code:
create view v_quadratmeter as
select b.rollennr, b.materialnr, sum(b.breite * b.laenge) as quadratmeter
from rollenlager a
left join materialrollen b on (b.rollennr = a.rollennr) and (b.materialnr = a.materialnr)
group by b.rollennr, b.materialnr
order by b.rollennr, b.materialnr
Ein select * from v_quadratmeter sollte Dir dann jederzeit den aktuellen Bestand zur Zeit der Abfrage liefern können.
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Materialbestand berechnen

  Alt 4. Feb 2022, 09:50
Es gibt eigtentlich nur die 2 genannten Tabellen. Die 3. ist nicht so wichtig. Es stehen nur die Materialnummern und die entsprechenden Preise und Lieferanten. Die Preise werden jedoch nut gelegentlich gepflegt und deshalb wird man den Materialwert des Lagers mit den entsprechenden Rechnungen berechnen.

Delphi.Narium, es stimmt so, wie Du es beschrieben hast mit den Tabellen. Werden Dein select-Vorschlag gleich ausprobieren. Und das Ergebnis hier melden. Vielen Dank an Alle.

Luckner
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Materialbestand berechnen

  Alt 4. Feb 2022, 10:17
Da ich jedoch nicht weiß, wie eine View in Access erstellt wird (in VBA will ich mich nicht einarbeiten, auch weil die Software in den nächste Jahren auf Firebird laufen soll) werde ich eine Tabelle in Firebird erstellen und ein select für die beiden Access-Tabellen erstellen.

Luckner.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.427 Beiträge
 
Delphi 7 Professional
 
#9

AW: Materialbestand berechnen

  Alt 4. Feb 2022, 10:34
Kann man in Access kein Create View ausführen? Muss man da alles irgendwie über die Oberfäche zusammendaddeln?

Im Zweifelsfalle einfach in Delphi eine Query mit dem entsprechenden SQL versorgen und per ExecSQL ausführen.

Mach' ich immer so, auch mit Accessdatenbanken. Klappt seit Jahrzehnten.

Accessdatenbanken nutze ich immer ohne das zugehörige Programm.
Delphi-Quellcode:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('create view v_quadratmeter as');
Query.SQL.Add('select b.rollennr, b.materialnr, sum(b.breite * b.laenge) as quadratmeter');
Query.SQL.Add('from rollenlager a');
Query.SQL.Add('left join materialrollen b on (b.rollennr = a.rollennr) and (b.materialnr = a.materialnr)');
Query.SQL.Add('group by b.rollennr, b.materialnr');
Query.SQL.Add('order by b.rollennr, b.materialnr');
Query.ExecSQL;
Würde mich schwer wundern, wenn das nicht funktioniert.
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Materialbestand berechnen

  Alt 4. Feb 2022, 10:41
OK, werde ich probieren. Danke.

Luckner
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz