Vamos a ver cómo podemos importar en Microsoft Access datos procedentes de una hoja de cálculo de Microsoft Excel. Esto es muy útil cuando creamos plantillas en Excel y queremos que con un simple clic se importen todos los registros en una tabla.
Para ello, he creado el archivo Plantilla.xlsx con registros que queremos importar en la tabla Productos de Access que en principio se encuentra vacía.
Además, he creado un formulario con un botón que será el encargado de realizar esta tarea.
A continuación, os dejo el código que hay detrás de este botón,
Private Sub Importar_Click()
'Requiere referencia a Microsoft Office 16.0 Object Library
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
'Configuramos el diálogo para elegir el archivo de Excel
With fDialog
'Configuramos la ruta inicial, que sea la misma de la ubicación del achivo Access
.InitialFileName = Application.CurrentProject.Path
'Permitimos a los usuarios seleccionar varios archivos
.AllowMultiSelect = True
'Título del diálogo
.Title = "Seleccione un archivo"
'Limpiamos los archivos actuales, para que se seleccione el archivo deseado
.Filters.Clear
.Filters.Add "Excel", "*.xlsx"
'Si el usuario pulsa Cancelar
If .Show = False Then
MsgBox "Ha cancelado la operación.", vbInformation, "Importar Excel a Access"
GoTo x
End If
End With
'Comprobamos que se haya seleccionado correctamente el archivo
If (FileName = False) Then
'Se asigna la ruta de los archivos seleccionados de acuerdo al loop
For i = 1 To fDialog.SelectedItems.Count
FileName = fDialog.SelectedItems(i)
DoCmd.SetWarnings False
'Seleccionamos los datos a transferir
DoCmd.TransferSpreadsheet acImport, 10, "Productos", FileName, True, "Hoja1!A1:C50"
Next i
Else
MsgBox "No ha seleccionado un archivo para procesar.", vbInformation, "Importar Excel a Access"
End If
MsgBox "Importación finalizada"
DoCmd.SetWarnings True
x:
End Sub
Al pulsar el botón Importar, se abrirá un cuadro de diálogo para que seleccionemos el archivo Excel (plantilla). Es importante reseñar que los encabezados de los campos en la hoja Excel deben tener el mismo nombre que los campos de la tabla Access.
Seleccionamos el archivo Productos.xlsx, y nos aparecerá un mensaje de proceso terminado. Si abrimos ahora la tabla Productos, veremos cómo se han traspasado todos los registros desde la plantilla Excel a nuestra tabla de Access.
Espero que con este ejemplo hayas aprendido a importar datos desde una hoja Excel a una tabla de Microsoft Access. Descárgate el archivo de ejemplo y practica.
Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.
Hasta la próxima.
Si te ha servido y quieres donar
Descarga el archivo del ejemplo
Últimas publicaciones
0 comentarios