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
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