lunes, 12 de diciembre de 2016

Como exportar gran cantidad de datos de Excel a Access con VBA

Hace unos momentos, estaba trabajando en la importación de datos de Excel a Access para uno de mis clientes. Pero como la tabla de Excel tenía gran cantidad de información (mas de 500 mil filas y mas de 40 columnas) el proceso era muy lento y en algunos momentos la computadora no respondía.

Ante esto me puse a investigar si había alguna forma de hacerlo mucho mas rápido y encontré el siguiente código:

Sub AccImport()
    Dim acc As New Access.Application

    acc.OpenCurrentDatabase "C:\Users\enrique\BaseDatos.accdb"

    acc.DoCmd.TransferSpreadsheet _
            TransferType:=acImport, _
            SpreadSheetType:=acSpreadsheetTypeExcel12Xml, _
            TableName:="Prueba", _
            Filename:=Application.ActiveWorkbook.FullName, _
            HasFieldNames:=True

    acc.CloseCurrentDatabase
    acc.Quit

    Set acc = Nothing

End Sub

Este código lo que hace es abrir el Access e importar la hoja que tengo directamente a la tabla Prueba. Un detalle importante es que la tabla y la hoja de Excel tengan la misma cantidad de columnas y la misma estructura.

Sintaxis del Método DoCmd.TransferSpreadsheet

DoCmd.TransferSpreadsheet(TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range)


Espero que les sirva.

Ing. Enrique Neciosup Morales