Access - Acces-Cambiar fechas festivas por laborables

   
Vista:

Acces-Cambiar fechas festivas por laborables

Publicado por Jose Luis (1 intervención) el 12/11/2013 21:33:50
Hola,
tengo el siguiente problema, en una base datos (access) tengo una campo del tipo calculado-fecha. Cuando realiza el cálculo la fecha obtenida no distingue entre festivos/sábados/domingo y laborables. ¿Como puedo hacer que me cambie todas aquellas fechas festivas/sábados/domingos al siguiente día laborable? He creado una tabla de festivos pero no lo consigo.
Muchas gracias
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

Acces-Cambiar fechas festivas por laborables

Publicado por Pere Serra (13 intervenciones) el 12/11/2013 23:48:01
Hola,
en access hay una función... creo (no quiero equivocarme... me suena de algo que es weekday()) que te devuelve los dias de la semana... para los sabados y domingos es fàcil...
Pero de todas maneras creo que para poderte ayudar hace falta más informacion de lo que tienes y lo que quieres conseguir...
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
Imágen de perfil de Norberto

Acces-Cambiar fechas festivas por laborables

Publicado por Norberto (432 intervenciones) el 13/11/2013 11:50:03
Hola.

Si lo que quieres es calcular la diferencia entre dos fechas omitiendo los festivos, hace tiempo posteé una función para ello, echa un vistazo a mis posts y si no la encuentras me lo dices y la vuelvo a poner.

Si quieres calcular una fecha dentro de x días y si cae en festivo salte al primer laborable prueba esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Function EsFiesta(fecha As Date) As Boolean
    EsFiesta = Nz(DLookup("Festivo", "Festivos", "Fecha = #" & _
               Format(fecha, "mm/dd/yyyy") & "#"), False)
 
End Function
 
Public Function FechaLaborable(FechaInicial As Date, Días As Integer, _
                               Optional SábadoLaborable As Boolean = False) _
                               As Date
    Dim FechaFinal As Date
 
    FechaFinal = FechaInicial + Días
    Do While Weekday(FechaFinal, vbMonday) = 7 Or _
             Weekday(FechaFinal, vbMonday) = 6 And Not SábadoLaborable Or _
             EsFiesta(FechaFinal)
        FechaFinal = FechaFinal + 1
    Loop
 
    FechaLaborable = FechaFinal
 
End Function

La función EsFecha requiere una tabla llamada Festivos con un campo llamado Festivo que contenga los días de fiesta.

La función FechaLaborable lleva un tercer parámetro opcional para indicar si el sábado se considera laborable o no. Si se omite, se considera festivo.

Un saludo,

Nor.
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