Access - Como sacar fechas

 
Vista:

Como sacar fechas

Publicado por Armando Ch. (93 intervenciones) el 02/11/2004 20:23:08
Hola:
Mi duda es esta:
Necesito hacer una diferencia de fechas para un reporte en especial ke necesito el problema es ke estas fechas estan en tablas diferentes y ke la diferencia si es un sabado o domingo se cambie la fecha para el proximo lunes y ke este proceso sea automatico para cada uno de mis registros y no me ubico como poder hacer esto se me hace muy compolicado ojala me puedan ayudar. Ok.
Atte.
Armando Ch.

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 diferencia de fechas considerando los fines de semana

Publicado por Alejandro (4142 intervenciones) el 15/05/2023 23:29:15
Si necesitas calcular la diferencia de fechas para un reporte en Access y deseas tener en cuenta los fines de semana, puedes utilizar VBA para realizar esta operación de forma automática. Aquí tienes un ejemplo de cómo puedes lograrlo:

1. Abre el editor de VBA en Access presionando Alt + F11.
2. En el editor de VBA, inserta el siguiente código en el módulo correspondiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Function CalcularDiferenciaFechas(FechaInicio As Date, FechaFin As Date) As Long
    Dim Dias As Long
 
    ' Calcula la diferencia de días entre las fechas
    Dias = DateDiff("d", FechaInicio, FechaFin)
 
    ' Ajusta la diferencia considerando los fines de semana
    If Dias > 0 Then
        Dim DiasHabiles As Long
        Dim DiasTotales As Long
        Dim i As Long
 
        ' Recorre los días entre las fechas
        For i = 1 To Dias
            Dim FechaActual As Date
            FechaActual = FechaInicio + i
 
            ' Verifica si la fecha actual es un sábado o domingo
            If Weekday(FechaActual) = vbSaturday Or Weekday(FechaActual) = vbSunday Then
                DiasTotales = DiasTotales + 1
            Else
                DiasHabiles = DiasHabiles + 1
            End If
        Next i
 
        ' Ajusta la diferencia restando los fines de semana
        CalcularDiferenciaFechas = DiasHabiles
    End If
End Function

3. Guarda el módulo y cierra el editor de VBA.

Ahora puedes utilizar la función `CalcularDiferenciaFechas` en tu informe o cualquier otro lugar donde necesites calcular la diferencia de fechas. Asegúrate de proporcionar las fechas de inicio y fin como argumentos y la función te devolverá la diferencia en días hábiles, teniendo en cuenta que los fines de semana se cambian al siguiente lunes.

Por ejemplo, en tu informe, podrías utilizar una expresión en un cuadro de texto para mostrar la diferencia de fechas:

1
=DCount("*", "NombreTabla", "FechaInicio <= #" & [FechaFin] & "#") - CalcularDiferenciaFechas([FechaInicio], [FechaFin])

En el ejemplo anterior, `NombreTabla` es el nombre de la tabla que contiene tus registros y `[FechaInicio]` y `[FechaFin]` son los campos que contienen las fechas de inicio y fin, respectivamente.

Espero que esta solución te sea útil para calcular la diferencia de fechas considerando los fines de semana en Access. ¡Buena suerte con tu proyecto!
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