Visual Basic - error 28

Life is soft - evento anual de software empresarial
 
Vista:

error 28

Publicado por demian (17 intervenciones) el 06/02/2008 14:35:22
Hola este error me tira cuanto estoy haciendo un select case muestro la rutina

Select Case mes
Case 2: diasdelmes = IIf(diasdelmes(Fecha), 29, 28) aca me tira el error
Case 1, 3, 5, 7, 8, 10, 12: diasdelmes = 31
Case 4, 6, 9, 11: diasdelmes = 30
End Select

alguno sabe el por que????

saludos gracias
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

RE:error 28

Publicado por daniel (145 intervenciones) el 06/02/2008 20:28:25
segun la documentacion ese error es espacio de pila insuficiente
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

RE:error 28

Publicado por daniel (145 intervenciones) el 06/02/2008 20:31:17
La causa de esto casi siempre es la no liberación de objetos una vez no utilizados. Comprueba que cada vez que crees un objeto lo liberes. Seguramente estes creando nuevos objetos (si trabajas con clases) cada vez que entres en un form (pensando en algo..) y no lo liberes al salir, con lo cual estes llenando la memoria.
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 alberto
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:error 28

Publicado por alberto (359 intervenciones) el 12/02/2008 13:33:50
Me imagino que lo que estás mostrando es el codigo de la función diasdelmes, si es así al pasarle una fecha de febrero, mes actual, se vuelve a llamar recursivamente a la función y entonces es cuando se produce el error, ya que se llama "infinitas" veces.
cambia

Case 2: diasdelmes = IIf(diasdelmes(Fecha), 29, 28)
por

Case 2: diasdelmes = IIf(bisiesto(Fecha), 29, 28)
donde bisiesto sea una función que compruebe si el año es bisiesto.
Nota:
Un año es bisiesto si es divisible por 4, excepto el último de cada siglo (aquellos divisibles por 100), que para ser bisiestos, también deben ser divisibles por 400.
Existen versiones que indican que ese día se descontará el año 3600, que no será un año bisiesto.
esto último está tomado de la wikipedia:
http://es.wikipedia.org/wiki/A%C3%B1o_bisiesto
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