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

#31 SoftJaén
05/06/2006 - 15:33 | Informe spam
"xabi" preguntó:

como se haria para insertar en el campo "id" el resultado de
una variable(nuevo_id)?




¿Por casualidad le has echado un vistazo al manual de "primeros auxilios"
que te indiqué? En el capítulo referido a las «Consultas de acción», tienes
la sintaxis SQL necesaria para ejecutar una consulta INSERT INTO para añadir
un único registro. Pero en fin, aquí tienes la sintaxis para añadir el valor
de la variable al campo ID:

sql = "INSERT INTO hdi_reducido (ID) " & _
"IN ''[ODBC;Driver={SQL Server};" & _
"Server=ALEB2B;" & _
"Database=master;" & _
"UID=sa;" & _
"PWD=manager] " & _
"VALUES (" & nuevoid & ")"

Procura dejar los espacios en blanco correspondientes, entre las palabras
clave del lenguaje SQL.

y luego para seguir insertando datos en la misma fila en la que has
insertado esas variable?Es decir:obtengo el nombre de la variable,la
inserto y luego en esa misma fila de datos sigo insertando los datos
que leo de otra fuente.



¡Hombre! Ya que insertas el valor de un campo (ID), puedes aprovechas la
misma consulta para asignarle el valor al resto de los campos de la fila o
registro.

Pero ésta vez, me vas a disculpar, porque te voy a remitir al manual de
"primeros auxilios" para ver si por tí mismo eres capaz de añadir todos los
campos a la fila, de una sola pasada, ya que pienso que poco vas a aprender
si todo te lo damos hecho. ;-)

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
#32 xabi
06/06/2006 - 09:45 | Informe spam
voy a intentarlo!! :)
Respuesta Responder a este mensaje
#33 xabi
06/06/2006 - 12:00 | Informe spam
bueno...lo he intentado...de veras...pero no sale:
He intentado añadir registros a mi consulta tal y como aparece en la "guia
de auxilio":

sql = "INSERT INTO hdi_reducido " & _
"IN ''[ODBC;Driver={SQL Server};" & _
"Server=ALEB2B;" & _
"Database=upi;" & _
"UID=sa;" & _
"PWD=manager] " & _
"SELECT * FROM [Hoja1$]"

sql2 = "INSERT INTO sql(id)" & _
"IN ''[ODBC;Driver={SQL Server};" & _
"Server=ALEB2B;" & _
"Database=upi;" & _
"UID=sa;" & _
"PWD=manager] " & _
"VALUES (" & nuevo_id & ")"

' Ejecutamos la consulta
cnn.Execute sql, , adCmdText + adExecuteNoRecords

id va delante de todos los demas campos...
seguro que será algun cambio chorrapero lo he intentado de mil maneras
pero nada...
enfin...sopitas.


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

> como se haria para insertar en el campo "id" el resultado de
> una variable(nuevo_id)?
>

¿Por casualidad le has echado un vistazo al manual de "primeros auxilios"
que te indiqué? En el capítulo referido a las «Consultas de acción»,


tienes
la sintaxis SQL necesaria para ejecutar una consulta INSERT INTO para


añadir
un único registro. Pero en fin, aquí tienes la sintaxis para añadir el


valor
de la variable al campo ID:

sql = "INSERT INTO hdi_reducido (ID) " & _
"IN ''[ODBC;Driver={SQL Server};" & _
"Server=ALEB2B;" & _
"Database=master;" & _
"UID=sa;" & _
"PWD=manager] " & _
"VALUES (" & nuevoid & ")"

Procura dejar los espacios en blanco correspondientes, entre las palabras
clave del lenguaje SQL.

> y luego para seguir insertando datos en la misma fila en la que has
> insertado esas variable?Es decir:obtengo el nombre de la variable,la
> inserto y luego en esa misma fila de datos sigo insertando los datos
> que leo de otra fuente.

¡Hombre! Ya que insertas el valor de un campo (ID), puedes aprovechas la
misma consulta para asignarle el valor al resto de los campos de la fila o
registro.

Pero ésta vez, me vas a disculpar, porque te voy a remitir al manual de
"primeros auxilios" para ver si por tí mismo eres capaz de añadir todos


los
campos a la fila, de una sola pasada, ya que pienso que poco vas a


aprender
si todo te lo damos hecho. ;-)

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
#34 SoftJaén
06/06/2006 - 14:51 | Informe spam
"xabi" escribió:

bueno...lo he intentado...de veras...pero no sale:
He intentado añadir registros a mi consulta tal y como aparece en la "guia
de auxilio":

sql2 = "INSERT INTO sql(id)" & _
"IN ''[ODBC;Driver={SQL Server};" & _
"Server=ALEB2B;" & _
"Database=upi;" & _
"UID=sa;" & _
"PWD=manager] " & _
"VALUES (" & nuevo_id & ")"




¡Ay, Xabi! ¿Como pretendes insertar registros con la consulta anterior?
¿Donde está el nombre de la tabla «hdi_reducido»?

Imáginate que tanto en la tabla «hdi_reducido», como en la hoja de cálculo
de Excel, tienes tres campos llamados ID, Nombre y CIF respectivamente. Para
insertar un único registro, ejecutarías la consulta de la siguiente manera:

Dim sql2 As String

sql2 = "INSERT INTO hdi_reducido(IdCliente, Nombre, CIF)" & _
"IN ''[ODBC;Driver={SQL Server};" & _
"Server=ALEB2B;" & _
"Database=upi;" & _
"UID=sa;" & _
"PWD=manager] " & _
"VALUES (1234, 'Xabi', '99999999X')"

cnn.Execute sql2, , adCmdText + adExecuteNoRecords

Como verás, la lista de campos va detrás del nombre de la tabla, encerrada
entre paréntesis, y separando los nombres de los campos por una coma.
Igualmente, la lista de valores deberás especificarla del mismo modo,
teniendo en cuenta que los campos alfanuméricos, deben de ir encerrados
entre comillas simples.

Si en lugar de valores, les quieres asignar el valor de una variable,
sustituye el valor por el nombre de la variable, teniendo en cuenta que
deberás de concatenar los nombres de las variables a la consulta SQL:

..."VALUES (" & _
variableNumerica & ", " & _
"'" & variableAlfanumérica1 & "'," & _
"'" & variableAlfanumérica2 & ")"

¡Venga! Prueba de nuevo.

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
#35 xabi
07/06/2006 - 19:00 | Informe spam
ya...pero esque tengo dos consultas:
1)la que me saca el id_nuevo:
rs_ac.Open "SELECT id FROM hdi_reducido", cnn_ac
rs_ac.MoveLast
nuevo_id = rs_ac.Fields("id").Value + 1 'encontramos en nuevo ID y le
sumamos 1 para que sea el ID del archivo importado

2)La que me saca los datos del excel:
sql = "INSERT INTO hdi_reducido " & _
"IN ''[ODBC;Driver={SQL Server};" & _
"Server=ALEB2B;" & _
"Database=upi;" & _
"UID=sa;" & _
"PWD=manager] " & _
"SELECT * FROM [Hoja1$]"

para mi LO MAS LOGICO seria insertar la variable nuevo_id dentro de la
consulta que me va a insertar los campos del excel en la BD de access,pero
no se como hacer el VALUES en esta consulta mexplico:
sql = "INSERT INTO hdi_reducido(id,lote,sublote,denominacion) " & _
"IN ''[ODBC;Driver={SQL Server};" & _
"Server=ALEB2B;" & _
"Database=upi;" & _
"UID=sa;" & _
"PWD=manager] " & _
VALUES("&nuevo_id&","SELECT * FROM [Hoja1$]")
esto no va...cuando tu defines VALUES tienes que indicarle que valor va en
cada posicion,pero en mi caso las posiciones 2 3 y 4 son el resultado de una
consulta aparte de la posicion 1,la cual es una variable...he hay mi
dilema...he intentado sumarle nuvo_id a la consulta del excel,por eso hacia
lo de INSERT INTO sql...poruqe vi que era posible sumarle registros y quizas
asi podria insertar todo de una.



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

> bueno...lo he intentado...de veras...pero no sale:
> He intentado añadir registros a mi consulta tal y como aparece en la


"guia
> de auxilio":
>
> sql2 = "INSERT INTO sql(id)" & _
> "IN ''[ODBC;Driver={SQL Server};" & _
> "Server=ALEB2B;" & _
> "Database=upi;" & _
> "UID=sa;" & _
> "PWD=manager] " & _
> "VALUES (" & nuevo_id & ")"
>

¡Ay, Xabi! ¿Como pretendes insertar registros con la consulta anterior?
¿Donde está el nombre de la tabla «hdi_reducido»?

Imáginate que tanto en la tabla «hdi_reducido», como en la hoja de cálculo
de Excel, tienes tres campos llamados ID, Nombre y CIF respectivamente.


Para
insertar un único registro, ejecutarías la consulta de la siguiente


manera:

Dim sql2 As String

sql2 = "INSERT INTO hdi_reducido(IdCliente, Nombre, CIF)" & _
"IN ''[ODBC;Driver={SQL Server};" & _
"Server=ALEB2B;" & _
"Database=upi;" & _
"UID=sa;" & _
"PWD=manager] " & _
"VALUES (1234, 'Xabi', '99999999X')"

cnn.Execute sql2, , adCmdText + adExecuteNoRecords

Como verás, la lista de campos va detrás del nombre de la tabla, encerrada
entre paréntesis, y separando los nombres de los campos por una coma.
Igualmente, la lista de valores deberás especificarla del mismo modo,
teniendo en cuenta que los campos alfanuméricos, deben de ir encerrados
entre comillas simples.

Si en lugar de valores, les quieres asignar el valor de una variable,
sustituye el valor por el nombre de la variable, teniendo en cuenta que
deberás de concatenar los nombres de las variables a la consulta SQL:

..."VALUES (" & _
variableNumerica & ", " & _
"'" & variableAlfanumérica1 & "'," & _
"'" & variableAlfanumérica2 & ")"

¡Venga! Prueba de nuevo.

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
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida