Bonjour à toutes et à tous,

Je souhaiterais ecrire une requète en vba inspirée d'une requête SQL (normal jusque là me direz vous... )
Par contre le code vba que j'ai écris bug car il ne prend pas la clause "where".
Pourriez vous m'aider à corriger la syntax de ce code SVP ?

Voici la requête SQL :

'SELECT DISTINCT Tbleagent.Idagent, Tbleagent.Nom, Tbleagent.Prénom FROM ((Tbleagent
INNER JOIN Tblemétier ON Tbleagent.Idagent = Tblemétier.Idagent) INNER JOIN Tblemission ON Tbleagent.Idagent = Tblemission.Idagent)
INNER JOIN Tbletechnique
ON Tbleagent.Idagent = Tbletechnique.Idagent
WHERE ((Tbletechnique.[intituléA1])>=[Val1])
OR (Tbletechnique.[intituléA2]>=[Val1])
OR (Tbletechnique.[intituléA3])>=[Val1]))
AND ((Tblemétier.[intituléB1])>=[Val2])
OR (Tblemétier.[intituléB2])>=[Val2])
OR (Tblemétier.[intituléB3])>=[Val2]);

Voici sa grande soeur en VBA :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Condition = ""
Requête = "SELECT DISTINCT Tbleagent.Idagent,
Tbleagent.nom, Tbleagent.Prénom" & _
" FROM Tbleagent" & _
" INNER JOIN Tbletechnique ON Tbleagent.Idagent =
Tbletechnique.Idagent" & _
" INNER JOIN Tblemission ON Tbleagent.Idagent =
Tblemission.Idagent" & _
" INNER JOIN Tblemétier ON Tbleagent.Idagent =
Tblemétier.Idagent"
 
If (Valeur1 > 0) And (Condition <> "") Then
Condition = Condition & " AND " & "(" & "(" & "Tbletechnique.[intituléA1] >= " & Valeur1 & ")" & _
" OR " & "(" & "Tbletechnique.[intituléA2] >= " & Valeur1 & ")" & _
" OR " & "(" & " bletechnique.[intituléA3] >= " & Valeur1 & ")" & _
" OR " & "(" & "Tbletechnique.[intituléA4]>= " & Valeur1 & ")" & ")"
Else
If (Valeur1 > 0) Then
Condition = "(" & "Tbletechnique.[intituléA1] >= " & Valeur1 & ")" & _
" Or " & "(" & "Tbletechnique.[intituléA25] >= " & Valeur1 & ")" & _
" Or " & "(" & "Tbletechnique.[intituléA3] >= " & Valeur1 & ")" & _
" Or " & "(" & "Tbletechnique.[intituléA4] >= " & Valeur1 & ")"
End If
End If
 
If (Valeur2 > 0) And (Condition <> "") Then
Condition = Condition & " AND " & "(" & "(" & "Tbletechnique.[Utiliser XML] >= " & Valeur2 & ")" & _
" OR " & "(" & "Tbletechnique.[intituléB1] >= " & Valeur2 & ")" & _
" OR " & "(" & "Tbletechnique.[intituléB2] >= " & Valeur2 & ")" & _
" OR " & "(" & "Tbletechnique.[intituléB3] >= " & Valeur2 & ")" & _
" OR " & "(" & "Tbletechnique.[intituléB4] >= " & Valeur2 & ")" & ")"
Else
If (Valeur2 > 0) Then
Condition = "(" & "Tbletechnique.[intituléB1] >= " & Valeur2 & ")" & _
" OR " & "(" & "Tbletechnique.[intituléB2] >= " & Valeur2 & ")" & _
" OR " & "(" & "Tbletechnique.[intituléB3] >= " & Valeur2 & ")" & _
" OR " & "(" & "Tbletechnique.[intituléB4] >= " & Valeur2 & ")"
End If
End If
 
Requête = Requête & " WHERE " & Condition & ";"
 
Set Db = CurrentDb
Set rst = Db.OpenRecordset(Requête)
...
C'est sur dernière ligne que le debuger s'arrète et marque en jaune. Par avance merci !