¿Cómo puede hacerse o programarse un procedimiento que haga que se agreguen automáticamente registros?

Tardes o noches y muchas bendiciones, de nueva cuenta vengo a abusar de la buena voluntad de los expertos y de sus conocimientos, sucede que anteriormente me ayudaron cuando pregunté sobre la generación automática de fechas ahora necesito algo similar pero diferente a la vez.

Sucede que quisiera saber si existe de alguna forma la manera de programar en vba o ¿qué procedimiento podría utilizarse para que llegado el cumplimiento digamos final de mes se agregue automáticamente el registro?, dicho en otras maneras que un registro se agregue en automático mes a mes sin intervención del usuario ¿existe manera de hacerlo?, se los agradecería sobremanera por favor.

Dicho sea de paso no propongo de antemano ni estructura ni diseño pues quiero ver la solución que me den en "estado puro", ¿cómo lo harían en este caso ustedes?.

Respuesta
1

No suelo usar Access pero sería parecido que en Excel.

Una forma sería que al activar la hoja se ejecute la macro.

Private Sub Worksheet_Activate()
    On Error GoTo FALLO
    Dim dUltimaFecha As Date
    Dim nUltimaFila As Integer
    Dim n As Integer
    nUltimaFila = Cells(Rows.Count, 1).End(xlUp).Row
    dUltimaFecha = CDate(ActiveSheet.Cells(nUltimaFila, 1).Value)
    n = 1
    While DateAdd("m", n, dUltimaFecha) < Date
        ActiveSheet.Cells(nUltimaFila + n, 1).Value = DateAdd("m", dUltimaFila + n, dUltimaFecha)
        n = n + 1
    Wend
    End
FALLO:
    MsgBox "Comprueba las fechas.", vbCritical, "ERROR"
End Sub

Esto busca cuál es el último registro (celda no vacía, en este caso). Lee la fecha de esta celda (si no es una fecha daría error) y si es menor a la fecha actual va añadiendo en las siguientes celdas los meses hasta el mes actual.

Agradezco sobremanera tu tiempo y tu amabilidad en responder, perdóna tengo algúnas dudas, primero ¿esto lo aplicas en formulario?, de ser así ¿En qué parte - al cambiar, al cargar, al abrir-?, gracias por tu buena voluntad, ah y antes de cerrar ¿ésto se basaría en una tabla o estas haciendo por descontado el proceso en un "formulario inependiente"? Gracia de nuevo.

Eso se basa en una hoja de Excel y se ejecutaría al activar la hoja.

Puedes hacer la prueba creando una hoja con ese código (clic derecho en la hoja > Ver código). Pones en la primera columna varias fechas siendo la última por ejemplo 01/05/2023. Al activar la hoja, se rellenarán hacia abajo los meses de junio a septiembre.

Siento no poderte poner el código para Access; pensaba que podrías adaptarlo tú mismo.

1 respuesta más de otro experto

Respuesta
1

En Access es muy sencillo. Lo único que falta por saber es si quieres que te agregue el registro el último día de cada mes, tengan 28 o 29, 30 o 31, o algún día en concreto.

Bendiciones, pues primeramente gracias por haberme respondido me disculpo pues por algunas cosas no he venido a ver la pregunta que formulé, pues me gustaría que el registro lo agrege el día primero de cada mes, ¿cómo sería la tabla o tablas y su relación?, bendiciones y gracias.

El problema que tiene ahora mismo la página es que no deja poner imágenes, y a mí no me deja escribir código. Vamos a suponer que tienes un formulario que es el primero que se abre cuando abres la base de datos. En algún evento, por ejemplo, al cargar, se le podría decir

If day(Date())=1 then

docmd.runsql"insert into....

end if

Me explico, al cargar ese formulario de inicio, comprueba si el día de la fecha del sistema es el 1. Si lo es, te inserta en la tabla X lo que le digas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas