Bonjour, je cherche désespérement à automatiser en VBA l'importation d'un fichier XML dans une table UNIQUE d'access 2007 (ce que ne me fait pas la fonction Application.ImportXML "C:\Temp\Mon_Fichier.XML", acStructureAndData ). Je pensais avoir la solution avec le post trouvé ici http://access.developpez.com/faq/?page=Fichier#lirexml mais en fait la fonction Load ne semble pas marcher (j'arrive à 'erreur de lecture') alors que j'ai bien ajouté les références Microsoft XML (version 2 et même 6). Je suis donc bloqué avant même de pouvoir lire le contenu du XML.
Voici mon code
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 Public Function fctLireXML(ByVal nomfichier As String) Dim xmlDoc As DOMDocument Dim root As IXMLDOMElement Set xmlDoc = New DOMDocument xmlDoc.async = False If xmlDoc.Load("C:\chemin\fichier.xml") Then MsgBox "Document chargé" Else MsgBox " Erreur de lecture" Exit Function End If Set root = xmlDoc.documentElement If Not root Is Nothing Then Debug.Print root.BaseName fctRetourNoeudXML (root) End If Debug.Print "Fin de procédure" End Function
et voici un extrait du fichier XML :
N'étant pas informaticien j'espère que c'est tout bête et que quelqu'un pourra me débloquer de cette impasse.
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
37 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE message SYSTEM "result_20.dtd"> <message message_id="2" message_dt="06/30/2015 12:45:37.741 PM" message_type="Result" message_sub_type="New_Results" message_dtd_version_number="2.0"> <header> <from_application_id>0e7c8223-93eb-4f0c-86bf-7d34af5cb84d</from_application_id> <to_application_id>link20a2-1272-4cb9-8cc0-ab835ef19539</to_application_id> </header> <body> <result requisition_number="" diagnostic_set_id="20150630_113226_2" instrument="Catalyst_One"> <run_dt>06/30/2015 11:46:01.857 AM</run_dt> <client client_id=""> <first_name></first_name> <last_name></last_name> </client> <patient patient_id="101999" patient_species="CANINE"> <patient_name>TEST</patient_name> </patient> <doctor> <first_name></first_name> <last_name></last_name> </doctor> <results> <assay_result assay_name="GLU"> <result_value_uom_cd>g/L</result_value_uom_cd> <result_value>0,45</result_value> <assay_reference_range> <critical_low>0.15</critical_low> <low>0.70</low> <high>1.43</high> <critical_high>7.00</critical_high> </assay_reference_range> <result_qualifier>=</result_qualifier> </assay_result> </results> </result> </body> </message>
Partager