Cómo importar todos los archivos dentro de una carpeta a su tabla de acceso

Comparte ahora:

Datos, datos, datos: sin ellos, una base de datos sería prácticamente inútil. Por eso, no sorprende que una de las preguntas más frecuentes sobre cómo importar datos a tus tablas de Access sea: ¿cómo puedo simplificar la importación de muchísimos archivos con regularidad? Al ser una tarea tan común, existen varias maneras de hacerlo, pero aquí nos centraremos en una, en mi opinión la más sencilla, sobre todo si lo haces con frecuencia o incluso con una periodicidad programada. Un poco de planificación (¡y digo un poco!) y algo de magia VBA, y listo. Sigue leyendo para empezar…

Importar todos los archivos de Excel en una carpeta

Importar archivo de Excel para accederPara este artículo, veremos la importación de varios archivos de Excel dentro de una carpeta determinada, pero podría importar fácilmente archivos csv, etc., en breve discutiremos cómo cambiar el código para manejar archivos csv.

En primer lugar, definamos qué queremos que haga el código:

"Queremos importar todos los archivos de una carpeta determinada a una tabla existente; también queremos especificar si los archivos tienen una línea de encabezado o no"

Parece bastante simple, así que veamos el código para hacer esto:

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

Comprobando problemas…

acceso a una base de datos corrupta.Antes de entrar en detalles sobre cómo funciona este código, es importante tener en cuenta que no se incluye una verificación de errores en el código anterior; esto es deliberado para que el código se mantenga fácilmente legible, pero le sugiero que agregue un código de manejo de errores a su base de datos para mantener las posibilidades de Acceder a la corrupción de la base de datos al mínimo!

OK, lo primero es lo primero. Para mantener el código lo más utilizable posible en diferentes circunstancias, estamos solicitando el nombre de la ruta (donde se almacenan los archivos), el nombre de la tabla en la que desea importar estos archivos y si los archivos de esta carpeta tienen todos un encabezado o no (es decir, los nombres de los campos aparecen en la primera fila de la hoja de cálculo).

Notará que la parte del código que busca archivos - Dir (ruta & “\ *. Xls”) - agrega un comodín y una extensión de archivo a la ruta proporcionada. Menciono esto porque sería muy fácil modificar el código si, por ejemplo, solo quisiera importar archivos que coincidan con una convención de nomenclatura en particular (por ejemplo, todos los archivos que tienen "enero" o "2017" como parte del nombre del archivo ). Si quisiera, podría incluso agregar ese filtro como parámetro a la llamada de subrutina.

De todos modos, si un archivo coincide con los criterios dados (cualquier archivo ".xls" en la carpeta que usa en este caso), inmediatamente intenta importar ese archivo usando el comando TransferSpreadsheet.

Dónde cambiar el código para adaptarlo a sus necesidades ...

Es en este punto que puede modificar el código para que, en lugar de importar una hoja de cálculo, importe archivos csv (utilizando el comando "TransferirTexto"), etc.

El código luego se repite hasta que no hay más archivos para importar en esa carpeta.

Es un pequeño fragmento de código, pero seguro que lo usarás una y otra vez.

Introducción del autor:

Mitchell Pond es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo reparar la corrupción de SQL y productos de software de recuperación de Excel. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.