[VBA] Récupérer le résultat d'une requête SQL

Fermé
eXqO Messages postés 49 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 26 septembre 2009 - 15 juin 2009 à 17:00
eXqO Messages postés 49 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 26 septembre 2009 - 16 juin 2009 à 11:57
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 !

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 312
15 juin 2009 à 18:22
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/

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


1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 312
15 juin 2009 à 17:12
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...
0
eXqO Messages postés 49 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 26 septembre 2009 2
15 juin 2009 à 17:22
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.
0
eXqO Messages postés 49 Date d'inscription vendredi 25 avril 2008 Statut Membre Dernière intervention 26 septembre 2009 2
16 juin 2009 à 11:57
Merci beaucoup, ça me permet d'y voir un peu plus clair !
0

Discussions similaires