Comment utiliser une clause IF dans une clause WHERE
Bonjour à tous,
Je fais appel aux bonnes âmes et les en remercie d'avance ! :D
Le contexte :
J'ai encapsulé du code SQL dans un formulaire VBA (sous Excel).
L'utilisateur du formulaire peut renseigner dans excel des variables, comme suit, avant exécution du formulaire :
- une période (variables DD = date de début et DF = date de fin déclarées en tant que string) => ces 2 variables seront forcément renseignées
- un n° de matricule (variable numérique déclarée en tant que Double)=> cette variable sera éventuellement renseignée.
Mon problème :
Je n'ai pas de résultat (sans bug) avec le code ci-dessous si la variable MATRIC n'est pas renseignée (mais OK si les 2 variables sont renseignées => données extraites pour la période et N° de matricule saisi)
Code:
1 2 3 4 5 6
|
(...)
requete = requete & " where date(vrhoromain) between " & DD & " and " & DF & " and r1matricul = " & MATRIC & " "
(...) |
J'ai tenté un CASE dans la clause WHERE mais ne marche pas...
Code:
1 2 3 4 5 6 7 8 9
|
(...)
requete = requete & " where Case when " & MATRIC & " = 0 then date(vrhoromain) between " & DD & " and " & DF & " "
requete = requete & " Else date(vrhoromain) between " & DD & " and " & DF & " and r1matricul = " & MATRIC & " end "
(...) |
Si quelqu'un d'entre vous a une idée, je suis grandement preneur.
Merci