Wat wil je precies bereiken? Als we de Dsum formule eens nader bekijken, dan zul je zien dat hij nooit zal gaan werken:
TotaalGeleverd: DSum("Hoeveelheid";"Afroepen";"Month([Levering datum])<= " & [MijnContract])
De eerste twee argumenten zijn hopelijk duidelijk: eerst geef je het veld aan dat je wilt sommeren, vervolgens de tabel waar het veld in staat.
Het criterium is derhalve het probleem...
Je hebt, confom het voorbeeld, een veldnaam MijnContract gemaakt voor de contractID's, en vervolgens heb je dat veld de eigenschap Group By gegeven. Omdat het ContractID een uniek nummer is, zal dat niets uitmaken op je groepering: groeperen doe je op gegevens die meerdere keren voorkomen, zoals bijvoorbeeld een bedrijfsnaam in Offertes, of een datum(groep). ContractID is dus niet geschikt hiervoor. Je zult zien, dat je net zoveel records krijgt in het resultaat als dat je niet zou groeperen.
Het tweede deel van het probleem zit dus in het criterium van de DSum:
"Month([Levering datum])<= " & [MijnContract].
Hier geef je aan, dat de waarde van de functie Month([Levering datum]) kleiner of gelijk moet zijn aan het (unieke) ContractID. Dit is een vergelijking op twee verschillende soorten gegevens, en levert dus zelden een bruikbaar totaal op.
In het voorbeeld dat ik heb gemaakt, wordt dan ook het criterium Month([Levering datum]) gebruikt, waarin de maandwaarde van de leveringsdatum wordt vergeleken met het groeperingsveld MijnMaand, dat dezelfde berekening maakt op het veld [Levering datum].
"Month([Levering datum])<= " & [MijnMaand].
Je zou misschien iets kunnen maken met ContractNummer, maar ik vraag mij af of dat zinvol is voor een lopend totaal...
Hopelijk is hiermee de functie wat duidelijker...
Michel