MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


5 participantes

    Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access

    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access Empty Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access

    Mensagem  FabioPaes 24/2/2018, 00:51

    Segue mais um exemplo de como pode ser feito para gerar o XML da Nota Fiscal Eletrônica - NFe direto pelo Access.

    Não sei se essa é a melhor técnica, mas funciona e é possível!

    Testado na Versão 3.10 hoje 23/02/2018

    Link do Vídeo: youtu.be/8yuRmp8bVAs
    Link Download Externo: dropbox.com/s/trjvjzu3dinuee9/Gera%20XML%20NFe.rar



    Código:
    Private Sub ExportaVendaAtual_Click()
    '-------------------------------------------------------'
    '       Criado por Fabio Paes em 31/05/2016         '
    '              Para o Maximo access                         '
    '     Livre para o Uso, mas Preserve a Autoria       '
    '       Testado e validado XML dia 23/02/2018       '
    '-------------------------------------------------------'
    'Falta alguns campos, mas sao simples de incluirem...
    'XML gerado e validado 23/02/2017 no site da receita. ver 3.10
    'A MAIORIA DOS CAMPOS ESTÃO COM VALORES FIXO, DEVEM SER COLOCADO OS VALORES DOS CAMPOS.

    Dim strArquivo As String
    Dim DB As Database
    Dim varXml As String
    Dim rs As DAO.Recordset ' Dados tbVendas
    Dim rs1 As DAO.Recordset ' Dados tbVendasDet

    strArquivo = Application.CurrentProject.Path & "\Venda_" & Me.CodVenda & ".xml" 'Caminho e nome do Arquivo
    Set DB = CurrentDb()
    Set rs = DB.OpenRecordset("SELECT TbVendas.CodCli, TbCadCli.NomeCliente,TbCadCli.Endereco, TbCadCli.CNPJ, TbCadCli.RG, TbVendas.CodVenda, TbVendas.DataVenda, " & _
    "TbVendas.FormaPgto, TbVendas.Dt_1Parcela,TbVendas.TotalPago, TbVendas.QtdeParcelas FROM TbCadCli INNER JOIN TbVendas ON TbCadCli.CodCli = TbVendas.CodCli WHERE CodVenda = " & Me.CodVenda & " ORDER BY TbVendas.CodVenda")

    Open strArquivo For Output As #1 'Abre o arquivo para iniciar a escrita
    '------------------------Cabeçalho do XML------------------------'
    varXml = "<?xml version=" & """1.0""" & " encoding=""UTF-8""?>"
    varXml = varXml & "<nfeProc versao=" & """3.10""" & " xmlns=" & """http://www.portalfiscal.inf.br/nfe""" & ">"
    varXml = varXml & "<NFe xmlns=""" & "http://www.portalfiscal.inf.br/nfe""" & ">"
    varXml = varXml & "<infNFe versao=" & """3.10""" & " Id=" & """NFe" & Me.ChaveNFe & """" & ">"
    varXml = varXml & "<ide>"
    varXml = varXml & "<cUF>52</cUF>"
    varXml = varXml & "<cNF>" & Mid(Me.ChaveNFe, 35,  & "</cNF>" 'Pega a partir do 35 caracter(8 digitos) da chave NFe
    varXml = varXml & "<natOp>VENDA DE MERCADORIA</natOp>"
    varXml = varXml & "<indPag>2</indPag>"
    varXml = varXml & "<mod>55</mod>"
    varXml = varXml & "<serie>5</serie>" 'Serie NFe
    varXml = varXml & "<nNF>" & rs("CodVenda") & "</nNF>" 'Numero NFe
    varXml = varXml & "<dhEmi>" & Format(rs("DataVenda"), "yyyy-mm-dd") & "T17:19:00-02:00" & "</dhEmi>"
    varXml = varXml & "<dhSaiEnt>" & Format(rs("DataVenda"), "yyyy-mm-dd") & "T17:19:00-02:00" & "</dhSaiEnt>"
    varXml = varXml & "<tpNF>1</tpNF>"
    varXml = varXml & "<idDest>3</idDest>"
    varXml = varXml & "<cMunFG>5220454</cMunFG>"
    varXml = varXml & "<tpImp>1</tpImp>"
    varXml = varXml & "<tpEmis>1</tpEmis>"
    varXml = varXml & "<cDV>7</cDV>"
    varXml = varXml & "<tpAmb>1</tpAmb>"
    varXml = varXml & "<finNFe>1</finNFe>"
    varXml = varXml & "<indFinal>0</indFinal>"
    varXml = varXml & "<indPres>9</indPres>"
    varXml = varXml & "<procEmi>0</procEmi>"
    varXml = varXml & "<verProc>6.0</verProc>"
    varXml = varXml & "</ide>"

    varXml = varXml & "<emit>"
    varXml = varXml & "<CNPJ>33000167002155</CNPJ>"
    varXml = varXml & "<xNome>PETROLEO BRASILEIRO S.A</xNome>"
    varXml = varXml & "<xFant>GECOM - Sen Canedo</xFant>"
    varXml = varXml & "<enderEmit>"
    varXml = varXml & "<xLgr>Estrada Municipal SEN 001</xLgr>"
    varXml = varXml & "<nro>S/N</nro>"
    varXml = varXml & "<xBairro>Zona Industrial</xBairro>"
    varXml = varXml & "<cMun>5220454</cMun>"
    varXml = varXml & "<xMun>SENADOR CANEDO</xMun>"
    varXml = varXml & "<UF>GO</UF>"
    varXml = varXml & "<CEP>75250000</CEP>"
    varXml = varXml & "<cPais>1058</cPais>"
    varXml = varXml & "<xPais>Brasil</xPais>"
    varXml = varXml & "</enderEmit>"
    varXml = varXml & "<IE>102347239</IE>"
    varXml = varXml & "<CRT>3</CRT>"
    varXml = varXml & "</emit>"
    varXml = varXml & "<dest>"
    varXml = varXml & "<idEstrangeiro/>"
    varXml = varXml & "<xNome>" & rs("NomeCliente") & "</xNome>"
    varXml = varXml & "<enderDest>"
    varXml = varXml & "<xLgr>CALLE BUENO No</xLgr>"
    varXml = varXml & "<nro>185</nro>"
    varXml = varXml & "<xCpl>CASSILLA POSTAL 401</xCpl>"
    varXml = varXml & "<xBairro>S/B</xBairro>"
    varXml = varXml & "<cMun>9999999</cMun>"
    varXml = varXml & "<xMun>EXTERIOR</xMun>"
    varXml = varXml & "<UF>EX</UF>"
    varXml = varXml & "<cPais>0973</cPais>"
    varXml = varXml & "<xPais>Bolivia</xPais>"
    varXml = varXml & "</enderDest>"
    varXml = varXml & "<indIEDest>9</indIEDest>"
    varXml = varXml & "</dest>"
        
        Set rs1 = DB.OpenRecordset("SELECT TbVendasDet.Produto, TbCadProd.Descricao, TbVendasDet.ValorUnit, " & _
        "TbVendasDet.Quantidade FROM TbCadProd INNER JOIN TbVendasDet ON TbCadProd.CodProd = TbVendasDet.Produto WHERE  CodVenda = " & rs!CodVenda & " ")
        
        i = 1
        Do While Not rs1.EOF 'Loop para gravar os dados da tbVendasDet (os produtos e afins)
            varXml = varXml & "<det nItem=" & """" & i & """" & ">"
            varXml = varXml & "<prod>"
            varXml = varXml & "<cProd>" & rs1("Produto") & "</cProd>"
            varXml = varXml & "<cEAN>0886112385989</cEAN>"
            varXml = varXml & "<xProd>" & rs1("Descricao") & "</xProd>"
            varXml = varXml & "<NCM>84719014</NCM>"
            varXml = varXml & "<CFOP>5102</CFOP>"
            varXml = varXml & "<uCom>UND</uCom>"
            varXml = varXml & "<qCom>" & Replace(Format(rs1("Quantidade"), "#0.0000"), ",", ".") & "</qCom>"
            varXml = varXml & "<vUnCom>" & Replace(Format(rs1("ValorUnit"), "#0.0000000000"), ",", ".") & "</vUnCom>"
            varXml = varXml & "<vProd>" & Replace(Format(rs1("ValorUnit") * rs1("Quantidade"), "#0.00"), ",", ".") & "</vProd>"
            varXml = varXml & "<cEANTrib>0886112385989</cEANTrib>"
            varXml = varXml & "<uTrib>UND</uTrib>"
            varXml = varXml & "<qTrib>1.0000</qTrib>"
            varXml = varXml & "<vUnTrib>" & Replace(Format(rs1("ValorUnit"), "#0.0000000000"), ",", ".") & "</vUnTrib>"
            varXml = varXml & "<indTot>1</indTot>"
            varXml = varXml & "</prod>"
             '-------------------impostos FALTA COLOCAR IMPOSTOS...-----------------'
            varXml = varXml & "<imposto>"
            varXml = varXml & "<ICMS>"
            varXml = varXml & "<ICMS20>"
            varXml = varXml & "<orig>7</orig>"
            varXml = varXml & "<CST>20</CST>"
            varXml = varXml & "<modBC>3</modBC>"
            varXml = varXml & "<pRedBC>41.1800</pRedBC>"
            varXml = varXml & "<vBC>156.48</vBC>"
            varXml = varXml & "<pICMS>17.0000</pICMS>"
            varXml = varXml & "<vICMS>26.60</vICMS>"
            varXml = varXml & "</ICMS20>"
            varXml = varXml & "</ICMS>"
            varXml = varXml & "<IPI>"
            varXml = varXml & "<cEnq>999</cEnq>"
            varXml = varXml & "<IPINT>"
            varXml = varXml & "<CST>53</CST>"
            varXml = varXml & "</IPINT>"
            varXml = varXml & "</IPI>"
            varXml = varXml & "<PIS>"
            varXml = varXml & "<PISAliq>"
            varXml = varXml & "<CST>01</CST>"
            varXml = varXml & "<vBC>379.98</vBC>"
            varXml = varXml & "<pPIS>1.6500</pPIS>"
            varXml = varXml & "<vPIS>6.27</vPIS>"
            varXml = varXml & "</PISAliq>"
            varXml = varXml & "</PIS>"
            varXml = varXml & "<COFINS>"
            varXml = varXml & "<COFINSAliq>"
            varXml = varXml & "<CST>01</CST>"
            varXml = varXml & "<vBC>379.98</vBC>"
            varXml = varXml & "<pCOFINS>7.6000</pCOFINS>"
            varXml = varXml & "<vCOFINS>28.88</vCOFINS>"
            varXml = varXml & "</COFINSAliq>"
            varXml = varXml & "</COFINS>"
            varXml = varXml & "</imposto>"
            varXml = varXml & "</det>"
            '----------------AQUI E O FIM DOS DADOS DO PRODUTOS, TUDO DEVE SER ADD A CIMA---------------'
        i = i + 1
        rs1.MoveNext
        Loop
    'Totais da NFe
    varXml = varXml & "<total>"
    varXml = varXml & "<ICMSTot>"
    varXml = varXml & "<vBC>0.00</vBC>"
    varXml = varXml & "<vICMS>0.00</vICMS>"
    varXml = varXml & "<vICMSDeson>0.00</vICMSDeson>"
    varXml = varXml & "<vBCST>0.00</vBCST>"
    varXml = varXml & "<vST>0.00</vST>"
    varXml = varXml & "<vProd>" & Replace(Format(Me.txtTotalBNF, "#0.00"), ",", ".") & "</vProd>"
    varXml = varXml & "<vFrete>0.00</vFrete>"
    varXml = varXml & "<vSeg>0.00</vSeg>"
    varXml = varXml & "<vDesc>" & Replace(Format(Nz(Me.txtDescontos, 0), "#0.00"), ",", ".") & "</vDesc>"
    varXml = varXml & "<vII>0.00</vII>"
    varXml = varXml & "<vIPI>0.00</vIPI>"
    varXml = varXml & "<vPIS>0.00</vPIS>"
    varXml = varXml & "<vCOFINS>0.00</vCOFINS>"
    varXml = varXml & "<vOutro>0.00</vOutro>"
    varXml = varXml & "<vNF>" & Replace(Format(Me.txtTotalNF, "#0.00"), ",", ".") & "</vNF>"
    varXml = varXml & "</ICMSTot>"
    varXml = varXml & "</total>"

    '-----------------------Dados Básicos do Transportador-----------------'
    varXml = varXml & "<transp>"
    varXml = varXml & "<modFrete>0</modFrete>"
    varXml = varXml & "<transporta>"
    varXml = varXml & "<xNome>NOME DA  TRANSPORTADORA</xNome>"
    varXml = varXml & "</transporta>"
    varXml = varXml & "<vol>"
    varXml = varXml & "<qVol>1</qVol>"
    varXml = varXml & "<pesoL>0.410</pesoL>"
    varXml = varXml & "<pesoB>0.410</pesoB>"
    varXml = varXml & "</vol>"
    varXml = varXml & "</transp>"
    '-----------------------FALTA OS DADOS Da COBRAÇA se houver-----------------'
    '-----------------------FALTA as Informaçoes Adicionais... <infAdic>-----------------'
    '-----------------------FALTA OS DADOS DA EXPORTAÇÃO se FOR O CASO-----------------'

    varXml = varXml & "</infNFe>"
    '-----------------------FALTA OS DADOS DA ASSINATURA DO XML <Signature Xmlns=...-----------------'
    varXml = varXml & "</NFe>"
    varXml = varXml & "<protNFe versao=" & """3.10""" & ">"
    varXml = varXml & "<infProt>"
    varXml = varXml & "<tpAmb>1</tpAmb>"
    varXml = varXml & "<verAplic>6.0</verAplic>"
    varXml = varXml & "<chNFe>" & Me.ChaveNFe & "</chNFe>" 'A chave da NFe
    varXml = varXml & "<dhRecbto>2017-02-03T18:23:20-02:00</dhRecbto>"
    varXml = varXml & "<nProt>152170667241354</nProt>"
    varXml = varXml & "<digVal>2qhZfVTlC2Tqz+RWdhXnbnJT0V4=</digVal>"
    varXml = varXml & "<cStat>100</cStat>"
    varXml = varXml & "<xMotivo>Autorizado o uso da NF-e</xMotivo>"
    varXml = varXml & "</infProt>"
    varXml = varXml & "</protNFe>"
    varXml = varXml & "</nfeProc>"
    'Essa e a ultima linha do xml... tudo a cima daqui!
    '-----------------------------------------------------------------------------------'
    Print #1, varXml
    'Fecha as conexoes
    rs.Close
    rs1.Close
    DB.Close
    Close #1
        
    MsgBox "A venda " & Me.CodVenda & " Foi exportada para o Aquivo: " & vbNewLine & strArquivo, vbInformation, ""

    End Sub
    Anexos
    Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access AttachmentGera XML NFe.zip
    23/02/2018 19:49
    Você não tem permissão para fazer download dos arquivos anexados.
    (77 Kb) Baixado 496 vez(es)


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    ManuelQuim
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 58
    Registrado : 29/10/2015

    Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access Empty Muito Bom!

    Mensagem  ManuelQuim 24/2/2018, 11:18

    Caro FabioPaes, os meus parabéns por mais uma boa Solução desenvolvida. Obrigado por partilhar mais conhecimento...
    avatar
    saulosa
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 21/06/2016

    Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access Empty Re: Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access

    Mensagem  saulosa 2/3/2018, 13:00

    cheers cheers cheers cheers

    Sensacional !!! Muito obrigado por compartilhar!!!
    avatar
    saulosa
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 21/06/2016

    Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access Empty Re: Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access

    Mensagem  saulosa 2/3/2018, 15:02

    Mestre @FabioPaes

    Primeiramente, Parabéns pelo modelo!!

    Mas quando eu fui importar a NF para o programa de emissor de nf, consta o seguinte erro:

    jar:http://conteudo.sebrae.com.br/Sebrae/Portal%20Sebrae/UFs/SP/nfe/v310/b001/producao/DSENView310.jar.pack.gz!/br/gov/sp/fazenda/dsen/view/resources/error.gif Venda_26.xml 51030026180203598658520001941546698176857173 Rejeitado Linha 1: O conteúdo do elemento 'NFe' não está completo. Um dos seguintes é experado: '{"http://www.portalfiscal.inf.br/nfe":infNFeSupl, "http://www.w3.org/2000/09/xmldsig#":Signature}'.

    Como eu poderia corrigir para conseguir importar com sucesso?

    Obrigado
    avatar
    saulosa
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 56
    Registrado : 21/06/2016

    Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access Empty Re: Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access

    Mensagem  saulosa 2/3/2018, 16:18

    Encontrei em um blog uma alternativa que sugere utilizar o assinador gratuito do SEFAZ ....

    Mas eu fiz o teste e também não deu certo

    Segue o link
    (https://www.)supersoft.com.br/blog/forums/topic/assinatura-e-autorizacao-da-nfe-utilizando-o-assinador-e-emissor-gratuito-da-sefaz/


    Última edição por Alexandre Neves em 3/3/2018, 10:15, editado 1 vez(es) (Motivo da edição : disfarçar a hiperligação)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access Empty Re: Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access

    Mensagem  Alexandre Neves 3/3/2018, 10:17

    Bom dia,
    saulosa, leia e respeite as regras, nomeadamente, a alínea 14


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    dlourencini
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 5
    Registrado : 13/05/2011

    Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access Empty Re: Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access

    Mensagem  dlourencini 27/3/2018, 22:10

    Prezados.

    Tem como gerar a nf-e em arquivo TXT ao invés de XML?
    O sistema de NFs da prefeitura de minha cidade só aceita importação de arquivos TXT.

    Grato.

    Conteúdo patrocinado


    Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access Empty Re: Gerar XML de Nota Fiscal Eletrônica - NFe pelo Access

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 17/5/2024, 11:58