Salve,
ho la necessità di estrarre da files Xml alcuni dati da importare in Tab di Access.
ad onor del vero ho già estratto i dati che mi servono con un codice che pubblicherò, dopo aver spiegato il mio problema:
-estraggo dai files 12 campi di cui i primi 8 riguardano una Tab (che chiamiamo Tab "A") che contiena una PK (idfile)
-i 4 campi (dal N° 9 al 12 Tab "B") devono essere messi in relazione 1 a M con la tab principale) esempio:
Tab "A"
IdFile (PK)
campo 1_2_3_4_5_6_7_8
Tab "B"
IdB (PK)
Idfile (FK)
Campo 9...12
Fino a popolare la tab "A" nessun problema il problema nasce per polare la tab "B" e metterla in relazione con la "A"
Ecco il codice :
[Code]Dim NomeFile, PercorsoCompleto As String
Dim strSQL As String
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
'seleziona la riga unica
strSQL = "SELECT IdFile, NomeFile, path, RagioneSociale, NumeroFatt, Data, CodiceDestinatario, MailPec, Pagamento, EstAllegato, NomeAllegato "
strSQL = strSQL & "FROM TbFileFattForn"
Set rs1 = CurrentDb.OpenRecordset(strSQL)
Do Until rs1.EOF
'seleziona la rige di riepilogo
strSQL = "SELECT IdFile, AliquotaIva , ImponibileImporto , Imposta , EsigibilitaIVA "
strSQL = strSQL & "FROM TbRigheRiepilogoFile WHERE idFile =" & Forms![mkFileFattForn]!IdFile
Set rs2 = CurrentDb.OpenRecordset(strSQL)
'rs2.MoveFirst
Do Until rs2.EOF
NomeFile = (rs1!NomeFile) 'Prelevo dalla tabella il nome del file da elaborare
PercorsoCompleto = (rs1!Path) 'Prelevo dalla tabella il percorso del file da elaborare
PercorsoCompleto = PercorsoCompleto & NomeFile 'Compongo il percorso completo
'==========================================================================================
'INIZIO LETTURA FILE XML
'==========================================================================================
Dim obj As DOMDocument
Dim Verifica As Boolean
Dim Nodo, Nodo2, Nodo3, Nodo4, Nodo5, Nodo6, Nodo7, Nodo8, Nodo9, Nodo10, Nodo11, Nodo12 As IXMLDOMNodeList
Dim Nome As IXMLDOMNode
Dim Testo1, Testo2, Testo3, Testo4, Testo5, Testo6, Testo7, Testo8, Testo9, Testo10, Testo11, Testo12 As String
Testo1 = ""
Testo2 = ""
Testo3 = ""
Testo4 = ""
Testo5 = ""
Testo6 = ""
Testo7 = ""
Testo8 = ""
Testo9 = ""
Testo10 = ""
Testo11 = ""
Testo12 = ""
'==========================================================================================
'ACCESSO AL FILE XML
'==========================================================================================
Set obj = New DOMDocument
obj.async = False
obj.Load (PercorsoCompleto)
'==========================================================================================
'NODO RAGIONE SOCIALE
'==========================================================================================
'seleziono il nodo da leggere
Set Nodo = obj.DocumentElement.SelectNodes("//CedentePrestatore//Denominazione")
'leggo tutti i dati del nodo
For Each Nome In Nodo
'estraggo il valore del nodo
Testo1 = Testo1 & " " & Nome.Text
Next
'==========================================================================================
'NODO NUMERO FATTURA
'==========================================================================================
Set Nodo2 = obj.DocumentElement.SelectNodes("//DatiGenerali//Numero")
'leggo tutti i dati del nodo
For Each Nome In Nodo2
'estraggo il valore del nodo
Testo2 = Testo2 & " " & Nome.Text
Next
'==========================================================================================
'NODO DATA FATTURA
'==========================================================================================
Set Nodo3 = obj.DocumentElement.SelectNodes("//DatiGenerali//Data")
'leggo tutti i dati del nodo
For Each Nome In Nodo3
'estraggo il valore del nodo
Testo3 = Testo3 & " " & Nome.Text
Next
'==========================================================================================
'NODO DATA CODICE DESTINATARIO
'==========================================================================================
Set Nodo4 = obj.DocumentElement.SelectNodes("//DatiTrasmissione//CodiceDestinatario")
'leggo tutti i dati del nodo
For Each Nome In Nodo4
'estraggo il valore del nodo
Testo4 = Testo4 & " " & Nome.Text
Next
'==========================================================================================
'NODO DATA MAIL PEC
'==========================================================================================
Set Nodo5 = obj.DocumentElement.SelectNodes("//DatiTrasmissione//PECDestinatario")
'leggo tutti i dati del nodo
For Each Nome In Nodo5
'estraggo il valore del nodo
Testo5 = Testo5 & " " & Nome.Text
Next
'==========================================================================================
'NODO PAGAMENTO
'==========================================================================================
Set Nodo6 = obj.DocumentElement.SelectNodes("//DatiPagamento//ModalitaPagamento")
'leggo tutti i dati del nodo
For Each Nome In Nodo6
'estraggo il valore del nodo
Testo6 = Testo6 & " " & Nome.Text
Next
'==========================================================================================
'NODO ESTENSIONE ALLEGATO
'==========================================================================================
Set Nodo7 = obj.DocumentElement.SelectNodes("//Allegati//FormatoAttachment")
'leggo tutti i dati del nodo
For Each Nome In Nodo7
'estraggo il valore del nodo
Testo7 = Testo7 & " " & Nome.Text
Next
'==========================================================================================
'NODO NOME ALLEGATO
'==========================================================================================
Set Nodo8 = obj.DocumentElement.SelectNodes("//Allegati//NomeAttachment")
'leggo tutti i dati del nodo
For Each Nome In Nodo8
'estraggo il valore del nodo
Testo8 = Testo8 & " " & Nome.Text
Next
'=========================================================================================
'Nodo DatiRiepilogo/AliquotaIva
'==========================================================================================
Set Nodo9 = obj.DocumentElement.SelectNodes("//DatiRiepilogo//AliquotaIva")
'leggo tutti i dati del nodo
For Each Nome In Nodo9
'estraggo il valore del nodo
Testo9 = Testo9 & " " & Nome.Text
Next
'=========================================================================================
'Nodo DatiRiepilogo/ImponibileImporto
'==========================================================================================
Set Nodo10 = obj.DocumentElement.SelectNodes("//DatiRiepilogo//ImponibileImporto")
'leggo tutti i dati del nodo
For Each Nome In Nodo10
'estraggo il valore del nodo
Testo10 = Testo10 & " " & Nome.Text
Next
'=========================================================================================
'Nodo DatiRiepilogo/Imposta
'==========================================================================================
Set Nodo11 = obj.DocumentElement.SelectNodes("//DatiRiepilogo//Imposta")
'leggo tutti i dati del nodo
For Each Nome In Nodo11
'estraggo il valore del nodo
Testo11 = Testo11 & " " & Nome.Text
Next
'=========================================================================================
'Nodo DatiRiepilogo/EsigibilitaIVA
'==========================================================================================
Set Nodo12 = obj.DocumentElement.SelectNodes("//DatiRiepilogo//EsigibilitaIVA")
'leggo tutti i dati del nodo
For Each Nome In Nodo12
'estraggo il valore del nodo
Testo12 = Testo12 & " " & Nome.Text
Next
'CHIUDO IL FILE
'==========================================================================================
Set obj = Nothing
'==========================================================================================
'AGGIORNO I CAMPI CON I DATI RECUPERATI
'==========================================================================================
rs1.Edit
With rs1
.Fields("RagioneSociale") = Trim(Testo1)
.Fields("NumeroFatt") = Trim(Testo2)
.Fields("Data") = Left(Trim(Testo3), 10)
.Fields("CodiceDestinatario") = Trim(Testo4)
.Fields("MailPec") = Trim(Testo5)
.Fields("Pagamento") = Left(Trim(Testo6), 4)
.Fields("EstAllegato") = Trim(Testo7)
.Fields("NomeAllegato") = Trim(Testo8)
.Update
End With[/Code]
Grazie a chi vorrà darmi una dritta