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

Ayuda listbox

Estas en el tema de Ayuda listbox en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/07/2009, 16:38
 
Fecha de Ingreso: julio-2009
Mensajes: 1
Antigüedad: 14 años, 9 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
  #2 (permalink)  
Antiguo 09/06/2010, 19:30
 
Fecha de Ingreso: junio-2010
Mensajes: 1
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Ayuda listbox

jajajaja Ricardo? estamos en la misma...
  #3 (permalink)  
Antiguo 10/06/2010, 02:16
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Ayuda listbox

Utilizad matrices.

Algo como esto:

f=combo1.listindex

contador(f) = contador(f) + 1
acumulador(f) = acumulador(f) + Text1.Text
If Text1.Text < 50 Then
reprobados(f) = reprobados(f) + 1
Else
aprobados(f) = aprobados(f) + 1
End If

for f=0 to combo1.listcount-1
If contador(f) > 0 Then
List1.AddItem "Alumnos en la seccion " & combo1.list(f) & ": " & contador(f)
List2.AddItem "Aprobados seccion " & combo1.list(f) & ": " & aprobados(f)
List3.AddItem "Reprobados seccion " & combo1.list(f) & ": " & reprobados(f)
List4.AddItem "Promedio seccion " & combo1.list(f) & ": " & acumulador(f) / contador(f)
End If
Next f

Suerte
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
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 07:46.