Problemas con un select case

Jose Moure Moure
20 de Noviembre del 2003
Estoy intentando hacer un select para validar varios
option button.Hago la siguiente instruccion:

Private Sub Ajusta(Opcion As Integer)
Select Case Opcion
Case OptHohner = True
DataHohner.Visible = True
DataHohner.Enabled = True
Case OptGivi = True
DataGivi.Visible = True
DataGivi.Enabled = True
Case OptElgo = True
DataElgo.Visible = True
DataElgo.Enabled = True
Case OptFraba = True
DataFraba.Visible = True
DataFraba.Enabled = True
End Select
End Sub

Private Sub CmdAceptar_Click()
activar_datos
Ajusta
End Sub

Al ejecutar el programa me da el siguiente error:"EL ARGUMENTO NO ES OPCIONAL(ERROR 449).Me podrias aportar alguna solucion.Muchas gracias

Quique
20 de Noviembre del 2003
Estas haciendo "Select Case Opcion" pero luego haces "Case OptHohner = True" ... etc que no tiene nada que ver con Opcion. Puesto que Opcion es Integer los "Case" deberían ser Case 1, Case 2 (por ejemplo) haciendo referencia a los posibles valores de Opcion.

asaamar
20 de Noviembre del 2003
La orden Select Case es

Select case opcion
case 1
DataHohner.Visible = True
DataHohner.Enabled = True
case 2
DataGivi.Visible = True
DataGivi.Enabled = True
.........
end select

No puedes igualar un contenido a la variable que has puesto en la línea del case.


Jose
20 de Noviembre del 2003
Lo que me estas diciendo ya lo hice con anterioridad y me da el mismo error.
Lo que pasa es que tengo 4 optionbutton y lo que intento hacer es que al hacer click en el boton aceptar el programa reconozca que optionbutton esta activado y segun cual este activado visualizar y activar su correspondiente control data.Muchas gracias

Jose Moure Moure
20 de Noviembre del 2003
Yo este problema lo solucione con una instruccion if:
If OptHohner = True Then
DataHohner.Visible = True
DataHohner.Enabled = True
else opt...
etc...
end if

Pero querria hacerlo de una forma más sencilla (no lo esta siendo mucho)como un select por si un futuro he de añadir más optionbutton.Muchas gracias

Jose Moure Moure
20 de Noviembre del 2003
Entonces me quede con mi apaño del if,el cual no me convence demasiado?

Baltasar
20 de Noviembre del 2003
Hay situaciones en que no queda más opción que optar por la solución más "fea", aun siendo la más correcta. Porqué no te convence el IF ?

de todos modos, te planteo otra solución, que tal vez te guste más:

DataHohner.Visible = OptHohner
DataHohner.Enabled = OptHohner
DataGivi.Visible = OptGivi
DataGivi.Enabled = OptGivi
DataElgo.Visible = OptElgo
DataElgo.Enabled = OptElgo
DataFraba.Visible = OptFraba
DataFraba.Enabled = OptFraba

Aunque esto difiere de lo que planteaste en un principio, ya que con tu código nunca se pasaban a invisible o a disabled tus datas.

Saludos

Jose Moure Moure
20 de Noviembre del 2003
Muchas gracias de antemano por la solucion aportado,la probaré.No me gustan los if porque en ocasiones,muy raras,el programa a veces no entra en ellos(cuando el if es relativamente grande)

Jose Moure Moure
20 de Noviembre del 2003
Muchas gracias,problema solucionado

Baltasar
20 de Noviembre del 2003
Entonces usa IF optionX then . . . . ELSEIF optionY then . . . . ENDIF