Boa noite,
Consegui esse codigo aqui no forum e esta funcionando, preciso apontar o banco que irei importar o xml.
A situação é a seguinte: Preciso importar o xml da nfe, primeiro vou importar Numero da nfe, emitente, destinatario, CNPJ, CFOP e em outra tabela os produtos
Quero adaptar esse código para fazer as duas importações ao mesmo tempo.
segue o codigo:
Dim Pasta As Folder, Ficheiro As file, objFileSys
Dim xmlDoc As New MSXML2.DOMDocument30
Dim objNodeList As IXMLDOMNodeList
'Dim rst As Recordset
'Dim Dbs As Database
Dim myErr
xmlDoc.async = False
Dim xmlResp As IXMLDOMNode
Set xmlDoc = New DOMDocument
Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set Pasta = objFileSys.GetFolder("C:\ArquivosXMLJIVendas\")
For Each Ficheiro In Pasta.Files
'xmlDoc.Load Ficheiro.Name
xmlDoc.Load Ficheiro.Path
If (xmlDoc.parseError.errorCode <> 0) Then
Set myErr = xmlDoc.parseError
MsgBox ("Ocorreu um erro " & myErr.reason)
Else
'Verificar a Versão da NFe
For Each xmlResp In xmlDoc.getElementsByTagName("nfeProc")
VersaoNF = xmlResp.Attributes(0).Text
Next xmlResp
Set objNodeList = xmlDoc.getElementsByTagName("ide")
NotaFiscal = objNodeList.Item(i).childNodes(6).Text
Set objNodeList = xmlDoc.getElementsByTagName("emit")
RazaoSocial = objNodeList.Item(i).childNodes(1).Text
Set objNodeList = xmlDoc.getElementsByTagName("dest")
Cliente = objNodeList.Item(i).childNodes(1).Text
Set objNodeList = xmlDoc.getElementsByTagName("emit")
CpfCnpj = objNodeList.Item(i).childNodes(0).Text
Set objNodeList = xmlDoc.getElementsByTagName("prod")
CFOP = objNodeList.Item(i).childNodes(4).Text
If VersaoNF = "2.00" Then
Set objNodeList = xmlDoc.getElementsByTagName("dEmi")
Emissao = Mid(objNodeList.Item(i).Text, 9, 2) & "/" & Mid(objNodeList.Item(i).Text, 6, 2) & "/" & Left(objNodeList.Item(i).Text, 4)
Me.Competencia = Format(Emissao, "mmm/yyyy")
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrProduto = Nz(Format(Replace(objNodeList.Item(i).childNodes(4).Text, ".", ","), "Standard"))
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrProduto = Nz(Format(Replace(objNodeList.Item(i).childNodes(4).Text, ".", ","), "Standard"))
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrDesconto = Nz(Format(Replace(objNodeList.Item(i).childNodes(7).Text, ".", ","), "Standard"))
Else
Set objNodeList = xmlDoc.getElementsByTagName("dhEmi")
Emissao = Mid(objNodeList.Item(i).Text, 9, 2) & "/" & Mid(objNodeList.Item(i).Text, 6, 2) & "/" & Left(objNodeList.Item(i).Text, 4)
Me.Competencia = Format(Emissao, "mmm/yyyy")
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrProduto = Nz(Format(Replace(objNodeList.Item(i).childNodes(5).Text, ".", ","), "Standard"))
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrDesconto = Nz(Format(Replace(objNodeList.Item(i).childNodes(.Text, ".", ","), "Standard"))
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrProduto = Nz(Format(Replace(objNodeList.Item(i).childNodes(5).Text, ".", ","), "Standard"))
End If
End If
Next
Me.Requery
End Sub
Consegui esse codigo aqui no forum e esta funcionando, preciso apontar o banco que irei importar o xml.
A situação é a seguinte: Preciso importar o xml da nfe, primeiro vou importar Numero da nfe, emitente, destinatario, CNPJ, CFOP e em outra tabela os produtos
Quero adaptar esse código para fazer as duas importações ao mesmo tempo.
segue o codigo:
Dim Pasta As Folder, Ficheiro As file, objFileSys
Dim xmlDoc As New MSXML2.DOMDocument30
Dim objNodeList As IXMLDOMNodeList
'Dim rst As Recordset
'Dim Dbs As Database
Dim myErr
xmlDoc.async = False
Dim xmlResp As IXMLDOMNode
Set xmlDoc = New DOMDocument
Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set Pasta = objFileSys.GetFolder("C:\ArquivosXMLJIVendas\")
For Each Ficheiro In Pasta.Files
'xmlDoc.Load Ficheiro.Name
xmlDoc.Load Ficheiro.Path
If (xmlDoc.parseError.errorCode <> 0) Then
Set myErr = xmlDoc.parseError
MsgBox ("Ocorreu um erro " & myErr.reason)
Else
'Verificar a Versão da NFe
For Each xmlResp In xmlDoc.getElementsByTagName("nfeProc")
VersaoNF = xmlResp.Attributes(0).Text
Next xmlResp
Set objNodeList = xmlDoc.getElementsByTagName("ide")
NotaFiscal = objNodeList.Item(i).childNodes(6).Text
Set objNodeList = xmlDoc.getElementsByTagName("emit")
RazaoSocial = objNodeList.Item(i).childNodes(1).Text
Set objNodeList = xmlDoc.getElementsByTagName("dest")
Cliente = objNodeList.Item(i).childNodes(1).Text
Set objNodeList = xmlDoc.getElementsByTagName("emit")
CpfCnpj = objNodeList.Item(i).childNodes(0).Text
Set objNodeList = xmlDoc.getElementsByTagName("prod")
CFOP = objNodeList.Item(i).childNodes(4).Text
If VersaoNF = "2.00" Then
Set objNodeList = xmlDoc.getElementsByTagName("dEmi")
Emissao = Mid(objNodeList.Item(i).Text, 9, 2) & "/" & Mid(objNodeList.Item(i).Text, 6, 2) & "/" & Left(objNodeList.Item(i).Text, 4)
Me.Competencia = Format(Emissao, "mmm/yyyy")
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrProduto = Nz(Format(Replace(objNodeList.Item(i).childNodes(4).Text, ".", ","), "Standard"))
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrProduto = Nz(Format(Replace(objNodeList.Item(i).childNodes(4).Text, ".", ","), "Standard"))
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrDesconto = Nz(Format(Replace(objNodeList.Item(i).childNodes(7).Text, ".", ","), "Standard"))
Else
Set objNodeList = xmlDoc.getElementsByTagName("dhEmi")
Emissao = Mid(objNodeList.Item(i).Text, 9, 2) & "/" & Mid(objNodeList.Item(i).Text, 6, 2) & "/" & Left(objNodeList.Item(i).Text, 4)
Me.Competencia = Format(Emissao, "mmm/yyyy")
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrProduto = Nz(Format(Replace(objNodeList.Item(i).childNodes(5).Text, ".", ","), "Standard"))
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrDesconto = Nz(Format(Replace(objNodeList.Item(i).childNodes(.Text, ".", ","), "Standard"))
Set objNodeList = xmlDoc.getElementsByTagName("ICMSTot")
VlrProduto = Nz(Format(Replace(objNodeList.Item(i).childNodes(5).Text, ".", ","), "Standard"))
End If
End If
Next
Me.Requery
End Sub