Toon posts:

vb Null waardes en geparameteriseerde query's

Pagina: 1
Acties:

Verwijderd

Topicstarter
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???

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 16:30

Janoz

Moderator Devschuur®

!litemod

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'


Verwijderd

Topicstarter
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??? :'(

Verwijderd

Topicstarter
Op deze manier kan ik dus niet zeggen dat hij die clausule uit de sql moet laten.

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 15:54

mulder

ik spuug op het trottoir

Moet je de parameter dan gewoon NIET meegeven :?

oogjes open, snaveltjes dicht


Verwijderd

Topicstarter
Nee, want dan volgt de error

Not enough parameters, 3 expected!

Verwijderd

Topicstarter
Is er niet een methode die de criteria helemaal leeg maakt

Verwijderd

Topicstarter
Ik weet het al,
criteria 1 = [midv]
criteria 2 = like [midv] is null


thnx anyway
Pagina: 1