Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2011, 11h28   #1
Membre habitué
 
Homme Christian Roignot
Logisticien
Inscription : janvier 2009
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Christian Roignot
Âge : 59
Localisation : France

Informations professionnelles :
Activité : Logisticien
Secteur : Industrie

Informations forums :
Inscription : janvier 2009
Messages : 308
Points : 112
Points : 112
Par défaut Comment imbriquer des requêtes SQL en VBA

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
Code :
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;
2)Requête SQL: rqyQtéProdMois
Code :
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;
3)Requête SQL: rqyQtéProdGraphMois
Code :
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;
4)Requête VBA
Code :
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;"
Merci d'avance de votre aide

Christian
rch05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 12h40   #2
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Bonjour Christian,

Comme cela a déjà été dit sur le forum, les requêtes enregistrées ont plusieurs avantages :

Niveau lisibilité du code elles permettent de nettement simplifier le code final, et donc de faciliter sa réalisation, sa relecture et sa modification ...

Autre avantage, normalement une requête enregistrée une fois le projet compilé est plus rapide qu'une requête qui ne l'est pas :
http://access.developpez.com/faq/?page=SQL#PerfReq

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 13h34   #3
Membre habitué
 
Homme Christian Roignot
Logisticien
Inscription : janvier 2009
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Christian Roignot
Âge : 59
Localisation : France

Informations professionnelles :
Activité : Logisticien
Secteur : Industrie

Informations forums :
Inscription : janvier 2009
Messages : 308
Points : 112
Points : 112
Bonjour Denis,

Merci pour l'info.
C'est vrais qu'une requête enregistrer est plus lisible, mais je pensais pas qu'elle était plus rapide après compilation. J'ai mal lu les Tutos.......

Je viens de terminer tous les graphiques que l'on m'a demandé (168 différents graphiques). J'ai utilisé une trentaine de requête et 6 types de formulaire et un seul état.

Voilà, grâce à ton aide j'ai pu m'en sortir. Si tu désires voir l'application, n'hésites pas.

Milles fois merci.

@ bientôt

Christian
rch05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 16h28   #4
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
bonjour Christian, User,

comme tu utilises Access2007, tu peux aussi organiser tes objets (tables, requêtes, formulaires, états,...) dans le volet de navigation en créant des catégories personnalisées.

voir Afficher et gérer des objets à l'aide du volet de navigation
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 21h18   #5
Membre habitué
 
Homme Christian Roignot
Logisticien
Inscription : janvier 2009
Messages : 308
Détails du profil
Informations personnelles :
Nom : Homme Christian Roignot
Âge : 59
Localisation : France

Informations professionnelles :
Activité : Logisticien
Secteur : Industrie

Informations forums :
Inscription : janvier 2009
Messages : 308
Points : 112
Points : 112
Bonsoir F-leb,

Content de te lire....
C'est vrais avec Access 2007.
Mais l'application doit fonctionner sous Access 2007 et 2003, avec la même base dorsale et 2 bases frontales (2007 et 2003).

Grâce à vous et au site, j'ai beaucoup avancé.
Il y a 8 mois, j'étais dans les choux..........

A bientôt

Christian
rch05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h21.


 
 
 
 
Partenaires

Hébergement Web