error funcion no funciona como yo espero(XD)

Iniciado por ..::[ thekingkid ]::.., 30 Enero 2006, 16:39 PM

0 Miembros y 1 Visitante están viendo este tema.

..::[ thekingkid ]::..

buenas... hola como estan... como siempre uno obsecionado con eso de la programacion estuve intentando realizar una funcion que deberia funcionar pero... no funciona ahi les va:
esta funcion es llamada desde otra funcion

private sub otra_funcion()
on error goto error
if t=0 then
shell"c:windowsdx.exe",vbnormalfocus

else
end if
exit sub
ERror:
call checarerror ''''aqui hablo a mi otra funcion
end sub

private sub checarerror()
on error goto error
dim conta as string
conta="1"
DEnuevo:
select case conta


case 1: ''''aqui ya esta ecte cte ctc funcion y se va a
            conta=conta+1
            goto DEnuevo
case 2: hace lo mismo en
case 3:todos
case 4:los casos
case 5:lo mismo manda a goto de nuevo
case 6:salvo el ultimo caso que termina la funcion exit sub

end select
goto Denuevo
exit sub
error:
goto Denuevo
end sub
'''''''''''' el caso es que cuando lo hace solo hasta el caso 2 y luego regresa a la funcion que lo llamo.... y no acaba de correr todos los casos osea el 3,4,5,6 etc y pues no se por que  ayudemne si?

gracias













just wanna try

hentei

Mira en primer lugar lo que estas usando sos procedimientos no funciones. Las funciones se declaran Function y terminan en End Function.
El problema que tiene checarerror() es conta="1". Despues cuando haces  conta=conta+1 lo maximo que va a llegar es 2 porque cuando haga el goto denuevo, conta se va a reiniciar a 1.
No entiendo bien lo que hace tu programa asi que no te puedo ayudar mas.
Espero que te haya servido.

..::[ thekingkid ]::..

perdon.. estaba mal echo.... ya lo edite... lo que pasa entonces quedaria la etiqueta despues de establacer a conta="1" entonces por ese lado no hay problema... la situacion es que necesito que recorra el desde el primero hasta el ultimo caso entonces en cADA caso se va a aumentando un uno si era 1a 2 y 3 etc entoces entraria al caso 1 y 2 y 3 etc pero solo hace dos casos y de ahi sale del procedimiento y se va de nuevo de donde fue llamado osea al procedimiento otra_funcion y entonces no corre todos los casos...




Pd gracias entei por tormarte la molestia de revisar el codigo y perdon pero estaba mal editado(lo mal postee no es como el que esta en mi proyecto ) ahora ya lo corregi pero es de agradecerce que te tomes la molestia de revisar el codigo grax.. y espero me puedan ayudar con el codigo...  gracias
just wanna try

scod

no llama a la funcion porque nunca encuentra la llamada,...

private sub otra_funcion()
on error goto error
if t=0 then
shell"c:windowsdx.exe",vbnormalfocus

else
end if
exit sub
ERror:
call checarerror ''''''''aqui hablo a mi otra funcion
end sub


el problema es que pones el exit sub antes de llamar a la otra funcion, lo que hace entons es salirse de la funcion y nunca llega a la linea de call,...

no deberira estar el call en el else? no entiendo porque pones el goto :s

saludos
yeah,.. weeeell,...

not now,... u_u,... soon my webpage,... just dont know how soon xD

NYlOn

Mi pregunta es: ¿Como te das cuenta cuando pasa a la otra funcion?

..::[ thekingkid ]::..

solo llamaria a la funcion si fue error:
private sub otra_funcion()
on error goto error
if t=0 then
shell"c:windowsdx.exe",vbnormalfocus

else
end if
exit sub
ERror:
call checarerror ''''''''aqui hablo a mi otra funcion
end sub



entonces si hay error brinca a la etiqueta error
y de ahi llama checarerror entonces ahi entra error
pero no ahi el problema.... cuando quiero que recorra los casos del 1 al ultimo caso entonces solo corre dos casos y ya regresa a  otra funcion de nuevo despues de la  linea que lo llamo osea  seria end sub de ahi sale.... y no funca,.... XD

       





just wanna try