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

1 comentario:

  1. hola que tal, copie tal y como esta el codigo, pero no me funciona, no me copia nada, puse atencion al detalle que comentaste pero no marca error, incluso no se tarda nada, solo como que parpadea el boton asociado al codigo.

    ResponderBorrar