Nunca se me dió el caso, pero encontré un sencillo código que hace lo que buscas.
1) Crea una base de datos nueva
2) Crea una tabla con nombre "ImportarXLS"
3) Crea un Formulario con nombre "FormularioImportar" y genera un botón
4) Para el evento "Al hacer click" genera el siguiente código. Es el código para todo el formulario, el botón tiene como nombre "importar"
Option Compare Database
Dim Var As String
Dim ruta, tabla, hoja As String
Private Sub importar_Click()
' Variables
ruta = "C:\excel\importar.xls"
tabla = "ImportarXLS"
hoja = "Hoja1!"
' borrar contenido del cursor
Var = "drop table " & tabla
EjecutaVar
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, tabla, ruta, True, hoja
'DoCmd.TransferSpreadsheet acImport, 8, tabla, ruta, True, hoja
End Sub
Sub EjecutaVar()
With DoCmd
.SetWarnings False
.RunSQL Var
.SetWarnings True
End With
End Sub
y listo.
Una explicación rápida del código:
Primero generamos las variables globales.
En el evento CLICK del botón "importar" tenemos la ruta del archivo que vamos a importar, ha de ser la ruta completa en nuestro equipo, la tabla sobre la que vamos a importar y la hoja del excel que vamos a importar.
Ejecutamos un SQL para borrar por completo la tabla sobre la que vamos a importar, ya que los campos han de ser exactos. Si no borramos y los campos están correctamente en la tabla y el excel añade todos los registros del excel.
Aquí viene la clave del asunto:
DoCmd. TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, tabla, ruta, True, hoja
Esta es la línea que nos importa los datos. Creo que es sencilla de entender, solo tienen que estar los datos tabla, ruta y hoja correctamente.
Espero que sea suficiente, si tienes alguna duda ya sabes donde ando.
excelente, gracias por la explicación, funciona de maravilla - Jorge Bladimir Chavez Diaz