Salut à tous,
La requête suivante fonctionne parfaitement en mode SQL
(il y 2 paramètres définis)
Le message d'erreur apparait lorsque je veux appeler la requête dans du code VBA pour obtenir un recordset.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 PARAMETERS Forms![STATS PS BILANS]![D1] DateTime, Forms![STATS PS BILANS]![D2] DateTime; SELECT Articles.Libelle, LignesOrdonnances.Quantite, Troupeaux.CodeTroupeau FROM Troupeaux INNER JOIN (Ordonnances INNER JOIN ((SousFamilles RIGHT JOIN (Familles RIGHT JOIN (Articles RIGHT JOIN LignesOrdonnances ON Articles.CodeArticle = LignesOrdonnances.CodeArticle) ON Familles.CodeFamille = Articles.CodeFamille) ON SousFamilles.CodeSousFamille = Articles.CodeSousFamille) LEFT JOIN Categories ON Articles.CodeCategorie = Categories.Cle) ON Ordonnances.CodeOrdonnance = LignesOrdonnances.CodeOrdonnance) ON Troupeaux.CodeTroupeau = Ordonnances.CodeTroupeau WHERE (((Troupeaux.CodeTroupeau)=[codeT]) AND ((Categories.LibelleCategorie)='Curatif' Or (Categories.LibelleCategorie)='Préventif' Or (Categories.LibelleCategorie)='Matériel' Or (Categories.LibelleCategorie)='Hygiène') AND ((Ordonnances.DateOrdonnance) Between [Forms]![STATS PS BILANS]![D1] And [Forms]![STATS PS BILANS]![D2]) AND (([Familles]![LibelleFamille]+'\'+[SousFamilles]![Libelle]) Like 'Vaccin*'));
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Dim res As DAO.Recordset Dim strSQL As String strSQL = "PARAMETERS Forms![STATS PS BILANS]![D1] DateTime, Forms![STATS PS BILANS]![D2] DateTime;" _ & "SELECT Articles.Libelle, LignesOrdonnances.Quantite, Troupeaux.CodeTroupeau FROM Troupeaux INNER JOIN (Ordonnances INNER JOIN ((SousFamilles RIGHT JOIN (Familles RIGHT JOIN (Articles RIGHT JOIN LignesOrdonnances ON Articles.CodeArticle = LignesOrdonnances.CodeArticle) ON Familles.CodeFamille = Articles.CodeFamille) ON SousFamilles.CodeSousFamille = Articles.CodeSousFamille) LEFT JOIN Categories ON Articles.CodeCategorie = Categories.Cle) ON Ordonnances.CodeOrdonnance = LignesOrdonnances.CodeOrdonnance) ON Troupeaux.CodeTroupeau = Ordonnances.CodeTroupeau " _ & "WHERE (((Troupeaux.CodeTroupeau)= '" & CodeT & "') AND ((Categories.LibelleCategorie)='Curatif' Or (Categories.LibelleCategorie)='Préventif' Or (Categories.LibelleCategorie)='Matériel' Or (Categories.LibelleCategorie)='Hygiène') AND ((Ordonnances.DateOrdonnance) Between [Forms]![STATS PS BILANS]![D1] And [Forms]![STATS PS BILANS]![D2]) AND (([Familles]![LibelleFamille]+'\'+[SousFamilles]![Libelle]) Like 'Vaccin*'));" ' affichage du SQL MsgBox strSQL ' création du recordset Set res = CurrentDb.OpenRecordset(strSQL)
Le message dit Trop peu de paramètres attendu..
Comment ce fait il que 2 paramètres suffisent dans l'éditeur de requête
et qu'ici, il faille plus de paramètres ?
J'ai essayé d'en rajouter à la fin de la logne Parameters (par exemple "CodeT Text")
mais rien n'y fait.
Une petite piste....
D'avance merci...
Cordialement,
fevec
Partager