Als je een criteria op geeft, bijvoorbeeld between x and y, en x en y komen uit een formulier, dan geeft de query geen records weer als die velden op het formulier leeg zijn. Ik bouw een search, en als veld x of y leeg is dan moet dat gewoon een lege criteria zijn. Hoe doe je dit???
Je query dynamisch opbouwen. Controleer eerst of x en y zijn ingevuld. Als dat waar is voeg je het between stukje toe aan je query. De uiteindelijke query laat je dan los op de database.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
In de query staat bij MID (Medewerker id) als criteria [midv]
In vb voer ik deze code uit:
Dim db as database
dim rs as dao.recordset
dim qr as querydef
set qr = db.querydef("medewerkers query")
if forms![Medewerkers].[mid] <> "" then
qr.parameter ("[midv]") = forms![Medewerkers].[mid]
else
qr.parameter ("[midv]") = ??????
end if
rs = qr.openrecordset()
Wat moet er dan bij ???? staan om alle records op te halen.
NULL werkt niet omdat null in vb anders is dan NULL in de JET engine. Nothing werkt ook niet???
In vb voer ik deze code uit:
Dim db as database
dim rs as dao.recordset
dim qr as querydef
set qr = db.querydef("medewerkers query")
if forms![Medewerkers].[mid] <> "" then
qr.parameter ("[midv]") = forms![Medewerkers].[mid]
else
qr.parameter ("[midv]") = ??????
end if
rs = qr.openrecordset()
Wat moet er dan bij ???? staan om alle records op te halen.
NULL werkt niet omdat null in vb anders is dan NULL in de JET engine. Nothing werkt ook niet???
Moet je de parameter dan gewoon NIET meegeven
oogjes open, snaveltjes dicht
Pagina: 1