Botón en Formulario Access para añadir meses a campo fecha

Tengo una base de datos con los datos de las personas del club deportivo, entre otros campos un campo "Renovación" que es la fecha corta en la que se renueva la credencial del club, cada 6 meses

Para saber quien renovaba cada mes creaba una consulta en la que me presenta en un formulario dividido "frm_prorroga" los afiliados que tienen que renovar ese mes y luego ya creaba el informe.

El problema viene cuando hay que añadir seis meses a esas fechas para la siguiente renovación. Lo hacia a mano pero es tedioso y siempre se te pasa alguno.

¿Es posible crear un boton en el formulario "frm_prorroga" en el que me añada 6 meses a todos los registros que me presenta desde la consulta?

2 Respuestas

Respuesta
1

Si, la función DateAdd permite añadir a una fecha periodos (años, meses...) en este caso serian meses ("m")


DateAdd (Función)

Devuelve un valor de tipo Variant (Date) con una fecha a la que se ha agregado un intervalo de tiempo especificado.

Sintaxis

DateAdd(intervalo, número, fecha)DateAdd (Función)

Devuelve un valor de tipo Variant (Date) con una fecha a la que se ha agregado un intervalo de tiempo especificado.

Sintaxis

DateAdd(intervalo, número, fecha)


el intervlo ==> "m" 

Numero ==> los meses a añadir

Fecha ==> la fecha conocida (el actual campo de fecha)

Respuesta

¡Sí, es totalmente posible y muy útil! Puede hacerlo con un botón en el formulario que actualice el campo "Renovación" sumándole 6 meses a todas las fechas que aparecen en la consulta.

Estos son los pasos:

Abra el formulario frm_prorroga en vista de diseño.
Agregue un botón y nómbrelo cmdActualizarRenovacion.
En el evento "Al hacer clic" del botón, inserte el siguiente código VBA:

Private Sub cmdActualizarRenovacion_Click()
    Dim sql As String
    ' Construye la consulta SQL para actualizar las fechas de renovación
    sql = "UPDATE tblAfiliados SET Renovación = DateAdd('m', 6, Renovación) " & _
          "WHERE ID IN (SELECT ID FROM NombreDeTuConsulta);"
    ' Ejecuta la consulta
    DoCmd.SetWarnings False  ' Desactiva los avisos
    DoCmd.RunSQL sql
    DoCmd.SetWarnings True   ' Reactiva los avisos
    ' Refresca el formulario para ver los cambios
    Me.Requery
    MsgBox "Las fechas de renovación han sido actualizadas correctamente.", vbInformation, "Actualización exitosa"
End Sub

Explicación:

DateAdd('m', 6, Renovación): Añade 6 meses al campo Renovación.

UPDATE tblAfiliados: Modifica la tabla donde se almacenan los datos (cambie tblAfiliados por el nombre real de tu tabla).
WHERE ID IN (SELECT ID FROM NombreDeTuConsulta): Solo actualiza los registros que aparecen en la consulta (reemplace NombreDeTuConsulta con el nombre de su consulta real).

DoCmd. RunSQL sql: Ejecuta la consulta de actualización.

Me. Requery: Refresca el formulario para que muestre los nuevos valores.

Cambie NombreDeTuConsulta por el nombre de su consulta, corresponde a la consulta de los afiliados que deben renovar.

Por ejemplo:

Si la consulta se llama qryProrroga, el código quedaría así:

sql = "UPDATE tblAfiliados SET Renovación = DateAdd('m', 6, Renovación) " & _
      "WHERE ID IN (SELECT ID FROM qryProrroga);"

Asegúrese de que qryProrroga tenga un campo "ID" (o el identificador único de los afiliados), ya que el WHERE se basa en ese dato.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas