Visual Basic - que hago mal

Life is soft - evento anual de software empresarial
 
Vista:

que hago mal

Publicado por Carmen (25 intervenciones) el 02/11/2007 22:54:53
tengo el siguiente codigo
Private Sub Command9_Click()

' CODIGO CORRECTO

If Text5.Text = contrasenausuario Then
Command10.Visible = True
Command10.Visible = False
GoTo SEGUIR

' CODIGO INCORRECTO
Else
Command10.Visible = True
Command10.Caption = "AUTORIZACION DENEGADA"
MsgBox " "
GoTo FALLO

End If


FALLO:
Unload citasusuario
seleciondecitas.Show


SEGUIR:
If claveusuario = "001" Then
Text1.Text = " "
Text2.Text = " "
Text3.Text = " "
Text4.Text = " "
Text5.Text = " "
Unload citasusuario
citas7.Show
End If
If claveusuario = "002" Then
Text1.Text = " "
Text2.Text = " "
Text3.Text = " "
Text4.Text = " "
Text5.Text = " "
Unload citasusuario
citas2.Show
End If
If claveusuario = "003" Then
Text1.Text = " "
Text2.Text = " "
Text3.Text = " "
Text4.Text = " "
Text5.Text = " "
Unload citasusuario
citas4.Show
End If
If claveusuario = "004" Then
Text1.Text = " "
Text2.Text = " "
Text3.Text = " "
Text4.Text = " "
Text5.Text = " "
Unload citasusuario
citas6.Show
End If
End Sub, cuando el codigo es correcto se va a seguir y funciona bien, pero cuando no es correcto, despues de detectar que es incorrecto, pasa por el campo de fallo, pero no hace caso a las intrucciones de "seleciondecitas.show", y sigue por la parte de seguir, que debo hacer, gracias por vuestra colaboracion
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:que hago mal

Publicado por ivan (1039 intervenciones) el 02/11/2007 23:07:40
Independientemente del código (que dicho de pasada, me parece una burrada) lo que falta es un

Exit Sub

Solamente para que salga del procedimiento y no continúe con la siguiente instrucción.
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:que hago mal

Publicado por Carmen (25 intervenciones) el 02/11/2007 23:43:05
Ivan te agradezco tu informacion me funciona estupendamente, y de camino que es lo que te parece mal del codigo, estoy abierta a tus sugerencias, pues estoy empezando y te agradeceria mas informacion de como lo podria hacer de otra manera mas profesional. gracias por todo
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:que hago mal

Publicado por ivan (1039 intervenciones) el 03/11/2007 07:50:44
No quiero parecer pedante ni dar clases de programación a nadie (para eso están los profesores), pero hay ciertas cosas que son elementales a la hora de programar:
- No repetir código inncesariamente.
- Las bifurcaciones en VB sólo cuando son extrictamente necesarias.
Con estas dos simples reglas optimizarás el código de tu aplicación y los recursos de la misma.

Prueba con el siguiente código:

Private Sub Command9_Click()
Unload citasusuario ' <--- Esto lo estás repitiendo en ambos casos
If Text5.Text = contrasenausuario Then
Command10.Visible = False
Text1.Text = "" ']
Text2.Text = "" ']
Text3.Text = "" '] <--- Todo esto se repite
Text4.Text = "" ']
Text5.Text = "" ']
Select Case claveusuario
Case "001"
citas7.Show
Case "002"
citas2.Show
Case "003"
citas4.Show
Case "004"
citas6.Show
End Select
Else
Command10.Visible = True
Command10.Caption = "AUTORIZACION DENEGADA"
MsgBox " " ' <--- Esto no vale para nada
seleciondecitas.Show
End If
End Sub

Como verás, se ha reducido bastante para hacer lo mismo.
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