Grüsse an alle,
habe einen Bericht der startet mit z.B. dem Wert 7 -
nun habe ich z.b. fünf Datensätze aus einer Abfrage die in disem Bericht / Detailbereich eingefügt werden
Screenshot anbei
nun möchte ich, daß der Startwert 7 +- den Wert aus Datensatz 1 berechnet wird,
das Ergebnis aus Datensatz 1 +- den Wert aus Datensatz 2 berechnet wird.
Bei mir kommt aber nur der Sartwert 7 +- der Wert des jeweiliges DS raus - also fehlt mir ein schritt....
aber welcher .....
Über Hilfe würde ich mich freuen
Grüsse Oliver
Hallo,
mir ist nicht ganz klar was Du berechnen willst.
Wie berechnest Du jetzt ?
Du hast auch 2 Spalten, geliefert und zurück, wie wird da gerechnet ?
Wo kommt die 7 (Startwert) her, der muss ja auch irgendwo eingetragen werden.
Zeige mal wie die Ausgabe aussehen soll (mit einer kleinen Exceltabelle z.B.)
Und bitte mal genauer erklären.
Hallo MzKIMu,
ich habe das alles in eine kleine Excel geschrieben & hoffe, dass es so leichter verständlich ist.
Im Prinzip wie folgt :
Startwert ( kommt aus einer Tabelle ) Kunde a hat zum Stichtag b den Startsaldo z.b. 7
Nun über eine Abfrgae Kunde a hat von Tag a bis Tag c z.B. 5 Bewegungen
Nun würde ich gerne nachfolgend immer den Saldo nach jeder Bewegung darstellen
Grüsse
Hallo
Ich habe es immer noch nicht verstanden.
Zeige die Tabelle wie sie sein soll !
Man müsste auch noch wissen, wie die Abfrage für die Zahlen gefiltert werden.
Zitat von: ostill am Oktober 19, 2021, 10:12:35Nun würde ich gerne nachfolgend immer den Saldo nach jeder Bewegung darstellen
Das hört sich für mich an wie eine Laufende Summe.
Schau dir mal FAQ
3.11 Laufende Nummer/Summe in Abfragen (http://www.donkarl.com?FAQ3.11) an. Wenn ich richtig liege, könnte das deine Frage beantworten.
Hallo,
an laufende Summe habe ich auch schon gedacht, zumal das in einem Bericht (wo er es will) sehr einfach ist,
Allerdings komme ich mit dem Excelbeispiel in #2 nicht klar.
Da ist eine laufende Summe gezeigt, aber nach der Aussage in dem Excelblatt will er das ja nicht.
Außerdem sind die Zahlen für den Saldo in 2 Spalten was auch erst mal bereinigt werden müsste.
Hallo,
Vorschlag:
Füge in die Tabelle die Felder "Buchdatum" (Datum/Uhrzeit) und "Startwert" (Long) ein.
(Bild 1)
Im Datensatz mit einem "ältestem" Datum" kommt unter Startwert 7 (oder ein anderer Startwert) zu stehen.
Erstelle eine Abfrage entspr.:
SELECT Tabelle1.BuchDat, AnzahlAngeliefert, AnzahlZurück, calcSaldo([AnzahlAngeliefert],[AnzahlZurück],[Startwert]) AS Saldo
FROM Tabelle1
ORDER BY BuchDat
Erstelle in einem allgemeinen Modul folgende Prozedur:
Option Compare Database
Option Explicit
Public Saldo As Long
Public Function CalcSaldo(AA As Long, AZ As Long, SW As Long) As Long
If Saldo = -999999 Then Saldo = SW
Saldo = AA - AZ + Saldo
CalcSaldo = Saldo
End Function
Vor jeder Ausführung der Abfrage muss mit
saldo =-999999
die Public-Variable "Saldo" gesetzt werden.
Ergebnis in Bild 2
Grüsse,
zunächst Danke für euer Engament.
Ich versuch es nochmal so darzustellen
Ich habe einen Wert zum 01.09.2021 mit dem Wert 7 ( dieser Wert kommt aus Tabelle A )
nun habe ich z.B. vom 01.09.2021 bis zum 15.09.2021 fünf Bewegungen / Datensätze
Zugang Abgang Saldo
Sartsaldo/Anfangsbestand 7
Bsp. 02.09.2021 4 2 9 (ergibt sich aus Startwert 7 + Zugang - Abgang)
04.09.2021 4 0 13 (ergibt sich aus Saldo 9 von Bsp. 02.09. DS davor + Zugang)
06.09.2021 0 10 3 (ergibt sich aus Saldo 13 von Bsp. 04.09.DS davor - Abgang)
usw.
Dann zum Schluss ein Feld Endsaldo mit dem letzen Saldowert des Berichts. Hier die 3.
Ich hoffe nun habe ich es so erklärt, dass alle Wissen was ich meinen :-)
Grüsse
Hallo,
das geht so nicht so einfach. Für eine Datenbank ist der Aufbau falsch. Der Anfangswert muss auch in Tabelle B, der darf nicht aus Tabelle A kommen.
Dann lässt im Bericht ganz einfach die Funktion "Laufende Summe" verwenden.
Wenn man es Datenbankkonfom machen würde, käme die Menge in ein Feld mit einem Kennzeichen ob Zugang oder Abgang.
Jeder Vorgang wäre dann ein Datensatz. Zugänge wären positiv und Abgänge negative Mengen.
Dann ist der Saldo einfach die Summe der Mengen. Der Saldo lässt sich dann ganz einfach zu jedem beliebigen Zeitpunkt ermitteln.
Wenn Du bei Deinem jetzigen Aufbau bleiben willst, musst Du per Abfrage eine Spalte berechnen.
Z.B. so:
MengeSaldo: [Zugang]-[Abgang]
Diese Spalte kannst Du dann im Bericht für eine laufende Summe verwenden.
Der Anfangsbestand muss aber als 1. Datensatz in die Tabelle B.
Im Anhang findest Du ein einfaches Beispiel.
Das Beispiel beinhalten 2 Arten.
Beispiel1 (...1) ist auf Deine Art, Beispiel2 (...2) ist die übliche Art für eine Datenbank, jede Buchung ein Datensatz. Das Vorzeichen (-) für Abgänge lässt sich automatisieren. Für die Vorgangsarten (jetzt Bemerkungen) würde man dazu eine extra Tabelle anlegen.
Ich bedanke mich recht herzlich für eure Hilfe - habe es nun hinbekommen -
und zwar habe ich in die Abfrage die die Datensätze zieht ein Feld Mengensaldo eingefügt,
um den Saldo per Datensatz zu errechnen. Bin dann allerdings einen Zwischenschritt gegangen
und habe in den Bericht ein Feld =[STARTSALDO]-[Mengensaldo]eingefügt und nun funktioniert es wie gehabt.
Habe euch die Bilder der BErichts und des Entwurfs mal beigefügt :-)
Nun mache ich mich auf die Suche, wie ich das letze Feld quasi den Endsaldo auf das Hauptformular übertragen kann :-)
Grüsse
Oli