Una simple rutina que sirve para importar un rango de filas y columnas de un fichero de Excel a una tabla en una base de datos de Access.

Había probado de multitud de maneras encontradas por internet, ejecutando una macro desde Excel y llamándola desde Visual, intentando crear una macro en access para llamarla desde visual y otros casos mas extraños aún.

La solución era mucho mas sencilla de lo que me esperaba, mediante la biblioteca de ADO.
[vb]
Call ImportadelExcel(fichero, App.Path & “\midb.mdb”, “ImpExcel”)
[/vb]
En el siguiente procedimiento las variables que necesita:

  • sFichero es el fichero Excel que quiero importar
  • DS es el DataSource o ruta a la base de datos que va a importar
  • sTablaDestino el nombre de la tabla que se creará con los datos del Excel

[vb]
Sub ImportadelExcel(sFichero As String, DS As String, sTablaDestino As String)

Dim sTablaOrigen As String
Dim sConnect As String, sSQL As String
Dim cnnActiva As ADODB.Connection

‘ Establezco la conexión con la base de datos de Access,
‘ la cual será la base de datos “Activa”
Set cnnActiva = New ADODB.Connection
cnnActiva.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source=” & DS & “;”

‘Rango que quiero importar dela hoja Sheet1
sTablaOrigen = “[Sheet1$A1:C1500]”

‘ Importo la tabla a la base de datos “Activa”
sConnect = “‘” & sFichero & “‘ ‘Excel 8.0;HDR=Yes;’”

sSQL = “SELECT * INTO ” & sTablaDestino & ” FROM ” & sTablaOrigen & ” IN ” & sConnect
cnnActiva.Execute sSQL

‘ Cierro la conexión
cnnActiva.Close
End Sub
[/vb]


Vota este artículo:
1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (No Ratings Yet)
Loading ... Loading ...

Posts anterior y posterior: