Exportar una tabla mediante ADO

18/03/2005 - 06:30 por Fabian | Informe spam
Hola a todos!
Estoy tratando de exportar desde excel haciendo una tabla nueva en access,
encontre esto en la red, pero me encuentro que tengo un error en la
declaracion: Dim cnnActiva As ADODB.Connection.
Tambien KL me habia enviado un codigo que tiene una declaracion similar y me
da el mismo error, por lo que deduzco que me debe faltar alguna referencia o
algo, en definitiva lo que quiero hacer es una base de datos en access con
el rango A1:K20000 de la hoja1. Gracias.



Por Enrique Martínez Montejo «SoftJaén»
[MS MVP - VB]
En esta ocasión se trata de abrir una conexión con la hoja de cálculo de
Excel y exportar los datos desde la misma hoja, creando una nueva tabla en
una base de datos de Access. Mediante la biblioteca de ADO, vamos a exportar
los datos de una hoja de cálculo:

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

' Establezco la conexión con la base de datos externa
Set cnnActiva = New ADODB.Connection
cnnActiva.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Mis documentos\Libro1.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""

sTablaDestino = "[Tabla Importada desde Excel]"
sTablaOrigen = "[WorkSheet1$]"

' Construimos la consulta SQL
sConnect = " 'C:\Mis documentos\Bd1.mdb' "
sSQL = "SELECT * INTO " & sTablaDestino & " IN " & sConnect & " FROM " &
sTablaOrigen

' Exportamos la tabla a una base de datos Access
cnnActiva.Execute sSQL

' Cierro la conexión
cnnActiva.Close

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
18/03/2005 - 08:52 | Informe spam
Probablemente te falte establecer la referencia a la biblioteca de ADO. Lo puedes hacer (estando, obviamente, en el editor de VBA) desde Herramientas > Referencias, marcando la referencia "Microsoft ActiveX Data Objects X.x Library, donde X.x es la más alta que tengas (normalmente será la 2.7).
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Fabian" escribió en el mensaje news:
Hola a todos!
Estoy tratando de exportar desde excel haciendo una tabla nueva en access,
encontre esto en la red, pero me encuentro que tengo un error en la
declaracion: Dim cnnActiva As ADODB.Connection.
Tambien KL me habia enviado un codigo que tiene una declaracion similar y me
da el mismo error, por lo que deduzco que me debe faltar alguna referencia o
algo, en definitiva lo que quiero hacer es una base de datos en access con
el rango A1:K20000 de la hoja1. Gracias.



Por Enrique Martínez Montejo «SoftJaén»
[MS MVP - VB]
En esta ocasión se trata de abrir una conexión con la hoja de cálculo de
Excel y exportar los datos desde la misma hoja, creando una nueva tabla en
una base de datos de Access. Mediante la biblioteca de ADO, vamos a exportar
los datos de una hoja de cálculo:

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

' Establezco la conexión con la base de datos externa
Set cnnActiva = New ADODB.Connection
cnnActiva.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Mis documentos\Libro1.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""

sTablaDestino = "[Tabla Importada desde Excel]"
sTablaOrigen = "[WorkSheet1$]"

' Construimos la consulta SQL
sConnect = " 'C:\Mis documentos\Bd1.mdb' "
sSQL = "SELECT * INTO " & sTablaDestino & " IN " & sConnect & " FROM " &
sTablaOrigen

' Exportamos la tabla a una base de datos Access
cnnActiva.Execute sSQL

' Cierro la conexión
cnnActiva.Close




Respuesta Responder a este mensaje
#2 KL
18/03/2005 - 09:34 | Informe spam
Hola Fabian,

Fernando ya ha contestado tu consulta. Tambien para mas informacion revisa
los siguientes enlaces:

COMO: Usar ADO con datos de Excel desde Visual Basic o desde VBA
http://support.microsoft.com/kb/257819/es

Ejemplos de conexiones (KL: muy util !!!!!)
http://www.erlandsendata.no/english...t=envbadac

Ejemplos de conexiones
http://www.able-consulting.com/tech.htm

Saludos,
KL
Respuesta Responder a este mensaje
#3 Fabian
18/03/2005 - 11:50 | Informe spam
Ya funciona, no tengo absolutamente nada de experiencia con ADO, tengo que
ejercitar, esta es mi base para pasarme del excel al access. Gracias por la
ayuda.

Sub test() 'Crea una base de datos nueva en access, desde un rango de
excel.
Dim sTablaOrigen As String, sTablaDestino As String
Dim sConnect As String, sSQL As String
Dim cnnActiva As ADODB.Connection
Set cnnActiva = New ADODB.Connection
cnnActiva.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Mis documentos\Libro1.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""
sTablaDestino = "[Tabla1]"
sTablaOrigen = "[Hoja1$A1:K20000]"
sConnect = " 'C:\Mis documentos\Bd1.mdb' "
sSQL = "SELECT * INTO " & sTablaDestino & " IN " & sConnect & " FROM " &
sTablaOrigen
cnnActiva.Execute sSQL
cnnActiva.Close
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida