DSum-criteria vanuit meerdere tabellen

Status
Niet open voor verdere reacties.

so10070

Gebruiker
Lid geworden
4 feb 2014
Berichten
424
Ik wil de voorwaarden voor de som in de criteria meenemen maar dit lukt niet. Ik ben reeds een eindje op weg - denk ik toch - maar de query in de criteria is leeg en wordt pas bewaard bij het afsluiten van deze procedure. :confused: De voorwaarden om de som te berekenen wordt bekomen als resultaat uit een relatie tussen verschillende tabellen. Ik doe dit nu als volgt.
Code:
    sqlTotaalSom = "SELECT tblWerkgroepCGS.WGAfdelingDivisie, tblProducten.*, tblAandachtspunten.* " & _
        "FROM tblWerkgroepCGS INNER JOIN (tblProducten LEFT JOIN tblAandachtspunten ON tblProducten.ProductenID = tblAandachtspunten.ProductenID) " & _
        "ON tblWerkgroepCGS.WerkgroepCGSID = tblProducten.WerkgroepCGSID " & _
        "WHERE (tblProducten.PKalenderjaar = " & TempVars.Item("PubKalenderjaar") & ") AND (tblProducten." & Me.Parent.txtWGAfdelingDivisiePD & " = True) " & _
        "AND (tblProducten.WerkgroepCGSID <> " & Me.Parent.txtWerkgroepCGSID & ") OR ((tblAandachtspunten." & Replace(Me.Parent.txtWGAfdelingDivisiePD, "P", "A", 1, 1) & " > 0) " & _
        "AND (tblWerkgroepCGS.WGAfdelingDivisie <> '" & Mid(Me.Parent.txtWGAfdelingDivisiePD, 2) & "'));"

    CurrentDb.CreateQueryDef SomQuery, sqlTotaalSom

    TotaalVoettekst = DSum(Replace(Me.Parent.txtWGAfdelingDivisiePD, "P", "A", 1, 1), "sqlTotaalSom")
 
Ik snap je probleem niet helemaal. Ik zie dat je een query opbouwt in een variabele, en dat je die query vervolgens aan SomQuery hangt. Ik neem aan dat dat "sqlTotaalSom" is, aangezien je die verder in het veld TotaalVoettekst wilt gebruiken, maar verder kom ik ook niet. Als de SQL is toegewezen aan de query, kun je de query openen en dan moet je de correcte data zien. Hangt de query echter onder het formulier waarop je de code uitvoert, dan heb je een klein probleem want dat formulier heeft de data dan al ingelezen. Je zult de query dan eerst opnieuw aan het formulier moeten koppelen. Vreemd, maar waar...
 
Ik wil in de voettekst van een rapport de som van een veld weergeven dat via de query uit drie tabellen gefilterd wordt. Het rapport is opgemaakt op basis van deze query, maar in de Dsum-functie, als ik dat specifiek veld opvraag om de som te maken, wordt de WHERE-clausule van de recordsource van het rapport niet gebruikt (die is identiek aan de sql sqlTotaalSom). Als ik de query gewoon run en een totaal op dat veld zet, is er geen probleem. Maar in het rapport lukt het niet. En aangezien het veld hier uitgefilterd wordt op basis van een query gezet op drie tabellen, dacht ik deze sql in de criteria van de functie DSum te moeten zetten. Maar dit lukt niet! :confused:
 
Snap je mijn berichtje wel? Ik zei dus: als de query waarmee je het rapport opent dezelfde is als de query die je nu apart genereert, dan gaat het niet werken omdat de recordset van het rapport al geopend is.
Overigens vraag ik me af of het wel op deze (behoorlijk ingewikkelde) manier moet. Mijn gevoel zegt dat het heel wat simpeler moet kunnen. Maar zonder voorbeeldje kan ik daar uiteraard verder niks van zeggen.
 
Hierbij het voorbeeld db. Bij het rapport heb ik de twee methoden genoteerd. De som voor het veld AVWO (tblAandachtsPunten, min de records waarvoor de waarde in tblWerkgroepCGS.WerkgroepCGSID 38 is) moet 82 zijn en niet 259. Ik slaag er niet in om de criteria bij DSum goed te krijgen. Of is er misschien een andere methode. Bekijk bijlage 231401
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan