Bonjour,
Voici une procédure que j'utilise pour créer une table à partir des données se trouvant dans une feuille excel:
Comme vous pouvez le voir dans le code, si table existe déja, elle est supprimée pour ensuite être récrée avec les nouvelles données.
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 Sub Import_excel_vers_SQL(Feuille_excel As String, Champs As String, Table_SQL As String, nom_fichier_complet As String) Dim cn As ADODB.Connection Dim strSQL_del As String Dim strSQL_add As String ' "Feuille_excel" représente le nom de la feuille excel que l'on souhaite transférer dans la base de donnée ' Il est indispensable que le nom des champs se trouvent sur la ligne1 et commencent à la colonne1 ' "Champs" représente le nom des champs à créer dans la Bdd. Soit "*" pour créer tous les champs, ' soit "[Champ 1], [Champ 2], [Champ N]" ' "Table_SQL" représente le nom de la table à mettre à jour On Error Resume Next Set cn = New ADODB.Connection ' Définition des variables connstring = "ODBC;Description=Test;DRIVER=SQL Server;SERVER=tlpibt02;UID=ghirardf;" & _ "APP=Microsoft® Access;WSID=PC700610;DATABASE=Hybrides;Trusted_Connection=Yes" strSQL_del = "DROP table [" & connstring & "].[" & Table_SQL & "]" strSQL_add = "SELECT " & Champs & " INTO [" & connstring & "]." & Table_SQL & _ " FROM [" & Feuille_excel & "$]" ' Ouverture du processus MicrosoftJet cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & nom_fichier_complet & ";" & _ "Extended Properties=Excel 8.0" ' Exécution des instructions SQL: Suppression de la table puis création d'une nouvelle cn.Execute strSQL_del cn.Execute strSQL_add ' Fermeture du processus MicrosoftJet cn.Close Set cn = Nothing End Sub
Ma question est de savoir s'il est possible de mettre à jour toute la table sans avoir à la supprimée sachant que la structure reste identique.
Merci d'avance
Partager