Ik zit met een probleem waar ik na urenlang zoeken nog niet uit ben gekomen. Ik ben bezig met het opzetten van een database, waarbij een uitgebreid zoekformulier moet komen. Hiervoor heb ik: een invulformulier gemaakt; een query met daarin de selectie moet maken en een opgemaakt rapport voor de zoekresultaten.
De zoekargumenten wil ik door middel van een globale variable overzetten naar de query, naar voorbeeld van dit artikel http://www.blueclaw-db.co...meter_global_variable.htm. Echter wil ik niet alleen een zoekwaarde waarde overbrengen, maar een geheel stuk sql code. Dit stuk code moet achter de bestaande query komen, wat met het onderstaande stuk SQL code is gedaan. Deze opstelling werkt echter niet, de query houdt geen rekening met argumenten die ik via de globale variable meegeef.
SQL van de query:
Het formulier stelt eerst de globale variable in met de slectie die in having moet komen, voor testdoeleinden is nu een standaard regel gebruikt, die ook niet naar behoren werkt.
VBA van het formulier van de verzendknop
Functie voor het aanroepen van de globale variable
Het aanroepen van de globale variabele door de query werkt prima. Het probleem zit hem mijns inziens in het niet correct verwerken/intepreteren van de variabele. Voor de duidelijkheid, ik ben helaas geen goede programmeur vandaar deze vraag
De zoekargumenten wil ik door middel van een globale variable overzetten naar de query, naar voorbeeld van dit artikel http://www.blueclaw-db.co...meter_global_variable.htm. Echter wil ik niet alleen een zoekwaarde waarde overbrengen, maar een geheel stuk sql code. Dit stuk code moet achter de bestaande query komen, wat met het onderstaande stuk SQL code is gedaan. Deze opstelling werkt echter niet, de query houdt geen rekening met argumenten die ik via de globale variable meegeef.
SQL van de query:
code:
1
| SELECT ...... HAVING (Get_Global("CritereaWon")); |
Het formulier stelt eerst de globale variable in met de slectie die in having moet komen, voor testdoeleinden is nu een standaard regel gebruikt, die ook niet naar behoren werkt.
VBA van het formulier van de verzendknop
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Private Sub Knop0_Click()
On Error GoTo Err_Knop0_Click
Dim stDocName As String
'Bij ZoekCritereaWon moet later dus hele uitgebreide selectie komen, waarbij onder andere = vervangen kan worden door ">" "<" via het formulier'
ZoekCritereaWon = "((Projecten.Projectnummer)=21)) AND ((Projecten.Plaats) Like ""*"")"
stDocName = "Woningenselectie"
DoCmd.OpenReport stDocName, acPreview
Exit_Knop0_Click:
Exit Sub
Err_Knop0_Click:
MsgBox Err.Description
Resume Exit_Knop0_Click
End Sub |
Functie voor het aanroepen van de globale variable
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| Option Compare Database
Global ZoekCritereaWon As String
Public Function Init_Globals()
ZoekCritereaWon = "((Projecten.Projectnummer)> 0))"
End Function
Public Function Get_Global(gbl_parm)
Select Case gbl_parm
Case "CritereaWon"
Get_Global = ZoekCritereaWon
End Select
End Function |
Het aanroepen van de globale variabele door de query werkt prima. Het probleem zit hem mijns inziens in het niet correct verwerken/intepreteren van de variabele. Voor de duidelijkheid, ik ben helaas geen goede programmeur vandaar deze vraag