Exportar un informe a excel ?

15/10/2003 - 11:07 por Bluey | Informe spam
Hola a todos, alguien sabe como puede exportar un informe a excel?
Tengo un informe con varios campos y registro y necesito pasar todo eso a
excel para luego enviarlo por mail y que el destinatario lo pueda modificar.
Esto lo necesito hacer por codigo, es decir que al pinchar en un boton me lo
haga

Gracias

Preguntas similare

Leer las respuestas

#6 Juan M. Afan de Ribera
16/10/2003 - 23:58 | Informe spam
Eva, ¿te has mirado estas dos direcciones?

http://www.clikear.com/webs4/juanma...aexcel.htm
http://www.clikear.com/webs4/juanma...aexcel.htm

aquí explico como exportar tablas o consultas (compiladas o de sentencias
sql) a libros de excel. Yo lo hago con DAO (por aquello de la costumbre)
pero se hace igual de fácil con ADO.

Una recomendación: tanto Excel como Word tienen una herramienta llamada
"Grabadora de macros", que lo que hace es tomar nota de los pasos que das
mientras graba y lo va escribiendo en código VBA. De esta manera es lo más
sencillo del mundo decir: ¿cómo haría esto o lo otro con código?. Pues nada,
le das a la "Grabadora de macros", haces lo que tengas que hacer, paras la
grabación, te vas al módulo donde se haya grabado la "macro"... et voilà, ya
tienes todo el código del mundo y seguro que un poco más.

Después, si quieres ejecutar estas cosas desde Access, hay que tener en
cuenta que todo el código de cualquier programa de Office, se ejecuta a
través del objeto Application, que representa al programa en sí mismo.
Entonces, sólo tienes que crear un objeto Application de la clase que vayas
a usar, por ejemplo:

Dim app As Excel.Application

Set app = New Excel.Application
o
Dim app As Word.Application

Set app = New Word.Application
o
Dim app As Access.Application

Set app = New Access.Application

o hacerlo de esta otra forma (para no tener que crear una referencia a la
librería correspondiente)

Dim app as object

Set app = CreateObject("Excel.Application")

...

una vez tengas ese objeto application, sólo tienes que adjudicarle las
acciones que has grabado con la grabadora de macros, por ejemplo, si la
grabadora de macros te ha puesto algo como

ActiveCell.FormulaR1C1 = "columna1"
Range("B1").Select
ActiveCell.FormulaR1C1 = "columna2"
Range("C1").Select
ActiveCell.FormulaR1C1 = "columna3"
Range("A3").Select
ActiveCell.FormulaR1C1 = "valor1"
Range("B3").Select
ActiveCell.FormulaR1C1 = "valor2"
Range("C3").Select
ActiveCell.FormulaR1C1 = "valor3"

tú, desde Access escribes esto otro, utilizando lo anterior:

Dim app As Object

Set app = CreateObject("Excel.application")
app.Visible = True

app.workbooks.Add

app.ActiveCell.FormulaR1C1 = "columna1"
app.Range("B1").Select
app.ActiveCell.FormulaR1C1 = "columna2"
app.Range("C1").Select
app.ActiveCell.FormulaR1C1 = "columna3"
app.Range("A3").Select
app.ActiveCell.FormulaR1C1 = "valor1"
app.Range("B3").Select
app.ActiveCell.FormulaR1C1 = "valor2"
app.Range("C3").Select
app.ActiveCell.FormulaR1C1 = "valor3"

Set app = Nothing

y ya verás que chulo queda :-)

joer! hoy se me ha soltado el dedo de tanto escribir.

Saludos desde Barcelona
Juan M. Afan de Ribera
<MVP Ms Access>
http://www.juanmafan.tk
http://www.clikear.com/webs4/juanmafan


"Eva Etxebeste" <eetxebesteARROBAhotmail.com> escribió en el mensaje
news:
Jesús, ¿tienes algún ejemplo _creando_ el libro Excel desde Access? Estoy
busca que te busca, prueba que te prueba y no doy con la solución.

Un saludo
Eva Etxebeste
[MS MVP]
"Jesus" escribió en el mensaje
news:
> A ver si te vale esto. Si no, igual encuentras mas cosas en mi pagina:
> http://www.melodysoft.com/cgi-bin/f...=ATPACCESS
>
> Enviar datos a Excel y formatear celdas con OLE
>
> Utilizando automatización OLE en MS Access 2.0 podemos enviar


información
a
> una hoja de cálculo de MS Excel , formatear celdas, imprimir hojas etc.
> Podemos iniciar una comunicación con la otra aplicación que sólo


podremos
> utilizar en nuestro código (durante el proceso, el usuario no vería una
> tarea de MS Excel).
> A continuación veremos un ejemplo que nos permite enviar un dato a una
celda
> de una hoja de Excel 5.0 previamente creada, así como poner fuente Arial
> Negrita 12 a esa celda y alineación centrada a toda la columna.
> A esta función le pasaremos tres parámetros, el dato que queremos mandar


y
> la fila y columna de la celda de la hoja de cálculo donde queremos
insertar
> la información.
> En un módulo nuevo tecleamos lo siguiente:
>
> Function ole_excel (x, i, j)
> Dim Hoja As Object
> 'Con la función GetObject iniciamos la comunicación con la
> 'hoja OLE.XLS de MS Excel 5.0.
> Set Hoja = GetObject("c:\ejemplo\ole.xls", "excel.sheet")
> 'Con la propiedad value del método Cells, podemos insertar
> 'un dato en una celda específica.
> Hoja.Cells(i, j).value = x
> 'Las tres líneas siguientes cambian las propiedades Nombre
> 'Negrita y tamaño de la fuente de una celda.
> Hoja.Cells(i, j).Font.Name = "Arial"
> Hoja.Cells(i, j).Font.Bold = True
> Hoja.Cells(i, j).Font.Size = 12
> 'Utilizando el método column podemos hacer referencia a una
> 'columna de una hoja, y con la propiedad HorizontalAlignment,
> 'podemos cambiar la alineación horizontal de la misma.
> Hoja.Columns(j).HorizontalAlignment = 3
> 'Las siguientes líneas guardan la hoja y cierran la comunicación
> 'con Excel. Para poder guardar la hoja es necesario activarla
> 'con la propiedad visible, aunque el usuario no verá ninguna
> 'sesión de Excel.
> Hoja.Application.windows("ole.xls").visible = True
> Hoja.Application.ActiveWorkbook.Save
> Hoja.Application.[Quit]
> End Function
>
> Supongamos que tenemos un formulario que contiene 3 campos donde


aparecen
el
> dato que queremos insertar en la hoja de cálculo, la columna y la fila,
> llamados "Dato", "Fila" y "Columna" respectivamente, y queremos pulsar


un
> botón que ejecute la función anterior, debemos teclear lo siguiente en


el
> evento "Al hacer click" del botón:
>
>
> Dim y
> y=ole_excel([dato],[Fila],[Columna])
>
>


Respuesta Responder a este mensaje
#7 Juan M. Afan de Ribera
17/10/2003 - 00:08 | Informe spam
Por cierto, imagino que ese código debería funcionar así en Excel 5.0, pero
en Excel 2000 o superior no tira (en Excel 97, no lo se la verdad). Hay que
corregirlo un poco:

Function ole_excel (x, i, j)
Dim Libro As Object
Set Libro = GetObject("c:\ejemplo\ole.xls")

With Libro.ActiveSheet
.Cells(i, j).value = x
.Cells(i, j).Font.Name = "Arial"
.Cells(i, j).Font.Bold = True
.Cells(i, j).Font.Size = 12
.Columns(j).HorizontalAlignment = 3
.Application.windows("ole.xls").visible = True
.Application.ActiveWorkbook.Save
.Application.[Quit]
End With

Set Libro = Nothing

End Function


Saludos desde Barcelona
Juan M. Afan de Ribera
<MVP Ms Access>
http://www.juanmafan.tk
http://www.clikear.com/webs4/juanmafan


"Jesus" escribió en el mensaje
news:
A ver si te vale esto. Si no, igual encuentras mas cosas en mi pagina:
http://www.melodysoft.com/cgi-bin/f...=ATPACCESS

Enviar datos a Excel y formatear celdas con OLE

Utilizando automatización OLE en MS Access 2.0 podemos enviar información


a
una hoja de cálculo de MS Excel , formatear celdas, imprimir hojas etc.
Podemos iniciar una comunicación con la otra aplicación que sólo podremos
utilizar en nuestro código (durante el proceso, el usuario no vería una
tarea de MS Excel).
A continuación veremos un ejemplo que nos permite enviar un dato a una


celda
de una hoja de Excel 5.0 previamente creada, así como poner fuente Arial
Negrita 12 a esa celda y alineación centrada a toda la columna.
A esta función le pasaremos tres parámetros, el dato que queremos mandar y
la fila y columna de la celda de la hoja de cálculo donde queremos


insertar
la información.
En un módulo nuevo tecleamos lo siguiente:

Function ole_excel (x, i, j)
Dim Hoja As Object
'Con la función GetObject iniciamos la comunicación con la
'hoja OLE.XLS de MS Excel 5.0.
Set Hoja = GetObject("c:\ejemplo\ole.xls", "excel.sheet")
'Con la propiedad value del método Cells, podemos insertar
'un dato en una celda específica.
Hoja.Cells(i, j).value = x
'Las tres líneas siguientes cambian las propiedades Nombre
'Negrita y tamaño de la fuente de una celda.
Hoja.Cells(i, j).Font.Name = "Arial"
Hoja.Cells(i, j).Font.Bold = True
Hoja.Cells(i, j).Font.Size = 12
'Utilizando el método column podemos hacer referencia a una
'columna de una hoja, y con la propiedad HorizontalAlignment,
'podemos cambiar la alineación horizontal de la misma.
Hoja.Columns(j).HorizontalAlignment = 3
'Las siguientes líneas guardan la hoja y cierran la comunicación
'con Excel. Para poder guardar la hoja es necesario activarla
'con la propiedad visible, aunque el usuario no verá ninguna
'sesión de Excel.
Hoja.Application.windows("ole.xls").visible = True
Hoja.Application.ActiveWorkbook.Save
Hoja.Application.[Quit]
End Function

Supongamos que tenemos un formulario que contiene 3 campos donde aparecen


el
dato que queremos insertar en la hoja de cálculo, la columna y la fila,
llamados "Dato", "Fila" y "Columna" respectivamente, y queremos pulsar un
botón que ejecute la función anterior, debemos teclear lo siguiente en el
evento "Al hacer click" del botón:


Dim y
y=ole_excel([dato],[Fila],[Columna])


Respuesta Responder a este mensaje
#8 Jesus
17/10/2003 - 03:58 | Informe spam
Pues si, creo que tengo algun ejemplo. Donde te lo mando? o donde te lo
pongo?


"Eva Etxebeste" <eetxebesteARROBAhotmail.com> escribió en el mensaje
news:
Jesús, ¿tienes algún ejemplo _creando_ el libro Excel desde Access? Estoy
busca que te busca, prueba que te prueba y no doy con la solución.

Un saludo
Eva Etxebeste
[MS MVP]
"Jesus" escribió en el mensaje
news:
> A ver si te vale esto. Si no, igual encuentras mas cosas en mi pagina:
> http://www.melodysoft.com/cgi-bin/f...=ATPACCESS
>
> Enviar datos a Excel y formatear celdas con OLE
>
> Utilizando automatización OLE en MS Access 2.0 podemos enviar


información
a
> una hoja de cálculo de MS Excel , formatear celdas, imprimir hojas etc.
> Podemos iniciar una comunicación con la otra aplicación que sólo


podremos
> utilizar en nuestro código (durante el proceso, el usuario no vería una
> tarea de MS Excel).
> A continuación veremos un ejemplo que nos permite enviar un dato a una
celda
> de una hoja de Excel 5.0 previamente creada, así como poner fuente Arial
> Negrita 12 a esa celda y alineación centrada a toda la columna.
> A esta función le pasaremos tres parámetros, el dato que queremos mandar


y
> la fila y columna de la celda de la hoja de cálculo donde queremos
insertar
> la información.
> En un módulo nuevo tecleamos lo siguiente:
>
> Function ole_excel (x, i, j)
> Dim Hoja As Object
> 'Con la función GetObject iniciamos la comunicación con la
> 'hoja OLE.XLS de MS Excel 5.0.
> Set Hoja = GetObject("c:\ejemplo\ole.xls", "excel.sheet")
> 'Con la propiedad value del método Cells, podemos insertar
> 'un dato en una celda específica.
> Hoja.Cells(i, j).value = x
> 'Las tres líneas siguientes cambian las propiedades Nombre
> 'Negrita y tamaño de la fuente de una celda.
> Hoja.Cells(i, j).Font.Name = "Arial"
> Hoja.Cells(i, j).Font.Bold = True
> Hoja.Cells(i, j).Font.Size = 12
> 'Utilizando el método column podemos hacer referencia a una
> 'columna de una hoja, y con la propiedad HorizontalAlignment,
> 'podemos cambiar la alineación horizontal de la misma.
> Hoja.Columns(j).HorizontalAlignment = 3
> 'Las siguientes líneas guardan la hoja y cierran la comunicación
> 'con Excel. Para poder guardar la hoja es necesario activarla
> 'con la propiedad visible, aunque el usuario no verá ninguna
> 'sesión de Excel.
> Hoja.Application.windows("ole.xls").visible = True
> Hoja.Application.ActiveWorkbook.Save
> Hoja.Application.[Quit]
> End Function
>
> Supongamos que tenemos un formulario que contiene 3 campos donde


aparecen
el
> dato que queremos insertar en la hoja de cálculo, la columna y la fila,
> llamados "Dato", "Fila" y "Columna" respectivamente, y queremos pulsar


un
> botón que ejecute la función anterior, debemos teclear lo siguiente en


el
> evento "Al hacer click" del botón:
>
>
> Dim y
> y=ole_excel([dato],[Fila],[Columna])
>
>


Respuesta Responder a este mensaje
#9 Jesus
17/10/2003 - 04:06 | Informe spam
He mirado y lo tengo en el almacen. Bajatelo.

http://www.melodysoft.com/cgi-bin/f...=ATPACCESS



"Eva Etxebeste" <eetxebesteARROBAhotmail.com> escribió en el mensaje
news:
Jesús, ¿tienes algún ejemplo _creando_ el libro Excel desde Access? Estoy
busca que te busca, prueba que te prueba y no doy con la solución.

Un saludo
Eva Etxebeste
[MS MVP]
"Jesus" escribió en el mensaje
news:
> A ver si te vale esto. Si no, igual encuentras mas cosas en mi pagina:
> http://www.melodysoft.com/cgi-bin/f...=ATPACCESS
>
> Enviar datos a Excel y formatear celdas con OLE
>
> Utilizando automatización OLE en MS Access 2.0 podemos enviar


información
a
> una hoja de cálculo de MS Excel , formatear celdas, imprimir hojas etc.
> Podemos iniciar una comunicación con la otra aplicación que sólo


podremos
> utilizar en nuestro código (durante el proceso, el usuario no vería una
> tarea de MS Excel).
> A continuación veremos un ejemplo que nos permite enviar un dato a una
celda
> de una hoja de Excel 5.0 previamente creada, así como poner fuente Arial
> Negrita 12 a esa celda y alineación centrada a toda la columna.
> A esta función le pasaremos tres parámetros, el dato que queremos mandar


y
> la fila y columna de la celda de la hoja de cálculo donde queremos
insertar
> la información.
> En un módulo nuevo tecleamos lo siguiente:
>
> Function ole_excel (x, i, j)
> Dim Hoja As Object
> 'Con la función GetObject iniciamos la comunicación con la
> 'hoja OLE.XLS de MS Excel 5.0.
> Set Hoja = GetObject("c:\ejemplo\ole.xls", "excel.sheet")
> 'Con la propiedad value del método Cells, podemos insertar
> 'un dato en una celda específica.
> Hoja.Cells(i, j).value = x
> 'Las tres líneas siguientes cambian las propiedades Nombre
> 'Negrita y tamaño de la fuente de una celda.
> Hoja.Cells(i, j).Font.Name = "Arial"
> Hoja.Cells(i, j).Font.Bold = True
> Hoja.Cells(i, j).Font.Size = 12
> 'Utilizando el método column podemos hacer referencia a una
> 'columna de una hoja, y con la propiedad HorizontalAlignment,
> 'podemos cambiar la alineación horizontal de la misma.
> Hoja.Columns(j).HorizontalAlignment = 3
> 'Las siguientes líneas guardan la hoja y cierran la comunicación
> 'con Excel. Para poder guardar la hoja es necesario activarla
> 'con la propiedad visible, aunque el usuario no verá ninguna
> 'sesión de Excel.
> Hoja.Application.windows("ole.xls").visible = True
> Hoja.Application.ActiveWorkbook.Save
> Hoja.Application.[Quit]
> End Function
>
> Supongamos que tenemos un formulario que contiene 3 campos donde


aparecen
el
> dato que queremos insertar en la hoja de cálculo, la columna y la fila,
> llamados "Dato", "Fila" y "Columna" respectivamente, y queremos pulsar


un
> botón que ejecute la función anterior, debemos teclear lo siguiente en


el
> evento "Al hacer click" del botón:
>
>
> Dim y
> y=ole_excel([dato],[Fila],[Columna])
>
>


Respuesta Responder a este mensaje
#10 Victor Delgadillo
17/10/2003 - 04:42 | Informe spam
Jesus, pero se requiere de usuario y password para entrar al almacen?

Victor Delgadillo MS-MVP Access
Miami, Florida

Mensajes a los grupos de noticia, asi todos nos beneficiamos!



"Jesus" wrote in message
news:
He mirado y lo tengo en el almacen. Bajatelo.

http://www.melodysoft.com/cgi-bin/f...=ATPACCESS



"Eva Etxebeste" <eetxebesteARROBAhotmail.com> escribió en el mensaje
news:
> Jesús, ¿tienes algún ejemplo _creando_ el libro Excel desde Access?


Estoy
> busca que te busca, prueba que te prueba y no doy con la solución.
>
> Un saludo
> Eva Etxebeste
> [MS MVP]
> "Jesus" escribió en el mensaje
> news:
> > A ver si te vale esto. Si no, igual encuentras mas cosas en mi pagina:
> > http://www.melodysoft.com/cgi-bin/f...=ATPACCESS
> >
> > Enviar datos a Excel y formatear celdas con OLE
> >
> > Utilizando automatización OLE en MS Access 2.0 podemos enviar
información
> a
> > una hoja de cálculo de MS Excel , formatear celdas, imprimir hojas


etc.
> > Podemos iniciar una comunicación con la otra aplicación que sólo
podremos
> > utilizar en nuestro código (durante el proceso, el usuario no vería


una
> > tarea de MS Excel).
> > A continuación veremos un ejemplo que nos permite enviar un dato a una
> celda
> > de una hoja de Excel 5.0 previamente creada, así como poner fuente


Arial
> > Negrita 12 a esa celda y alineación centrada a toda la columna.
> > A esta función le pasaremos tres parámetros, el dato que queremos


mandar
y
> > la fila y columna de la celda de la hoja de cálculo donde queremos
> insertar
> > la información.
> > En un módulo nuevo tecleamos lo siguiente:
> >
> > Function ole_excel (x, i, j)
> > Dim Hoja As Object
> > 'Con la función GetObject iniciamos la comunicación con la
> > 'hoja OLE.XLS de MS Excel 5.0.
> > Set Hoja = GetObject("c:\ejemplo\ole.xls", "excel.sheet")
> > 'Con la propiedad value del método Cells, podemos insertar
> > 'un dato en una celda específica.
> > Hoja.Cells(i, j).value = x
> > 'Las tres líneas siguientes cambian las propiedades Nombre
> > 'Negrita y tamaño de la fuente de una celda.
> > Hoja.Cells(i, j).Font.Name = "Arial"
> > Hoja.Cells(i, j).Font.Bold = True
> > Hoja.Cells(i, j).Font.Size = 12
> > 'Utilizando el método column podemos hacer referencia a una
> > 'columna de una hoja, y con la propiedad HorizontalAlignment,
> > 'podemos cambiar la alineación horizontal de la misma.
> > Hoja.Columns(j).HorizontalAlignment = 3
> > 'Las siguientes líneas guardan la hoja y cierran la comunicación
> > 'con Excel. Para poder guardar la hoja es necesario activarla
> > 'con la propiedad visible, aunque el usuario no verá ninguna
> > 'sesión de Excel.
> > Hoja.Application.windows("ole.xls").visible = True
> > Hoja.Application.ActiveWorkbook.Save
> > Hoja.Application.[Quit]
> > End Function
> >
> > Supongamos que tenemos un formulario que contiene 3 campos donde
aparecen
> el
> > dato que queremos insertar en la hoja de cálculo, la columna y la


fila,
> > llamados "Dato", "Fila" y "Columna" respectivamente, y queremos pulsar
un
> > botón que ejecute la función anterior, debemos teclear lo siguiente en
el
> > evento "Al hacer click" del botón:
> >
> >
> > Dim y
> > y=ole_excel([dato],[Fila],[Columna])
> >
> >
>
>


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