Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Dudas con if

Estas en el tema de Dudas con if en el foro de Visual Basic clásico en Foros del Web. Hola!! tengo un codigo que me ayuudarón a reducir, pero quisiera agregarle algunas especificaciones, por ejemplo que se puedan hacer pagos de inscripciones, pero al ...
  #1 (permalink)  
Antiguo 21/06/2011, 15:02
Avatar de Shizuka  
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 1 mes
Puntos: 4
Dudas con if

Hola!! tengo un codigo que me ayuudarón a reducir, pero quisiera agregarle algunas especificaciones, por ejemplo que se puedan hacer pagos de inscripciones, pero al mismo tiempo que se pueda hacer un abono a esa inscripcion, empece agregandole algunas cosas pero no estoy muy segura de como voy , por favr si pueden darle un vistazo sería genial.

Yo hago referencia a unos text que estan en otro formulario,
pero bueno , les comento que las incripciones pueden ser
para maternal de 1300 para preescolar y primaria de 1500

Codigo para colegiaturas o inscripciones

Código:

Private Sub Command1_Click()
Dim ValBeca As Double
Dim opBeca As Double
Dim ins As Double
Dim insbeca As Double
ValBeca = 0.5
If Combo7.Text = "Colegiatura" Then
Mat = Form24.Text1.Text: Pre = Form24.Text2.Text: Pri = Form24.Text3.Text
If opBeca Then Mat = Form24.Text1.Text * ValBeca: Pre = Form24.Text2.Text * ValBeca: Pri = Form24.Text3.Text * ValBeca
Select Case Combo1.Text
   Case "Maternal":  miValor = Mat
   Case "Preescolar":  miValor = Pre
   Case "Primaria":  miValor = Pri
End Select
If Combo3.Text = "Quincenal" Then miValor = miValor / 2
If Combo3.Text = "Mensual" Then miValor = miValor
'If Combo3.Text = "Abono" Then miValor = Text7
If Combo5.Text = "25%" Then miValor = miValor - (miValor * 0.25)
If Combo5.Text = "50%" Then miValor = miValor - (miValor * 0.5)
If Combo5.Text = "No beca" Then miValor = miValor
If Combo6.Text = "10%" Then miValor = miValor + (miValor * 0.1)
Text7 = miValor
Else
If Combo7.Text = "Inscripción" Then
Insm = Form24.Text6.Text: Inspre = Form24.Text5.Text: Inspri = Form24.Text4.Text
If insbeca Then imat = Form24.Text6.Text * insbeca: Inspre = Form24.Text5.Text * insbeca: Inspri = Form24.Text4.Text * ins
Select Case Combo1.Text
   Case "Maternal":  miValor = Insm
   Case "Preescolar":  miValor = Inspre
   Case "Primaria":  miValor = Inspri
End Select
If Combo3.Text = "Quincenal" Then miValor = miValor / 2
If Combo3.Text = "Mensual" Then miValor = miValor
'If Combo3.Text = "Abono" Then miValor = Text7
If Combo5.Text = "25%" Then miValor = miValor - (miValor * 0.25)
If Combo5.Text = "50%" Then miValor = miValor - (miValor * 0.5)
If Combo5.Text = "No beca" Then miValor = miValor
If Combo6.Text = "10%" Then miValor = miValor + (miValor * 0.1)
Text7 = miValor
End If
End If
End Sub
Codigo para abonos

Código:
Private Sub Command2_Click()
Dim ValBeca As Double
Dim opBeca As Double
Dim Saldo As Double
ValBeca = 0.5
Mat = Form24.Text1.Text: Pre = Form24.Text2.Text: Pri = Form24.Text3.Text
If opBeca Then Mat = Form24.Text1.Text * ValBeca: Pre = Form24.Text2.Text * ValBeca: Pri = Form24.Text3.Text * ValBeca
Select Case Combo1.Text
   Case "Maternal":  miValor = Mat
   Case "Preescolar":  miValor = Pre
   Case "Primaria":  miValor = Pri
End Select
If Combo3.Text = "Quincenal" Then miValor = miValor / 2
If Combo3.Text = "Mensual" Then miValor = miValor
If Combo3.Text = "Abono" Then miValor = Text7
If Combo5.Text = "25%" Then miValor = miValor - (miValor * 0.25)
If Combo5.Text = "50%" Then miValor = miValor - (miValor * 0.5)
If Combo5.Text = "No beca" Then miValor = miValor
If Combo6.Text = "10%" Then miValor = miValor + (miValor * 0.1)
Text7 = miValor
Text3 = Text7 - Text1
End Sub


Gracias de antemano.
__________________
Will you please tell me the way to the sky?

Última edición por Shizuka; 21/06/2011 a las 15:17
  #2 (permalink)  
Antiguo 22/06/2011, 02:03
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Dudas con if

¿Cual es el problema?
  #3 (permalink)  
Antiguo 22/06/2011, 08:50
Avatar de Shizuka  
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: Dudas con if

es que quiero agregarle màs condiciones
que si el combo1 = inscripciòn entonces

haga la condicion que si es maternal= 1300
y si es preescolar y primaria = 1500

pero si el combo1= abono entonces

pregunte si es abono de colegiatura o de inscripcion

si es inscripcion

haga la condicion que si es maternal= 1300
y si es preescolar y primaria = 1500

si es colegiatura

haga la condicion que si es maternal= 1250
y si es preescolar y primaria = 1300

Ciertas condidiciones me funcionan, pero despues me salen cantidades mal T_T
__________________
Will you please tell me the way to the sky?
  #4 (permalink)  
Antiguo 22/06/2011, 09:44
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Dudas con if

Pero no veo que es lo que no sabes hacer. Simplemente tienes que ordenar lo que pusiste en este post y traducirlo a VB6

Si lo tienes hecho y te salen cantidades mal te recomiendo que depures y veas por donde va entrando para ver que va haciendo exactamente y donde está tu error.
  #5 (permalink)  
Antiguo 22/06/2011, 10:42
Avatar de Shizuka  
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: Dudas con if

Bueno ya hice unas modificaciones, podrías por favor darle un vistazo a mi código si no es mucha molestía?


Código vb:
Ver original
  1. Private Sub Command1_Click()
  2. Dim ValBeca As Double
  3. Dim opBeca As Double
  4. Dim ins As Double
  5. Dim insbeca As Double
  6. ValBeca = 0.5
  7. If Combo7.Text = "Colegiatura" Then
  8. Mat = Form24.Text1.Text: Pre = Form24.Text2.Text: Pri = Form24.Text3.Text
  9. If opBeca Then Mat = Form24.Text1.Text * ValBeca: Pre = Form24.Text2.Text * ValBeca: Pri = Form24.Text3.Text * ValBeca
  10. Select Case Combo1.Text
  11.    Case "Maternal":  miValor = Mat
  12.    Case "Preescolar":  miValor = Pre
  13.    Case "Primaria":  miValor = Pri
  14. End Select
  15. If Combo3.Text = "Quincenal" Then miValor = miValor / 2
  16. If Combo3.Text = "Mensual" Then miValor = miValor
  17. 'If Combo3.Text = "Abono" Then miValor = Text7
  18. If Combo5.Text = "25%" Then miValor = miValor - (miValor * 0.25)
  19. If Combo5.Text = "50%" Then miValor = miValor - (miValor * 0.5)
  20. If Combo5.Text = "No beca" Then miValor = miValor
  21. If Combo6.Text = "10%" Then miValor = miValor + (miValor * 0.1)
  22. Text7 = miValor
  23. Else
  24. If Combo7.Text = "Inscripción" Then
  25. Insm = Form24.Text6.Text: Inspre = Form24.Text5.Text: Inspri = Form24.Text4.Text
  26. If insbeca Then imat = Form24.Text6.Text * insbeca: Inspre = Form24.Text5.Text * insbeca: Inspri = Form24.Text4.Text * ins
  27. Select Case Combo1.Text
  28.    Case "Maternal":  miValor = Insm
  29.    Case "Preescolar":  miValor = Inspre
  30.    Case "Primaria":  miValor = Inspri
  31. End Select
  32. If Combo3.Text = "Quincenal" Then miValor = miValor / 2
  33. If Combo3.Text = "Mensual" Then miValor = miValor
  34. 'If Combo3.Text = "Abono" Then miValor = Text7
  35. If Combo5.Text = "25%" Then miValor = miValor - (miValor * 0.25)
  36. If Combo5.Text = "50%" Then miValor = miValor - (miValor * 0.5)
  37. If Combo5.Text = "No beca" Then miValor = miValor
  38. If Combo6.Text = "10%" Then miValor = miValor + (miValor * 0.1)
  39. Text7 = miValor
  40. End If
  41. End If
  42.  
  43.  
  44.  
  45.  
  46. 'abono
  47. If Combo3.Text = "Abono de colegiatura" Then
  48. Mat = Form24.Text1.Text: Pre = Form24.Text2.Text: Pri = Form24.Text3.Text
  49. If opBeca Then Mat = Form24.Text1.Text * ValBeca: Pre = Form24.Text2.Text * ValBeca: Pri = Form24.Text3.Text * ValBeca
  50. Select Case Combo1.Text
  51.    Case "Maternal":  miValor = Mat
  52.    Case "Preescolar":  miValor = Pre
  53.    Case "Primaria":  miValor = Pri
  54. End Select
  55. If Combo3.Text = "Quincenal" Then miValor = miValor / 2
  56. If Combo3.Text = "Mensual" Then miValor = miValor
  57. If Combo3.Text = "Abono" Then miValor = Text7
  58. If Combo5.Text = "25%" Then miValor = miValor - (miValor * 0.25)
  59. If Combo5.Text = "50%" Then miValor = miValor - (miValor * 0.5)
  60. If Combo5.Text = "No beca" Then miValor = miValor
  61. If Combo6.Text = "10%" Then miValor = miValor + (miValor * 0.1)
  62. Text7 = miValor
  63. 'Text3 = Text7 - Text1
  64. Else
  65. If Combo3.Text = "Abono de inscripción" Then
  66. Insm = Form24.Text6.Text: Inspre = Form24.Text5.Text: Inspri = Form24.Text4.Text
  67. If insbeca Then imat = Form24.Text6.Text * insbeca: Inspre = Form24.Text5.Text * insbeca: Inspri = Form24.Text4.Text * ins
  68. Select Case Combo1.Text
  69.    Case "Maternal":  miValor = Insm
  70.    Case "Preescolar":  miValor = Inspre
  71.    Case "Primaria":  miValor = Inspri
  72. End Select
  73. If Combo3.Text = "Quincenal" Then miValor = miValor / 2
  74. If Combo3.Text = "Mensual" Then miValor = miValor
  75. If Combo5.Text = "25%" Then miValor = miValor - (miValor * 0.25)
  76. If Combo5.Text = "50%" Then miValor = miValor - (miValor * 0.5)
  77. If Combo5.Text = "No beca" Then miValor = miValor
  78. If Combo6.Text = "10%" Then miValor = miValor + (miValor * 0.1)
  79. Text7 = miValor
  80. 'Text3 = Text7 - Text1
  81. End If
  82. End If
  83. End Sub
__________________
Will you please tell me the way to the sky?
  #6 (permalink)  
Antiguo 22/06/2011, 10:59
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Dudas con if

Yo le doy los vistazos que quieras pero no sé que tiene que hacer y por tanto no te voy a poder decir si el código es correcto o no. Lo mejor es que te elabores un plan de pruebas y lo vayas ejecutando tú, que eres quien sabe qué es lo que realmente tiene que hacer tu código y cómo se tiene que comportar.
  #7 (permalink)  
Antiguo 22/06/2011, 11:22
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: Dudas con if

Hola Shizuka!
Veo que tienes tus IF basados en DOS combos principalmente (combo7 y combo3), el problema esta en que los dos se van a ejecutar y no debe ser asi, o es el total (combo7) o es abonos (combo3):

Código vb:
Ver original
  1. 'ASI ES TU ESTRUCTURA ACTUAL
  2. 'COMO EL COMBO7 SOLO TIENE 2 VALORES,
  3. 'SIEMPRE SE VA A EJECUTAR 1 DE LOS 2 VALORES
  4.  
  5.    If Combo7.Text = "Colegiatura" Then
  6.         '...
  7.    Else
  8.     If Combo7.Text = "Inscripción" Then
  9.         '...
  10.    End If
  11.  
  12. 'DESPUES DE EJECUTAR 1 DE LOS 2 VALORES DEL COMBO7,
  13. 'SE VA A EJECUTAR 1 DE LOS 2 VALORES DEL COMBO3
  14.  
  15.     'abono
  16.    If Combo3.Text = "Abono de colegiatura" Then
  17.         '...
  18.    Else
  19.     If Combo3.Text = "Abono de inscripción" Then
  20.         '...
  21.    End If

Agrega al COMBO7, la opciones de abonos y elimina el COMBO3, de esa forma basas tus preguntas en los valores del COMBO7 solamente. Algo asi:

Código vb:
Ver original
  1. 'PREGUNTA SIEMPRE EN EL MISMO COMBO7
  2.    If Combo7.Text = "Colegiatura" Then
  3.         '...
  4.    ElseIf Combo7.Text = "Inscripción" Then
  5.         '...
  6.    ElseIf Combo7.Text = "Abono de colegiatura" Then
  7.         '...
  8.    ElseIf Combo7.Text = "Abono de inscripción" Then
  9.         '...
  10.    End If
  11.  
  12. 'COLOCA EL Text7.TEXT=miValor AL FINAL DE LOS IF
  13.    Text7 = miValor

Verifica y nos cuentas!!
  #8 (permalink)  
Antiguo 22/06/2011, 12:10
Avatar de Shizuka  
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: Dudas con if

Cita:
Iniciado por lokoman Ver Mensaje
Hola Shizuka!
Veo que tienes tus IF basados en DOS combos principalmente (combo7 y combo3), el problema esta en que los dos se van a ejecutar y no debe ser asi, o es el total (combo7) o es abonos (combo3):

Código vb:
Ver original
  1. 'ASI ES TU ESTRUCTURA ACTUAL
  2. 'COMO EL COMBO7 SOLO TIENE 2 VALORES,
  3. 'SIEMPRE SE VA A EJECUTAR 1 DE LOS 2 VALORES
  4.  
  5.    If Combo7.Text = "Colegiatura" Then
  6.         '...
  7.    Else
  8.     If Combo7.Text = "Inscripción" Then
  9.         '...
  10.    End If
  11.  
  12. 'DESPUES DE EJECUTAR 1 DE LOS 2 VALORES DEL COMBO7,
  13. 'SE VA A EJECUTAR 1 DE LOS 2 VALORES DEL COMBO3
  14.  
  15.     'abono
  16.    If Combo3.Text = "Abono de colegiatura" Then
  17.         '...
  18.    Else
  19.     If Combo3.Text = "Abono de inscripción" Then
  20.         '...
  21.    End If

Agrega al COMBO7, la opciones de abonos y elimina el COMBO3, de esa forma basas tus preguntas en los valores del COMBO7 solamente. Algo asi:

Código vb:
Ver original
  1. 'PREGUNTA SIEMPRE EN EL MISMO COMBO7
  2.    If Combo7.Text = "Colegiatura" Then
  3.         '...
  4.    ElseIf Combo7.Text = "Inscripción" Then
  5.         '...
  6.    ElseIf Combo7.Text = "Abono de colegiatura" Then
  7.         '...
  8.    ElseIf Combo7.Text = "Abono de inscripción" Then
  9.         '...
  10.    End If
  11.  
  12. 'COLOCA EL Text7.TEXT=miValor AL FINAL DE LOS IF
  13.    Text7 = miValor

Verifica y nos cuentas!!
Ok muchas gracias, voy a revisar una vez más el codigo, gracias por la respuesta :)
__________________
Will you please tell me the way to the sky?
  #9 (permalink)  
Antiguo 22/06/2011, 12:11
Avatar de Shizuka  
Fecha de Ingreso: marzo-2011
Mensajes: 106
Antigüedad: 13 años, 1 mes
Puntos: 4
Respuesta: Dudas con if

Cita:
Iniciado por Heimish2000 Ver Mensaje
Yo le doy los vistazos que quieras pero no sé que tiene que hacer y por tanto no te voy a poder decir si el código es correcto o no. Lo mejor es que te elabores un plan de pruebas y lo vayas ejecutando tú, que eres quien sabe qué es lo que realmente tiene que hacer tu código y cómo se tiene que comportar.

Si la verdad es que si son muchos requerimientos los que se necesitan :C
revisare el codigo de nuevo con los requerimientos y lo que me sugiere Lokoman, gracias :3
__________________
Will you please tell me the way to the sky?

Etiquetas: dudas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:48.