anoniem Geplaatst: 25 mei 2003 Delen Geplaatst: 25 mei 2003 Blijkbaar doe ik iets goed fout met mijn DLOOKUP-functie. (Zie [url=http://forum.computertotaal.nl/phpBB2/viewtopic.php?t=92399&sid=4d1d89192b220caf1336a3516f3c1016]Vorige vraag[/url]) Daarbij komt ook nog dat het systeem traag wordt. Dus zat ik te denken om een SQL-statement te gebruiken die de functie DLOOKUP combineert met de query. Mijn DLOOKUP-functie is: [code:1:ef972ddcfa]=DLookUp("[BeginSaldo]","qryKassaTotContantCum","[IDKassa]=" & [txtidkassa])[/code:1:ef972ddcfa] SQL van de query [b:ef972ddcfa]qryKassaTotContantCum[/b:ef972ddcfa] is: [code:1:ef972ddcfa]SELECT tblKassaForm.IDKassa, tblBedragKassa.Bedrag, tblKassaForm.Datum, tblKassaForm.Filiaal, tblBedragKassa.BetWijze, pfeindsaldo([betwijze],[filiaal],[datum]) AS EindSaldo, pfbeginsaldo([betwijze],[filiaal],[datum]) AS BeginSaldo FROM tblKassaForm INNER JOIN tblBedragKassa ON tblKassaForm.IDKassa = tblBedragKassa.KassaFormID ORDER BY tblKassaForm.Datum, tblKassaForm.Filiaal; [/code:1:ef972ddcfa] en de gebruikte [i:ef972ddcfa]public functions[/i:ef972ddcfa] zijn: [code:1:ef972ddcfa] Public Function pfEindSaldo(fstrBetWijze As String, fstrFiliaal As String, fdatDatum As Date) As Currency If fstrBetWijze <> "Contant" Then pfEindSaldo = 0 Else pfEindSaldo = DSum("[Bedrag]", "qryKassaTotContant", "BetWijze = 'Contant' And Filiaal = '" & fstrFiliaal & "' And Datum <= #" & fdatDatum & "#") End If End Function Public Function pfBeginSaldo(fstrBetWijze As String, fstrFiliaal As String, fdatDatum As Date) As Currency If fstrBetWijze <> "Contant" Then pfbegingSaldo = 0 Else On Error Resume Next pfBeginSaldo = DSum("[Bedrag]", "qryKassaTotContant", "BetWijze = 'Contant' And Filiaal = '" & fstrFiliaal & "' And Datum < #" & fdatDatum & "#") If Err.Number <> 0 Then pfBeginSaldo = 0 On Error GoTo 0 End If End If End Function [/code:1:ef972ddcfa] De SQL van de query [b:ef972ddcfa]qryKassaTotContant[/b:ef972ddcfa] is: [code:1:ef972ddcfa]SELECT tblBedragKassa.Bedrag, tblKassaForm.Datum, tblKassaForm.Filiaal, tblBedragKassa.BetWijze FROM tblKassaForm INNER JOIN tblBedragKassa ON tblKassaForm.IDKassa = tblBedragKassa.KassaFormID ORDER BY tblKassaForm.Datum, tblKassaForm.Filiaal; [/code:1:ef972ddcfa] Zelf krijg ik als ik een SQL samenstel het resultaat #Naam? Ik hoop dat iemand me verder kan helpen want mijn SQL is waardeloos Alvast bedankt! Quote Link naar reactie
anoniem Geplaatst: 25 mei 2003 Auteur Delen Geplaatst: 25 mei 2003 dymic, een paar tips: -probeer eerst een wat simpeler SQL statement, en maak hem geleidelijk ingewikkelder: bv geen innerjoin maar met een kassid dat je zelf meegeeft. -als je pc traag wordt, dan kan dit komen doordat je resultaatset erg veel rijen oplevert. Heb je al eens geprobeerd alleen het aantal resultaatrijen op te halen (met select count(*) of iets dergelijks. succes, Herman Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen