Exporter résultats de requettes SQL Server vers Excel

mimy

XLDnaute Occasionnel
Bonjour à tous,

J'ai sur SQL Server une liste de requettes à executer.
Je voudrais exporter automatiquement vers excel, via une macro VBA, les résultats de ces requettes SQL afin d'éviter de faire plusieurs copier/coller.
J'ai beau lire plusieurs tuto mais j'ai du mal à y arriver...

Merci pour votre aide!!!!!!:)
 

chris

XLDnaute Barbatruc
Re : Exporter résultats de requettes SQL Server vers Excel

Bonjour

Soit tu invoques les requêtes (view) depuis Excel : données, autres sources, SQL server
soit tu exportes depuis SQL SERVER Ce lien n'existe plus
 

chris

XLDnaute Barbatruc
Re : Exporter résultats de requettes SQL Server vers Excel

Bonjour
Salut Tatiak :)

S'il faut créer la requête, ta solution est applicable à SQL server mais si les vues existent déjà dans la base (j'ai ainsi compris "J'ai sur SQL Server une liste de requettes à executer") on peut directement accéder aux données par l'une des 2 méthodes que j'ai évoquées.

Ainsi mimy aura le choix entre 3 solutions.
 

mimy

XLDnaute Occasionnel
Re : Exporter résultats de requettes SQL Server vers Excel

Hello tout le monde,

Merci pour vos réponses mais à vrai dire c'est encore un peu flou pour moi...
Est ce que vous pouvez me donner un exemple afin que je puisse comprendre?

Merci encore!
 

chris

XLDnaute Barbatruc
Re : Exporter résultats de requettes SQL Server vers Excel

Bonjour

C'est ta question qui est floue : on ne sait pas concrètement d'où tu pars et où tu veux arriver.

Il faudrait décrire de façon détaillée sinon nos réponses ont plus de chances d'être à l'ouest que pile sur l'objectif...
 

mimy

XLDnaute Occasionnel
Re : Exporter résultats de requettes SQL Server vers Excel

Merci...
Par exemple, dans ma base de données SQL j ai:

Requete 1:
SELECT *
FROM MaTable1
WHERE COULEUR<>'Rouge'

Requete 2:
SELECT *
FROM MaTable2
WHERE VOITURE='Fiat'

Et bien je voudrais essayer d avoir une marco qui execute ses requetes sur SQL Server et qui me copie/colle sur Excel tous les enregistements de ces 2 requetes.

Merci pour votre aide!
 

chris

XLDnaute Barbatruc
Re : Exporter résultats de requettes SQL Server vers Excel

Re

Donc dans ta base tes requêtes se nomment des vues. Tu dois avoir un connecteur ODBC vers ta base : en général on te prédéfinit une connexion vers la base

Tu utilises la 1ère méthode que j'ai donnée : données, autres sources, SQL server : tu sélectionnes la connexion, qui en principe te demande Username et password, puis t'affiche les tables et vues auxquelles tu est autorisée à accéder. Tu sélectionnes la vue (requête 1) et les données vont s'importer (avec liaison) dans ton classeur.

Tu refais pour la requête 2...
 

mimy

XLDnaute Occasionnel
Re : Exporter résultats de requettes SQL Server vers Excel

Re tatiak,

J'ai essayé de lancer la macro mais ça n'a pas l'air de se connecter à ma base. La connexion CNX.ConnectionString ne se fait pas...
Dans la popup, le message d'erreur est "invalid authorization specification"
Help :(
 
Dernière édition:

Excel_addict89

XLDnaute Nouveau
Bonjour à tous,

J'ai sur SQL Server une liste de requettes à executer.
Je voudrais exporter automatiquement vers excel, via une macro VBA, les résultats de ces requettes SQL afin d'éviter de faire plusieurs copier/coller.
J'ai beau lire plusieurs tuto mais j'ai du mal à y arriver...

Merci pour votre aide!!!!!!:)
Bonjour,

personnellement j'ai fait installer le complément Asyst Extract au boulot (http://asyst.fr/index.php/add-in-office/11-excel-extract-multi-user-base) Comme cela toutes mes requettes que je fais pour mes collègues sont accessibles directement depuis Excel. Je peux attribuer des droits et personnaliser les requettes pour chaque utilisateur. L'installation est super simple.
 

dysorthographie

XLDnaute Accro
bonjour,
pour te donner une petite idée!
VB:
Sub test()
Dim Rs As Object
With CreateObject("AdoDb.Connection")
    .Open "Provider=SQLNCLI;Server=" & Server & ";Database=" & Base & ";UID=" & User & ";PWD=" & PassWord & ";"
    Set Rs = .Execute("Vue")
    For i = 0 To Rs.filds.Count - 1
        Sheets("Feuil1").Range("A1").Offset(0, i) = Rs(i).Name
    Next
     Sheets("Feuil1").Range("A2").CopyFromRecordset = Rs
    .Close
End With
End Sub
 

Discussions similaires

Réponses
6
Affichages
336

Statistiques des forums

Discussions
312 319
Messages
2 087 213
Membres
103 494
dernier inscrit
JP9231