Variabele in meerder queries gebruiken

Status
Niet open voor verdere reacties.

mariasteen

Gebruiker
Lid geworden
8 okt 2009
Berichten
23
Ik wil over een bepaalde periode (bv van 1-11-2009 t/m 15-11-2009) verschillende queries uitvoeren.
Om te voorkomen dat ik voor elke query dezelfde begindatum en einddatum moet invoeren dacht dat het handig zou zijn om de begin en einddatum apart in te geven op een formulier als een soort constante.

De query zou dan die constantes elke keer in de verschillende queries moeten gebruiken.

Is dit een handige oplossing? Zo ja hoe realiseer ik een constante en laat die terugkomen in mijn query?
 
Je kunt een simpel formulier maken, waarbij je via een Calender Control bijvoorbeeld een datum selecteert. In de queries die je wilt laten uitvoeren neem je dan een verwijzing op naar de datum uit het formulier.
Eventueel kun je nog een knop maken, die alle queries netjes in de goede volgorde na elkaar uitvoert, uiteraard met de datum die je eerst hebt aangeklikt.
 
Dank je wel, ik ben een stap verder!
Kun je mij ook helpen hoe ik dan een verwijzing kan maken in de query van zo'n calandar control. Ik heb het een naam gegeven "begin datum".
 
Een kalender control lijkt op het eerste gezicht heel simpel te werken, maar er zit vaak een klein addertje onder het gras... Het blijkt namelijk nog niet zo eenvoudig om hem simpel uit te lezen... Je klikt een datum aan, en verwacht dan dat je die datum ook makkelijk kunt gebruiken in andere objecten. Dat werkt dus niet altijd zoals je het zou verwachten.

Daarom voeg ik zelf bij voorkeur nog een extra stapje toe: ik maak op het formulier nog een extra tekstvak, waar ik de geselecteerde datum inzet. In queries en zo verwijs ik dan naar het tekstvak i.p.v. de kalender.
Om dat uit te proberen, heb je dus een tekstvak nodig, laten we 'm voor het gemak txtDatum noemen.

Je kunt niet gelijk de juiste actie aan de kalendercontrol hangen... (Zie plaatje Kalendercontrol). Je wilt namelijk dat de datum van de control in het tekstvak wordt geplaatst als je op een datum klikt. Maar zoals je kunt zien, is er geen gebeurtenis <Bij klikken> te vinden in de lijst met gebeurtenissen. Geeft niks, dat lossen we zo op! Pak een willekeurige gebeurtenis, in klik op de knop met de 3 puntjes...
Je komt nu in het VBA scherm terecht, als het goed is. Kies anders de optie <Gebeurtenis opbouwen>. De cursur staat nu in een codeblok, tussen de regels SUB... en END SUB
Rechtsboven zie je twee keuzelijsten, waarvan de rechterlijst de naam van de huidige functie aangeeft. Als je die lijst opent, zie je boven de optie Click Deze selecteer je.
Je scherm ziet er nu ongeveer uit zoals plaatje 2 (Kalendercontrol VBA).
Je vult de code als volgt in:

Code:
Private Sub ctlKalender_Click()
    Me.txtDatum = Me.ctlKalender
End Sub

Nu kun je de code opslaan, sluiten en uittesten. Als het goed is, verschijnt in je tekstvak een datum als je op een datum klikt.
In de query maak je vervolgens een verwijzing naar het datumveld op het formulier, zoals in de overige plaatjes wordt gevisualiseerd.
 

Bijlagen

  • Kalendercontrol.jpg
    Kalendercontrol.jpg
    21,8 KB · Weergaven: 41
  • Kalendercontrol VBA.jpg
    Kalendercontrol VBA.jpg
    41,4 KB · Weergaven: 33
  • Query Kalendercontrol 2.jpg
    Query Kalendercontrol 2.jpg
    12,1 KB · Weergaven: 28
  • Query Kalendercontrol.jpg
    Query Kalendercontrol.jpg
    50,4 KB · Weergaven: 37
  • Query Kalendercontrol Resultaat.jpg
    Query Kalendercontrol Resultaat.jpg
    50,8 KB · Weergaven: 37
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan