Bonjour à tous!
Voici mon problème: Sous Excel 2010, en VBA mon but est de pouvoir récupérer des données sur un serveur Microsoft SQL Server grâce à des requêtes SQL.
Grâce à la doc Microsoft qui est très bien écrite pour certains points, j'ai pu réaliser une requête SQL assez rapidement grâce au code suivant:
Globalement, le code ci-dessus permet d'ouvrir une connexion sur le serveur, de récupérer les données grâce à la requête SQL et de les recopier dans une feuille excel (c'est un copié collé de la doc Windows).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 '---------------------------------' '---CREATION DE LA CONNEXION---' '---------------------------------' ' Create a connection object. Dim cnPubs As ADODB.Connection Set cnPubs = New ADODB.Connection ' Provide the connection string. Dim strConn As String 'Use the SQL Server OLE DB Provider. strConn = "PROVIDER=SQLOLEDB;" 'Connect to the Pubs database on the local server. strConn = strConn & "DATA SOURCE=(local);INITIAL CATALOG=pubs;" 'Use an integrated login. strConn = strConn & " INTEGRATED SECURITY=sspi;" 'Now open the connection. cnPubs.Open strConn '----------------------------------' ' --- EXTRACTION DES DONNEES ---' '----------------------------------' ' Create a recordset object. Dim rsPubs As ADODB.Recordset Set rsPubs = New ADODB.Recordset With rsPubs ' Assign the Connection object. .ActiveConnection = cnPubs ' Extract the required records. .Open "SELECT * FROM Authors" ' Copy the records into cell A1 on Sheet1. Sheet1.Range("A1").CopyFromRecordset rsPubs ' Tidy up .Close End With cnPubs.Close Set rsPubs = Nothing Set cnPubs = Nothing
Maintenant voici mon problème: cette méthode fonctionne parfaitement récupérer les données, mais j'aimerais en plus de cela récupérer le nom des colonnes associés aux données et les avoir sur la ligne 1 de ma feuille excel. Si vous connaissez un moyen en VBA pour réaliser cela, je vous serait grandement reconnaissant! ^^
Partager