Discussion:
Habilitar o deshabilitar un campo en un formulario según valor
(demasiado antiguo para responder)
Kefeir at Madrid
2005-07-17 15:06:01 UTC
Permalink
Saludos, necesito saber cómo se hablilita o deshabilita un campo en un
formulario según un valor. Por ejemplo:

1.- Si un checkbox está activado que permitar escoger un valor de un
desplegable.

2.- Si en un botón de ocpión se escoge la opción "9", es decir "Otros", que
hablite un campo debajo para especificar.

Gracias....

Kefeir AT Madrid
Carlos
2005-07-17 15:26:02 UTC
Permalink
Deberás utilizar código Visual Basic en conjunto con la propiedad Enabled.
Pero siempre va a depender donde tengas ubicados los checkbox o los botones
de opción. Es decir, si los tienes dentro de un Marco, entonces siempre
usarías el valor de dicho Marco. Ejemplo, si tienes tres checkbox dentro de
un Marco, el primer checkbox pudiera tener el valor de 1, el segundo checkbox
tendría el valor de 2 y el tercer checkbox pues 3. (Propiedad Valor de la
Opción de cada uno de los checkbox). Igual funcionaría con los Botones de
Opción. Y luego en lugar de preguntar el valor de los checkbox o los botones
de opción, preguntarías a través de código el valor del Marco o Marcos que
tengas.

En este ejemplo, voy a usar código como si no tuvieras los controles dentro
de Marcos. En todo caso, si los tienes dentro de Marcos, sólo pregunta el
valor del marco (que estos valores son los que te comentaba en el ejempo de
arriba de los checkbox 1, 2 ó 3).

1) En el primer caso (Una Casilla de Verificación):

Selecciona la casilla de verificación (le pondré el nombre Casilla en este
ejemplo) y en el Evento Después de Actualizar coloca un código que bien
pudiera ser este:

Private Sub Casilla_AfterUpdate()

If Casilla.Value= -1 then
CuadroDeLista.Enabled = True
Else
CuadroDeLista.Enabled = False
End If

End Sub


2) En el segundo caso (Un botón de Opción):

Private Sub Botón_AfterUpdate()

If Boton.Value= -1 then
campo.Enabled = True
Else
campo.Enabled = False
End If

End Sub


Ahora bien, usando Marcos, selecciona el marco y en el evento AfterUpdate
(Después de Actualizar) u otro que te parezca mejor según tus necesidades y
siempre vas a llamar al valor de dicho marco y a partir de él usas el código,
a tu conveniencia:

Private Sub Marco1_AfterUpdate()

If Marco1.Value= 1 then
CuadroDeLista.Enabled = True
Else
CuadroDeLista.Enabled = False
End If

End Sub

Saludos,
Carlos - Caracas - Venezuela.
Kefeir at Madrid
2005-07-19 08:18:01 UTC
Permalink
Entiendo lo que dices, pero mi duda ahora es: porqué le pones valor -1??? No
debería ser True o False????

Saludos
Post by Carlos
Deberás utilizar código Visual Basic en conjunto con la propiedad Enabled.
Pero siempre va a depender donde tengas ubicados los checkbox o los botones
de opción. Es decir, si los tienes dentro de un Marco, entonces siempre
usarías el valor de dicho Marco. Ejemplo, si tienes tres checkbox dentro de
un Marco, el primer checkbox pudiera tener el valor de 1, el segundo checkbox
tendría el valor de 2 y el tercer checkbox pues 3. (Propiedad Valor de la
Opción de cada uno de los checkbox). Igual funcionaría con los Botones de
Opción. Y luego en lugar de preguntar el valor de los checkbox o los botones
de opción, preguntarías a través de código el valor del Marco o Marcos que
tengas.
En este ejemplo, voy a usar código como si no tuvieras los controles dentro
de Marcos. En todo caso, si los tienes dentro de Marcos, sólo pregunta el
valor del marco (que estos valores son los que te comentaba en el ejempo de
arriba de los checkbox 1, 2 ó 3).
Selecciona la casilla de verificación (le pondré el nombre Casilla en este
ejemplo) y en el Evento Después de Actualizar coloca un código que bien
Private Sub Casilla_AfterUpdate()
If Casilla.Value= -1 then
CuadroDeLista.Enabled = True
Else
CuadroDeLista.Enabled = False
End If
End Sub
Private Sub Botón_AfterUpdate()
If Boton.Value= -1 then
campo.Enabled = True
Else
campo.Enabled = False
End If
End Sub
Ahora bien, usando Marcos, selecciona el marco y en el evento AfterUpdate
(Después de Actualizar) u otro que te parezca mejor según tus necesidades y
siempre vas a llamar al valor de dicho marco y a partir de él usas el código,
Private Sub Marco1_AfterUpdate()
If Marco1.Value= 1 then
CuadroDeLista.Enabled = True
Else
CuadroDeLista.Enabled = False
End If
End Sub
Saludos,
Carlos - Caracas - Venezuela.
Jorge Villa
2005-07-19 21:19:47 UTC
Permalink
Post by Kefeir at Madrid
Saludos, necesito saber cómo se hablilita o deshabilita un campo en un
1.- Si un checkbox está activado que permitar escoger un valor de un
desplegable.
2.- Si en un botón de ocpión se escoge la opción "9", es decir "Otros", que
hablite un campo debajo para especificar.
Gracias....
Kefeir AT Madrid
Si vas a la base de ejemplo NEPTUNO que trae el officce, hay un ejemplo
realizado con un formulario que se llama "diálogo de etiquetas clientes",
realizado con una macro de condiciones que activa o desactiva un desplegable
en función de la selección del grupo de opciones. La macro que realiza esto
es muy sencilla y estudiando su funcionamiento no te resultará complicado
aplicarlo a tus historias.

Saludos desde Gijón :)

Loading...