Calculo de días en informe

Dudas sobre código
albertjs
Nivel 2
Mensajes: 45
Registrado: Mié May 16, 2018 10:43 am

Calculo de días en informe

Mensajepor albertjs » Lun Mar 01, 2021 10:03 am

Buenos días:
En un informe he de mostrar una serie de fechas en cada línea, y entre fecha y fecha calcular los días transcurridos (=[FechaFin]-[Fechaini]). El problema es que tengo que descontar los sábados y domingos. Alguna idea?
Saludos y gracias de antemano.

Avatar de Usuario
Sveinbjorn
Moderador
Mensajes: 1333
Registrado: Sab Oct 24, 2015 10:12 pm

Re: Calculo de días en informe

Mensajepor Sveinbjorn » Lun Mar 01, 2021 10:38 am

Hola Albert

en la web de Neckkito tienes ejemplos de cómo contar días:

http://neckkito.xyz/nck/index.php/ejemp ... tar-dias-1
http://neckkito.xyz/nck/index.php/ejemp ... tar-dias-2

En tu caso, el primero es el que mejor te servirá para lo que quieres.

Un saludo
Sveinbjorn El Rojo

albertjs
Nivel 2
Mensajes: 45
Registrado: Mié May 16, 2018 10:43 am

Re: Calculo de días en informe

Mensajepor albertjs » Lun Mar 01, 2021 4:12 pm

Muchas gracias Sveinbjorn (y también a NecKKito), he he estado revisando las dos opciones y la que me conviene es la 1.
Me pongo a trabajar en ello y comento resultados.
Gracias !!!

albertjs
Nivel 2
Mensajes: 45
Registrado: Mié May 16, 2018 10:43 am

Re: Calculo de días en informe

Mensajepor albertjs » Jue Mar 04, 2021 5:04 pm

Bueno, la implantación ha sido un éxito y calcula perfectamente excluyendo sábados, domingos y festivos de la tabla creada. Pero como siempre algo ha de salir mal (más bien, algo hago mal o no se hacer...)
Este módulo he de usarlo para hacer diez cálculos de distintas fechas para 10 campos calculados de mis registros.
Alguien me explica como "llamo y ejecuto el modulo" desde el generador de expresiones?
Lamento mi ignorancia y os agradezco vuestra ayuda infinitamente.
Saludos y gracias.

Avatar de Usuario
Sveinbjorn
Moderador
Mensajes: 1333
Registrado: Sab Oct 24, 2015 10:12 pm

Re: Calculo de días en informe

Mensajepor Sveinbjorn » Vie Mar 05, 2021 11:30 am

Hola,

el módulo ni se llama ni se ejecuta, lo que se llama y ejecuta es la función que incluye el módulo (fncCuentoDias).

Para usarla en el generador de expresiones, se haría exactamente igual que con cualquier función nativa de access, es decir, pones el nombre de la función y sus argumentos entre paréntesis separados por coma o punto y coma (según tu configuración regional)

"Gráficamente" también lo puedes hacer así:
Image 1.jpg


No sé si esto resuelve tu duda...
Sveinbjorn El Rojo

albertjs
Nivel 2
Mensajes: 45
Registrado: Mié May 16, 2018 10:43 am

Re: Calculo de días en informe

Mensajepor albertjs » Lun Jun 28, 2021 1:50 pm

Buenos días después de tanto tiempo.....
Por motivos laborales tuve que abandonar este proyecto y ahora me lo vuelven a pedir. Lo he conseguido implementar en mi BD, pero ahora lo quieren automatizado en los informes y formularios, y las distintas variables de fecha que tengo ninguna se llama "txtini o txtfin". Intento ponerlo en el generador de expresiones pero constantemente me da error en todas las pruebas que hago. Mis variables son de fecha corta y , por poner un ejemplo, a veces es ""fecha()-[fe sol ju 2]"" y otras ""[fe sol ju 2]-[fe ent ju 2]"".
Trabajo con Access 2016 y en VBA me funciona perfectamente con la expresión : fncCuentoDias(vIni, vFin, True, True, True), pero en cuanto intento cambiar variables......

Os agradezco infinitamente vuestra ayuda.

Avatar de Usuario
Sveinbjorn
Moderador
Mensajes: 1333
Registrado: Sab Oct 24, 2015 10:12 pm

Re: Calculo de días en informe

Mensajepor Sveinbjorn » Mar Jun 29, 2021 10:26 am

Pues no veo el problema de que tus variables o controles se llamen distinto a las del ejemplo, mientras en la función las pongas en su sitio, y cojan los valores que deben, te funcionará igual.... El primer valor de la función es la fecha inicial, el segundo la fecha final, y los siguientes son para indicar si quieres contar o no los sábados, domingos, festivos y el mes de agosto.
Sveinbjorn El Rojo

albertjs
Nivel 2
Mensajes: 45
Registrado: Mié May 16, 2018 10:43 am

Re: Calculo de días en informe

Mensajepor albertjs » Sab Jul 17, 2021 5:09 pm

Buenas tardes:
Después de pelearme una y mil veces con este asunto al final decidí combinar mi información, la que me facilitasteis y un poco de Sant Google y he conseguido que funcione. Vaya por delante que en mi tabla TFestivos constan los festivos que "caen" en laborable y que damos por sentado que sábados y domingos es laborable. En caso contrario solo hay que " anular ' " el if se sábado o el de domingo, o ambos....
Os agradezco vuestra colaboración.
Saludos y gracias.

Os lo paso por si a alguien le sirve de ayuda.

La "llamada es: " =CuentoDia(nombre asignado a la fecha inicio, nombre asignado a la fecha fin)

Y el código es para el módulo es:

Public Function CuentoDia(FIni As Date, FFin As Date) As Long
' Variables que usaremos
Dim cuentodias As Integer, Ftemp As Date
'Inicializamos FTemp
Ftemp = FIni
'Iniciamos el recorrido de días
While Ftemp < FFin + 1 ' si queremos contar día inicio y final sería +2, pongo +1 para que cuente solo día final
cuentodias = cuentodias + 1
'Comprobamos si es sábado
If Weekday(Ftemp) = 7 Then cuentodias = cuentodias - 1
'Comprobamos es domingo
If Weekday(Ftemp) = 1 Then cuentodias = cuentodias - 1
'Comprobamos si es festivo
If Not IsNull(DLookup("FechaFestivo", "TFestivos", "FechaFestivo=#" _
& Format(Ftemp, "mm/dd/yy") & "#")) Then cuentodias = cuentodias - 1
Ftemp = Ftemp + 1
Wend
CuentoDia = cuentodias
End Function

albertjs
Nivel 2
Mensajes: 45
Registrado: Mié May 16, 2018 10:43 am

Re: Calculo de días en informe

Mensajepor albertjs » Mar Jul 20, 2021 12:04 pm

Podéis cerrar hilo si lo creéis conveniente

Saludos y gracias.


Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados