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 :
C'est sur dernière ligne que le debuger s'arrète et marque en jaune. Par avance merci !
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) ...
Partager