Enviar Informe
Hola Quisiera Saber Como enviar un Informe de Access A excel y que me lo grabe en una determinada subcarpeta (Ejemplo : Listado) pero en la que esta la base o sea que si cambia el nombre de la carpeta donde esta la base me lo guarde igual en una sub carpeta y que si la subcarpeta no existe que la crea, así no me da error
1 Respuesta
Respuesta de denciso
1
1
denciso, Soy una persona multifacética, tanto manejo la informática,...
Tienes que trabajar con una referencia al filesystemobject, pero exportar los informes a excel no he visto nada al respecto.
No, la verdad es que no he trabajado en eso
No tienes un código de ejemplo que me mandes
Saludos, y desde ya gracias
No tienes un código de ejemplo que me mandes
Saludos, y desde ya gracias
En la siguiente liga, tienes bastante información de como hacer lo que comentamos:
http://www.mvp-access.com/buho/todos.asp?pag=42
http://www.mvp-access.com/buho/todos.asp?pag=42
Necesito algo más concreto te muestro lo que tengo:
Private Sub Infome_Cierre_Click()
On Error GoTo Err_Infome_Cierre_Click
Dim NombreInforme1 As String
Dim Ruta1 As String
Dim NombreInforme2 As String
Dim Ruta2 As String
Dim NombreInforme3 As String
Dim Ruta3 As String
Dim Ruta3a As String
Dim NombreInforme4 As String
Dim Ruta4 As String
Dim Ruta4a As String
Dim NombreInforme5 As String
Dim Ruta5 As String
NombreInforme1 = "Dia_Ventas_Dia_Categoria"
Ruta1 = "D:\Tarifador SGT\Listados\Ventas General\G_" _
& Format(Me.Fecha, "yyyy-m-mmm-dd-ddd") & ".xls"
Bueno quiero borrar es la parte D:\Tarifador SGT y poner la ruta de la base activa
NombreInforme2 = "Ventas_Dia_Categorias_detalle_Kiosco"
Ruta2 = "D:\Tarifador SGT\Listados\Venta Cliente\V_" _
& Format(Me.Fecha, "yyyy-m-mmm-dd-ddd") & ".xls"
NombreInforme3 = "Form_Cuentas_Corrientes"
Ruta3 = "D:\Tarifador SGT\Listados\Cuentas Corrientes\CC_" _
& Format(Me.Fecha, "yyyy-m-mmm-dd-ddd") & ".xls"
Ruta3a = "D:\Tarifador SGT\Planillas Diarias\Form_Cuentas_Corrientes.xls"
NombreInforme4 = "Capital_productos"
Ruta4 = "D:\Tarifador SGT\Listados\Capital\CP_" _
& Format(Me.Fecha, "yyyy-m-mmm-dd-ddd") & ".xls"
Ruta4a = "D:\Tarifador SGT\Planillas Diarias\Capital_productos.xls"
NombreInforme5 = "Stock_Tarjetas"
Ruta5 = "D:\Tarifador SGT\Listados\Stock de Productos\S_" _
& Format(Me.Fecha, "yyyy-m-mmm-dd-ddd") & ".xls"
Ruta5a = "D:\Tarifador SGT\Planillas Diarias\Stock_Tarjetas.xls"
DoCmd.OutputTo acOutputReport, NombreInforme1, acFormatXLS, Ruta1
DoCmd.OutputTo acOutputReport, NombreInforme2, acFormatXLS, Ruta2
DoCmd.OutputTo acOutputReport, NombreInforme3, acFormatXLS, Ruta3
DoCmd.OutputTo acOutputReport, NombreInforme3, acFormatXLS, Ruta3a
DoCmd.OutputTo acOutputReport, NombreInforme4, acFormatXLS, Ruta4
DoCmd.OutputTo acOutputReport, NombreInforme4, acFormatXLS, Ruta4a
DoCmd.OutputTo acOutputReport, NombreInforme5, acFormatXLS, Ruta5
DoCmd.OutputTo acOutputReport, NombreInforme5, acFormatXLS, Ruta5a
MsgBox "Usted Acaba de cerra la Caja del Dia, si la fecha del sistema no concuerda con un nuevo dia usted volvera abrir la caja del dia ANTERIOR, espera a un nuevo dia para una nueva CAJA", , "Cierre de CAJA DIARIA de Tarifador SGT"
DoCmd.Quit
Exit_Infome_Cierre_Click:
Exit Sub
Err_Infome_Cierre_Click:
MsgBox Err.Description
Resume Exit_Infome_Cierre_Click
End Sub
Private Sub Infome_Cierre_Click()
On Error GoTo Err_Infome_Cierre_Click
Dim NombreInforme1 As String
Dim Ruta1 As String
Dim NombreInforme2 As String
Dim Ruta2 As String
Dim NombreInforme3 As String
Dim Ruta3 As String
Dim Ruta3a As String
Dim NombreInforme4 As String
Dim Ruta4 As String
Dim Ruta4a As String
Dim NombreInforme5 As String
Dim Ruta5 As String
NombreInforme1 = "Dia_Ventas_Dia_Categoria"
Ruta1 = "D:\Tarifador SGT\Listados\Ventas General\G_" _
& Format(Me.Fecha, "yyyy-m-mmm-dd-ddd") & ".xls"
Bueno quiero borrar es la parte D:\Tarifador SGT y poner la ruta de la base activa
NombreInforme2 = "Ventas_Dia_Categorias_detalle_Kiosco"
Ruta2 = "D:\Tarifador SGT\Listados\Venta Cliente\V_" _
& Format(Me.Fecha, "yyyy-m-mmm-dd-ddd") & ".xls"
NombreInforme3 = "Form_Cuentas_Corrientes"
Ruta3 = "D:\Tarifador SGT\Listados\Cuentas Corrientes\CC_" _
& Format(Me.Fecha, "yyyy-m-mmm-dd-ddd") & ".xls"
Ruta3a = "D:\Tarifador SGT\Planillas Diarias\Form_Cuentas_Corrientes.xls"
NombreInforme4 = "Capital_productos"
Ruta4 = "D:\Tarifador SGT\Listados\Capital\CP_" _
& Format(Me.Fecha, "yyyy-m-mmm-dd-ddd") & ".xls"
Ruta4a = "D:\Tarifador SGT\Planillas Diarias\Capital_productos.xls"
NombreInforme5 = "Stock_Tarjetas"
Ruta5 = "D:\Tarifador SGT\Listados\Stock de Productos\S_" _
& Format(Me.Fecha, "yyyy-m-mmm-dd-ddd") & ".xls"
Ruta5a = "D:\Tarifador SGT\Planillas Diarias\Stock_Tarjetas.xls"
DoCmd.OutputTo acOutputReport, NombreInforme1, acFormatXLS, Ruta1
DoCmd.OutputTo acOutputReport, NombreInforme2, acFormatXLS, Ruta2
DoCmd.OutputTo acOutputReport, NombreInforme3, acFormatXLS, Ruta3
DoCmd.OutputTo acOutputReport, NombreInforme3, acFormatXLS, Ruta3a
DoCmd.OutputTo acOutputReport, NombreInforme4, acFormatXLS, Ruta4
DoCmd.OutputTo acOutputReport, NombreInforme4, acFormatXLS, Ruta4a
DoCmd.OutputTo acOutputReport, NombreInforme5, acFormatXLS, Ruta5
DoCmd.OutputTo acOutputReport, NombreInforme5, acFormatXLS, Ruta5a
MsgBox "Usted Acaba de cerra la Caja del Dia, si la fecha del sistema no concuerda con un nuevo dia usted volvera abrir la caja del dia ANTERIOR, espera a un nuevo dia para una nueva CAJA", , "Cierre de CAJA DIARIA de Tarifador SGT"
DoCmd.Quit
Exit_Infome_Cierre_Click:
Exit Sub
Err_Infome_Cierre_Click:
MsgBox Err.Description
Resume Exit_Infome_Cierre_Click
End Sub
Esta es la repuesta parcialal Problema,
Solo me falta crear la carpeta si esta no existe. Es el único error
Y un millón de gracias. Espero que le sirva a alguien
Tiene una automatización con consultas y toma los valores desde un panel de control por eso los if
La verdadera esxpresion es declarar las variables y en la ruta poner = Currente como más abajo y toma el valor de la ruta actual más la sub ruta
Private Sub Enviar_Informes_Click()
On Error GoTo Err_Enviar_Informes_Click
Dim NombreInforme1 As String
Dim Ruta1 As String
Dim NombreInforme2 As String
Dim Ruta2 As String
Dim NombreInforme3 As String
Dim Ruta3 As String
Dim NombreInforme4 As String
Dim Ruta4 As String
'envia informe en format excel a la sub carpeta de la base de datos activa Dada
If IsNull(Me.FechaInicio) Then
MsgBox "Debe Ingresar un Valor inical de busqueda para los Listados", , "Error de Fecha"
Cancel = True
Me.EstablecerFecha.SetFocus
Else
If IsNull(Me.FechaFin) Then
MsgBox "Debe Ingresar un Valor Final de busqueda para los Listados", , "Error de Fecha"
Cancel = True
Me.EstablecerFecha.SetFocus
Else
NombreInforme1 = "Totales_Dia_Empleados_Sobrantes"
Ruta1 = CurrentProject.Path & "\Planillas Mensuales\Totales_Dia_Empleados_Sobrantes.xls"
NombreInforme2 = "Gastos Por mes_locutorio Detallado"
Ruta2 = CurrentProject.Path & "\Planillas Mensuales\Gastos Por mes_locutorio Detallado.xls"
NombreInforme3 = "TOTAL_DIA_Locutorio"
Ruta3 = CurrentProject.Path & "\Planillas Mensuales\_" _
& Format(Me.Fecha, "mmm-yy") & ".xls"
NombreInforme4 = "Mes_Gastos_Locutorio_Detalle"
Ruta4 = CurrentProject.Path & "\Listados\Capital\Mes_Gastos_Locutorio_Detalle.xls"
DoCmd.OutputTo acOutputReport, NombreInforme1, acFormatXLS, Ruta1
DoCmd.OutputTo acOutputReport, NombreInforme2, acFormatXLS, Ruta2
DoCmd.OutputTo acOutputReport, NombreInforme3, acFormatXLS, Ruta3
DoCmd.OutputTo acOutputQuery, NombreInforme4, acFormatXLS, Ruta4
MsgBox "Usted Acaba de Mandar Todos los informes Coorectamente", , "Confirmacion de Envio de Informes"
End If
End If
Exit_Enviar_Informes_Click:
Exit Sub
Err_Enviar_Informes_Click:
MsgBox Err.Description
Resume Exit_Enviar_Informes_Click
End Sub
Solo me falta crear la carpeta si esta no existe. Es el único error
Y un millón de gracias. Espero que le sirva a alguien
Tiene una automatización con consultas y toma los valores desde un panel de control por eso los if
La verdadera esxpresion es declarar las variables y en la ruta poner = Currente como más abajo y toma el valor de la ruta actual más la sub ruta
Private Sub Enviar_Informes_Click()
On Error GoTo Err_Enviar_Informes_Click
Dim NombreInforme1 As String
Dim Ruta1 As String
Dim NombreInforme2 As String
Dim Ruta2 As String
Dim NombreInforme3 As String
Dim Ruta3 As String
Dim NombreInforme4 As String
Dim Ruta4 As String
'envia informe en format excel a la sub carpeta de la base de datos activa Dada
If IsNull(Me.FechaInicio) Then
MsgBox "Debe Ingresar un Valor inical de busqueda para los Listados", , "Error de Fecha"
Cancel = True
Me.EstablecerFecha.SetFocus
Else
If IsNull(Me.FechaFin) Then
MsgBox "Debe Ingresar un Valor Final de busqueda para los Listados", , "Error de Fecha"
Cancel = True
Me.EstablecerFecha.SetFocus
Else
NombreInforme1 = "Totales_Dia_Empleados_Sobrantes"
Ruta1 = CurrentProject.Path & "\Planillas Mensuales\Totales_Dia_Empleados_Sobrantes.xls"
NombreInforme2 = "Gastos Por mes_locutorio Detallado"
Ruta2 = CurrentProject.Path & "\Planillas Mensuales\Gastos Por mes_locutorio Detallado.xls"
NombreInforme3 = "TOTAL_DIA_Locutorio"
Ruta3 = CurrentProject.Path & "\Planillas Mensuales\_" _
& Format(Me.Fecha, "mmm-yy") & ".xls"
NombreInforme4 = "Mes_Gastos_Locutorio_Detalle"
Ruta4 = CurrentProject.Path & "\Listados\Capital\Mes_Gastos_Locutorio_Detalle.xls"
DoCmd.OutputTo acOutputReport, NombreInforme1, acFormatXLS, Ruta1
DoCmd.OutputTo acOutputReport, NombreInforme2, acFormatXLS, Ruta2
DoCmd.OutputTo acOutputReport, NombreInforme3, acFormatXLS, Ruta3
DoCmd.OutputTo acOutputQuery, NombreInforme4, acFormatXLS, Ruta4
MsgBox "Usted Acaba de Mandar Todos los informes Coorectamente", , "Confirmacion de Envio de Informes"
End If
End If
Exit_Enviar_Informes_Click:
Exit Sub
Err_Enviar_Informes_Click:
MsgBox Err.Description
Resume Exit_Enviar_Informes_Click
End Sub
Lee entonces las siguientes ligas:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaac11/html/acproBaseConnectionString_HV05258625.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaac11/html/acproConnectionString_HV05279691.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaac11/html/acproDBEngine_HV05187151.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaac11/html/acproFullPath_HV05186766.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaac11/html/acproBaseConnectionString_HV05258625.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaac11/html/acproConnectionString_HV05279691.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaac11/html/acproDBEngine_HV05187151.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbaac11/html/acproFullPath_HV05186766.asp
En esta otra liga existe algo como lo que quieres, revisa cada uno de los ejemplos y ve el que sea el adecuado:
http://www.mvp-access.com/emilio/Access/Descargas/Descargas.htm
http://www.mvp-access.com/emilio/Access/Descargas/Descargas.htm
Agrega la referencia que te comento al filesystemobject y creala con createobject("Scripting.FileSystemObject")
Checa bien la siguiente liga:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/jsobjFileSystem.asp
Checa bien la siguiente liga:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/jsobjFileSystem.asp
- Compartir respuesta
- Anónimo
ahora mismo