Aggregieren im Bericht

Hallo Leute,
Ich komme mit der MS-Hilfe nicht klar.
Wenn ich in einem Bericht Felder aggregieren möchte, bei denen einige teilweise keinen Wert enthalten, habe ich in der Hilfe gelesen, dass das Ergebnis ebenfalls blank ist.

OK dann fülle ich eben entweder die Felder vorher mit „0“ oder versuche es mit SummeWert(Nz(…

Das klappt aber auch nicht.

Setze ich ("[Text418]"+[„Text419“]+[„Text420“])erhalte ich die Werte hintereinder verkettet
setze ich
=DomWert([„Text418“]+[„Text419“]+[„Text420“])
erhalte ich die Meldung Falsche Anzahl an Argumenten.

Gibt es von Euch noch Vorschläge ?

Gruß Christian

Hallo,

Ich komme mit der MS-Hilfe nicht klar.

mhmm, ich komme mit der Aufgabenstellung nicht klar…
Wenn ich in einem Bericht Felder aggregieren möchte,

was soll das (hier) heißen)?
bei denen
einige teilweise keinen Wert enthalten, habe ich in der Hilfe
gelesen, dass das Ergebnis ebenfalls blank ist.

kommt drauf an, WIE Du „aggregieren“ willst.

OK dann fülle ich eben entweder die Felder vorher mit „0“ oder
versuche es mit SummeWert(Nz(…

Das klappt aber auch nicht.

Warum? Was kommt heraus? Gibt es Fehelrmeldungen?

Setze ich ("[Text418]"+[„Text419“]+[„Text420“])erhalte ich die

WO??
Werte hintereinder verkettet

bezweifle ich… der Ausdruck ist mehrfach falsch…
setze ich
=DomWert([„Text418“]+[„Text419“]+[„Text420“])
erhalte ich die Meldung Falsche Anzahl an Argumenten.

Das sieht auch nicht nach einer Vorgabe in der VBA-Hilfe aus…

vermutlich meinst Du:

=DomWert("[Text418]+[Text419]+[Text420];„tblDeineTabelle“;„DeinKriteriumFürZuBenutzendeDatensätze“)

oder mit Null-„Werten“:
=DomWert(„nz([Text418],0)+nz([Text419],0)+nz([Text420],0)“;„tblDeineTabelle“;„DeinKriteriumFürZuBenutzendeDatensätze“)

und unter „aggregieren“ das Zusammenzählen von Werten aus Feldern in (jeweils) EINEM Datensatz.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

mhmm, ich komme mit der Aufgabenstellung nicht klar…

Ich versuchs nochmal zu erklären.
Ich hab in meinem Bericht drei Textfelder deren Werte ich summieren möchte.

Setze ich ("[Text418]"+[„Text419“]+[„Text420“])in die Steuerelementeigenschaft in Steuerelementinhalt, erhalte ich die
Werte hintereinder verkettet. Das will ich aber nicht, denn ich möchte gern die Summe aus allen dreien, wobei einige auch blank sein können.

=DomWert([„Text418“]+[„Text419“]+[„Text420“])
erhalte ich die Meldung Falsche Anzahl an Argumenten.

=DomWert("[Text418]+[Text419]+[Text420];„tblDeineTabelle“;„DeinKriteriumFürZuBenutzendeDatensätze“)

Was meinst Du mit dem Ausdruck …„tblDeineTabelle“;„DeinKriteriumFürZuBenutzendeDatensätze“)

Diese werte brauchen nicht aus einer Tabelle abgelesen werden, die können dierekt aus dem Bericht genommen werden. Stell Dir vor, wir haben drei Textfelder in einem Bericht die Ihren Wert aus einer Tabelle beziehen und zwar durch „=DomWert(“[Orderanzahl]";„Ordervolumen“;"[Monat] = ‚Januar‘")

Nun möchte ich unter die drei Felder Januar, Februar und März ein Summenfeld aus allen Monaten erstellen. Und zwar mit Null-„Werten“.

Christian

Hallo,

=nz([Text418];0) + nz([Text419];0) + nz([Text420];0)

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Großartig - das klappt schon mal.

aber was ist wenn tatsächlich eines der Felder 0 ist, dann sagt er wiederum Div/0 Division durch null.

müsste dann nicht das ganze wieder in Klammern und mit nz versehen werden ?

z.B. so ?
=nz(nz([Text80];0)/nz([Text87];0);0)

Gruß Christian

Hallo,

aber was ist wenn tatsächlich eines der Felder 0 ist, dann
sagt er wiederum Div/0 Division durch null.

müsste dann nicht das ganze wieder in Klammern und mit nz
versehen werden ?

z.B. so ?
=nz(nz([Text80];0)/nz([Text87];0);0)

Naja, Division durch 0 hat zunächst mit VBA, Access und PCs im Allgemeinen gar nichts zu tun…
Das ist ein Grund"problem" der Mathematik, soll heißen, eine Division durch 0 ist schlichweg nicht möglich, wobei dann auch der Sinn dieser „Datenverarbeitung“ nachzufragen wäre.

Insofern bekommt man das nur in den Griff durch eine vorherige Überprüfung des Divisors auf den Wert 0 und eine entspr. Reaktion (Ersatzwert) in diesem Fall.

=wenn(nz([Text87];0)=0; 0; nz([Text80];0)/nz([Text87];1))

(mit der Wenn-Funktion werden immer beide Alternativ-Ausdrücke ausgewertet, so dass der Trick mit Ersatzwert 1 beim Divisor …/nz([Text87]; 1 )… nötig ist.

Eigentlich sollte der Lösungsansatz dafür wesentlich früher beginnen und es überhaupt nicht möglich sein sollte, dass der Wert 0 (oder Null-Wert) in „Text87“ vorkommt/zulässig ist.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

aaaaa - ja, verstanden.
Du erklärst das großartig. Vielen Dank.

Vielleicht hast Du ja die Zeit und Muße mir noch bei folgender Problemstellung behilflich zu sein.

Ich habe ja nun die Auswertungen in dem Bericht mit der Variante vorgenommen, dass ich bei jedem Textfeld in die Steuerelementeigenschaft eine einzelne Formel geschrieben habe, die den Part …Where [Datum] = Beteween #01/01/2009# And #01/31/2009# für Januar enthält.
Besteht die Möglichkeit, diese genaue Datumseingrenzung durch eine Formel zu ersetzen, die vielleicht mit …Where [Datum] like #01/**/****# nur die im Januar erfolgten Datensätze auszählt ?
Sinn und Zweck dieser Frage ist, dass ich nicht jedes Jahr alle Textfelder wieder anfassen muss um z.B. das Jahresdatum zu ändern.

Gruß Chistian

Hallo,

ich halte die ganze Methodik für verkorkst.

Man könnte das Jahr per Openargs-Parameter bei der Docmd.Openreport-Methode übergeben und die Ausdrücke in der „Öffnen“-Ereignisprozedur des Berichtes erst passend zusammenstellen und dann den Steuerelementinhalten (Controlsource) der einzelnen Textfelder zuweisen.

Hallo Franz,

Du machst sehr vieles in VBA, was mir nicht ganz so geläufig ist. Daher muss ich Dinge wie OpenArgs-Eigenschaft erst kompliziert in der Hilfe nachlese um sie zu verstehen.
Tut mir leid, dass ich dafür immer etwas Zeit benötige.
Meine Frage zielte jedoch dahin, dass ich die Datenbank (im Bericht)mit Formeln ausgestattet habe, die sich auf einen absolut festen Zeitraum beziehen, und nicht nur auf einen Teil des Datums, so dass ich die Formeln für jedes Jahr ändern muss.
gibt es da auch andere Lösungen wie z.B dass man in einem Formular Hauptmenue einfach den Jahrgang z.B. 2010 eingibt und sich dann alle Formeln im Bericht ausschließlich auf das Jahr beziehen ?

ich brauch noch einbischen um zu verstehen wie Du die Sache angehen würdest.

Gruß Christian

Hallo,

„dass ich bei jedem Textfeld in die Steuerelementeigenschaft eine einzelne Formel geschrieben habe, die den Part …Where [Datum] = Beteween #01/01/2009# And #01/31/2009# für Januar enthält.“

Wie heißt denn nun die Formel komplett??

o.g. Where-Condition kann nicht in einem Steuerelementinhalt eines Textfeldes funktionieren…

Wie oft haben wir jetzt schon die Dlookup(Domwert)-Funktion behandelt??

Wenn Du das alles vernünftig aufbauen willst, dann MUSST Du Dich mit VBA (ein bisschen) beschäftigen…

Versuch mal bezgl. variabler Angabe des Jahres:

=Dlookup(„DeinTabellenfeld“;"tblDeineTabelle;„Month([Datum]) =1 and Year([Datum]=“ & nz(Forms!Hauptmenue!Jahreszahl;0))

Wobei das geöffnete Formular „Hauptmenue“ heißen und es dort ein Textfeld mit Namen „Jahreszahl“ geben muß, in das die gewünschte Jahreszahl einegeben wird.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!