Como programar BD access para que se envíe a archivo excel

¿Me podrían orientar como programar una base de datos de access para que envíe la información registrada a un archivo excel semanalmente? Mi base funciona así:

El usuario ingresa la información en el formulario solicitud, como nombre, fecha, equipo a usar, observaciones.

Esta información va quedando guardada en la tabla solicitud. Lo que busco que es que la base automáticamente vaya enviando la información registrada de la semana y la envíe automático a un archivo excel y se vaya depurando de la BD.

Actualmente lo que hago es copiar la información de la semana y pegarla en excel, y luego elimino los registros de la BD, con esto solo quedo con la copia de excel para hacer los indicadores respectivos. Quisiera que mi Base lo realice automático cada viernes de la semana.

Respuesta
2

Gloria, lo puedes hacer de mil maneras.

1º ¿Vas a mantener los libros de excel antiguos o de cada semana quieres uno?

2º ¿La ruta a ese nuevo archivo de Excel va a ser siempre la misma o la vas a decidir cada vez.?

Etc.

Por ejemplo, vamos a suponer que tengo una tabla Dia, donde para el ejemplo he puesto una fecha de hace 7 días

También tengo un formulario donde voy poniendo las ¿solicitudes?

Cuando abras el formulario 7 días después de la fecha que aparece en la tabla Dia (mientras, puedes abrirlo sin problemas para ir añadiendo registros), se ejecuta

Como no sabía como querías hacerlo le he puesto que me guarde el archivo con el nombre de la tablaA( en tu caso sería, quizá, Solicitud) con el día mes y año en que te lo guarda 04 01 2020

Por otro lado te ha modificado el valor del día en la tabla Dia para que puedas usarlo en la semana siguiente(sería el 11/01/2020) y por otro lado borra todos los registro de la tabla TablaA.

El código del evento Al cargar del formulario TablaA es

Private Sub Form_Load()
If Date - DLookup("dia", "dia") = 7 Then
Dim s
s = "c:\users\...\documents\borrar\" & "TablaA" & Format(Date, "ddmmyyyy") & ".xlsx"
DoCmd.OutputTo acOutputTable, "TablaA", "ExcelWorkbook(*.xlsx)", "" & s & "", False, "", , acExportQualityPrint
DoCmd.RunSQL "update dia set dia=date()"
DoCmd.RunSQL "delete * from tablaA"
Me.Requery
End If
End Sub

Buen día

Disculpe no me queda claro el ejercicio.

Lo que requiero es.

Que los registros que se hagan en access, se trasladen automáticamente los viernes a un archivo excel.

El archivo excel podría llamarse "Solicitud", siempre seria el mismo, la ruta del archivo siempre seria la misma al igual que el nombre.

Así cada fin de semana la información registrada en la tabla del access que consta de 11 columnas se traslade automáticamente al archivo excel en la misma ruta siempre. Y a la vez se elimine de la tabla de access, así tendré la información vigente a la fecha. Y podre trabajar con la información del excel para indicadores y otros temas.

Agradezco sus comentarios

Entonces es más sencillo. Vamos a suponer que tengo la tabla Solicitudes con la que hago un formulario

En sus propiedades-eventos-al cargar le pongo el código(para el ejemplo le he puesto, en ves de viernes, el jueves.

Private Sub Form_Load()
If Format(Date, "dddd") = "Jueves" Then
MsgBox "Como es jueves, paso la tabla a Excel", vbOKOnly, "No digas que no te avise"
DoCmd.OutputTo acOutputTable, "Solicitudes", "ExcelWorkbook(*.xlsx)", "c:\users\cabarcos\documents\borrar\solicitudes.xlsx", False, "", , acExportQualityPrint
DoCmd.RunSQL "delete * from solicitudes"
Me.Requery
End If
End Sub

Entonces, al abrirlo, si es jueves, te aparece

y como puedes ver

Y el formulario( y por tanto la tabla Solicitudes) se quedan en blanco

Y en Excel

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas