querry op form baseren

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.697
Hallo,

Via octafish kreeg ik een query die perfect doet wat ik zou willen:

SELECT Fiche.KODE, Fiche.NAAM, Max(DATA.DATUM) AS MaxVanDATUM, DATA.KODELANG
FROM Fiche INNER JOIN DATA ON Fiche.KODE = DATA.KODE
GROUP BY Fiche.KODE, Fiche.NAAM, DATA.KODELANG, Right([KODELANG],1)
HAVING (Max(DATA.DATUM)<DateAdd("m",-3,Date()) AND Right([KODELANG],1)="1");

dit geeft me een lijst van bruikbare data

Echter... een mens is nu eenmaal zo, je wil steeds meer :rolleyes:
Ik de bovenstaande query krijg ik data die ouder is dan 3 maand "<DateAdd("m",-3,Date())"

Die 3 maand zou ik eventueel willen "aanpasbaar" maken via een voorafgaandelijke Form
Het lukt me wel, maar ZEEEEEEER omslachtig
Ik ben er zeker van dat dit allemaal veel eenvoudiger kan, vandaar mijn vraag
Hoe doe ik dat op de beste manier

Bedankt
 
Door -3 te vervangen door de naam van het veld in het formulier. Bv.

Forms!Formuliernaam!Veldnaam
 
bedankt voor je reactie
Zo ver was ik ook al geraakt met mijn beperkte kennis :o
Wat me steeds weer verwart is hoe je van die initiele form naar je rapport gaat op een handige, korte manier
De manier waarop ik het meestal doe is echt wel omslachtig en kunst en vliegwerkIk wil het nu eens graag op een ordentelijke manier, zoals het hoort...
Kwestie van het nu eens eindelijk te leren!!! :(

Merci
 
Je vraag is niet heel helder; het criterium kun je op de wijze van gast0224 aanpassen:

Code:
HAVING (Max(DATA.DATUM)<DateAdd("m",-" & Formulieren!Formuliernaam!Veldnaam  & ",Date()) AND Right([KODELANG],1)="1");

Maar daarmee los je het rapportprobleem niet op. Want dat probleem snap ik niet, dus dan kan ik ook geen oplossing verzinnen :)
 
PFFF.... uitleggen... ni eenvoudig blijkbaar

Probeersel:

Ik heb een form
Hierop bvb een keuzelijst met het aantal maanden dat ik wil teruggaan
Ik kies een cijfer
klik op wat-dan-ook
en krijg een rapportje gebaseerd op jouw query

Hoe doe je dat op een (qua programmatuur) correcte manier???

ok nu??? (eigenlijk simpel vraagske dacht ik) :(

JP
 
Je doet voorkomen dat je het op een bijzonder ingewikkelde manier doet nu. Mijn neus is niet slecht, maar zover ruikt hij echter niet dat ik die methodiek op afstand kan opsnuiven :) Dus hoe verwacht je dan dat we tips geven hoe het beter kan?
 
door te zeggen hoe jullie het zouden doen!!
ALTIJD beter dan mijn methode
:d
 
Geef 'm toch maar...
 
Ok, dit is em.... niet werkende...
Er wordt gevraagd naar een waarde die ik eigenlijk dacht uit de form te kunnen halen, maar, niks :(

Bedankt

Bekijk bijlage DATA.zip
 
Je had 'm bijna...
 

Bijlagen

toch had ik graag geweten waar ik fouten maakte...

bij mij lukte <DateAdd("m";-[Formulieren]![Maand_keuze]![Aantal_mnd];Date()) in de query niet... wat was er dan fout??

In de form, volgende commando's

Private Sub Command4_Click()
Me.Form.Visible = False
On Error Resume Next
DoCmd.OpenReport "Niet_recente patienten", acViewPreview
End Sub

Private Sub Command5_Click()
DoCmd.Close acForm, Me.Form.Name
End Sub

in Private Sub Command4_Click() zet je de form uit
er wordt een rapport getoond
ik klik op het kruisje en de from verschijnt weer

welk commando zorgt daar voor?
wat als ik die preview niet wil...
dan floept de form aan en uit na een "print-window"... da's niet zo netjes
schrap ik dan beter de "visible" lijn

Is dit DE manier om te doen wat ik wou if kan het nog compacter??

Bedankt
JP
 
De truc bij het rapport is dat je een keuze maakt op een formulier, maar dat formulier niet afsluit bij het openen van het rapport. Het rapport verwacht namelijk een parameter uit een geopend formulier. Door het formulier onzichtbaar te maken, blijft het open, en blijft de waarde dus uit te lezen door het rapport.
In het rapport zit een code die het formulier weer opent/zichtbaar maakt als het rapport wordt gesloten (gebeurtenis <Bij sluiten>). En zodoende kun je nog een andere selectie maken mocht dat gewenst zijn. Uiteraard kun je dat ook laten, maar dan moet het formulier nog wel gesloten worden bij het sluiten van het rapport.
Er is nog een andere oplossing (meerdere zelfs :)). Die zijn, vind ik, mooier, omdat je geen parameter in de query nodig hebt. En het rapport dus altijd zonder problemen kunt openen.

1. Gebruik een Public variabele waarin je de gekozen waarde opslaat, en gebruik deze bij het openen van het rapport om een filter in te stellen
2. Geef de gekozen waarde mee als OpenArgs bij het openen van het rapport, en maak er een filter van
3. Open het rapport vanuit het formulier met de waarde uit de keuzelijst als filter

Daar kun je dus ook nog mee stoeien.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan