Hallo Leute.
Ich hab ein Problem mit der Berechnung eines ungebundenen Feldes in einem Formularkopf.
Ich habe ein Endlosformular und möchte im Formularkopf eine Summe bilden. Ansich nicht schwierig.
Bei mir hakt es daran, dass ich die Werte, die ich zusammenziehen will in ungebundenes Feld ("AkzeptierteSollMenge") übergebe, und zwar in Äbhängigkeit von einem Ja/Nein Feld ("GSAkzeptiert").
(So will/wollte ich verhindern, dass ich eine komplette Summe über alles bekomme, und weil ich mir nicht zu helfen wusste habe ich ein weiteres Feld benutzt das eigentlich überflüssig ist).
BSP:
Im Formular:
Feldname:
AkzeptierteSollMenge
Steuerelementinhalt:
=Wenn([GSAkzeptiert]=Ja;[Sollmenge];0)
Jetzt hätte ich in jedem Datensatz der mir angezeigt wird ein Feld mit einem Wert, den ich für meine Summenberechnung brauche.
Weiter, im Formularkopf dann die Summenbildung:
Feldname:
SummeAkzepierteSollMenge
Steuerelementinhalt:
=Summe([AkzeptierteSollMenge])
Quittiert wird mir das aber mit "#Fehler",
und das Ist-Summenfeld, das mit dieser Berechung/Formel/mit den Feldern nichts zutun hat, gibt dann auch "#Fehler" aus (?).
Mein Ziel ist es eine Kotrollsumme zu bilden, um einen Vergleich zwischen Ist und Soll zu haben. Es wird nur bei der Eingabe verwendet, ob man alles abgearbeitet hat, was abgearbeitet werden darf. Weil das Endlosformular etwas länger sein kann, und beim Scrollen vielleicht etwas untergeht, erschien mir das als praktische Lösung.
Vielleicht hat jemand einen Tipp für mich.
Danke.
Hi Rene,
ich hatte vor kurzem eine ähnliche Frage...
vieleicht hilf es dir ja!
http://www.access-o-mania.de/forum/index.php?PHPSESSID=e5q5uq678ukee2vnb4ckiki421&topic=20996.0
=Wenn([GSAkzeptiert];[Sollmenge];0)
Grüsse J.D
Hi,
du musst den Berechnungsausdruck in der Summenformel wiederholen, also so sollte es klappen:
=Summe(Wenn([GSAkzeptiert];[Sollmenge];0))
Das Hilfs-Steuerelement ist also überflüssig.
Danke JD.
Das hab ich mir durchgelesen, aber ich hab es nicht verstanden, bzw. konnte es nicht umsetzen.
Deshalb nochmal Dank für die Umsetzung auf mein Bedürfnis :)
Allerdings bringt mir im Formularkopf
=Summe(Wenn([GSAkzeptiert];[Sollmenge];0))
zwar ein Ergebnis, aber NUR wenn ich wild im Formular durch die berechneten Felder klicke.
Die Berechnung erfolgt also nicht 1:1 ???
Danke MaggieMay.
Hat sich überschnitten...
Hast Du eine Idee wie das "schneller" berechnet werden kann?
Zitat
..zwar ein Ergebnis, aber NUR wenn ich wild im Formular durch die berechneten Felder klicke...
Durch die Datensätze klicke.... ahhh... bin wirsch im Kopp
Wie sieht denn die Datenquelle des Formulars aus, ist es eine Tabelle oder Abfrage?
Und findet eine nachträgliche (benutzerdefinierte) Filterung statt die zu berücksichtigen wäre?
Alternativ könntest du es mal hiermit versuchen:
=DSUM("Sollmenge";"TabelleOderAbfrage";"GSAkzeptiert=-1")
Evtl. hilft auch ein "Me.textfeldname.Requery" beim Laden des Formulars.
Ich greife auf eine Tabelle zu, und mit DSum klappt es nicht.
Einen Filter gibt es nicht.
Aber, sorry, das ist nicht mein Tag. Ich hab einen Denkfehler.
Ist doch, jetzt in meinem Fall, völlig Latte.
Die Sollmenge muss ja nur berechnet werden, wenn das Formular geöffnet wird. Ist ja die Sollmenge, da hat keiner dran rumzufummeln ::)
Jetzt in meinem Test hab ich das Feld nicht gesperrt um rumzuprobieren 8), ich blödel.
Nach Aktualisierung des Feldes Ist-Menge lass ich ein
Me.Requery
drüberlaufen.
Dein Tipp war wieder Gold wert.
Danke.