Bonjour à tous,

Je fais appel aux bonnes âmes et les en remercie d'avance !

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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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