Welkom op het forum van startpagina!

Dit forum staat op alleen-lezen. Je kan hier informatie zoeken en oude berichten terugvinden, maar geen nieuwe berichten plaatsen.

Naar overzicht van alle forums

cumuliatief veld in een query

  • Rodney

    hoi,

    ik heb een query als volgt opgebouwd

    Week Omzet Cumulatief

    1 7000,- 7000,-

    2 8000,- 15000,-

    3 9000,- 24000,-

    4 10000,- 34000,-

    nu wil ik kolom cumulatief erbij hebben, maar dat lukt me niet echt, weet iemand een formule om dit voor elkaar te krijgen?

    alvast bedankt

    gr.Rodney

  • Nico den Tuinder

    Ik weet niet precies waarvoor je de query nodig hebt. Als je de cumulatieven in een rapport wilt laten zien, kun je als volgt handelen:

    Plaats een niet-afhankelijk tekstvak in de detail sectie (waarin ook het bedrag voor die maand staat)

    Geef dit tekstvak als besturingelementbron: het tekstvak met de waarde van die maand

    Stel de eigenschap van het tekstvak ‘lopend totaal’(running sum, geloof ik), in op: “Over alles”

    Puur in een query wordt het lastiger. Zoals ik hem heb opgelost:

    1. Roep binnen de query een functie op met als argument: de waarde van de maand

    2. Die functie doet het rekenwerk.

    De werking van de functie: je loopt een recordset door, en laat een bepaalde waarde,d ie de uitkomst wordt van de functie, steeds ophogen met de inhoud van een veld. De truc: deze recordset varieert steeds. Het is namelijk een recordset met als basis: een SQL-statement. En die laat je steeds variëren, afhankelijk van de waarde die je bij het oproepen van de functie hebt doorgegeven.

    De functie:

    Public Function pfBereken(bytMaand As Byte) As Long

    Dim strSQL As String

    Dim lngTotaal As Long

    Dim rst As Recordset

    strSQL = “SELECT tblBedragen.bytMaand, tblBedragen.lngBedrag ”

    strSQL = strSQL & “FROM tblBedragen ”

    strSQL = strSQL & “WHERE (tblBedragen.bytMaand) <= ” & bytMaand

    Set rst = CurrentDb.OpenRecordset(strSQL)

    lngTotaal = 0

    While rst.EOF = False

    lngTotaal = lngTotaal + rst.Fields("")

    rst.MoveNext

    Wend

    pfBereken = lngTotaal

    End Function

    Dit is de gedachtengang…. en nu nog aanpassen aan je eigen tabel!