Programación General > Visual Basic 6.0 e inferiores

 Select Case Dudas De Uso

(1/2) > >>

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 &#60;= 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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa