Exportar a excel con código sin usar exportar de botón Access

Tengo una tabla con nombre PagosCondominos_T, con los siguientes campos: IdPago, IdDepto, FechaPago, Mes, Anyo, MontoPagado y ObservaPago.

Con esa tabla cree una consulta ReporteMensual_Q ye el campo fecha en criterios puse Entre [Feha Inicio] Y [Fecha Fin].

Con la consulta cree un formulario ReporteMensual_F, en el que se muestran los datos introducidos en la ventana de parámetros.

Mi petición es la siguiente: Mediante un botón en el formulario ReporteMensual_F, esos datos se exporten directamente a Excel, con todo y su formato y las fechas indicadas.

Sin usar la ayuda de datos externos y el botón Exportar a una hoja de cálculo de Excel.

Respuesta
2

¿No dices si es en un libro que ya existe o si es uno nuevo. Vamos a suponer esto último- ¿Has probado con

    DoCmd.OutputTo acOutputForm, "reportemensual_f", "ExcelWorkbook(*.xlsx)", "c:\users\.....\documents\borrar\libro1.xlsx", False, "", , acExportQualityPrint

Por cierto, en caso de que fuera a un libro ya existente puedes usar

DoCmd. TransferSpreadsheet

Ver https://docs.microsoft.com/es-es/office/vba/api/access.docmd.transferspreadsheet

Icue, muchas gracias por tu respuesta.

Me salió el siguiente mensaje se ha producido el error “2102” porque efectivamente estaba mal escrito el nombre del formulario debe ser PagoMensualExcel_F.

Tu me mandaste:

DoCmd.OutputTo acOutputForm, "reportemensual_f", "ExcelWorkbook(*.xlsx)", "c:\users\.....\documents\borrar\libro1.xlsx", False, "", , acExportQualityPrint

Lo cambie a

DoCmd.OutputTo acOutputForm, "pagomensualExcel_f", "ExcelWorkbook(*.xlsx)", "c:\users\Raul\documents\borrar\libro1.xlsx", False, "", , acExportQualityPrint

Pero me salió error 2302 en tiempo de ejecución.

Icue, cuál es el motivo de que este cometiendo tanto error.

Y respecto al DoCmd. TransferSpreadsheet, no tengo ni idea como hacerle.

No sé como lo tienes hecho. Pero, si tengo una tabla Clientes, con un campo fecha

Y con ella creo una consulta donde le pongo los criterios que dices

En cualquier formulario le añado un botón, en este caso uso el propio Clientes, pero ya te digo que se podría poner en cualquiera.

Cuando lo pulso

Anoto la fecha de inicio  y acepto. Me aparece la siguiente ventana

Anoto la fecha fin y 

El código del botón es el que te dije

Private Sub Comando42_Click()
DoCmd.OutputTo acOutputQuery, "consulta3", "ExcelWorkbook(*.xlsx)", "c:\users\cabarcos\documents\borrar\libro1.xlsx", False, "", , acExportQualityPrint
Shell ("excel.exe c:\users\cabarcos\documents\borrar\libro1.xlsx")
End Sub

Lo de Shell se lo he añadido yo para que me abra inmediatamente la hoja de Excel.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas