Conversion d'une requête SQL en VBA
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... :lol: )
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:
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 !