Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: fernandos85al@hotmail.com en Noviembre 17, 2012, 04:10:28 pm
-
Hola gente linda!!! como están? en esta oportunidad estoy tratando de realizar una pequeña aplicación en vb6, donde se presenta un formulario con distintas opciones, y por cada check correcto se asigna 1 punto. Al finalizar en un command se debería obtener el resultado de la sumatoria de los check seleccionados correctamente....
pongo el código, siempre me da como resultado final el valor 1, es como un multiple choice en un examen.... presento distintas opciones sobre un tema dado, ejemplo: elementos de una ferreteria:
1- seleccione la opción correcta:
A-MARTILLO
B-GATO
C-HOJAS
D-CLAVOS
E-PLUMAS
En este ejemplo las correctas serian las opciones A y D, al seleccionar obtienen como resultado un 4, siendo que cada una valdria 2 puntos para llegar al 10. No se si se entiende...
dejo mi código, y una imagen de un ejemplo..
Dim suma() As Integer 'Contiene el valor de cada item(checkbox)
Dim total As Integer 'guarda la sumatoria total
Private Sub Check1_Click(Index As nteger)
ReDim suma(6) As Integer
Select Case Check1(Index).Value
Case 0
suma(0) = 2 ' si se selecciona y es correcta se asigna 2 puntos que se guarda en suma(0)
Case 1
suma(1) = 2
Case 2
suma(2) = 2
Case 3
suma(3) = 2
Case 4
suma(4) = 2
End Select
total = suma(0) + suma(1) + suma(2) + suma(3) + suma(4) + suma(5) ' suma total
End Sub
Private Sub Command1_Click()
MsgBox "Resultado:" & total, vbOKOnly + vbInformation, "Resultado total" ' muestra el resultado obtenido
End Sub
http://www.ziddu.com/download/20904367/Suma.JPG.html
(http://www.ziddu.com/download/20904367/Suma.JPG.html)
es algo muy simple pero no logro ver el error.... si alguien sabe, le agradecería muchísimo!!
desde ya muchísimas gracias + gracias por leer=usuario agradecido!!! jeje
saludos cordiales!!!
-
Lo que yo no puedo es ver la foto, mejor dicho es muy extensa la forma para verla y al final aborté. Porque no la pegas en un server gratuito, aqui hice un video para mi foro de como publicar fotos espero te sirva.
[youtube]http://www.youtube.com/watch?v=CHPYA0QVRhQ[/youtube]
-
Hola Yvan!!, gracias por responder tan pronto!, dejo el link
http://snag.gy/gl7lb.jpg
(http://snag.gy/gl7lb.jpg)
http://snag.gy/gl7lb.jpg
muchas gracias!!
saludos cordiales!
-
Te falto presionar aqui en el foro el icono de foto (al lado del boton de youtube y te crea las etiquetas img /img)) para que quede asi :
(http://snag.gy/gl7lb.jpg)
-
Esta facil de resolver, es recorrer los checkbox, no es necesario tampoco el redim, lo puedo hacer pero ya vi a varios en el post y seguro ya lo estan haciendo asi que aguardemos.
-
Dim xx As Integer
Private Sub Command1_Click()
xx = 0
For i = 0 To Check1.Count - 1
If Check1(i).Value = 1 Then
xx = xx + 2
End If
Next i
MsgBox "Total: " & xx
End Sub
-
Hola fernando hay un par de errores, pero te paso la funcion terminada y despues te explico.
Dim total As Integer 'guarda la sumatoria total
Private Sub Check1_Click(Index As Integer)
Dim suma As Integer 'Contiene el valor de cada item(checkbox)
Dim i As Integer
suma = 0
For i = 0 To Check1.Count - 1
If Check1(i).Value Then suma = suma + 2 'o Check1(i).Tag si son distintos valores
Next
total = suma
End Sub
Private Sub Command1_Click()
MsgBox "Resultado:" & total, vbOKOnly + vbInformation, "Resultado total" ' muestra el resultado obtenido
End Sub
bien tu error es, haces un select case de Check1(Index).Value , y eso es 1 o 0 entonces tendrias que haber echo un select case del index en ese caso. pero si el usuario destildara la casilla siempre sigue sumando 2, me entendes. no comprovas eso. fíjate la función que te pase es mas segura.
Saludos.
-
Muchas gracias! a todos, no que estoy haciendo últimamente, necesito vacaciones y un buen descanso!!!no sirve, al menos para mi trasnochar o mejor dicho pasar sin descansar!, no veía el gran error, me da vergüenza, era tan fácil, pero no lo veía!!!
muchas gracias a todos!!
-
A veces pasa no te preocupes y no pierdas el animo
Saludos
-
En tu codigo original deberias utilizar
Redin Preserve Suma(6)