Bonjour,
J'ai trouvé sur le super site de Jacques Boisgontier un code
qui permet d'importer dans une base access des données présentes dans un fichier excel.
Ce code fonctionne si la base access et le fichier excel se trouvent dans le même répertoire et si dans VB il a été coché dans outil/ préférence "Microsoft DAO 3.6"
Dans ce code sont écrits en dur le nom de la base "access2000.mdb"et celui de la table "Clients" dans laquelle sont importées les données du fichier excel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub ExporterAccessDAO() 'cocher Microsoft DAO 3.6 dans Outils/Références Dim bd As DAO.Database ChDir ActiveWorkbook.Path Set bd = OpenDatabase(ActiveWorkbook.FullName, False, False, "excel 8.0") bd.Execute "DELETE FROM clients IN '" & ActiveWorkbook.Path & "\access2000.mdb'" Sql = "INSERT INTO client IN '" & ActiveWorkbook.Path & "\access2000.mdb' SELECT * FROM [Mabd]" bd.Execute Sql bd.Close Set bd = Nothing End Sub
Pour rendre plus souple ce code, j'ai crée dans le fichier excel un onglet parametres.
Dans ce dernier, j'ai nommé une cellule "chemin" qui retourne l'emplacement de la base "C:/..." et une autre "NomBaseAccess" qui retourne le nom de la base access concernée par exemple "MaBase".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub ExporterAccessDAO() 'cocher Microsoft DAO 3.6 dans Outils/Références Dim bd As DAO.Database ChDir ([chemin]) Set bd = OpenDatabase(ActiveWorkbook.FullName, False, False, "excel 8.0") bd.Execute "DELETE FROM clients IN '" & [chemin] & "\" & [NomBaseAccess] & ".mdb '" Sql = "INSERT INTO clients IN '" & [chemin] & "\" & [NomBaseAccess] & ".mdb ' SELECT * FROM [Mabd]" bd.Execute Sql bd.Close Set bd = Nothing End Sub
j'ai voulu aller plus loin et nommer dans le ficher excel une cellule "Table1" pour retourner le nom de la table access pour remplacer le nom "clients" dans le code de base.
Dans la ligne de code:
J'ai essayé plusieurs synthaxes pour remplacer "clients" par "Table1", mais toutes ont fait échouer l'action.
Code : Sélectionner tout - Visualiser dans une fenêtre à part "bd.Execute "DELETE FROM clients IN '" & [chemin] & "\" & [NomBaseAccess] & ".mdb '""
Espérant avoir été clair sur l'explication de mon problème.
D'avance merci pour votre aide.
Cdt
Georges
Partager