Bonjour,
Bonjour,
J’aimerai savoir s’il est possible d’imbriquer des requêtes SQl en VBA.
Mon souci et de réduire le nombre de requêtes SQL de l’application. Actuellement j’en ai une cinquantaine et ce n’est pas fini. Je trouve que cela fait beaucoup.
J’ai lu ce lien et je ne comprends pas comment l’appliquer.
Ci-dessous les requête en question :
1)Requête SQL : rqyMois
2)Requête SQL: rqyQtéProdMois
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 PARAMETERS [Forms]![frmStatsmois]![MoisD] Value, [Forms]![frmStatsmois]![AnneeD] Value, [Forms]![frmStatsmois]![MoisF] Value, [Forms]![frmStatsmois]![AnneeF] Value; SELECT tblAnnee.An, tblMois.Mois, Format([Mois] & "/" & [An],"yyyy/mm") AS M FROM tblMois, tblAnnee WHERE (((Format([Mois] & "/" & [An],"yyyy/mm")) Between Format([Forms]![frmStatsmois]![MoisD] & "/" & [Forms]![frmStatsmois]![AnneeD],"yyyy/mm") And Format([Forms]![frmStatsmois]![MoisF] & "/" & [Forms]![frmStatsmois]![AnneeF],"yyyy/mm"))) ORDER BY tblAnnee.An, tblMois.Mois;
3)Requête SQL: rqyQtéProdGraphMois
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 PARAMETERS [Formulaires]![frmStatsmois]![idCompteProd] Short; SELECT Format([tblProduction]![DateProduction],"yyyy/mm") AS M, tblMachine.NomMachine, Sum(tblProductionQte.Qté) AS Qté FROM ((tblMachine INNER JOIN tblProduction ON tblMachine.Idmachine = tblProduction.idMachine) INNER JOIN (tblCompteProduction INNER JOIN tblProduit ON tblCompteProduction.IdCompteProd = tblProduit.idCompteProd) ON tblMachine.Idmachine = tblProduit.Idmachine) INNER JOIN tblProductionQte ON (tblProduit.IdProduit = tblProductionQte.Idproduit) AND (tblProduction.Idproduction = tblProductionQte.Idproduction) WHERE (((tblCompteProduction.IdCompteProd)=[Formulaires]![frmStatsmois]![idCompteProd])) GROUP BY Format([tblProduction]![DateProduction],"yyyy/mm"), tblMachine.NomMachine ORDER BY Format([tblProduction]![DateProduction],"yyyy/mm"), tblMachine.NomMachine;
4)Requête VBA
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT rqyMois.M AS Mois, rqyQtéProdMois.NomMachine, rqyQtéProdMois.Qté AS Qté FROM rqyMois LEFT JOIN rqyQtéProdMois ON rqyMois.M = rqyQtéProdMois.M;
Merci d'avance de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 sql = "TRANSFORM NZ(Sum(rqyQtéProdGraphMois.Qté),0) AS SommeDeQté SELECT rqyQtéProdGraphMois.Mois," sql = sql & " Sum(rqyQtéProdGraphMois.[Qté]) AS [Total A + AL], Sum(IIf([NomMachine]<> '" & "Hercule" & "',[Qté])) AS [Total A]" sql = sql & " FROM rqyQtéProdGraphMois GROUP BY rqyQtéProdGraphMois.Mois PIVOT rqyQtéProdGraphMois.NomMachine;"
Christian
Partager