Calculo de Días laborales en access
Continuo trabajando con mi access de vacaciones pero ahora debo incluirle que me excluya los días festivos de los días de vacaciones, en esta página me encontré una función muy buena de José Bengoechea Ibaceta (Chea) pero no se como se utilizan estas funciones en un formulario.
Tengo otra función(=fOSUserName()) que también me encontré y me muestra el usuario de windows en un cuadro de texto con solo poner el nombre de la función en el Origen de control, pero con esta función(=DiasLaborables()) al intentar hacer lo mismo me envía un mensaje que la sintaxis es no valida.
Tal vez estoy confundido ya que en el tema de funciones no conozco nada, alguien me podría indicar como hago para implementarlo.
Lo que entiendo es que la función me va a excluir los días festivos, sábados y domingos al contar los días de vacaciones entre dos fechas.
¿Otra duda que tengo es si FechaHasta y FechaDesde se refiere a los nombres de los campos de texto del formulario en el que estoy digitando el rango de fechas de las vacaciones?
Cómo hago para que en el campo del formulario donde se me calcula los días que va a disfrutar de vacaciones se ejecute la función DiasLaborales.
Agradezco la ayuda que me puedan dar
'--------------------------------------------------------------------------------------- ' Procedure : DiasLaborables ' DateTime : 25/09/2005 ' Author : José Bengoechea Ibaceta (Chea) ' Purpose : Calcular el número de días laborables entre dos fechas. Si se ' : le pasan los argumentos opcionales NombreTablaFestivos y ' : NombreCampoFestivo, tiene también en cuenta los días festivos ' : que estén guardados en un campo con nombre NombreCampoFestivo ' : en la tabla con nombre NombreTablaFestivos. ' Estás autorizado a utilizar este código dentro de una aplicación ' siempre que esta nota de autor permanezca inalterada. ' En el caso de querer publicarlo en una página Web, por favor, ' contactar con el autor en ' ' [email protected] '--------------------------------------------------------------------------------------- ' Public Function DiasLaborables(FechaDesde As Date, FechaHasta As Date, Optional _ NombreTablaFestivos As String, Optional NombreCampoFestivo As String) As Long Dim Laborables As Long On Error GoTo DiasLaborables_Error
Laborables = 1 + (FechaHasta - FechaDesde) If NombreTablaFestivos <> "" And NombreCampoFestivo <> "" Then Laborables = Laborables - DCount("*", NombreTablaFestivos, "[" & _ NombreCampoFestivo & "] Between #" & Format(FechaDesde, "mm/dd/yyyy") & _ "# AND #" & Format(FechaHasta, "mm/dd/yyyy") & "#") End If Laborables = Laborables - DateDiff("ww", FechaDesde, FechaHasta, vbSaturday) Laborables = Laborables - DateDiff("ww", FechaDesde, FechaHasta, vbSunday) Laborables = Laborables + (Weekday(FechaDesde, vbSunday) = 1) Laborables = Laborables + (Weekday(FechaDesde, vbSaturday) = 1) DiasLaborables = Laborables
On Error GoTo 0 Exit Function
DiasLaborables_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & _ ") in procedure DiasLaborables" End Function