hallo,
hier ben ik weer :-)
ik ga proberen het eenvoudig uit te leggen.
ik heb een hoofdformulier en daarin een subform;
in de subform staan artikellijntjes van bestellingen, zodra ik daar bv een aantal of wat dan ook verander roep ik een public sub op die een pak berekeningen zal uitvoeren en alsook een .recalc omdat ik op mijn hoofdform gebruik maak van het subtotaal van de subform.
nu wanneer ik maar een record of 5 heb, vormt dat geen probleem, maar als ik bv in mijn subform 20 records heb, dan zal een stuk van de code wel runnen, maar terwijl hij die recalc doet gaat hij verder en net onder die recalc moet hij het subform totaal hebben om verder te kunnen en daar loopt het dus mis.
heeft iemand een idee hoe je op een subform een recalc kunt uitvoeren met veel records en dat de andere code wacht tot hij klaar is?
want ik vermoed dus echt dat het aantal records hier de doorslag van slagen of niet slagen van de code gaat bepalen (tijd die nodig is om alles te herberekenen?)
en raar is dan, als ik dan nadat de fout kwam even helemaal onderaan op het laatste record klik, het aantal gewoon opnieuw invul, en enter (bij enter ga ik dus diezelfde code gaan uitvoeren) dan lukt het wel...
ik sta voorlopig voor een raadsel...wie weet wat ik mis doe of hoe ik het beter doe?
merciekes
Jammer genoeg is je poging niet echt gelukt, want snappen doe ik het nog steeds niet.... Geen idee bijvoorbeeld wat je probeert te bewerkstellingen met de Recalc. Leg eerst maar eens uit wat voor soort ingewikkelde berekening je maakt, en op welk moment die wordt uitgevoerd, waardoor het niet meer werkt.
Michel
Consistancy is the last refuge for the unimaginatives
haha, had het al weer gedacht :-)
wel ingesloten een screenshot.
je zal zien dat er een hoofdformulier is, en daarin een subform.
de subform heeft een opsomming terug van artikellijnen.
wanneer ik in die subform dus dingen ga toevoegen, aanpassen dan moet ik een recalc doen om het totaal van de bv TOTVKP te krijgen die ik gebruik in de hoofdform.
Dus stel ik heb 4 records in de subform, en ik verander het aantal, zodra ik dat doe gebeuren een paar zaken zodat ik op het hoofformulier direct de juiste aanpassingen en prijzen zie.
de code staat in de public sub, en iedere keer ik iets verander roep ik deze dus op, omdat bepaalde velden berekende velden zijn en en andere dan weer velden die ik effectief in de db steek.
de code ziet er zo uit. :
en nu net wanneer er meer dan 16 records staan in dat subformulier, dan krijg ik fouten bij het openen van het formulier (bij het openen voer ik die code ook uit).Code:Public Sub herreken() If Form("for_factuuritemsSub").Form("aantalrollen") <> "" Then Form("for_factuuritemsSub").Form("TotVKP") = Form("for_factuuritemsSub").Form("AantalRollen") * Form("for_factuuritemsSub").Form("VKPRolEuro") End If Forms![For_Facturen]![For_factuuritemsSub].Form.Recalc If Form("for_factuuritemsSub").Form("TotVKP") <> "" Then Me.Totaalexclbtw = Form("for_factuuritemsSub").Form("subTotaal") Me.TOTAALAKP1 = Me.TOTAKP1 * 1.12 Me.TOTTrans1 = Me.TOTAALAKP1 - Me.TOTAKP1 Me.TOTAALAKP2 = Me.TOTAKP2 + Me.TOTTrans2 Me.TotEuro1 = Me.TOTAALAKP1 / Me.ConvertRate Me.AlGekocht = Me.TOTAKP1 - Me.TOTAKP2 Me.TotEuro2 = (Me.TOTAALAKP2 + Me.AlGekocht) / Me.ConvertRate Me.AlGekocht = Me.TOTAKP1 - Me.TOTAKP2 If Form("for_factuuritemsSub").Form("subtotaal") <> "" Then Me.Rate = ((Form("for_factuuritemsSub").Form("subtotaal") / Me.TotEuro2) * 100) - 100 End If End If End Sub
en net op dit stuk : Me.Totaalexclbtw = Form("for_factuuritemsSub").Form("subTotaal")
en dat is dus duidelijk dat het aantal records een invloed heeft op het verwerken van die aantallen.
maar waar zit het probleem natuurlijk hé :-)
beter zo? ;-)
d.
Het is helemaal niet duidelijk dat het aantal records invloed heeft op het probleem, want dat blijkt niet uit de meegeleverde code. Ik zou zeggen: maak er een voorbeeldje van, want het kant vast een stuk slimmer, en ik heb niet de tijd om dit formulier na te bouwen.
Michel
Consistancy is the last refuge for the unimaginatives