Una tabla que llamaré DíasAgosto con 4 campos:
FechaInicial (Fecha) DiasSuma (numérico) FechaFinal (Fecha) DiasAgosto (número)
Un formulario independiente, no lo bases en ninguna tabla ni consulta.
Cuatro cuadros de texto que llamaremos:
TxtFechaIni
TxtDias
TxtFechaFin
TxtDiasAgosto
Llenaremos los cuadros txtFechaIni y txtDias, los otros los calcularemos en el código del botón.
Un botón que llamaré Enviar, en el código de ese botón:
Form!txtFechaFin.Value = DateAdd("d", Form!txtDias.Value, Form!txtFechaIni.Value)
Select Case Month(txtFechaFin.Value)
Case Is < 8 Form!txtDiasAgosto.Value = 0
Case 8 Form!txtDiasAgosto.Value = Day(txtFechaFin.Value)
Case Is > 8 Form!txtDiasAgosto.Value = 31
End Select
DoCmd.RunSQL "Insert Into DiasAgosto (FechaInicial, DiasSuma, FechaFinal, DiasAgosto) Values (cdate('" & Form!txtFechaIni.Value & "'), " & Form!txtDias.Value & ", cdate('" & Form!txtFechaFin.Value & "'), " & Form!txtDiasAgosto.Value & ")"
Es decir, 1º calculamos con DateAdd la fecha final, sumando a la fecha inicial (introducida en el cuadro de texto txtFechaIni) los días introducidos en el cuadro de texto txtDias.
Después calculamos el mes de la fecha final y con Select Case ... End Select damos los valores al cuadro de texto txtDiasAgosto según el mes sea <8 (días=0) =8 (días=días de la fecha) o >8 (días=31)
Luego, con la sql Insert Into insertamos el registro en la tabla.
Cualquier duda, me consultas.