Access - Problema con exportacion a excel

 
Vista:

Problema con exportacion a excel

Publicado por Esteban Suarez (10 intervenciones) el 17/03/2009 16:37:45
Buenas. Mi inquietud es la siguiente: tengo un aplicativo hecho en access con un formulario donde esta un boton de comando denominado historico de saldos, en el evento "al hacer clic" llamo una funcion denominada exportar saldos que es la siguiente:

Function EXPORTAR_SALDOS()
On Error GoTo EXPORTAR_SALDOS_Err

Dim excelapp As Object

DoCmd.OutputTo acOutputQuery, "Saldos_Informe", "Excel97-Excel2003Workbook(*.xls)", _
"X:EXTRACTOSINFORMESSALDOS NUEVO.XLS", False, "", 0, acExportQualityPrint

Set excelapp = CreateObject("Excel.Application")
With excelapp
.workbooks.Open "X:EXTRACTOSINFORMESSALDOS NUEVO.XLS"
.workbooks.Open "X:ExtractosTABLAS DE ACTUALIZACION.xls"
.Run "'TABLAS DE ACTUALIZACION.xls'!historico_saldos_nuevo"
End With

EXPORTAR_SALDOS_Exit:
Do While Not (excelapp.activeworkbook Is Nothing)
excelapp.Quit
Loop
MsgBox "Se exporto la consulta satisfactoriamente."
Exit Function

EXPORTAR_SALDOS_Err:
Do While Not (excelapp.activeworkbook Is Nothing)
excelapp.Quit
Loop
MsgBox "No se pudo exportar la consulta."
Resume EXPORTAR_SALDOS_Exit

End Function

Como se puede observar, primero exporto una consulta y luego creo un objeto de excel para abrir dos archivos y luego ejecutar una macro "historico_saldos_nuevo" perteneciente al archivo TABLAS DE ACTUALIZACION.Dicha macro y los procedimientos que invoca son los siguientes:

Option Explicit
Option Base 1

Const archivo = "INFORME DE SALDOS NUEVO.xls"
Const path = "X:ExtractosInformes"

Sub historico_saldos_nuevo()
On Error GoTo historico_saldos_nuevo_fin

Sheets("HIST_SALDOS_NUEVO").Activate
ActiveSheet.PivotTables("Tabla dinámica1").PivotCache.Refresh
Call copiar_hojas_nuevo
Call guardar_reporte_nuevo

historico_saldos_nuevo_fin:

Application.Calculation = xlCalculationAutomatic
Application.CutCopyMode = False
Workbooks("TABLAS DE ACTUALIZACION.xls").Save

End Sub

Sub copiar_hojas_nuevo()
'Realiza una copia de las hojas del libro y las copia en uno nuevo para generar el reporte de valoracion.

Sheets("HIST_SALDOS_NUEVO").Copy
Call quitar_formulas("HIST_SALDOS_NUEVO")

End Sub

Sub guardar_reporte_nuevo()
'Guarda el nuevo archivo en la carpeta de informes.

Application.CutCopyMode = False
ActiveWorkbook.Close SaveChanges:=True, Filename:=path & archivo

End Sub

Sub quitar_formulas(hoja As String)
'Selecciona toda la hoja y pega las celdas como valores.

Sheets(hoja).Activate
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues
Range("a1").Select

End Sub

Esta macro copia solo los valores de la hoja HIST_SALDOS_NUEVO a una hoja con el mismo nombre pero en el nuevo archivo que se crea, INFORME DE SALDOS NUEVO.xls. Por ultimo la aplicaion esta dividida, tablas en servidor y formularios y demas como en una especie de archivo cliente en varios hosts. El problema que estoy teniendo es que al pulsar el boton historico de saldos, exporta la consulta bien pero luego se bloquea al momento de ejecutar la macro y me toca finalizar tanto la aplicaion como el proceso de excel que ha creado. He intentado reemplazando
Sheets("HIST_SALDOS_NUEVO").Activate
ActiveSheet.PivotTables("Tabla dinámica1").PivotCache.Refresh, por ActiveSheet.Refresh y no se bloquea pero no crea el archivo INFORME DE SALDOS NUEVO.xls.

AGradezco de antemano al o los interesados en solucionar mi inquietud
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder