subform andere waarden geven

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.682
Hopelijk antwoord op (weeral) een ander probleem:

Ik vertrek van een form(ik noem die form1) en open op basis van een sql een nieuwe form (form2)
Deze form2 telt een aantal zaken die ik op form 1 zie, om dit te tonen maakte ik een subform (form3) met als recordbron:

Code:
SELECT DATA.CODE, Count(DATA.CODE) AS AantalVanCODE, DATA.KODE, tarief.LIJN1
FROM DATA INNER JOIN tarief ON DATA.CODE = tarief.CODE
GROUP BY DATA.CODE, DATA.KODE, tarief.LIJN1
HAVING (((DATA.KODE)=[forms].[weergave patiënt].[kode]));

Hier speelt de datum op zich geen rol
Wat ik op form 2 zie is perfect, telling klopt, alles OK

analyse.jpg

Op form2 heb ik een datumveld gemaakt.
De bedoeling is nu dat ik een telling krijg waarbij de datum WEL een rol speelt, dus, de query van de subform zou nu opnieuw moeten lopen maar met een voorwaarde voor het datumveld
(BVB maak een analyse van de records die NA mijn ingegeven datum vallen)

en dat lukt van geen kanten

misschien verwijs ik op een verkeerde manier naar de subform:
[Forms]![Form2]!Subform.[Forms]![Form3].RecordSource = "SELECT......
of misschien kan ik commando .Recordsource in deze niet gebruiken
of misschien zit het hem in het feit dat eerst de datum niet belangrijk is voor de analyse en dan nadien wel..

Enfin,
ik kom er (weer) niet uit

Bedankt
JP
 
En het kan zoveel makkelijker..... Waarom altijd dat gedoe met subformulieren? In dit geval is de oplossing vrij simpel. Kijk in het andere draadje naar de oplossing voor OpenArgs, om te beginnen.
In dit geval is het één waarde, dus een simpele OpenArgs.
Maak op formulier 2 een keuzelijst (gooi het subformulier zo snel mogelijk weg) en gebruik de Load event om de keuzelijst te vullen:
Code:
Dim strSQL As String
    strSQL = "SELECT DATA.CODE, Count(DATA.CODE) AS AantalCODE, DATA.KODE, tarief.LIJN1 FROM DATA " _
        & "INNER JOIN tarief ON DATA.CODE = tarief.CODE " _
        & "GROUP BY DATA.CODE, DATA.KODE, tarief.LIJN1 " _
        & "HAVING DATA.KODE=" & Me.OpenArgs
    Me.lstQuery.RowSource = strSQL
En daarmee heb je de data op je formulier staan. Je geeft niet helemaal of je de datum als exacte waarde wilt zien als filter, of als vanaf datum. Als het om een exacte datum gaat, is wellicht een kalenderformulier met daarop de datums waarop wat te halen valt aan te raden; bij de gewone datumkiezer weet je natuurlijk nooit of er wat geregistreerd is of niet. Een keuzelijst kan die selectie ook maken natuurlijk.
Achter de knop hang je dan een nieuwe query die het datumfilter erbij zet. Dus iets als:
Code:
Dim strSQL As String
    strSQL = "SELECT DATA.CODE, Count(DATA.CODE) AS AantalCODE, DATA.KODE, tarief.LIJN1 FROM DATA " _
        & "INNER JOIN tarief ON DATA.CODE = tarief.CODE " _
        & "GROUP BY DATA.CODE, DATA.KODE, tarief.LIJN1 " _
        & "HAVING DATA.KODE = " & Me.OpenArgs & " AND CDbl(Datum) = " & CDbl(Me.datumkiezer)
    Me.lstQuery.RowSource = strSQL

Overigens zou je mij stapelgek maken met de velden CODE en KODE in één tabel :). Ik ben zó blij dat ik deze db niet hoef te beheren!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan