Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Summe im Bericht mit Code

Begonnen von T417, April 28, 2010, 14:54:06

⏪ vorheriges - nächstes ⏩

T417

Ich brauche eine Summe im Bericht. Mein Problem ist nur, das ich nicht einfach Sum(Endkosten) in der Fußzeile nehmen kann, da ich Datensätze (Sortier=99) dazwischenhabe, die ich weder rausbekomme noch mitberechnet werden dürfen.

Mein bisherige Codeversuche sehen bis jetzt so aus:
MSQL = "SELECT Endkosten As Summe1 FROM Detailbereich WHERE NOT Me.Sortier=99 "
Me.Text123.Recordsource = MSQL
Oder
CurrentDb.Execute ("INSERT INTO Text123(Endkosten) values Sum(Endkosten) FROM Me.Detailbereich WHERE NOT Me.Sortier=99")

Mir ist auch klar das/warum beide Codefragmente nicht funktionieren können, aber das sind meine letzten Einfälle und mir fällt langsam nichst mehr ein.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

MzKlMu

Hallo,
versuche es so:
=DomSume("Endkosten";"Tabellenname";"Sortier <> 99")
Als Steuerelementinhalt in einem Berichtsfeld.

Als Tabellename kann auch der Name der Abfrage für den Bericht verwendet werden.
Diese Summe in die Tabelle zu schreiben ist überflüssig. Berechnete Werte werden nicht gespeichert.
Gruß
Klaus

T417

#2
An DomSumme hatte ich auch schon gedacht.
Ich hab aber gerade das Problem, das er das Sortier<>99 nicht akzeptiert. Ich bekomme dadurch im Textfeld: #Fehler.
Ohne Sortier<>99 klappt es.

Mein zweites Problem ist, das diese Sortierung nur im Gruppenfuß stattfinden soll, und nur mit den Daten die auch dafür gruppiert sind.



Ich habe alles mit "Sortieren und Gruppieren" im Bericht sortiert. In dessen Gruppenfüße werden dann die Summen berechnet. Problem daran ist nur, das in den Tabellendaten einige Datensätze drin sind (Sortier=99), die nicht in der Zwischensumme mitberechnet werden dürfen.
Ich habe mehere Gruppenfüße für die verschieden Zwischensummen.

Ich hoffe ich habs jetzt verständlich umschrieben.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hallo,

wenn  "Sortier" von Datentyp Text ist, dann muß es so heißen:

=DomSume("Endkosten";"Tabellenname";"Sortier <> '99'")

T417

Nagut, jetzt funktioniert DomSumme, aber ich errechne damit nur die Endsumme.
Ich brauche aber die Zwischensummen.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

#5
Hallo,

dann bring halt noch die Gruppierungsfelder in das Kriterium mit ein...


=DomSume("Endkosten";"Tabellenname";"Sortier <> '99'  and IDGruppenfeld1 =" & [IDGruppenfeld1])

T417

Kannst du mir das mit den Gruppenfeldern erklären? Das scheint das zu sein was ich suche.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hallo,

mhmm, was soll ich erklären...?

Du hast doch den Bericht nach irgendwelchen Feldern gruppiert und dazu Gruppenköpfe/füße angelegt.

Die dafür  zugrundeliegenden  Tabellen-/ und Berichts-Feldnamen setzt Du in das Kriterien-Argument der DomSumme()-Funktion wie gezeigt ein. 

T417

#8
Hmm, also irgenwie klapps bei mir nicht.
Er berechnet immer nur die Endsumme, ignoriert scheinbar meine Zusatzeingabe.


=DomSume("Endkosten";"Zwischentabelle";"Sortier <> '99'  and Kredit=[Kredit]") ,- oder nachdem ich dachte "Kredit" (da dessen Steuerelementinhalt identisch ist mit Name) würde Fehler verursachen hab ich dessen Name in Text1 geändert, aber dennoch nichts.
=DomSume("Endkosten";"Zwischentabelle";"Sortier <> '99'  and Text1=[Text1]")

Muss ich irgendwas mit [Detailbereich.Kredit] oder so eingeben? Ich bekam da zunächst auch Fehler.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hallo,

so hab ich das nicht geschrieben (obwohl der "&" -Operator in meinem Beispiel fehlt..., hab das aber korrigiert)

Es muß so lauten:

=DomSume("Endkosten";"Zwischentabelle";"Sortier <> '99'  and Kredit =" & [Kredit])


wenn "Kredit" in der Tabelle vom Datentyp Long ist. ("Kredit"  ist das entspr. Textfeld im Bericht)

Wenn vom Datentyp Text, dann so:

=DomSume("Endkosten";"Zwischentabelle";"Sortier <> '99'  and Kredit='" & [Kredit]  & "'" )

T417

Bingo, das wars.  :D

An dieser Summierung hing ich echt fest. :P


Danke für die schnelle Lösung.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7