Fechas en Access 2000

Hola de nuevo. Hace unos días me ayudaste mucho al mandarme este código que adjunto a continuación, era para calcular a partir de una fecha la fecha del final de mes. Debido a que no tengo mucha idea de programar en VBA te agradecería muchísimo si pudieses echarme otro cable. ¿Con el código que me mandaste me saca la fecha con formato 00/00/00 pero desearía que me saliera con el formato 00/00/0000. Como debería hacerlo? Y también preguntarte como se puede hacer para que a partir de la fecha calculada con tu código me calcule la fecha de los 13 meses posteriores.
Muchísimas gracias desde ya. Saludos
Tu código fue este:
Private Sub FecEntrada_Exit(Cancel As Integer)
Dim Tabla, Anyo
Tabla = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
Anyo = Year(FecEntrada)
If Int(Anyo / 4) = Anyo / 4 Then Tabla(1) = 29
FecSalida = Format(Format(Tabla(Month(FecEntrada) - 1)) + Mid$(Format(FecEntrada), 3, 6), "short date")
End Sub
Seguro que se puede optimizar, pero es una solución rápida y que funciona.
Un saludo.

1 Respuesta

Respuesta
1
Lo que tienes que hacer es cambiar el formato final de la fecha de salida. Donde pone "short date" pon "dd/mm/yyyy".
La segunda parte de tu pregunta no me queda clara. Ponme un ejemplo de lo que quieres obtener exactamente y así te podré echar una mano.
Lo que quería decir en la segunda parte de la pregunta es lo siguiente:
A partir del 10/01/2002 Me saca el 31/01/2002. Ok??
Luego necesitaria esto: A partir del 31/01/2002 que me sacara:
28/02/2002
31/03/2002
30/04/2002
31/05/2002
...
Y así sucesivamente hasta conseguir 13 fechas a partir de la primera que se calcula con tu código.
Muchas gracias de nuevo.
En ese caso es conveniente separar el código de la función que calcula la fecha final y ponerla como una función independiente. Es decir, el código quedaría una cosa así:
Private Sub FecEntrada_Exit(Cancel As Integer)
Dim F13Meses as Variant
F13Meses=Fecha13Meses(FecEntrada)
End Sub
Private Function FechaFinal(Fecha as Date) As Date
Dim Tabla, Anyo
Tabla = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
Anyo = Year(Fecha)
If Int(Anyo / 4) = Anyo / 4 Then Tabla(1) = 29
FechaFinal = Format(Format(Tabla(Month(Fecha) - 1)) + Mid$(Format(Fecha), 3, 6), "dd/mm/yyyy")
End Function
Private Function Fecha13Meses(Fecha as Date) As Variant
Dim Auxiliar(1 to 13),Aux as Date, i As Integer
Aux=Fecha
For i=1 To 13
Aux=FechaFinal(Aux)
Auxiliar(i)=Aux
Aux=Aux+1
Next i
Fecha13Meses=Auxiliar
End Function
Con lo que obtienes en la variable F13Meses un array de 13 fechas con las fechas finales de los 13 meses posteriores a la fecha introducida. Este código contempla la posibilidad de que entren en el array dos meses de febrero, siendo uno de ellos bisiesto.
Si tienes alguna duda o problema ya sabes donde estoy.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas