J'ai besoin de créer une base access à partir de fichiers XML.

Pour cela, j'ai pu faire un code qui crée cette base, puis importe un fichier XML, puis referme tout proprement. Il est testé et fonctionne correctement :
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
Dim oAccess, oDb, fso
'creation de l'objet Microsoft Access
Set oAccess = CreateObject("Access.application")
'laisser Access invisible
oAccess.Visible = False
'création d'une nouvelle base de données Access
oAccess.newCurrentDatabase (repFic & nomBase)
'ouverture de la base de données fraichement créée
Set oDb = oAccess.CurrentDB()
'Lancement de la méthode d'importation du fichier XML
oAccess.importXML(nomDuFichierXMLAImporter)
'Fermeture de la base de données
oAccess.CloseCurrentDataBase
'Fermeture d'Access
oAccess.Quit
'Nettoyage des variables instanciées
Set oDb = Nothing
Set oAccess = Nothing
A partir de là, j'ai besoin d'y apporter une légère amélioration : importer PLUSIEURS fichiers xml dans le MEME base de données. Sachant que quelque soit le nombre de fichiers à importer, ils ont tous besoin des mêmes tables.

J'ai donc tenté de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
'listeFichiersAImporter est un tableau contenant tous les fichiers xml qui
'doivent être importés dans la base
For indice = 0 To UBound(listeFichiersAImporter)
     oAccess.importXML(listeFichiersAImporter(indice))
Next
Le problème est que chaque importation crée ses propres tables. Par exemple, si une table "Application" est nécessaire, le premier import va créer une table "Application" et la remplir correctement, le second crée une table "Application1" et la remplit à son tour avec les nouvelles données, le 3eme une table "Application2", le 4ème une table "Application3"....

Comment puis-je procéder pour que l'import se fasse dans la même table ?