collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 28
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13569
  • stats Beiträge insgesamt: 60025
  • stats Themen insgesamt: 8214
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Wert aus Abfrage in Formulartextfeld anzeigen lassen  (Gelesen 55 mal)

Offline ellinho

  • Access-Profi
  • **
  • Beiträge: 118
Wert aus Abfrage in Formulartextfeld anzeigen lassen
« am: Juni 19, 2017, 11:15:14 »
Hallo zusammen.

Ich habe eine Artikelbestandsliste (Tabellenname "Artikelbestand), in die über ein Formular die Wareneingänge mitsamt Zugangsdatum und Einkaufspreis netto geschrieben werden. Die Tabelle "Artikelbestand" besteht aus den Spalten ID, Bezeichnung, EKPreisnetto, Datum, Zu-/Abgang. Genauso habe ich ein Formular für die Warenausgänge erstellt. Bei dieser Buchung wird vom Benutzer natürlich kein Einkaufspreis netto mitgegeben, allerdings sollte das vom System erledigt werden (dies kann auch ruhig versteckt im Hintergrund ablaufen), denn ansonsten habe ich nie den genauen Wert, der auf dem Lager liegt. Ich habe nun eine Abfrage erstellt, die den Durchschnitts-Einkaufspreis netto für jeden Artikel berechnet. Diese heißt "EKPreisMittelwert" und besteht aus den Spalten Bezeichnung und EKPreisnetto.
Nun möchte ich ein Textfeld in das Formular "Warenausgang_buchen" integrieren, das den Durchschnitts-Einkaufspreis netto aus der Abfrage "EKPreisMittelwert" des über Kombinationsfeld ausgewählten Artikels anzeigt und beim Erfassen des Warenausgangs dann auch mit in die Tabelle "Artikelbestand" schreibt.
Ich hoffe, man kann verstehen, was ich meine und würde mich freuen, wenn mir jemand von Euch helfen kann.
Vielen Dank schon mal.

Gruß Karsten
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22795
Re: Wert aus Abfrage in Formulartextfeld anzeigen lassen
« Antwort #1 am: Juni 19, 2017, 13:25:02 »
Hallo,

zu verstehen ist das schon, nur das Konzept dahinter ist fragwürdig.  Aktuell aus anderen Daten berechnete Werte soll(t)en nicht in Tabellenfelder abgelegt werden. 

Zudem ist mir die Bedeutung von "Bezeichnung" suspekt.  Wenn das die Artikelbezeichnung sein soll, ist der Tabellenaufbau nicht db-gerecht und korrekt.  Es fehlt die eigentliche Artikeltabelle (mit Primärschlüsselfeld) und in "Artikelbestand" das Fremdschlüsselfeld zum Aufbau einer Beziehung zwischen den beiden Tabellen.   "Artikelbestand"   sollte dann auch eher "Lagerbewegungen" heißen, in der zusätzlich der Lagerort (bzw. die Lagernummer, falls überhaupt vorhanden) mitgeführt werden.   Beim Feld "Zu-/Abgang"  (heißt das wirklich so? Wenn so, dann unbedingt auf Sonder- und Leerzeichen im Namen verzichten!)  muss weiterhin vereinbart (definiert) werden, dass Lagerzugänge positiv und Lagerabgänge negativ gebucht werden.  "Menge" wäre eine alternative Benennung, wobei evtl. auch Mengeneinheiten berücksichtigt werden müssen/können.  Sollen in "Menge" immer nur positive Zahlen stehen, ist um ein weiteres (Ja/Nein-)Feld ("Bewegungsart" : 0= Zugang, -1 = Abgang) zu erweitern.


Die Berechnung der Mittelwerte wird dann und dort durchgeführt, wo diese Daten aktuell verwendet werden.


Offline ellinho

  • Access-Profi
  • **
  • Beiträge: 118
Re: Wert aus Abfrage in Formulartextfeld anzeigen lassen
« Antwort #2 am: Juni 19, 2017, 14:02:41 »
Hallo Franz.
Vielen Dank für Deine Antwort.
Ich werde das bezgl. Primär- und Fremdschlüssel und vernünftigen Bezeichnungen noch mal überarbeiten. Lagerzugänge werden aktuell bereits automatisch positiv, Lagerabgänge automatisch negativ gebucht.
Allerdings verstehe ich den letzten Satz noch nicht. Ich muss doch mit einer Abfrage arbeiten, um den Mittelwert für den Netto-EK pro Stück zu berechnen!?!?
Beispiel: Ich kaufe 10 Stück von Artikel1 zu einem Preis von 5,60 EUR/Stck. ein. Danach kaufe ich 15 Stück von Artikel1 zu einem Preis von 5,75 EUR/Stck ein. Somit habe ich von Artikel1 einen Lagerbestand von 25 Stück. Der Durchschnitts-Netto-EK läge somit bei 5,69 EUR/Stck. Wenn ich nun 5 Stück aus dem Lager buche, ändert sich doch, wenn ich nicht wieder den zur Buchung aktuellen Durchschnitts-Netto-EK in die Tabelle "zurückschreibe", der Durchschnitts-Netto-EK auf 7,11 EUR/Stck, obwohl er, wenn ich 5 Stück mit Durchschnitts-Netto-EK von 5,69 EUR/Stck. ausbuche, richtigerweise auf 5,69 EUR/Stck bleibtDas kann ich doch nur über eine Abfrage berechnen, oder nicht??? Das Formular, über das der Warenausgang gebucht wird, muss aber doch wiederum mit der Tabelle, die die Lagerbewegungen enthält, "verknüpft" sein. (Datensatzquelle)!?! Somit hat sich die Anzahl der Fragezeichen bei mir nicht reduziert.  ;)

VG
Karsten
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22795
Re: Wert aus Abfrage in Formulartextfeld anzeigen lassen
« Antwort #3 am: Juni 19, 2017, 14:19:34 »
Hallo,

ich habe nirgends bestritten, dass der Preis über (irgend-)eine Abfrage berechnet werden kann.   ;)

Zum "Mittelwert" gibt es ja einige unterschiedliche Definitionen.  Bzgl. Lagerhaltung suchst Du vielleicht  ja den "gleitenden Durchschnittspreis".  Wie auch immer,  Abgänge spielen IMHO für diese Berechnung keine Rolle, nur die Zugänge, und dann auch nur in einem bestimmten Zeitraum. 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1332
Re: Wert aus Abfrage in Formulartextfeld anzeigen lassen
« Antwort #4 am: Juni 19, 2017, 16:43:35 »
Hallo Karsten,
Den durchschnittlichen Ek-Preis berechnet man normalerweise nicht
als Mittelwert aller Einkäufe, sondern, wie Franz schon anmerkte als
"gleitenden Durchschnittspreis":
(Bestand x alter dEK + Zugang x neuer EK) / neuer Bestand.
Und den würde ich als Eigenschaft (Feld) im Artikelstamm führen, und
bei Zugängen entsprechend neu berechnen.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.