Autres Exporter *facilement* des tables Excel vers SQL SSMS SQL Server Management Studio ?

Charly88

XLDnaute Occasionnel
Bonjour, je continue à avancer-patauger dans mon apprentissage de SQL mais un point basique m'échappe toujours : comment/est-il possible d'exporter *facilement/rapidement* des tables Excel vers SQL SSMS ?

Toutes mes tentatives initiales d'import ont été une corvée : j'y ai passé des heures, me suis tapé des problèmes de 32/64 Bits et / ou de .xls / .xlsx / .csv
J'ai finalement réussi à importer des tables mais 3 semaines plus tard, je n'ai plus la moindre idée de comment j'ai fait, je crois que l'une d'elle a été importée deux fois et l'ensemble me paraît bien trop chronophage pour être vrai.

Or je veux pouvoir créer / bricoler des données facilement sous excel pour ensuite les exploiter sous SQL / SSMS = que recommandez-vous ?

En tant que bleu sur SQL, j'imaginerais SSMS capable d'identifier des plages nommées d'un .xlsx ou qu'un onglet = table ou autre variante, puis 3 clics d'import, une étape logique de définition du type de données et puis roule Simone... Suis-je un candide dans l'âme ?
Merci d'avance.
 

dysorthographie

XLDnaute Accro
Bonjour,
je tes fait un exemple d'export Excel vers SQL Serveur.
comme je ne connais pas les paramètres de connexon de ton serveur il t'appartiendra d'adapter la macro.
VB:
Sub ParcourSheets()
Dim Feuille As Worksheet, cn As String
cn = GenereCSTRING(Xls, Base:=ThisWorkbook.FullName, Titre:=True)
For Each Feuille In ThisWorkbook.Sheets
    ExportExceltoSql Feuille, cn
Next
End Sub

Sub ExportExceltoSql(Feuille As Worksheet, cn As String)
Const CnSqlServeur = "[ODBC;Driver={SQL Server};SERVER=MyServeur;DATABASE=MyDATABASE;UID=UserName;Pwd=PassWord]"
Dim Sql As String
Sql = "SELECT * INTO " & CnSqlServeur & "." & Feuille.Name & " FROM [" & Feuille.Name & "$]"
ExecuteRequete Sql, cn
End Sub
 

Pièces jointes

  • TesteExport.xlsm
    52.9 KB · Affichages: 2

Statistiques des forums

Discussions
312 209
Messages
2 086 275
Membres
103 170
dernier inscrit
HASSEN@45