Excel VBA / Exporter données Excel vers SQL Server

Fermé
supraman46 Messages postés 53 Date d'inscription jeudi 21 février 2013 Statut Membre Dernière intervention 15 décembre 2020 - 25 janv. 2018 à 17:48
supraman46 Messages postés 53 Date d'inscription jeudi 21 février 2013 Statut Membre Dernière intervention 15 décembre 2020 - 30 janv. 2018 à 13:59
Bonjour,

Voila, j'aimerais créer un formulaire dans Excel(userform) et lorsque l'utilisateur aurait terminé de remplir le formulaire que les données ce classe sur une feuille Excel et par le fait même ce transfert vers une table dans SQL Server.

J'ai trouvé un code VBA sur internet qui pourrait possiblement m'aidé, mais je voulais valider avant si quelqu'un d'entre vous aurait déjà travailler avec ce genre de fichier.

voici le code en question:

Sub ADOExcelToSQLServer() 
' Carl Mackinder for OzGrid - SQL Server Connection
' Send data to SQL Server
' This code loads data from an Excel Worksheet to an SQL Server Table
' Data should start in column A and should be in the same order as the server table
' Autonumber fields should NOT be included
'
' FOR THIS CODE TO WORK
' In VBE you need to go Tools References and check Microsoft Active X Data Objects 2.x library


Dim Cn As ADODB.Connection 
Dim ServerName As String 
Dim DatabaseName As String 
Dim TableName As String 
Dim UserID As String 
Dim Password As String 
Dim rs As ADODB.Recordset 
Dim RowCounter As Long 
Dim ColCounter As Integer 
Dim NoOfFields As Integer 
Dim StartRow As Long 
Dim EndRow As Long 
Dim ws As Worksheet 
Set rs = New ADODB.Recordset 


ServerName = "YourServerName" ' Enter your server name here
DatabaseName = "YourDatabaseName" ' Enter your database name here
TableName = "YourTableName" ' Enter your Table name here
UserID = "" ' Enter your user ID here
' (Leave ID and Password blank if using windows Authentification")
Password = "" ' Enter your password here
NoOfFields = 2 ' Enter number of fields to update (eg. columns in your worksheet)
StartRow = 2 ' Enter row in sheet to start reading records
EndRow = 6 ' Enter row of last record in sheet
Set ws = ThisWorkbook.Worksheets("sheet1") ' Change this to the name of the sheet with the data

Set Cn = New ADODB.Connection 
Cn.Open "Driver={SQL Server};Server=" & ServerName & ";Database=" & DatabaseName & _ 
";Uid=" & UserID & ";Pwd=" & Password & ";" 

rs.Open TableName, Cn, adOpenKeyset, adLockOptimistic 

For RowCounter = StartRow To EndRow 
rs.AddNew 
For ColCounter = 1 To NoOfFields 
rs(ColCounter) = ws.Cells(RowCounter, ColCounter) 
Next ColCounter 
Next RowCounter 
rs.UpdateBatch 

' Tidy up
rs.Close 
Set rs = Nothing 
Cn.Close 
Set Cn = Nothing 
End Su



Merci à l'avance pour votre aide!

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
26 janv. 2018 à 17:40
Bonjour,

j'ai fait une base de donnée avec Access, si cela t'interesse:

https://www.cjoint.com/c/HAAqJ28f3dQ

Les données sont chargées sur une feuille Excel et dans Access
0
supraman46 Messages postés 53 Date d'inscription jeudi 21 février 2013 Statut Membre Dernière intervention 15 décembre 2020 1
29 janv. 2018 à 20:41
merci beaucoup Le Pivert pour ta réponse, mais j'aimerais trouver un petit projet avec SQL.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
30 janv. 2018 à 10:47
0
supraman46 Messages postés 53 Date d'inscription jeudi 21 février 2013 Statut Membre Dernière intervention 15 décembre 2020 1
30 janv. 2018 à 13:59
Bonjour Michel, effectivement j'ai moi aussi trouvé des trucs avec un moteur de recherche... comme ce video qui explique comment

https://www.youtube.com/watch?v=SZ5qkzLUpn0&list=PL9e5e7OOG6UHamgvhRt2QbMgVA5USqHUF&index=2


Le but de mon post est de pouvoir générer une discussion avec ceux qui ont déjà tenté l'expérience et non juste de lire une page web ;-)

merci beaucoup d'avoir pris le temps de répondre.
0