Problemas con un select case
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
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
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.
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.
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.
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
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
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
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
Entonces me quede con mi apaño del if,el cual no me convence demasiado?
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
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
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)