Intervalo de años en subformulario

¿Es posible que un campo de un subformulario tome el valor en función de un período de fechas que aparecen en un formulario? Mi idea es que en función de una FECHA INICIO y una FECHA FIN se establezcan una serie de valores en el campo AÑO de un subformulario. Por ejemplo:

Fecha inicio: 1/04/15   Fecha fin: 1/04/25

AÑOS (En subformulario): 2015, 2016, 2017... 2025

2 Respuestas

Respuesta

Te anexo un ejemplo, ¿me confirmas si es lo que necesitas por favor?

Archivo que enlista años

Saludos y espero sea de utilidad

Suscríbete a mi canal: http://bit.ly/1KgurfF

Sigueme en Twitter https://twitter.com/RaduNordenhulk

Agregame en Facebook: http://on.fb.me/1oFUXVL

Sigue mis publicaciones en mi blog: http://radunordenhulk.blogspot.com/

¡Gracias! No era exactamente lo que estaba buscando, pero ya otro experto me ha dado la respuesta que necesitaba, pero igualmente !muchas gracias!

Respuesta
1

Si lo que quieres es que fechaIni y FechaFin te actúen como filtro para el subformulario, y suponiendo que el subformulario se llame Otra basado en la tabla Otra y que tenga un campo Fecha, ya sea numérico para tomar los años como 2015, 2016, etc, ya sea tipo fecha.

En el evento Después de actualizar del cuadro de texto Fecha Fin, crea un procedimiento de evento y entre Private Sub y End Sub escribe

Me.Otra.Form.RecordSource = "select * from otra where fecha between year([fecha inicio]) and year([fecha fin])"

Esto en caso de que el campo Fecha sea numérico.

En el caso de que sea tipo fecha

Me.Otra.Form.RecordSource = "select * from otra where year([fecha]) between year([fecha inicio]) and year([fecha final])"

Por cierto. Si lo que quieres es que te cree tantos registros en el subformulario como diferencia de años hay, en el evento Después de actualizar del cuadro de texto FechaFinal pon

Private Sub FechaFinal_AfterUpdate()
Dim a As Integer, i As Variant
a = DateDiff("yyyy", FechaIni, FechaFinal)

For i = 0 To a

DoCmd.SetWarnings False
DoCmd.RunSQL "insert into otra (fecha)values((Year([FechaIni]))+ '" & i & "')"

Next i
Me.Otra.Form.Requery

End Sub

Lo que hace es calcular la diferencia de años entre las dos fechas, y luego ir añadiendo registros(tantos como sea la diferencia) a la tabla Otra y poniendo en cada uno de ellos el año que le corresponda, 2015, 2016, 2017, etc. Y por último, hace que el subformulario "reconsulte" su origen de datos.

¡Gracias! Eso es exactamente lo que estaba buscando, que los registros se crearan en el subformulario. Ahora mismo me pongo con ello.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas