1 Datum voor meerdere queries

Status
Niet open voor verdere reacties.

FrankyB

Nieuwe gebruiker
Lid geworden
19 nov 2008
Berichten
3
Hey,
Ik ben op zoekhoe je volgende kunt oplossen.
Stel, ik heb een database met een tabel in waar gegevens instaan (natuurlijk :-) )
9 Queries kijken naar die tabel met elk hun eigen opdracht.
Er is 1 gezamelijk parameterveld en dat is de datum.
Volgende is de parameter opdracht: Between [Geef start datum] And [Geef eind datum]
Alle 9 Queries hebben deze vraag.
De 9 queries worden gestart via een macro.
Het probleem is nu dat de gebruiker dus 9 maal de start en einddatum moet ingeven.

Bestaat er een mogelijkheid om dit te omzeilen?
Zodoende, de gebruiker start de macro, krijgt de vraag om een start en eind datum in te geven en de 9 queries worden uitgevoerd.

Hopelijk is daar een antwoord op.

Vriendelijke groeten,
 
Je zou de macro kunnen starten vanuit een formulier waarin je de begin- en einddatum meegeeft. In de query's verwijs je in de criteria naar de veldnamen in het formulier.

Voorbeeld:
Forms!Formuliernaam!Veldnaam
 
Er zal wel een goede reden zijn waarom je e.e.a. met macro's start, maar ik zou zelf daar een formuliertje voor bouwen, met daarop twee tekstvakken voor de datuminvoer.
Ik doe dit soort zaken regelmatig, en gebruik dan de volgende uitgangspunten:

1. Alle queries werken zonder (datum)selectie parameters
2. Op het formulier staan 2 datumvelden. Al dan niet m.b.v. een kalendertje
3. Je maakt dan een knop op het formulier die de queries uitvoert.

De knop maakt eerst een selectiestring aan, waarbij de datums zijn omgezet naar getallen. Dat gaat via een conversieslag met CDate en CDbl. Zo'n string ziet er dan als volgt uit:

sDatumSel = "(DATUM BETWEEN Cdate(" & dBegin & ") And CDate(" & dEind & "))"

Hierin wordt m.b.v. CDate het getal weer terugvertaald naar een datum. Dit om maand- en dagomwisseling te voorkomen. (6-5 = 6 mei, of 5 juni?)

Voor je 9 queries maak je elk een eigen SQL string, die er ongeveer zo uitziet:

strSQL = "SELECT * FROM Query1 WHERE " & sDatumSel

De 9 queries kun je dan achter elkaar laten uitvoeren met

DoCmd.RunSQL strSQL

Kun je hier wat mee?

Michel
 
Ik vermoed als het antwoord Ja is, dat dan deze vraag niet gesteld was.

Denk je dat ik onzin zit uit te kramen???
 
Denk je dat ik onzin zit uit te kramen???

Nee natuurlijk niet.

Als de poster jouw oplossing begrijpt, is zijn kennis toereikend om deze oplossing zelf te verzinnen. Hij zou dan uit zichzelf niet voor een oplossing kiezen met een macro, dat bedoel ik.
 
Toevoeging:

Ik denk dus dat hij nog een paar zetjes meer nodig heeft. Maar misschien zit ik er wel volledig naast. We zien wel. Sorry dit was Off topic denk ik.
 
OK, duidelijk! :)
 
Hey, het is opgelost via een formuliertje.
T'is nog niet wat ik wil maar we kunnen voorlopig verder.
Door het formulier moet er wel iemand zelf die starten. Het is de bedoeling dat die marco gestart zal worden via een extern programma.

Toch alvast bedankt voor de reacties.
 
Wat bedoel je precies met starten via een extern programma? Ik neem aan, dat je de datums toch ingetypt wilt hebben? Waar haal je ze anders vandaan?
Je kunt overigens de macro opslaan met de naam AutoExec, dan start hij automatisch bij het openen van de database.

Zelf heb ik ook een aantal databases die extern worden opgestart, en waarbij gegevens automatisch worden doorgegeven via een batchprogramma. Ik gebruik daarvoor WinBatch, wat wel lastig aan te leren is, want het gebruikt een geheel eigen programmeertaal, maar waarbij je, als je alles goed instelt, dus helemaal niks meer zelf hoeft in te geven. Is dat de richting die je op wilt?

Michel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan