Programación General > Visual Basic 6.0 e inferiores
Select Case Dudas De Uso
abelsql3000:
Miren amigos he leido materiales que me an confundido en ves de ayudar, dicen que la sentencia select case puede hacer varios caso de verdad, otros dicen que solo hace uno y sale del select case, que de cierto es esto ya que necesito usar el select case si es que este puede hacer varios caso a la ves, ejemplo tengo varios checkbox y si se activan dos o tres de ellos que hagan los procesos definidos en el cada Case del select case, pasen ejemplo de esta ocurrencia de SELECT case y Chekbox
ArKaNtOs:
no se te entiende nada, pero si a lo que te refieres es que si un select case puede evaluar varias cosas?, es algo así a lo que te refieres?
--- Código: Text ---Private Sub Command1_Click()x = 0: y = 1Select Case True Case x = 2 And y = 1 MsgBox "Evalue un caso multiple"End SelectEnd Sub
PD aprende a plantear bien tus dudas, ya que sino no se te responderá de la manera adecuada <_<
mejor mira este enlace, aunque no es especifico para VB pero te ayudara:
http://www.elguille.info/NET/dotnet/equiva...bcs3.htm#select
abelsql3000:
TIENES RAZON AMIGO, DISCULPA EL MAL ENTENDIDO, ES QUE ESTABA APURADO.
La consulta es los sgte: Tengo 5 checkbox y deseo que se incremente el acumulador que he definido en funcion al caso que haya sucedido al activar cierto checkbox, por ejemplo check1, check3,check5. El acumulador debe ser 900, segun el ejemplo.
Private Sub Command1_Click()
Static Sum
Sum = 0
Select Case True
Case Check1.Value
Sum = Sum + 100
Case Check2.Value
Sum = Sum + 200
Case Check3.Value
Sum = Sum + 300
Case Check4.Value
Sum = Sum + 400
Case Else
Sum = Sum + 500
End Select
Print Str(Sum)
End Sub
No me funciona aqui el select case para evaluar varios casos
ArKaNtOs:
para ese caso en especifico no necesitas de un select o una condicional que evalué a cada check, tu error es que te enfrascas con el select cuando en la programación hay un sin fin de soluciones para todo, por ejemplo te hice un pequeño code que resulve tu problema con pocas lineas :) observa:
lo único que debes de realizar es hacer un array de controles check e insertar un botón, luego inserta este código y díme si te sirve ;)
--- Código: Text ---Dim sum As IntegerPrivate Sub Check1_Click(Index As Integer)If Check1(Index).Value = 0 Then sum = sum - (100 * (Index + 1))ElseIf Check1(Index).Value = 1 Then sum = sum + (100 * (Index + 1))End IfEnd Sub Private Sub Command1_Click()MsgBox sumEnd Sub
F_Tanori:
El problema es que cuando un caso cumple la condicion no continua con los demas
si continuamos con tu ejemplo: check1, check3,check5
Private Sub Command1_Click()
Static Sum
Sum = 0
Select Case True
Case Check1.Value <----- Cumple la condicion a la primera y sale del select no continua evaluando, pues ya encontro el caso que buscaba
Sum = Sum + 100
Case Check2.Value
Sum = Sum + 200
Case Check3.Value
Sum = Sum + 300
Case Check4.Value
Sum = Sum + 400
Case Else
Sum = Sum + 500
End Select
Print Str(Sum)
End Sub
Tendrias que usar IFs o algo asi como lo que plantea ArKaNtOs
Te dejo este código tal vez te pueda ayudar
--- Código: Text --- Private Sub Command1_Click()Static Sum As Double, bSeleccionada As BooleanDim i As Integer, dValor As DoubleSum = 0i = 1 Do While i <= 5 dValor = Choose(i, 100, 200, 300, 400, 500) bSeleccionada = Choose(i, Check1.Value, Check2.Value, Check3.Value, Check4.Value, Check5.Value) = 1 If bSeleccionada Then Sum = Sum + dValor End If i = i + 1Loop Print Str(Sum)End Sub
Saludos
Navegación
[#] Página Siguiente
Ir a la versión completa