Fecha entrega con festivos municipales
Publicado por J. Carrion (2 intervenciones) el 22/01/2019 12:27:16
Hola y gracias por vuestro tiempo.
En mi trabajo estoy utilizando la función adjunta (Public Function cuentoDias) para calcular el día de entrega en función de la fecha inicial, días de envió y festivos nacionales. El tema es un poco más complicado pero lo simplifico para que lo entendáis. El problema lo tengo cuando tengo que tener en cuenta los festivos municipales (aprox. 8000). La tabla TFestivos pasa de tener un solo campo con los festivos nacionales a una tabla con un campo municipio de 8.000 registros y 15 campos ya que hay municipios con 15 festivos (nacionales, provinciales y locales)
Algo así (con fechas inventadas)
Municipio Festivo1 Festivo2 Festivo3 Festivo4 Festivo5 Festivo6
Barcelona 01/01/2019 05/01/2019 15/08/2019 16/08/2019 17/08/2019 18/08/2019
Madrid 05/01/2019 06/01/2019 08/05/2019 09/05/2019 10/05/2019 11/05/2019
Zaragoza 15/01/2019 30/06/2019 20/08/2019 10/10/2019 30/11/2019 20/01/2020
¿¿¿ Sabéis como podría adecuar la función siguiente a las nuevas exigencia???? festEnTabla = DLookup("[DFest]", "TFestivos", "[DFest]=#" & Format(fTmp, "mm/dd/yy") & "#")
He probado muchas cosas pero sin éxito, básicamente el tema está en adecuar la anterior búsqueda al nuevo entorno.
Gracias de antemano.
En mi trabajo estoy utilizando la función adjunta (Public Function cuentoDias) para calcular el día de entrega en función de la fecha inicial, días de envió y festivos nacionales. El tema es un poco más complicado pero lo simplifico para que lo entendáis. El problema lo tengo cuando tengo que tener en cuenta los festivos municipales (aprox. 8000). La tabla TFestivos pasa de tener un solo campo con los festivos nacionales a una tabla con un campo municipio de 8.000 registros y 15 campos ya que hay municipios con 15 festivos (nacionales, provinciales y locales)
Algo así (con fechas inventadas)
Municipio Festivo1 Festivo2 Festivo3 Festivo4 Festivo5 Festivo6
Barcelona 01/01/2019 05/01/2019 15/08/2019 16/08/2019 17/08/2019 18/08/2019
Madrid 05/01/2019 06/01/2019 08/05/2019 09/05/2019 10/05/2019 11/05/2019
Zaragoza 15/01/2019 30/06/2019 20/08/2019 10/10/2019 30/11/2019 20/01/2020
¿¿¿ Sabéis como podría adecuar la función siguiente a las nuevas exigencia???? festEnTabla = DLookup("[DFest]", "TFestivos", "[DFest]=#" & Format(fTmp, "mm/dd/yy") & "#")
He probado muchas cosas pero sin éxito, básicamente el tema está en adecuar la anterior búsqueda al nuevo entorno.
Gracias de antemano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Public Function cuentoDias(vfIni As Date, vDias As Integer) As Date
Dim i As Integer
Dim fTmp As Date
fTmp = vfIni
For i = 1 To vDias
Dim festEnTabla As Variant
festEnTabla = DLookup("[DFest]", "TFestivos", "[DFest]=#" & Format(fTmp, "mm/dd/yy") & "#")
If Not IsNull(festEnTabla) Then
fTmp = fTmp + 1
i = i - 1
Else
If Weekday(fTmp) = vbSaturday Or Weekday(fTmp) = vbSunday Then
fTmp = fTmp + 1
i = i - 1
Else
fTmp = fTmp + 1
End If
End If
Next
For i = 1 To 1
festEnTabla = DLookup("[DFest]", "TFestivos", "[DFest]=#" & Format(fTmp, "mm/dd/yy") & "#")
If Not IsNull(festEnTabla) Then
fTmp = fTmp + 1
i = i - 1
Else
If Weekday(fTmp) = vbSaturday Or Weekday(fTmp) = vbSunday Then
fTmp = fTmp + 1
i = i - 1
End If
End If
Next
cuentoDias = fTmp
End Function
Valora esta pregunta
0