Bonjour,

Voici une procédure que j'utilise pour créer une table à partir des données se trouvant dans une feuille excel:
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
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.
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