Doorlopend formulier veld van een rocrod optellen

Status
Niet open voor verdere reacties.

bonnowagt

Gebruiker
Lid geworden
7 dec 2006
Berichten
445
Ik heb een doorlopend formulier met het veld: totaaljaarsalaris. Dit wordt opgeteld bij elkaar in de koptekst van het formulier.
Vervolgens filter ik op afdeling en wil dan het totaal van de gefilterde records.

Ik doe dit als volgt:
Code:
DoCmd.GoToRecord , , acFirst
 Dim myvalue  As Integer
 Dim i As Integer
For i = 1 To Me.Form.RecordsetClone.RecordCount - 1
 
DoCmd.GoToRecord , , acNext
 
myvalue = myvalue + Me.totaaljaarsalaris.Value
    Next
Debug.Print SomVanTotale_Jaar_Salaris

Ik krijg dan de melding overloop. Kan iemand zo zien wat ik fout doe of wat er eventueel fout kan zijn. Ik wil de database wel meesturen maar dan moet ik deze eerst strippen.

Alvast bedankt
 
Declareer eens as long ipv integer
 
Inderdaad nu7 werkt het wel alleen telt hij het eerste record niet mee
 
zet myvalue = myvalue + Me...... eens boven DoCmd.GoToRecord , , acNext
 
Dat heb ik dus nu gedaan maar vervolgens telde hij het laatste record niet mee.
Vervolgens RecordCount - 1 op 0 gezet dus gewoon recordcount
Even gebruik gemaakt van een msgbox en daarin zie ik dat hij alles wel meeneemt. maar uiteindelijk de melding geeft
"kan niet naar het opgegeven record"
 
probeer het zo eens:

Code:
 Dim myvalue  As long
 Dim i As long
DoCmd.GoToRecord , , acFirst
myvalue =  Me.totaaljaarsalaris.Value
For i = 1 To Me.Form.RecordsetClone.RecordCount - 1
 
DoCmd.GoToRecord , , acNext
 
myvalue = myvalue + Me.totaaljaarsalaris.Value
    Next
Debug.Print SomVanTotale_Jaar_Salaris
 
Ik had je al bedankt maar er is nog een ander probleem nu. Het is een doorlopend formulier. De eerste vier komen in beeld en dan dmv een scroll de volgende records enz. Bij een filter telt hij prima. Maar bij het toaal dus alleen de getoonde records dus die niet in beeld staan telt hij niet mee
 
ik zeg het verkeer denk ik hij telt nog steeds niet de laatste mee wel bij een filter
 
Ik vind het een beetje onhandige oplossing die je hebt bedacht, en de aanpassingen dus ook. Je kunt veel beter de Recordset gebruiken die onder je formulier (met of zonder filter) hangt.
Code:
Function Totaaltje()
Dim myValue  As Double
Dim rst As DAO.Recordset
    myValue = 0
    Set rst = Me.RecordsetClone
    With rst
        .Bookmark = Me.Bookmark
        .MoveFirst
        Do While Not .EOF
            myValue = myValue + CDbl(!Bedrag)
            .MoveNext
        Loop
    End With

End Function
 
vervolg

Hallo,

Ik heb de code
Code:
Function Totaaltje()
Dim myValue  As Double
Dim rst As DAO.Recordset
    myValue = 0
    Set rst = Me.RecordsetClone
    With rst
        .Bookmark = Me.Bookmark
        .MoveFirst
        Do While Not .EOF
            myValue = myValue + cdbl(inkomsten) ' CDbl(!Bedrag)
            .MoveNext
        Loop
    End With

End Function
die jij mij had gegeven gebruikt

Het rare is dat hij op het doorlopend formulier de bedragen zou moeten optellen|:

bijv:
125
213
210
195

Ik krijg dan 500 als uitkomst terwijl het toch echt 743 zou moeten zijn
Toen ik het met andere getallen probeerde kwam ik erachter dat hij niet vier verschillende getallen op telt maar iedere keer dhet eerste getal namelijk 4 x 125 wat doe ik fout of is er fout an de code.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan