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

Query met parameter vanuit formulier

  • Ron

    In Access heb ik een query gemaakt met een veld met periodes (yyyymm). Deze periodes komen uit een tabel, maar de parameter wordt gehaald uit een formulier, waarin een beginperiode en een eindperiode ingevuld moet worden (parameter is: >=. AND <=..

    In deze query wordt vanuit een andere tabel ook gegevens gehaald en door middel van een join de overige data van de periodes die gelijk zijn ook in de query gezet. In de join staat dat alle periodes moeten worden weergegeven (vanuit de parameter) en van de overige gegevens als de periode gelijk hieraan is. Tot zover geen probleem!

    Alleen een van de velden in de query heet ‘aanvrager’. Deze wordt ook door middel van een parameter vanuit een formulier gevuld. Dus wanneer in een formulier een keuze is gemaakt uit de aanvrager, wordt dit automatisch de parameter in de query. Echter, als ik dit laatste verwerk, laat hij niet meer alle periodes uit mijn selectie zien, maar alleen de periodes waar de aanvrager voorkomt. Nu had ik achter mijn parameter vanuit het formulier gezet Or Is Null.

    Dit werkt, hij laat nu alle periodes zien en eventuele lege periodes. Alleen wanneer in een lege periode wel een andere aanvrager voorkomt, dan is periode niet meer zichtbaar.

    Voorbeeld van periode 201301 tot en met 201302 van aanvrager X

    201301 500.000

    201302 600.000

    201303

    201304 100.000

    201305

    201306

    Alleen als in periode 3 bijvoorbeeld aanvrager X niet voorkomt, maar aanvrager Y (maar die is uiteraard niet gelijk aan mijn parameter vanuit het formulier) dan is het volgende zichtbaar:

    201301 500.000

    201302 600.000

    201304 100.000

    201305

    201306

    Periode 3 ontbreekt dan helemaal. Dus de parameter vanuit het formulier (=. Or Is Null) werkt niet op deze manier.

    Wie weet een oplossing voor mij?

    Alvast hartelijk bedankt!

  • JaapTon

    Ron,

    Kun je s.v.p. een vereenvoudigde sql van deze query geven?

  • Ron

    SELECT qry_Periode_All.Periode, ., Sum(.Inkoopprijs) AS SomVanInkoopprijs, Sum(.Verkoopprijs) AS SomVanVerkoopprijs, Sum(-) AS winst

    FROM RIGHT JOIN qry_Periode_All ON .Periode = qry_Periode_All.Periode

    GROUP BY qry_Periode_All.Periode, ., .Periode

    HAVING (((.)=!!));

  • JaapTon

    Ron,

    Hierbij de sql met de gewenste variabelen.

    Succes!

    SELECT qry_Periode_All.Periode, ., Sum(.Inkoopprijs) AS SomVanInkoopprijs, Sum(.Verkoopprijs) AS SomVanVerkoopprijs, Sum(-) AS winst

    FROM RIGHT JOIN qry_Periode_All ON .Periode = qry_Periode_All.Periode

    GROUP BY qry_Periode_All.Periode, ., .Periode

    HAVING (((qry_Periode_All.Periode)=!!) AND ((.)=!!)) OR (((qry_Periode_All.Periode)=!!) AND (!! Is Null));

  • JaapTon

    Geen reactie meer…… Gesloten.