Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/07/2009, 16:38
mikhaels
 
Fecha de Ingreso: julio-2009
Mensajes: 1
Antigüedad: 14 años, 10 meses
Puntos: 0
Ayuda listbox

Tengo un problema tengo que hacer un programa con un combobox dinamico que me permita introducir "X" cantidad de secciones. luego tengo q contar todos los alumnos de esa seccion, contar los aprobados, reprobados y el promedio de la seccion y mostrarlo en un listbox. tengo q usar la propiedad additem, List y Listcount. Hasta el momento tengo resuelto el problema con pocas secciones pero cuando son muchas seria demasiado tedioso.

Public contadorA As Double
Public contadorB As Double
Public contadorC As Double
Public acumuladorA As Double
Public acumuladorB As Double
Public acumuladorC As Double
Public reprobadosA As Double
Public reprobadosB As Double
Public reprobadosC As Double
Public aprobadosA As Double
Public aprobadosB As Double
Public aprobadosC As Double
Public promedioA As Double
Public promedioB As Double
Public promedioC As Double

Private Sub Command1_Click()
If Text1.Text = "" Then
MsgBox ("Tiene que introducir una nota entre 0 y 100")
Exit Sub
End If
If Combo1.Text = "Secciones" Then
MsgBox ("Debe introducir una seccion")
Exit Sub
End If
If Text1.Text = "" And Combo1.Text = "Secciones" Then
MsgBox ("Tiene que introducir valores")
Exit Sub
End If
If Text1.Text < 0 Then
MsgBox ("La nota tiene que tener valores mayores a 0")
End If
If Text1.Text > 100 Then
MsgBox ("La nota tiene que tener valores menores a 100")
End If
If Combo1.ListIndex= 0 Then
contadorA = contadorA + 1
acumuladorA = acumuladorA + Text1.Text
If Text1.Text < 50 Then
reprobadosA = reprobadosA + 1
Else
aprobadosA = aprobadosA + 1
End If
End If
If Combo1.ListIndex = 1 Then
contadorB = contadorB + 1
acumuladorB = acumuladorB + Text1.Text
If Text1.Text < 50 Then
reprobadosB = reprobadosB + 1
Else
aprobadosB = aprobadosB + 1
End If
End If
If Combo1.ListIndex = 2 Then
contadorC = contadorC + 1
acumuladorC = acumuladorC + Text1.Text
If Text1.Text < 50 Then
reprobadosC = reprobadosC + 1
Else
aprobadosC = aprobadosC + 1
End If
End If
Combo1.Text = "Secciones"
Text1.Text = ""
If contadorA > 0 Then
promedioA = acumuladorA / contadorA
End If
If contadorB > 0 Then
promedioB = acumuladorB / contadorB
End If
If contadorC > 0 Then
promedioC = acumuladorC / contadorC
End If
End Sub

Private Sub combo1_KeyPress(KeyAscii As Integer)
If KeyAscii > 0 Then
KeyAscii = 0
Exit Sub
End If
End Sub

Private Sub Command2_Click()
If contadorA > 0 Then
List1.AddItem "Alumnos en la seccion A: " & contadorA
List2.AddItem "Aprobados seccion A: " & aprobadosA
List3.AddItem "Reprobados seccion A: " & reprobadosA
List4.AddItem "Promedio seccion A: " & promedioA
End If
If contadorB > 0 Then
List1.AddItem "Alumnos en la seccion B: " & contadorB
List2.AddItem "Aprobados seccion B: " & aprobadosB
List3.AddItem "Reprobados seccion B: " & reprobadosB
List4.AddItem "Promedio seccion B: " & promedioB
End If
If contadorC > 0 Then
List1.AddItem "Alumnos en la seccion C: " & contadorC
List2.AddItem "Aprobados seccion C: " & aprobadosC
List3.AddItem "Reprobados seccion C: " & reprobadosC
List4.AddItem "Promedio seccion C: " & promedioC
End If

End Sub

Private Sub Command3_Click()
contadorA = 0
contadorB = 0
contadorC = 0
acumuladorA = 0
acumuladorB = 0
acumuladorC = 0
reprobadosA = 0
reprobadosB = 0
reprobadosC = 0
aprobadosA = 0
aprobadosB = 0
aprobadosC = 0
promedioA = 0
promedioB = 0
promedioC = 0
Combo1.Text = "Secciones"
Text1.Text = ""
List1.Clear
List2.Clear
List3.Clear
List4.Clear

End Sub

Private Sub Command4_Click()
Unload Me
End Sub

Private Sub Form_Load()

resp = InputBox("Desea Incluir una seccion S/N")
If resp = "S" Or resp = "s" Then
Combo1.Clear
While resp = "S" Or resp = "s"
nombre = InputBox("introduzca la nueva seccion")
resp = InputBox("¿Desea seguir incluyendo S/N?")
Combo1.AddItem nombre
Wend
End If
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii > 64 And KeyAscii < 91) Or (KeyAscii > 96 And KeyAscii < 123) Then
MsgBox ("Debe introducir solo numeros")
KeyAscii = 0
End If
End Sub

alguna idea de como hacerlo sin tener q copiar y pegar esta parte miles de veces?

If Combo1.List = 0 Then
contadorA = contadorA + 1
acumuladorA = acumuladorA + Text1.Text
If Text1.Text < 50 Then
reprobadosA = reprobadosA + 1
Else
aprobadosA = aprobadosA + 1
End If
End If

gracias :D

Última edición por mikhaels; 07/07/2009 a las 16:49