Fecha automática que cambie cada lunes

Tengo un formulario, que tiene varios campos, pero quiero que al crear un nuevo registro, el campo DiaInicio y DiaFinal se me pongan automáticamente, quiero que se ponga el lunes de esa semana, el DiaFinal el domingo de esa semana. Por ejemplo si yo ahora creara un nuevo registro, en DiaInicio pondría 04/04/2016 y en DiaFinal 10/04/2016. Espero que me haya explicado bien.

1 respuesta

Respuesta
1

Akai: Cuando vayas a crear un Nuevo registro, pones éste código:

Dim DiaSem As Integer
DiaSem = DatePart("w", Date, vbMonday)
'
Me.DiaInicio = DateAdd("d", -(DiaSem - 1), Date)
Me.DiaFin = DateAdd("d", 6, Me.DiaInicio)

Si tus controles dell Formulario se llaman así no tendrás dificultades, aunque no lo he probado. Mis saludos >> Jacinto

Saludos y gracias por contestar tan rápido. No lo he podido probar ya que no estoy en casa, ¿pero podrías explicarme un poco el código? Que hace el DatePart("w"), ¿y por qué esta comentada la parte de abajo? Tampoco entiendo que hace el DateAdd, ni los parámetros que lo contiene. Saludos y gracias de nuevo.

Akai: lo que ves comentado es una línea en blanco, que la puedes dejar o quitar.

El DatePart lo que te hace es devolverte el día de la semana. Del 1 al 7.

Por eso le ponemos vbMonday, para decirle que la semana comienza el Lunes.

El DateAdd, te suma en días ("d"), en éste caso te suma un Numero negativo que es el DiaSem obtenido arriba "Menos" 1.

Ejemplo si Hoy estamos a Viernes 07/04/2016 >> DiaSem = 4

DiaSem-1 = 3 y el Lunes >> Hoy(Date) menos 3 = 04/04/2016 , que sumándole 6, nos da el fin de semana 10/04/2016.

Si miras en la ayuda del propio Access verás que te lo explica con ejemplos incluidos.

Mis saludos >> Jacinto

Saludos Jacinto, lo he probado y funciona perfectamente, ¿lo qué te quería preguntar es si cambia según el día en el que lo realice? Por ejemplo, si la semana que viene creo uno nuevo, que se ponga la semana que viene y no esta. Gracias :D

Es como dices. Durante toda la semana que viene, desde el Lunes a las 00:00 Horas hasta el Domingo a las 24:00 Horas te mostrará como DiaInicial el 11/04/2016 y como DiaFinal el 17/04/2016.  Si vas de acuerdo, valoras la respuesta por favor. Saludos >> Jacinto

¡Gracias! Perfecto Jacinto, tranquilo que siempre valoro las respuestas :) Y si pudiera darte más que excelente te lo daría. Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas