Access - urgent Semanas

 
Vista:

urgent Semanas

Publicado por CARLOS (113 intervenciones) el 16/03/2005 14:37:11
Hola tengo q hacer report semanales y aveces la semana1 empieza en el año anterior como hago para q tome los valores del año anterior.

codigo para tomar semanas de sabado a viernes.

Public Function SEMANAL(ByVal dFecha As Date) As Integer
SEMANAL = DatePart("ww", dFecha, vbSaturday)
End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cálculo de reportes semanales con inicio en el año anterior

Publicado por Alejandro (4142 intervenciones) el 29/05/2023 19:54:35
Si necesitas generar reportes semanales que abarquen desde el sábado al viernes y, en ocasiones, la primera semana del año comienza en el año anterior, puedes realizar los cálculos necesarios utilizando funciones de fecha en VBA. Aquí tienes un ejemplo de cómo puedes adaptar tu código para tener en cuenta el año anterior:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Function SEMANAL(ByVal dFecha As Date) As Integer
    Dim iYear As Integer
    Dim dStartOfWeek As Date
 
    ' Obtiene el año de la fecha ingresada
    iYear = Year(dFecha)
 
    ' Calcula la fecha del sábado de la semana correspondiente a la fecha ingresada
    dStartOfWeek = DateSerial(iYear, Month(dFecha), Day(dFecha) - Weekday(dFecha, vbSaturday) + 1)
 
    ' Si la fecha de inicio de semana es mayor a la fecha ingresada, significa que pertenece al año anterior
    If dStartOfWeek > dFecha Then
        iYear = iYear - 1 ' Resta 1 al año
    End If
 
    ' Obtiene el número de la semana tomando en cuenta el año correspondiente
    SEMANAL = DatePart("ww", dFecha, vbSaturday, vbFirstFourDays, iYear)
End Function

En este código, se calcula la fecha del sábado de la semana correspondiente a la fecha ingresada y se verifica si esa fecha es mayor a la fecha ingresada. Si es mayor, significa que pertenece al año anterior, por lo que se resta 1 al año. Luego se utiliza el año obtenido para calcular el número de semana utilizando la función `DatePart`.

Espero que este código te ayude a calcular correctamente las semanas y tener en cuenta los casos en los que la primera semana del año comienza en el año anterior.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar