Requete de requete

Bizoun0urs Messages postés 5 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 4 juillet 2006 - 12 avril 2006 à 22:21
Bizoun0urs Messages postés 5 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 4 juillet 2006 - 13 avril 2006 à 20:14
Bonjour à tous, alors je vous explique mon problème :
J'ai une requete parametré en VBA que je crée avec un recordset classik koi sa sa marche mais komen faire pour faire une sous requete utilisan les champs et donnée présent dans le recordset (juste apres lexecution de la premiere) ou alors simplement mettre les donnée du recordset de la premiere requete dans une table temporaire et partir de la table temporaire pour la seconde requete ???

3 réponses

cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007
13 avril 2006 à 09:04
Bonjour,
perso j'ai fait com tu as dit, une table "temporaire" et une deuxième requete!
Surtout si tu travailles avec Access.
un create table, un execute de ta requete 1 , un affichage dans un état ou autre, puis un drop de ta table temporaire ...
Jordinette
0
Tuning Max Messages postés 314 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 31 août 2006 1
13 avril 2006 à 10:59
C'est le principe des requêtes imbriqués. Un petit exemple valant mieux qu'un long discourt voilà.


Je commence par faire une requête SQL de sélection puis j'ouvre mon recordset avec la première requête SQL comme composant. Sinon je ne vois que la création d'une querydef, mais je ne trouve pas ça top car en général tu dois la créer puis la supprimer à la fin de ton opération, pour être sûr qu'on ne te la modifie pas. C'est le même principe que la table temporaire.



Dim sql As String, rcd As Recordset, Var As String


Var = "HDS UNIVERSITE"
sql = " SELECT [tblClientèle]![RefClient], [tblClientèle]![Nom], [tblClientèle]![Prénom], [tblServices]![LibelleCour] " & _
" FROM tblServices INNER JOIN tblClientèle ON [tblServices]![RefService] = [tblClientèle]![RefService] " & _
" WHERE ((([tblServices]![LibelleCour])=" & Var & "));"
Set rcd = CurrentDb.OpenRecordset("Select " & sql & ".Nom, " & sql & ".Prénom, " & sql & ".LibelleCour, tblMobilier.CodeBarre " & _
" From " & sql & " INNER JOIN tblMobilier On " & sql & ".RefClient = tblMobilier.RefClient;")
rcd.MoveLast
MsgBox " Il y a " & rcd.RecordCount & " Enregistrements qui satisfont à votre requête!"
rcd.Close
0
Bizoun0urs Messages postés 5 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 4 juillet 2006
13 avril 2006 à 20:14
Ouai jordinette je pense que ta solution est plus légère que celle de tuning max (enfin je pense pas sur) mais j'aimerais savoir comment on fait des create table ou autre insert into en code VBA paske avec les recordset les deux ne marche pas sa met un msgbox a lexecution disan ke je vai créer un truc contenan des données mais rien de plus et sa me cré pas la table et sa sort de la procedure.... Tu les fait commen tes create table en vba ( un ptit bout de code dexemple serait le bienvenue !) lol en tout cas merci bcp deja sa me sort un peu du patogeage !
0
Rejoignez-nous