Access - Contas dias entre 2 fechas

 
Vista:

Contas dias entre 2 fechas

Publicado por Jose (11 intervenciones) el 23/01/2013 12:58:35
Quiero contar los dias que hay entre dos fechas (de dos campos distintos) si contar los Sábados ni Domingos, como hacerlo?
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

Contas dias entre 2 fechas

Publicado por Juan Luis (1 intervención) el 11/03/2015 13:05:09
Buenas Tardes Neckkito

Antes de nada decirte, que me parece impresionante tu pagina web y gracias a ella, me has introducido en VBA.

Al tema, he probado infinidad de ejemplos de tu código, en un base de datos creada por mi para calcular las vacaciones del personal en la empresa donde trabajo. Y los cálculos no son correctos.

Es mas en tu ejemplo de BD con el mes de Agosto inhábil, si pruebas a introducir las fechas de una semana completa, es decir inicio el Lunes y final el Domingo, comprobaras que no calcula bien. Aunque podría ser un error de concepto, para gusto los colores. en mi caso particular entiendo que de lunes a domingo hay 7 días, bien ese problema lo he resuelto modificando el bloque de proceso de la siguiente manera (vDias = (vFFin - vFIni) +1. ¿Porque? pues porque si al domingo le restamos el Lunes comprobaras que calcula 6 días solamente.

Para que lo entendamos mejor voy a poner un ejemplo " CON EL FIN DE QUE ME PUEDAS AYUDAR EN LA SOLUCION "
En tu BD de Ejemplo he introducido los siguientes parámetros: (tengamos en cuenta la Modificación realizada en el Bloque de Proceso)
F Inicio: Lunes 16 de Marzo
F Final: Domingo 22 de Marzo
Y he puesto como Festivo el 18 de Marzo Miércoles

el Resultado ha sido el siguiente:

Contar Días = 7 Correcto
Contar Días sin Domingos = 7 Incorrecto ( Tendría que ser 6)
Contar Días Excluyendo Sábado y Domingos = 5 Correcto
Contar Días Excluyendo Festivos = 6 Correcto
Contar Días Excluyendo Domingos y Festivos = 6 Incorrecto ( Tendría que ser 5)
Contar Días Excluyendo Sábados, Domingos y Festivos = 5 Incorrecto ( Tendría que ser 4)

Viendo estos resultados me inclino a decir, que posiblemente el error esta en el calculo sin domingos pues solamente calcula mal en aquellas situaciones en las que participa este día en concreto.

Esperando que alguno me podáis dar una solución, os doy las gracias y os felicito por el portal y el trabajo que realizáis

Saludos
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 Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Contas dias entre 2 fechas

Publicado por Neckkito (1157 intervenciones) el 11/03/2015 16:50:40
Hola, José Luis:

Creo que, tras leer todo tu mensaje, te voy a nombrar mi "beta-tester" oficial

Lo cierto es que el ejemplo que comentas lo hice en mis comienzos tempranos (cuando empezaba a tener mis primeras citas con la señorita VBA... bueno, quizá no las primeras primeras... je, je...) y, efectivamente, quizá el código no sea de lo más elegante.

Evidentemente testeo los códigos de los ejemplos antes de colgarlos, pero con VBA nunca puedes dormirte y siempre puede salirte algún "chicharro" cuando menos te lo esperas, como el que comentas.

En lugar de repasar el código y ver dónde "casca" te propongo una cosa: ¿por qué no creas tú un código que haga lo que necesitas? Desconozco tu nivel de conocimientos de VBA, así que no sé si te estoy pidiendo una cosa muy difícil. Si te ves con fuerzas colgaría tu solución en la web, y si no te ves con fuerzas no pasa nada.

De una manera u otra dame unos días (unos bastantes, quiero decir) y programo de nuevo una aplicación que cuente días teniendo en cuenta festivos, sábados, domingos, etc.

Respecto al tema de que de, para ti, de lunes a domingo hay 7 días, pues mira, por casualidad, coincido contigo. Sin embargo, si no recuerdo mal en el pdf explicativo hay algún punto donde digo que Access, al calcular la diferencia de días entre fechas, hace exclusiva (no inclusiva) la fecha final. Así que para Access y para este ejemplo en cuestión yo no contaba de lunes a domingo, sino de fecha a fecha, teniendo en cuenta la exclusividad de la fecha final.

Lógicamente, la solución de sumar una unidad al resultado es perfecta. Sin más comentarios.

Ya me dirás. Un saludo,

Neckkito
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 Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Contas dias entre 2 fechas

Publicado por Neckkito (1157 intervenciones) el 14/03/2015 10:34:47
Sinceramente, esperaba algún tipo de respuesta por tu parte. Desafortunadamente me da la sensación de haber estado hablando para la pared...

Mi intención, con el anterior mensaje, era estimular tu curiosidad y tu creatividad, no decir que hicieras tú el trabajo. Lo clarifico aquí por si no se hubiera entendido bien el sentido de mis palabras.

En fin...

http://goo.gl/feaiXP
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