Exporter contenu Feuille Excel vers table Access existante

nikkss

XLDnaute Nouveau
Salut à tous,

Je me permets de revenir vers vous pour mon problème. Voici mon code (qui a change depuis la dernière fois, mais j'essaye plein de choses différentes):

Code:
Sub ExporterVersAccess()
Dim AccessCn As ADODB.Connection

Set AccessCn = New ADODB.Connection
AccessCn.Provider = "Microsoft.Jet.Oledb.4.0"
AccessCn.ConnectionString = Application.GetOpenFileName
ma_base = AccessCn.ConnectionString
AccessCn.Open
 
Requete = "DELETE FROM maTable"
AccessCn.Execute Requete

With Worksheets("Feuil1")
    dercol = (Feuil1.Cells(4, Cells.Columns.Count).End(xlToLeft).Column) - 8
    derlig = .Range("A" & Rows.Count).End(xlUp).Row
End With
Range("A4:" & lettre_col(dercol) & derlig).Name = "Plage"

AccessCn.Execute "INSERT INTO maTable SELECT * FROM [Plage]"
bd.Close
Set bd = Nothing
End Sub
 
Public Function lettre_col(n As Variant)
lettre_col = Split(Cells(1, n).Address, "$")(1)
End Function

J'ai une erreur au moment de la dernière requete: "INSERT INTO maTable SELECT * FROM [Plage]"
"Plage" n'étant pas reconnu ou pas trouvé.

Quelqu'un pour m'aider? Merci
 

nikkss

XLDnaute Nouveau
Re : Exporter contenu Feuille Excel vers table Access existante

Pour ceux que cela intéresse voici ma solution (qui fonctionne ;)):

Sub ExporterVersAccess()

Dim bd As DAO.Database
Dim Rst As DAO.Recordset
Dim AccessCn As ADODB.Connection

'Connection à la base de données ACCESS
Set AccessCn = New ADODB.Connection
AccessCn.Provider = "Microsoft.Jet.Oledb.4.0"
Message = MsgBox("Vous devez maintenant sélectionner la base de données ACCESS dont vous voulez traiter l'indexation en automatique.", vbOKOnly, "Choix de la base de données ACCESS")
AccessCn.ConnectionString = Application.GetOpenFileName
ma_base = AccessCn.ConnectionString
AccessCn.Open

'Suppression des éléments de la table afin de la remplir par le résultat de l'indéxation automatique
Requete = "DELETE FROM maTable"
AccessCn.Execute Requete

'On spécifie la plage de données qui va être exporter vers la base ACCESS
With Worksheets("Feuil1")
dercol = (Feuil1.Cells(4, Cells.Columns.Count).End(xlToLeft).Column) - 8
derlig = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A4:" & lettre_col(dercol) & derlig).Name = "Plage"
End With

'Requête d'insertion des données traitées dans la table cible de la base ACCESS
Set bd = OpenDatabase(ThisWorkbook.FullName, False, False, "excel 8.0")
bd.Execute "INSERT INTO maTable IN '" & ma_base & "' SELECT * FROM [Plage]"
ThisWorkbook.Names("Plage").Delete
bd.Close
Set bd = Nothing
AccessCn.Close
Set AccessCn = Nothing
End Sub

Merci pour ceux qui auront tenté de m'aider.
@ plus.
 

Statistiques des forums

Discussions
312 164
Messages
2 085 870
Membres
103 007
dernier inscrit
salma_hayek