exportar de excel a access (porrrrrsupuesto con VB)

31/05/2006 - 11:53 por xabi | Informe spam
Buenas!!!
Aqui sigo pegandome con el Visual.Lo que intento hacer aora es exportar
una tabla de Excel a Access.Anteriormente he comprobado que los campos estan
en el orden adecuado(menos una columna en la tabla access llamanada id para
identificar cada grupo nuevo que importo)
Es decir:
tabla access
id lote sublote denominacion
tabla excel
lote sublote denominacion

Lo que quiero aora es rellenar mi tabla de acces con los datos que el
usuario a matido en el EXCEL.He encontrado varias maneras pero no se si sera
cosa de la configuracion de la conexion pero no hace nada.La que mas me
atraia era la de INSERT INTO tabla access IN ruta SELECT * FROM Hoja1$
pero no he conseguido nada.Mi ruta la tengo en una variable que se llama
NombreArchivo.Trabajo con un projecto de access(*.adp).
Alguien sabe como hacer esto?
Mi conexio al EXCEL es esta:
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source = " + NombreArchivo
.Properties("Extended Properties") = "Excel 8.0;HDR=Yes"
.Open
End With

lo hago al principio del projecto visual y no la vuelvo a cambiar...le falta
algo para poder hacer la exportacion?
muchisimas gracias como siempre!!!
:):)

Preguntas similare

Leer las respuestas

#1 xabi
31/05/2006 - 18:52 | Informe spam
lo que descubre uno cada dia...esto es por mandarme un proyecto sobre cosas
que desconozco...
como siempre mil gracias...voy a intentar esto y os cuento.
Eva...no entiendes nada?Yo tampoco,que locuraes broma...gracias por
leerme,haber si lo soluciono.

"SoftJaén" escribió en el mensaje
news:
"xabi" escribió:

> Lo que quiero aora es rellenar mi tabla de acces con los datos
> que el usuario a matido en el EXCEL.
> Trabajo con un projecto de access(*.adp).

Xabi, si trabajas con un proyecto de Access, tu tabla NO ES de Access: es


de
una base de datos de SQL Server, y por tanto, la sintaxis SQL que intentas
ejecutar, no sirve para insertar los datos en dicha tabla. Para una base
*.mdb, funciona estupendamente, siempre y cuando encierres el nombre de la
hoja de cálculo entre corchetes ( ... FROM [Hoja1$]), pero para importar


los
datos a una base de datos de SQL Server, necesitarás utilizar el lenguaje
T-SQL propio de Microsoft SQL Server.

En el siguiente enlace encontrarás la manera de llevar a cabo la


importación
de datos.

Cómo importar datos a SQL Server desde distintos orígenes de datos
http://mvp-access.com/softjaen/base...ado017.htm

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado


o
sugerido en el presente mensaje.



Respuesta Responder a este mensaje
#2 xabi
31/05/2006 - 19:32 | Informe spam
yo es que debo de ser un poquillo patan pero no sale Enrique,te posteo lo
que he puesto EXACTAMENTE:

cnn.Open
sql = "SELECT * INTO hdi_reducido" & "FROM OPENROWSET(" &
"'Microsoft.Jet.OLEDB.4.0'," & "'Excel 8.0;Database='+NombreArchivo," &
"'SELECT * FROM [Hoja1$]')"
cnn.Execute sql

pero nada...aqui no pasa nada...bueno si...que me desespero...jajajaja.

"SoftJaén" escribió en el mensaje
news:
"xabi" escribió:

> Lo que quiero aora es rellenar mi tabla de acces con los datos
> que el usuario a matido en el EXCEL.
> Trabajo con un projecto de access(*.adp).

Xabi, si trabajas con un proyecto de Access, tu tabla NO ES de Access: es


de
una base de datos de SQL Server, y por tanto, la sintaxis SQL que intentas
ejecutar, no sirve para insertar los datos en dicha tabla. Para una base
*.mdb, funciona estupendamente, siempre y cuando encierres el nombre de la
hoja de cálculo entre corchetes ( ... FROM [Hoja1$]), pero para importar


los
datos a una base de datos de SQL Server, necesitarás utilizar el lenguaje
T-SQL propio de Microsoft SQL Server.

En el siguiente enlace encontrarás la manera de llevar a cabo la


importación
de datos.

Cómo importar datos a SQL Server desde distintos orígenes de datos
http://mvp-access.com/softjaen/base...ado017.htm

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado


o
sugerido en el presente mensaje.



Respuesta Responder a este mensaje
#3 SoftJaén
31/05/2006 - 22:14 | Informe spam
"xabi" escribió:

yo es que debo de ser un poquillo patan pero no sale Enrique



Te has hecho la "pìcha un lío" con los espacios en blanco, las comillas
simples y la concatenación de las cadenas alfanuméricas.

Se supone que la conexión (cnn) la has efectuado con la base de datos de SQL
Server. Si es así, para crear una nueva tabla en la base de SQL Server,
ejecuta la consulta de creación de tabla EXACTAMENTE de la siguiente manera:

Dim sql As String
Dim NombreArchivo As String

NombreArchivo = "C:\Mis documentos\Libro1.xls"

sql = "SELECT * INTO hdi_reducido " & _
"FROM OPENROWSET(" & _
"'Microsoft.Jet.OLEDB.4.0'," & _
"'Excel 8.0;Database=" & NombreArchivo & "'," & _
"'SELECT * FROM [Hoja1$]')"

cnn.Execute sql, , adCmdText + adExecuteNoRecords

Observa el espacio en blanco que dejo entre el nombre de la tabla
(hdi_reducido) y la cláusula FROM. Si no dejas un espacio en blanco, o una
combinación de retorno de carro y avance de línea (vbCrLf), obtendrás un
error de sintaxis porque no has especificado la cláusula FROM, dado que ésta
se une al nombre de la tabla que deseas crear.

Y un consejo: para concatenar cadenas, utiliza el signo & en lugar del signo
+. Te aseguro que te ahorrarás algún que otro dolor de cabeza.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#4 Eva
01/06/2006 - 08:58 | Informe spam
A ver, mi chico, que ya voy entendiendo algo

Me pai que tú has oído campanas, vaya usté a saber dónde, sobre vincular una
hoja Excel a Access y trabajar sobre ella como si fuera una tabla. Y eso va
a ser cierto y muy cómodo, pero imposible con un ADP

Tu solución es importar primero la hoja a una tabla, y después trabajar con
ella. ¿Cómo? Te copio un trocito de ayuda del método TransferSpreadSheet

Método TransferSpreadsheet


El método TransferSpreadsheet lleva a cabo la acción TransferirHojaCálculo
en Visual Basic. Para obtener más información acerca de cómo funcionan la
acción y sus argumentos, consulte el tema de la acción.

Sintaxis

DoCmd.TransferSpreadsheet [tipotransferencia][, tipohojacálculo],
nombretabla, nombrearchivo[, contienenombresdecampos][, intervalo]

Suerte!


"xabi" escribió en el mensaje
news:
lo que descubre uno cada dia...esto es por mandarme un proyecto sobre
cosas
que desconozco...
como siempre mil gracias...voy a intentar esto y os cuento.
Eva...no entiendes nada?Yo tampoco,que locuraes broma...gracias por
leerme,haber si lo soluciono.

"SoftJaén" escribió en el mensaje
news:
"xabi" escribió:

> Lo que quiero aora es rellenar mi tabla de acces con los datos
> que el usuario a matido en el EXCEL.
> Trabajo con un projecto de access(*.adp).

Xabi, si trabajas con un proyecto de Access, tu tabla NO ES de Access: es


de
una base de datos de SQL Server, y por tanto, la sintaxis SQL que
intentas
ejecutar, no sirve para insertar los datos en dicha tabla. Para una base
*.mdb, funciona estupendamente, siempre y cuando encierres el nombre de
la
hoja de cálculo entre corchetes ( ... FROM [Hoja1$]), pero para importar


los
datos a una base de datos de SQL Server, necesitarás utilizar el lenguaje
T-SQL propio de Microsoft SQL Server.

En el siguiente enlace encontrarás la manera de llevar a cabo la


importación
de datos.

Cómo importar datos a SQL Server desde distintos orígenes de datos
http://mvp-access.com/softjaen/base...ado017.htm

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado


o
sugerido en el presente mensaje.







Respuesta Responder a este mensaje
#5 xabi
01/06/2006 - 10:40 | Informe spam
ejem...la conxion a la base de datos de access la hacia asi(y me quedaba tan
pantxo):
Dim cnn_ac As ADODB.Connection
Set cnn_ac = CurrentProject.Connection
(ni siquiera hago un open)

como que igual me falta algo no?

He visto que se puede hacer asi:

Set cnn_ac = New ADODB.Connection
cnn_ac.Open "Provider=SQLOLEDB; " & _
"Initial Catalog=hdi_reducido; " & _
"Data Source=(local)\NETSDK; " & _
"integrated security=SSPI; persist security info=True;"

PERO si hago esto hay un parte del proyecto que me falla...la famosa parte
de comparacion de dos recordsets.
La cuestion es que de la manera que lo tengo puedo leer de la base de datos
los campos y escribir en el excel pero no se que pasa que al reves es una
locura.

porque estareis no se donde,sino os invitaba a una cena...y asi os
preguntaba mas cosas...jajaja.

la cuestion es...yo creo que falla la conexion porque tu codigo(Enrique) no
puede estar mal(ta mal decirlo pero es asi...:)).
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida