| Usuario |
Detener código durante ejecución. |
Fhong Yunsung
2 Mensaje(s)
|
| Enviado - 7/6/2003 |
| |
Hola amigos. Soy nuevo aqui. =)
Hay algo que me gustaria saber en Visual Basic, aunque no estoy seguro si sea posible.
El asunto es: por ejemplo, cuando tienes varias cajas de texto, en las cuales vas a introducir datos, el botón de comando va a iniciar un proceso el cual va a depender de lo introducido en las cajas de texto, pero por ejemplo, si el usuario deja en blanco la primer casilla, puedes hacer que aparezca un mensaje que diga "Te brincaste el campo 1, tienes que poner algo" y del mismo modo, tienes que hacer lo mismo para los demás cajas de texto.
La cosa es, cuando ellos se brincan algún campo, eso significa que esta mal introducido un dato, y por lo tanto el programa VA A CONTINUAR su proceso del botón de comando y va a generar un resultado erróneo, de la misma manera, si te brincaste el segundo campo, te muestra el mensaje pero VA A SEGUIR EL PROCESO....
mi pregunta es si hay alguna función para detener el programa (no terminarlo, por ejemplo con "End") para que si por ejemplo, escribieron algo en la primer casilla, y nada en la segunda, el programa saque el mensaje diciendo que esta mal eso y que se detenga para que el usuario lo escriba, y NO BORRE LO QUE YA HABÍA ESCRITO ANTES en la primer casilla.
Me explico??
Gracias |
| |
|
Zell
106 Mensaje(s)
|
| Enviado - 7/6/2003 |
| |
haber si te entendi...
para comprobar si la casilla esta vacia podrias usar el if, lo que quedaria lgo como el siguiente codigo:
If CajaTexto.text = "" then
msgbox "Ingresa el dato en la casilla n x"
CajaTexto.setfocus
end if
este código lo tendrias que poner en el evento got focus de la casilla.
ahora tu comentas que tienes muchas casillas, aqui seria bueno que crears una matriz de controles, es decir ponerle el mismo nombre todas las casillas de texto y un index diferente (que sea correlativo)
Entences te quedaria un codigo como el siguiente:
dim i as integer
for i = 1 to Text.count
if text(i).text = "" then
msgbox "Escribi en la casilla n x"
text(i).setfocus
exit for
end if
next i
bueno espero que te sirva, si no le pegue en la tecla con lo que te comente, trata de aclararlo un poquito mas, suerte
zell
|
| |
|
Fhong Yunsung
2 Mensaje(s)
|
| Enviado - 8/6/2003 |
| |
Bueno, la verdad es que no sé que es una matriz de controles, aunque creo que me podría servir. Me podrías decir donde puedo leer al respecto?
El ejemplo que me pones según entiendo es que va a generar el mensaje en cada caja de texto en caso de que esté vacía.
Pero lo que me refiero, es que el programa se detenga, o sea, el código deje de procesarse al presionar el botón de comando en caso de que encuentre un error en los datos introducidos para que así el usuario pueda corregirlo.
Por ejemplo, lo que hize fue que si en la primer casa había error, entonces el programa terminaba, o sea puse un end. Y puse lo mismo en la segunda caja de texto, lo mismo en la tercera, de tal modo que si brincabas alguna de las cajas de texto, el programa se finalizaba, pero por ejemplo, si oprimes el botón de comando (o sea, generalmente el "aceptar") sin haber introducido dato alguno en ninguna de los cajas de texto, entonces te indica el primer error programado en el código, o sea, el de la primera caja de texto, y el programa finalizaba. Entonces, quité ese "end" de la condición de la primer caja de texto, y sin escribir algo en ninguna de las cajas le pones "aceptar" el programa te mostraba el mensaje de que el dato estaba mal, le dabas aceptar al mensaje y salía inmediatamente el mensaje de error de la siguiente caja de texto, por que el programa no se detuvo, sino que siguió procesando y como no tenía instrucciones de finalizar si estaba mal el primer dato, se siguió con el siguiente línea de código, la cual era un mensaje que también decía que estaba mal el dato, y ahora si el programa finalizaba por que no le habia quitado el "end", entonces lo que quiero es como deternerlo en el momento para que no siga leyendo la línea de programación y así puedas corregir el dato.
Me explico?? |
| |
|
Desconocido
|
| Enviado - 8/8/2003 |
| |
puedes utilizar un goto
es decir, al inicio de todo el codigo del
boto "Aceptar" ponle
On Error goto fin
"escribe el codigo y al final antes de end Sub ponle "fin:" esto hara que cuando corra el codigo y encuentre el primer error el procedimiento termine"
fin:
End sub
____________________________________ |
| |
|
|
|