Copiar e zipar arquivos Xml
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Usuário Silva:
Boa noite!
Minha aplicação gera arquivos XML, que corresponde a cada nfe emitida e que são salvos na pasta NFe. Gostaria, que no início de cada mês, estes arquivos fossem compactados e enviados para a Contabilidade.
Suporte:
Silva, para compactar você pode utilizar o aplicativo WINRAR, executado pelo comando Shell do Access. Exemplo:
Faça o login aqui para ter acesso ao código.
Basta informar o nome do arquivo RAR e o nome do arquivo XML a ser compactado. Exemplo:
call fncZipar("e:\RedeAccess\Avelino\NfeXml.rar","e:\redeaccess\avelino\Nfe2101.xml")
No seu projeto, crie uma programação que realize um loop, para ir inserindo os arquivos XML no arquivo RAR. Vamos supor que você tenha as notas de 2100 a 2130 para zipar:
Dim k
For k = 2100 to 2130
call fncZipar("e:\RedeAccess\Avelino\NfeXml.rar","e:\redeaccess\avelino\Nfe" & k & ".xml")
next
Usuário Silva:
Grato, Avelino!
Peço ajuda em mais uma coisa: como fazer um loop pela tabela notas_fiscais, sabendo quais são a do período pesquisado e assim, selecionar os XML correspondentes?
Suporte:
Silva, utilize o Recordset. Algo assim:
Faça o login aqui para ter acesso ao código.
Usuário Silva:
Avelino, tentei aqui, mas deu algum erro. Até aparece ele fazendo a varredura e zipando (pelo menos exibe a tela do winrar - tirei a invisibilidade), porém, não grava nada na pasta onde teria que estar zipado. Não gera o arquivo zipado!
Suporte:
Silva, segue um exemplo para você testar. Descompacte numa pasta de teste. Abra o formulário frmTeste e clique no botão. Caso esteja tudo OK, irá compactar os arquivos XML que se encontram na pasta.
Nota: na função fncZiper() tem que saber aonde esta instalado o seu WINRAR. Se em "Program Files" ou se em "Program Files(86)".
Download
Usuário Silva:
Resolvido. Muito obrigado!
Só um adendo, Avelino: o erro ocorreu devido a minha pasta ter espaço entre os nomes: "XML<espaço>AUTORIZADO", pois quando coloco "XML_AUTORIZADO" ele funciona. Tem como o código reconhecer este espaço?
Suporte:
Silva, utilize o chr(34) para delimitar o nome com Aspas. Parte em vermelho.
Faça o login aqui para ter acesso ao código.
Usuário Silva:
Perfeito Avelino!
Não há comentário |