Despegable condicional a una medida dada en un formulario.

Vendo ventanas de infinitas medidas posibles de ancho y alto, pero si son más bajas de 1.5m uso un perfil tipo "A" o "B" y si son iguales a 1.5 o más altas utilizo un tipo de perfil "C" o "D".

Quiero realizar un formulario con un campo ancho, alto y tipo de perdil, cuando introducca el alto que el desplegable me deje elegir solo A o B si he metido en el campo alto menos de 1.5m y C o D si introducco 1.5 o más

1 Respuesta

Respuesta
1

1º/ Abre tu formulario en Vista Diseño

2º/ Saca las propiedades del campo alto, y vete a la pestaña "Eventos"

3º/ Localiza el evento "Después de Actualizar" y pulsa el botón de los 3 puntos que aparece a la derecha

4º/ Selecciona Generar Código en la ventana que aparece.

5º/ En el editor de VBA que se te abre, escribe este código, entre las líneas Private Sub... y End Sub

Select Case Me.alto
    Case Is < 1.5
        Me.perfil.RowSourceType = "Value List"
        Me.perfil.RowSource = "A;B"
    Case Is >= 1.5
        Me.perfil.RowSourceType = "Value List"
        Me.perfil.RowSource = "C;D"
    Case Else
        Me.perfil.RowSourceType = "Value List"
        Me.perfil.RowSource = ""
End Select
Me.perfil.Requery

Si a tu desplegable ya le tienes puesta la propiedad "Origen de la fila" (pestaña "Datos") en Lista de valores, puedes eliminar las lineas Me.perfil.RowSourceType = "Value List"

Muchas gracias por la respuesta.

¿hay alguna otra forma para no tener que especificar ya los perfiles en la macro?

Este es un ejempo que puse con cuatro apciones de perfiles A B C D para hacerme entender pero realmente tengo mas de 50 por lo que si actualizo perfiles tendria que declarar todos en la macro.

¿podria realizar dos tablas con los perfiles menores de 1.5 y otra con los mayores y en la macro especificar la tabla en vez de los perfiles concretos?

o ¿puedo realizar una tabla con todos los perfiles y añadirlos un campo que sea alto <1.5 o >=1.5?

un saludo

Sin saber cómo tienes estructurada tu BD, not e puedo dar una respuesta 100% adecuada a tu caso, pero te comento dos posibles opciones:

Opción 1: la que comentas, una tabla para perfiles menores de 1,5 y otra para los mayores (las llamaré tblPerfilesMenores y tblPerfilesMayores)

El código sería este:

Select Case Me.alto
    Case Is < 1.5
        Me.perfil.RowSource = "tblPefilesMenores"
    Case Is >= 1.5
        Me.perfil.RowSource = "tblPefilesMayores"
    Case Else
        Me.perfil.RowSource = ""
End Select
Me. Perfil. Requery

y tendrías que poner en "origen de la fila": Tabla/Consulta

Opción 2: tienes una tabla en la que recoges todos los tipos de perfiles (tblPerfiles), con un campo que te recoja el tipo de perfil (TipoPerfil), por ejemplo, 1 para los de menos de 1,5 y 2 para los de 1,5 o más.

El código sería este:

Select Case Me.alto
    Case Is < 1.5
        Me.perfil.RowSource = "SELECT * FROM tblPefiles WHERE TipoPerfil=1"
    Case Is >= 1.5
        Me.perfil.RowSource = "SELECT * FROM tblPefiles WHERE TipoPerfil=2"
    Case Else
        Me.perfil.RowSource = ""
End Select
Me. Perfil. Requery

y también tendrías que poner en "origen de la fila": Tabla/Consulta.

Si quieres, puedes subir una copia de tu BD, con las tablas y el formualrio que intervienen en esta consulta a dropbox o similar, pones aquí el enlace, y te digo cómo hacerlo con lo que tienes.

Muchas gracias.

Realmente no tengo todavía creadas las tablas ni las bases de datos. Trabajo sobre todo con Excel.

Hasta ahora los desplegables que realizaba eran sencillos con un par de dependencias (ej. Típico; Países, capitales de cada país,municipios, población), pero ahora manejo grandes bases de datos y a la hora de hacer desplegables condicionales de estas bases de datos, estoy teniendo problemas. De ahí que quiero migrar a Access, java o velneo y antes de decantarme por cualquiera de ellos, estoy intentando resolver las posibles limitaciones de cada programa.

Access: creo que más fácil de aprender

Java: muy complejo y lento de aprender.

Velneo: poco conocido.

Gracias a tu respuesta me estoy declinando más por Access.

Si al final te decides por Access, en la web del experto neckkito (http://neckkito.siliconproject.com.ar/ ) tienes manuales y ejemplos 3B (buenos, bonitos y baratos) jejeje

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas