Voor een klein systeempje wat ik maak met access moet ik een query opstellen waarbij hij op 2 optionele parameters moet zoeken, alleen werkt de query niet echt lekker.

Ik heb de volgende query (die access zelf in elkaar knutselt)


PARAMETERS sleutelnummer Short,
omschrijving Text ( 255 );

SELECT Sleutels.nummer, Sleutels.Omschrijving, Kasten.Kastnaam
FROM Kasten INNER JOIN Sleutels ON Kasten.kast_id = Sleutels.kast_id
WHERE (((Sleutels.nummer)=[sleutelnummer])) OR (((Sleutels.Omschrijving) Like '*[omschrijving]*'));


Zoals ik de query lees:

Selecteer sleutelnummer, omschrijving, kastnaam van sleutels en kasten (join) waar sleutelnummer gelijk is aan [sleutelnummer] of omschrijving bevat [omschrijving].

de [] zijn dus de parameters. Gek genoeg krijg ik de verkeerde resultaten terug.

Als ik de 2 * weg haal doet hij het wel maar ik wil dus door de gehele omschrijving zoeken en niet de gehele omschrijving.


Edit:

Probleem is opgelost. Ik moest dus de variabelen [omschrijving] even escapen naar: LIKE '*' & [omschrijving] & '*'; De VB manier zeg maar.

Reageren