Access incrustado en Excel

26/03/2010 - 09:04 por Eduardo Garrido | Informe spam
Buenos dias a todos.

Quisiera haceros una pregunta a ver si es posible.

Tengo un libro excel que coge datos de una base de datos access. esto lo
hago por programacion con el siguiente codigo:

ruta = ThisWorkbook.Path
base_de_datos = "sicoconcurso.mdb"
Tabla = Tabla

On Error Resume Next
'Creamos el objeto conexión
Set Conn = New ADODB.Connection
'Creamos el objeto recordset
Set rs = New ADODB.Recordset
'Nos conectamos a la base de datos
Conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ruta & "\" & base_de_datos)

Eso me funciona perfectamente. Pero el uso que se le va a dar el cliente
tendria que descargar la excel mas la base de datos.

Me preguntan si es posible incrustar la base de datos en la propia hoja
de excel. Cosa que ya hice insertando el archivo

El problema es que para hacer la conexión como puse arriba en la parte
"Data source =" no se que ruta poner a la base de datos puesto que probe
con hoja1.sicoconcurso.mdb y no me funcionó

Es posible hacer lo que me están pidiendo?

Gracias de antemano.
Un saludo
Eduardo Garrido

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
26/03/2010 - 10:01 | Informe spam
hola, Eduardo !

al incrustar como objeto un archivo en un documento (como una hoja de excel)
que NO es de la aplicacion "del objeto"
es necesario "regresarlo" a una ubicacion donde su aplicacion pueda
administrarlo (access o una maquinaria de consulta)
esto lo puede hacer tu cliente (a mano)...
- seleccionando el objeto incrustado
- lo copia (ctrl + C)
- y lo pega en el explorador de windows (obvio que en la carpeta
"correspondiente")

o puedes probar con una macro que incluya instrucciones +/- como las
siguientes:

activesheet.oleobjects("nombre del objeto incrustado").copy

createobject("shell.application").namespace(activeworkbook.path).self.invokeverb "paste"

saludos,
hector.

p.d. sigue siendo una "odisea" aportar propuestas con esta asincronia en los
grupos
(espero que el equipo de STO ponga un remedio "antes de que sea tarde") :-((
Respuesta Responder a este mensaje
#2 JANTHER
27/03/2010 - 00:27 | Informe spam
Lo que tienes que hacer es vincular la informacion
si usas el MS Office 2007
Abre excell. En la ficha datos selecciona desde acces
Vincular a un archivo
Aqui te abrira una ventana para que selecciones la ubicación de tu archivo,
puedes rastrearlo si esta en la pc donde estas trabajando o bien dentro de tu
red.
Selecciona el archivo.
Sigue las instrucciones para que se ajuste a lo que necesitas

Automaticamente tendas la conexión hacia tu base de datos y podras trabajar
desde excel.

Tambien puedes restringir el acceso etc.

Espero te sirva, saludos

J. Antonio Hernández B.


"Eduardo Garrido" escribió:

Buenos dias a todos.

Quisiera haceros una pregunta a ver si es posible.

Tengo un libro excel que coge datos de una base de datos access. esto lo
hago por programacion con el siguiente codigo:

ruta = ThisWorkbook.Path
base_de_datos = "sicoconcurso.mdb"
Tabla = Tabla

On Error Resume Next
'Creamos el objeto conexión
Set Conn = New ADODB.Connection
'Creamos el objeto recordset
Set rs = New ADODB.Recordset
'Nos conectamos a la base de datos
Conn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ruta & "\" & base_de_datos)

Eso me funciona perfectamente. Pero el uso que se le va a dar el cliente
tendria que descargar la excel mas la base de datos.

Me preguntan si es posible incrustar la base de datos en la propia hoja
de excel. Cosa que ya hice insertando el archivo

El problema es que para hacer la conexión como puse arriba en la parte
"Data source =" no se que ruta poner a la base de datos puesto que probe
con hoja1.sicoconcurso.mdb y no me funcionó

Es posible hacer lo que me están pidiendo?

Gracias de antemano.
Un saludo
Eduardo Garrido
.

Respuesta Responder a este mensaje
#3 Eduardo Garrido
29/03/2010 - 11:17 | Informe spam
Muchas gracias por la respuesta.

Pero no me va a servir porque con esto tengo que tener la bas de datos
en el pc o en otro equipo de la red y la idea era tener la excel en un
ftp. Desde esta ubicación que el cliente descargase la excel con la base
de datos metida dentro de la excel, sin tener que descargarse además la
base de datos.

Gracias de todas formas.
Un saludo

JANTHER escribió:
Lo que tienes que hacer es vincular la informacion
si usas el MS Office 2007
Abre excell. En la ficha datos selecciona desde acces
Vincular a un archivo
Aqui te abrira una ventana para que selecciones la ubicación de tu archivo,
puedes rastrearlo si esta en la pc donde estas trabajando o bien dentro de tu
red.
Selecciona el archivo.
Sigue las instrucciones para que se ajuste a lo que necesitas

Automaticamente tendas la conexión hacia tu base de datos y podras trabajar
desde excel.

Tambien puedes restringir el acceso etc.

Espero te sirva, saludos

Respuesta Responder a este mensaje
#4 Héctor Miguel
30/03/2010 - 02:46 | Informe spam
hola, Eduardo !

... no me va a servir porque
con esto tengo que tener la bas de datos en el pc o en otro equipo de la red y la idea era tener la excel en un ftp.
Desde esta ubicacion que el cliente descargase la excel con la base de datos metida dentro de la excel
sin tener que descargarse ademas la base de datos...



(parece que no tienes a la vista todas las propuestas de esta consulta) -???-
revisa desde aqui: => http://tinyurl.com/ybo4ugh

de cualquier forma, considera lo siguiente:
- los objetos incrustados requieren que este instalada la aplicacion que los administra
- para que excel puede "leer" de una base de datos "ajena" debes "meterla" como un simple registro secuencial
- si la "metes" como objeto incrustado, es necesario descargar el objeto al pc (y dejar que la aplicacion que lo administra, ..)
- para "ejecutar/llamar/..." a la aplicacion correspondiente, haz un doble-clic sobre el objeto (o explora las opciones del clic-secundario)
- otra alternativa podria ser el uso de las opciones para consultar bases de datos externas (opciones del menu de datos)

saludos,
hector.
Respuesta Responder a este mensaje
#5 Eduardo Garrido
30/03/2010 - 09:13 | Informe spam
Gracias por la respuesta.

Ya tenia en cuenta que aunque incruste las base de datos el cliente
tiene que tener access instalado. El tema estaba en no tener que
descargar 2 ficheros, el documento excel y la base access.
Las pruebas que habia hecho eran accediendo a la base de datos mediante
ado y me funcionaba perfectamente.

Como la base de datos es fija, hice la prueba de coger los datos y
meterlos dentro del libro excel en distintas hojas e ir desde la primera
hoja accediendo a ellos. Para que el cliente no viese estas hojas por
programación las oculto a la hora de cargar el libro. Pero en este caso
me funciona a medias ya que no se porque me pide que si deseo continuar
con la ejecución en distintos puntos y de forma aleatoria.

Me explico un poco que es lo que se quiere por si hay una forma facil de
hacerlo y yo me estoy liando.

tengo un libro donde en la prinera hoja tengo dos optionbutton, tres
combos y un boton.

Luego probando, puse en otras hojas los datos. Esto datos tiene siempre
la misma estructura. Denominacion, GrupoIndividual y GrupoEquipos.

La Denominación es unica y puede haber el mismo grupoindividual o
grupoequipos para diferentes denominaciones.

Mediante los optionbutton elijo si es individual o Equipo. Se gun esto
hago la busqueda por la columna GrupoIndividual o GrupoEquipo. En el
primer combo cargo a mano el mobre de las distintas hojas donde tengo
los datos. Cuando se elige un valor en el segundo combo quiero cargar
los valores de la columna grupoIndividual o GrupoEquipo, pero solo los
valores unicos. Esto lo hago con el filtro avanzado, aunque no me
funciona bien del todo pues ma carga valores repetidos.

Una vez que se carga el segundo combo en el tercer combo cargo las
denominaciones que tengan el valor GrupoIndividual o GrupoEquipo igual
al seleccionado en el combo 2.

Luego mediante un boton añado los datos en una fila mas abajo.

Esto haciendolo mediante la base de datos era una chorrada y funcionaba
bien. Haciendolo con los datos en distintas hojas es mas coñazo y aparte
del filtro no hacerlo bien, no se porque me para la ejecucion y me pide
que si deseo continuar.

Siento la parrafada.

Gracias de Antemano.
Un saludo
Eduardo

Héctor Miguel escribió:
hola, Eduardo !

... no me va a servir porque
con esto tengo que tener la bas de datos en el pc o en otro equipo de la red y la idea era tener la excel en un ftp.
Desde esta ubicacion que el cliente descargase la excel con la base de datos metida dentro de la excel
sin tener que descargarse ademas la base de datos...



(parece que no tienes a la vista todas las propuestas de esta consulta) -???-
revisa desde aqui: => http://tinyurl.com/ybo4ugh

de cualquier forma, considera lo siguiente:
- los objetos incrustados requieren que este instalada la aplicacion que los administra
- para que excel puede "leer" de una base de datos "ajena" debes "meterla" como un simple registro secuencial
- si la "metes" como objeto incrustado, es necesario descargar el objeto al pc (y dejar que la aplicacion que lo administra, ..)
- para "ejecutar/llamar/..." a la aplicacion correspondiente, haz un doble-clic sobre el objeto (o explora las opciones del clic-secundario)
- otra alternativa podria ser el uso de las opciones para consultar bases de datos externas (opciones del menu de datos)

saludos,
hector.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida