Access - FUNCION DIAS LABORABLES

 
Vista:

FUNCION DIAS LABORABLES

Publicado por EstheR (6 intervenciones) el 28/01/2007 16:03:02
Buenas tardes:

Me estoy volviendo loco porque no consigo una funcion que me cuente entre dos fechas los días laborables (sin contar sabados, domingos y festivos)

¿Alguien me puede decir como se hace y como lo puedo conseguir?

No soy un experto en access con lo que agradecería que me lo explicarais como para "tontos".

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

RE:FUNCION DIAS LABORABLES

Publicado por 2pl (773 intervenciones) el 28/01/2007 16:38:43
Adapta esta función a tus necesidades y a español
DIAS LABORABLES ENTRE DOS FECHAS

Function Work_Days (BegDate As Variant, EndDate As Variant) As Integer
' Note that this function does not account for holidays.
Dim WholeWeeks As Variant
Dim DateCnt As Variant
Dim EndDays As Integer

BegDate = DateValue(BegDate)

EndDate = DateValue(EndDate)
WholeWeeks = DateDiff("w", BegDate, EndDate)
DateCnt = DateAdd("ww", WholeWeeks, BegDate)
EndDays = 0
Do While DateCnt < EndDate
If Format(DateCnt, "ddd") <> "Sun" And _
Format(DateCnt, "ddd") <> "Sat" Then
EndDays = EndDays + 1
End If
DateCnt = DateAdd("d", 1, DateCnt)
Loop
Work_Days = WholeWeeks * 5 + EndDays
End Function
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

RE:FUNCION DIAS LABORABLES

Publicado por EstheR (6 intervenciones) el 28/01/2007 16:55:38
Pero esta funcion cuenta los festivos?
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

RE:FUNCION DIAS LABORABLES

Publicado por 2pl (773 intervenciones) el 28/01/2007 17:00:03
Las funciones hacen lo que se les programa.... y evidentemente si no metes una tabla con los festivos(que en cada pais o región pueden ser diferentes) no te los cuenta.
Cuando la función te devuelve el dia tu debes comprobar con los de la tabla de festivo y si existe.... deja de ser laborable.
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

RE:FUNCION DIAS LABORABLES

Publicado por EstheR (6 intervenciones) el 28/01/2007 17:03:30
me podrias poner un ejemplo?
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

RE:FUNCION DIAS LABORABLES

Publicado por Chea (1015 intervenciones) el 28/01/2007 18:37:26
Aquí tienes una función que sí tiene en cuenta los festivos. Naturalmente, debes tener una tabla donde se contemplen: http://jbengoechea.com/laborables.htm

Saludos
José Bengoechea Ibaceta
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

RE:FUNCION DIAS LABORABLES

Publicado por EstheR (6 intervenciones) el 28/01/2007 18:49:09
Si, pero aqui veo que hay varias funciones... Hay que ejecutarlas todas?
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

RE:FUNCION DIAS LABORABLES

Publicado por 2pl (773 intervenciones) el 28/01/2007 19:07:16
El amigo Chea se me ha adelantado mientras te preparaba un ejemplo...... utiliza la que mas te guste
DIAS LABORABLES ENTRE DOS FECHAS
Function DiasLaborables(FechaIni As Date, FechaFin As Date) As Integer
' GAD FIESTAS es mi BD que contiene los festivos del año (Campo FESTIVOS).
Dim FIESTAS As Recordset ' Le asigno el nombre FIESTAS
Dim MiDB As Database
Dim DateCnt As Variant
Dim EndDays As Integer

Set MiDB = DBEngine.Workspaces(0).Databases(0)
Set FIESTAS = MiDB.OpenRecordset("GAD FIESTAS") ' activo la BD fiestas
Dim DS As String

FechaIni = DateValue(FechaIni)
FechaFin = DateValue(FechaFin)
DateCnt = FechaIni
EndDays = 0
Do While DateCnt < FechaFin
If Format(DateCnt, "ddd") <> "dom" And _
Format(DateCnt, "ddd") <> "sáb" Then
DS = Format(DateCnt, "ddd")
EndDays = EndDays + 1
FIESTAS.MoveFirst
Do While Not FIESTAS.EOF ' Aqui la leo
If FIESTAS("FESTIVOS") = FECHA Then
EndDays = EndDays - 1
Exit Do
End If
FIESTAS.MoveNext
Loop
End If
DateCnt = DateAdd("d", 1, DateCnt)
Loop
DiasLaborables = EndDays
End Function
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

RE:FUNCION DIAS LABORABLES

Publicado por EstheR (6 intervenciones) el 28/01/2007 19:16:40
Soy muy torpe y no consigo hacerlo con ninguna de las dos opciones, de todos modos gracias.
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

RE:RIZANDO EL RIZO: FUNCION DIAS LABORABLES

Publicado por pufff (2 intervenciones) el 29/01/2007 19:39:22
Yo también necesito contar los días habiles entre dos fechas pero lo mio es mas rebuscado...

Teniendo en cuenta que en Castilla la Mancha hay 5 Provincias, que en las 5 Provincias hay fechas en común como festivos, pero que independientemente de esas fechas cada provincia tiene sus festivos y en el resto de las provincias no, ¿Cómo se haría para que te de los días hábiles de cada provincia?

Muchas gracias.
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

RE:RIZANDO EL RIZO: FUNCION DIAS LABORABLES

Publicado por Chea (1015 intervenciones) el 29/01/2007 20:25:58
Tendrías que especificar la provincia en la tabla Festivos y en la función que calcula los días hábiles añadirle el parámetro provincia para que, al hacer el dCount(9 de los festivos, agregarle como criterio la provincia.

Saludos
José Bengoechea Ibaceta
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

RE:RIZANDO EL RIZO: FUNCION DIAS LABORABLES

Publicado por pufff (2 intervenciones) el 29/01/2007 20:43:40
te refieres a crear una columna en la nueva tabla de festivos que se llame provincia? Pero en las fiestas que pertenecen a las 5 provincias como las diferenciaria?
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

RE:FUNCION DIAS LABORABLES

Publicado por Juan (1 intervención) el 18/12/2013 19:18:06
Hola que tal, podrian explicarme como meto esa funcion?? gracias
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