Como importar todos os arquivos dentro de uma pasta para sua tabela de acesso

Compartilhe agora:

Dados, dados, dados – sem eles, um banco de dados seria praticamente inútil. Portanto, não é surpresa que uma das perguntas mais frequentes quando se trata de importar dados para suas tabelas do Access seja: como posso facilitar minha vida quando preciso importar muitos (muitos!) arquivos regularmente? Como é uma tarefa tão comum, obviamente existem várias maneiras de fazer isso, mas aqui vamos analisar apenas uma – na minha opinião, a mais fácil – especialmente se você faz isso regularmente ou até mesmo em um cronograma. Um pouco de planejamento (e eu digo pouco mesmo!) e um pouco de mágica com VBA e você estará pronto para começar – continue lendo para saber como começar…

Importando todos os arquivos do Excel em uma pasta

Importar arquivo do Excel para acessarPara este artigo, veremos a importação de vários arquivos do Excel em uma determinada pasta, mas você pode facilmente importar arquivos csv etc. Discutiremos como alterar o código para lidar com arquivos csv em breve.

Primeiramente, vamos definir o que queremos que o código faça:

“Queremos importar todos os arquivos de uma determinada pasta para uma tabela existente – também queremos especificar se os arquivos têm uma linha de cabeçalho ou não”

Parece bastante simples, então vamos ver o código para fazer isso:

Sub ImportfromPath(path As String, intoTable As String, hasHeader As Boolean)

Dim fileName As String

'Loop through the folder & import each file
fileName = Dir(path & "\*.xls")
While fileName <> ""
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, intoTable, path & fileName, hasHeader
   'check whether there are any more files to import
    fileName = Dir()
Wend

End Sub

Verificando problemas…

Acesse a corrupção do banco de dadosAntes de entrarmos em detalhes sobre como esse código funciona, é importante observar que não há verificação de erros incluída no código acima - isso é deliberado para que o código seja facilmente legível, mas sugiro fortemente que você adicione código de tratamento de erros ao seu banco de dados para manter as chances de Corrupção do banco de dados de acesso ao mínimo!

OK - as primeiras coisas primeiro. Para manter o código utilizável em diferentes circunstâncias, pedimos o nome do caminho (onde os arquivos estão armazenados), o nome da tabela para a qual você deseja importar esses arquivos e se todos os arquivos nesta pasta têm um cabeçalho ou não (ou seja, os nomes dos campos aparecem na primeira linha da planilha).

Você notará que a parte do código que procura arquivos – Dir(path & “\*.xls”) – acrescenta um curinga e uma extensão de arquivo ao caminho fornecido. Menciono isso porque seria muito fácil alterar o código se, por exemplo, você quisesse apenas importar arquivos que correspondam a uma convenção de nomenclatura específica (por exemplo, todos os arquivos que tenham “janeiro” ou “2017” como parte do nome do arquivo ). Você poderia, se quisesse, até adicionar esse filtro como parâmetro para a chamada da sub-rotina.

De qualquer forma, se um arquivo corresponder aos critérios fornecidos (qualquer arquivo “.xls” na pasta usando o neste caso), ele imediatamente tenta importar esse arquivo usando o comando TransferSpreadsheet.

Onde alterar o código para atender às suas necessidades…

É neste ponto que você pode alterar o código para que, em vez de importar uma planilha, importe arquivos csv (usando o comando “TransferText”) etc.

O código faz um loop até que não haja mais arquivos para importar nessa pasta.

É um pequeno pedaço de código, mas que você se verá usando repetidamente, tenho certeza!

Introdução do autor:

Mitchell Pond é um especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo reparar corrupção de SQL e produtos de software de recuperação do Excel. Para mais informações visite www.datanumen.com

Compartilhe agora:

Comentários estão fechados.