Eerst maar eens kijken waarom je de query op mijn formulier niet aan de praat krijgt: Als je de code van het formulier bekijkt, dan zie je helemaal bovenin de variabelen gedeclareerd staan. Hierbij wordt voor de db en rs variabelen een ADO recordset aangemaakt. Soms werkt dat niet, omdat bijvoorbeeld de ADO bibliotheek niet is geladen, of, wat erger is, er is ook een DAO bibliotheek actief, die vóór de ADO bibliotheek wordt ingeladen.
Je kunt dat controleren door in het VBA scherm naar <Extra>, <Verwijzingen> te gaan. Daar zou je op zijn minst een verwijzing moeten zien naar <Active Data Objects Library 2.1>, maar dat mag ook een hoger nummer zijn. Als je ook een verwijzing actief hebt naar <Microsoft DAO 3.6>, en deze staat boven de ADO verwijzing, dan moet je die naar beneden verplaatsen met de pijltjesknoppen rechts. Daarna zou het toch moeten werken.
Alternatief is, om de db variabele en rs variabele op de volgende manier te declareren:
Dim db , qTemp As QueryDef, rs , strSQL As String
Daarmee laat je het Access zelf uitzoeken.
Het kan overigens een simpeler probleem zijn: het checkboxje bij de vraag <Zijn de datums gecontroleerd?> activeert de knop <Query maken> . Dus die moet je op zijn minst een keer aanklikken...
Terug naar je vraag: Ik begrijp hem vrees ik niet helemaal.... Je hebt de tekstvakken voor de query op je formulier, schrijf je. Betekent dat, dat je de query als gegevensbron voor het formulier gebruikt? Anders gezegd: heb je het formulier gebaseerd op de query?
En wil je, als de query is aangepast, de geselecteerde records op het formulier zien?
In dat geval zou je de RecordSource van het formulier opnieuw moeten laten draaien op de achtergrond. Momenteel open je met de knop een query, en die wordt uiteraard in gegevensweergave getoond.
Als de query als bron onder het formulier ligt, en je hebt de datumselectie aan de query toegevoegd, dan zou het commando er zo uit kunnen zien:
Code:
strTabel = Me.RecordSource
strSQL = "Select * From " & strTabel & vbCrLf
strSQL = strSQL & "Where " & strDatumFilter
Me.RecordSource = strSQL
Me.Requery
Hierbij is de waarde in strTabel dan: "VoorraadQueryRoermond"
en de filtering in strDatumFilter de datumselectie die je hebt gemaakt.
in de vierde regel wordt de complete SQL als bron voor het formulier gebruikt,
en de vijfde regel zorgt ervoor dat de records getoond worden.
Kom je er niet uit, geef dan een voorbeeldje mee, dat kijkt toch wat makkelijker...
Michel