[VBA] Récupérer le résultat d'une requête SQL
eXqO
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
eXqO Messages postés 49 Date d'inscription Statut Membre Dernière intervention -
eXqO Messages postés 49 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Tout d'abord je tiens à préciser que je suis novice en VBA ! ;)
Voici mon problème, je suis en possession d'une requête SQL qui me fournie un certain nombre de statistique que j'aimerai incorporer dans un tableau Excel à l'aide d'une macro (je précise que ça se fera de façon régulière, toute les semaine)
J'ai beau chercher sur internet avec mon ami Google...j'ai pas trouvé grand chose pour m'aider à part l'objet QueryDef dont l'utilisation n'a pas été comprise...:s
Merci d'avance !
Tout d'abord je tiens à préciser que je suis novice en VBA ! ;)
Voici mon problème, je suis en possession d'une requête SQL qui me fournie un certain nombre de statistique que j'aimerai incorporer dans un tableau Excel à l'aide d'une macro (je précise que ça se fera de façon régulière, toute les semaine)
J'ai beau chercher sur internet avec mon ami Google...j'ai pas trouvé grand chose pour m'aider à part l'objet QueryDef dont l'utilisation n'a pas été comprise...:s
Merci d'avance !
A voir également:
- [VBA] Récupérer le résultat d'une requête SQL
- Recuperer message whatsapp supprimé - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Comment recuperer une video sur youtube - Guide
- Recuperer le son d'une video - Guide
- Récupérer mon compte facebook désactivé - Guide
4 réponses
Re,
il te faut trouver comment te connecter à ta database; je n'ai pas trouver le script pour PL:SQL mais peut-être que ceux d'oracle conviennent. regarde ce site
https://www.connectionstrings.com/
Je te mets ci dessous un extrait d' exemple très basique " pour le principe" de requête avec ADO dans une base de données nommée "plage"(excel en l'occurence)
le résultat s"inscrit à partir de la cellule A2 dans excel
la partie connexion est en italique à remplacer par ton script de connexion à PL/
il te faut trouver comment te connecter à ta database; je n'ai pas trouver le script pour PL:SQL mais peut-être que ceux d'oracle conviennent. regarde ce site
https://www.connectionstrings.com/
Je te mets ci dessous un extrait d' exemple très basique " pour le principe" de requête avec ADO dans une base de données nommée "plage"(excel en l'occurence)
le résultat s"inscrit à partir de la cellule A2 dans excel
la partie connexion est en italique à remplacer par ton script de connexion à PL/
Dim source As Object Dim requete As Object Dim texte_SQL As String test = plage 'connexion ADO au fichier Set source = CreateObject("ADODB.Connection") source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & chemin & fich & ";Extended Properties=""Excel 8.0;HDR=no;"";" 'exerce la requete ADO sur la donnée à recopier texte_SQL = "SELECT * FROM [" & plage & "] " Set requete = CreateObject("ADODB.Recordset") Set requete = source.Execute(texte_SQL) 'recopie les données du fichier Cells(2, 1).CopyFromRecordset requete 'f'erme la connexion ADO Set requete = Nothing Set source = Nothing
Bonjour,
OK, mais quelle est cette requ^te SQL, à quelle base de données te connectes tu etc. etc. etc.
merci d'être plus précis...
OK, mais quelle est cette requ^te SQL, à quelle base de données te connectes tu etc. etc. etc.
merci d'être plus précis...
Voilà la requête SQL que j'ai :
select m.mp_l, count(*), sum(c.cde_tot_ttc)
from e_cde c, e_mode_paiement m
where c.cde_ty_se_c = 'WV2'
and c.cde_mp_c in ('KM','KI','KW','KT', 'KA','KC', 'CA')
and c.cde_mp_c = m.mp_c
--and c.cde_d between to_date('&date', 'dd/mm/yyyy hh24:mi:ss') -6
--and to_date('&date', 'dd/mm/yyyy hh24:mi:ss')
and c.cde_d between to_date('01/06/2009 00:00:01', 'dd/mm/yyyy hh24:mi:ss')
and to_date('07/06/2009 23:59:59', 'dd/mm/yyyy hh24:mi:ss')
group by m.mp_l
order by 1
Je me connecte à PL/SQL Developer. La date sera a automatiser aussi.
Mais mon problème principal reste d'interroger cette requête via Excel.
Cordialement,
Clément.
select m.mp_l, count(*), sum(c.cde_tot_ttc)
from e_cde c, e_mode_paiement m
where c.cde_ty_se_c = 'WV2'
and c.cde_mp_c in ('KM','KI','KW','KT', 'KA','KC', 'CA')
and c.cde_mp_c = m.mp_c
--and c.cde_d between to_date('&date', 'dd/mm/yyyy hh24:mi:ss') -6
--and to_date('&date', 'dd/mm/yyyy hh24:mi:ss')
and c.cde_d between to_date('01/06/2009 00:00:01', 'dd/mm/yyyy hh24:mi:ss')
and to_date('07/06/2009 23:59:59', 'dd/mm/yyyy hh24:mi:ss')
group by m.mp_l
order by 1
Je me connecte à PL/SQL Developer. La date sera a automatiser aussi.
Mais mon problème principal reste d'interroger cette requête via Excel.
Cordialement,
Clément.