Situação Problema…

Estava eu no escritório, quando fui criar uma rotina de automatização de um processo comercial, onde teria de gerar prévias de vendas a cada duas horas, a questão era que a única base que tinha vinha em um .ZIP que era gerado pelo ORACLE SIEBEL e enviado em meu e-mail… Nem imaginava eu que teria de atualizar a importação salva no access através do excel com vba…

Fiz toda a rotina para fazer a leitura do meus emails com VBA e quando recebesse o e-mail do SIEBEL a rotina salvava o anexo em uma pasta expecifica, com o VBA ele descompactava o arquivo que foi salvo do e-mail, renomeava ele e depois teria alguns tratamentos…

O grande “X” da questão é que quando subia estes dados do .TXT no Excel, importando os dados, todos os dados vinham com muitas colunas erradas, justamente por causa da regra de tabulação, onde faltavam algumas marcações que estragavam tudo…

Solução…

Sendo sincero, foi frustrante, mas pensei, pensei e pensei, e então resolvi partir para uma solução caseira (Me desculpem os apaixonados e defensores, não tenho intenção de ofender ou marginalizar a ferramenta), mas resolvi usar o ACCESS…

Hoje em dia em minhas rotinas não uso mais o Access, pois em muitas delas devido ao grande quantidade de volumes de dados, milhares e milhões de linhas, a ferramenta não suportaria, sem contar com inumeros outros motivos que só quem já trabalhou com o Access e também com o SQL sabe dizer, além de ter outras ferramentas como PowerQuery e até mesmo o Power Bi que podem ajudar muito…

Motivo da escolha…

Maaas, mesmo não sendo a minha primeira opção tive de recorrer ao mesmo pois precisava de uma coisa simples, prática, rápida e que não desse trabalho e que pudesse rodar com o VBA.

 

Foi quando fiz todo o meu processo e em uma etapa dele precisei Atualizar importação salva no access através do excel com vba, aquelas importações que você seleciona e clica em atualizar, como na imagem abaixo…

Atualizar importação salva dados externos acess com vba atraves do excel

Código…

Para fazer isso usei a rotina abaixo adapatada de uam dúvida postada no Stack Overflow, atenção para trocar o caminho da sua base de dados ACCESS e também o nome do processo de importação que vai atualizar…

Sub RodarImportacaoSalva()

'Abre o banco de dados e executa o procedimento
Set objAccess = CreateObject("Access.Application")

  If Not objAccess Is Nothing Then

    With objAccess

    'Troque o caminho abaixo pelo caminho do seu banco de dados e os XXXX da senha pela senha do seu banco.
    'Se seu banco não possuir senha apague o XXX

        .OpenCurrentDatabase "C:\2019\MinhaBase.accdb", False, "MS Access;PWD=XXXX"
        .DoCmd.SetWarnings False

       'Substitua base pelo nome da sua importação
        .DoCmd.RunSavedImportExport "BASE" 
        .DoCmd.SetWarnings True

      End With

   End If


'Fecha o Access
If Not objAccess Is Nothing Then
    With objAccess
        .CloseCurrentDatabase
        .Quit
    End With
End If

End Sub

Este foi um case real que aconteceu comigo e gostaria de colaborar pois sei que muitos irão precisar atualizar a importação salva no access através do excel com vba…

Caso saiba fazer isso de outra forma, tiver dúvidas, sugestões ou até mesmo críticas fico a disposição.

Um abraço!

Douglas Godoy




.

Sobre o Autor

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *