Importar excel a access con dos pestañas diferentes

Tengo un fichero excel que se llama FICHERO.xlsx en el cual hay dos pestañas una que se llama EXTRACCIÓN BASICA y otra que se llama SITUACIONES HISTORICO. Y una base de datos en la cual tengo creado dos tablas EXTRACCIÓN BÁSICA_tmp y SITUACIONES HISTORICO_tmp. Lo que me gustaría que hiciera es que al darle a un botón se abriese el navegador de windows para seleccionar el fichero ya que no siempre estará depositado el excel en la misma ubicación y por otro lado que en el mismo código importase las dos pestañas a sus tablas correspondientes. Es un caso que no se me ha dado nunca puesto que habitualmente para hacer importaciones siempre era sobre una sola pestaña en excel y en este caso son dos.

1 Respuesta

Respuesta
2

Este código le sirve, lo puede llamar desde un botón en el evento "Al hacer clic"

Private Sub btnImportar_Click()
Dim i As Integer
Dim FileName As String
' Requiere referencia a Microsoft Office 11.0 Object Library.
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
     .InitialFileName = CurrentProject.Path & "\FICHERO.xlsx"
     .InitialView = msoFileDialogViewDetails
     .AllowMultiSelect = False
     .Title = "Seleccione el archivo"
     .Filters.Clear
     .Filters.Add "FICHERO", "*.xlsx"
    If .Show = True Then
     FileName = .SelectedItems(1)
    Else
     MsgBox "Ha cancelado la operación.", vbInformation, "Importar Excel a Access"
     Exit Sub
    End If
End With
 If Len(FileName) > 0 Then 'Comprobamos que se haya seleccionado correctamente el archivo.
        FileName = fDialog.InitialFileName
        DoCmd. TransferSpreadsheet acImport, 10, "EXTRACCIÓN BÁSICA_tmp", FileName, True, "EXTRACCIÓN BASICA!"
        DoCmd. TransferSpreadsheet acImport, 10, "SITUACIONES HISTORICO_tmp", FileName, True, "SITUACIONES HISTORICO!"
        If Err.Number = 0 Then
          MsgBox "Hojas importadas OK", vbInformation, "Le informo"
        End If
  Else
    MsgBox "No ha seleccionado un archivo para procesar.", vbInformation, "Importar Excel a Access"
End If
End Sub

Puede suprimir la línea
Dim i AS Integer

En primer lugar gracias. He quitado estos dos y me sigue dando error

Dim i As Integer
Dim FileName As String

Bueno quité solamente el primero y al darme error quité los dos. el error que me sale es éste. 

Eso indica que no ha hecho referencia a la librería Microsoft Office 16.0 Object Library..

Vaya a Herramientas, Referencia y active la casilla de esta referencia. Observe la imagen.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas