Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2019importation plusieurs fichiers Excel au même temps dans SQL SERVER SSMS
je veux savoir s'il vous plait ,si quelqu'un a une astuce de comment importer plusieurs fichiers Excel (CSV ou xlsx) au même temps vers une base de donnée SQL server SSMS (moi j'ai pu importer que un par un) sachant que j' ai 50 tables chaque jour à actualiser
il ce peux qu'il faille créer un fichier schema.ini pour donner des précision sur la structure des CSV, le ca échéant on en reparlera!
VB:
Sub test()
Dim Cn As Object, GenereCSTRING As String
Const MyServeur = "MyServeur", MyDATABASE = "MyDATABASE", MyUID = "MyUID", MyPwd = "MyPwd"
Const Rep = "C:\Myrep"
GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Rep & ";Extended Properties=""Text;HDR=YES;FMT=Delimited;"""
Set Cn = CreateObject("Adodb.Connection")
With Cn
.Open GenereCSTRING
lst = TableToutes(Cn)
For i = 0 To UBound(lst)
.execute "Insert into [ODBC;Driver={SQL Server};SERVER=" & MyServeur & ";DATABASE=" & MyDATABASE & ";UID=" & MyUID & ";Pwd=" & MyPwd & "].[TableSqlServer] select * from [" & lst(i) & "]"
Next
.Close
End With
End Sub
Public Property Get TableToutes(Connexion As Object)
Dim t() As String, i As Integer
TableToutes = False
With Connexion.OpenSchema(20)
While Not .EOF
ReDim Preserve t(i)
t(i) = !TABLE_NAME
i = i + 1
.MoveNext
Wend
.Close
TableToutes = t
End With
End Property
il ce peux qu'il faille créer un fichier schema.ini pour donner des précision sur la structure des CSV, le ca échéant on en reparlera!
VB:
Sub test()
Dim Cn As Object, GenereCSTRING As String
Const MyServeur = "MyServeur", MyDATABASE = "MyDATABASE", MyUID = "MyUID", MyPwd = "MyPwd"
Const Rep = "C:\Myrep"
GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Rep & ";Extended Properties=""Text;HDR=YES;FMT=Delimited;"""
Set Cn = CreateObject("Adodb.Connection")
With Cn
.Open GenereCSTRING
lst = TableToutes(Cn)
For i = 0 To UBound(lst)
.execute "Insert into [ODBC;Driver={SQL Server};SERVER=" & MyServeur & ";DATABASE=" & MyDATABASE & ";UID=" & MyUID & ";Pwd=" & MyPwd & "].[TableSqlServer] select * from [" & lst(i) & "]"
Next
.Close
End With
End Sub
Public Property Get TableToutes(Connexion As Object)
Dim t() As String, i As Integer
TableToutes = False
With Connexion.OpenSchema(20)
While Not .EOF
ReDim Preserve t(i)
t(i) = !TABLE_NAME
i = i + 1
.MoveNext
Wend
.Close
TableToutes = t
End With
End Property
je vous remercie dysorthographie pour votre retour , mais j'ai pas trop compris ce que vous m'avez envoyer, si par exemple j ai 3 tables CSV : VENTE et CONTROLE et PRODUCTION avec le nom de mon serveur "LAPTOP-Q38S46F9", comment je peux procéder et comment je vais exécuter ce code pour les 3 tables au mêmes temps? je veux aussi mettre ces tables dans la base de données MASTER dans SQL server SSMS,
dans l'attente de votre réponse et merci énormément
je veux savoir s'il vous plait ,si quelqu'un a une astuce de comment importer plusieurs fichiers Excel (CSV ou xlsx) au même temps vers une base de donnée SQL server SSMS (moi j'ai pu importer que un par un) sachant que j' ai 50 tables chaque jour à actualiser
tu as plusieurs fichier Excel(CSV ou XLS) j'en est conclus que c'était du CSV!
tu as 50 tables j'en es conclu que tu voulais automatiser l'importation de tes 50 fichiers CSV dans SQL Serveur.
comme le langage de prédilection de SQL serveur ce trouve être le SQL et qu'il es possible de faire également du SQL sur de fichier CSV j'ai pensé qu'utiliser SQL pour lier les 2 type de table était une bonne idée!
pour ce faire il faut faire une requête d'ajout des valeur du fichier SCV dans la table SQL Serveur correspondante.
dans l'exemple fourni au poste #5 je ne sais pas si le nom du CSV correspond au nom de la table SQL Serveur et même si la structure du CSV correspond au format français ou américain!
en revanche j'ai conclue que les 50 CSV étaient dans le même répertoire
s'ache qu'il es possible de gérer du CSV avec du SQL. il faut pour cela considérer le répertoire ou ce trouve les fichiers comme un base de données!
pour ce connecter à une base de données on utilise ADODB.connection; on lui donne les information de connexion ;
pour CSV:
Rep étant le répertoire ou ce trouve les Fichier CSV et HDR=YES pour dire si la première ligne est la zone de tire de colonnes Yes/no;
pour exécuter une requête de sélection sur un fichier CSV on considère le nom des champs séparé par une virgule ou on met une étoile si on récupère tous les champs!
Code:
"Select Champ1,Champ2,Champ3 from [Fichier#Csv]" 'on remplace le . par #
"Select * from [Fichier#CSV]"
pour faire un lien entre CSV et SQL serveur il me faut fournir dans la requête les information de connexon SQL serveur
Code:
"Insert into [CnSqlServeur].[Table] select * from [Fichier#CSV]"
pour ce faire je dois m'identifier auprès d'SQL Serveur via ADODB!
imaginons que les données de la table VENTE ce trouve dans le fichier VENTE.CSV voila le type de requête que tu pourrais faire!
Code:
"insert into [" & CnSqlServeur & "].[VENTE] select * from [VENTE#CSV]"
Public Property Get TableToutes(Connexion As Object) te retourne un tableur avec tous de tous les fichier CSV ce trouvant dans le répertoire.
notes que les fichiers CSV par défaut sont avec la virgule [,] comme séparateur de colonne et le point [.] comme séparateur décimale. pour tous autre format il faut créer un fichier schema.in! si c'est ton cas il faudra qu'on en parle!
il est possible d'integer du code M dans SQL server.
C'est fait pour.
Je sais créer le code dans Power BI & Excel, mais j'ai jamais réussi a le mettre dans SQL server.
J'ai donné un cours de M a un DBA chez un client, et il a integré ce code en 15 secondes.
Ne pas oublier d'importer la liste des fichier déja traités... pour éviter un double import.
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.