Access - Formulario con consultas

 
Vista:

Formulario con consultas

Publicado por Erlantz (1 intervención) el 14/12/2005 19:08:08
Tengo un problema con un formulario. Se trata de un formulario sobre articulos de una empresa. Estos articulos estan divididos en diferentes categorias en el siguiente rango de importancia: Tipo, categoria, funcion, familia y subfamilia. Loque pretendo hacer es un desplegable en el q el usuario elija el tipo de articulo. Dependiendo de su eleccion en el siguiente desplegable, que seria el de categoria, deberian salir unas u otras opciones y asi sucesivamente (De esta forma en los desplegables nos evitamos que aparezcan cientos de articulos y vamos haciendolo mas exacto la descripcion del articulo). Para ello tengo una serie de consultas hechas en las que tecleando la opcion elegida me va seleccionando los aticulos q cumplen con esas condiciones. Pero me gustaria que en el formulario al elegir una de las opciones del primer deplegable, al abrir el segundo ya me hubiera eliminado todas las opciones que no tengan q ver con mi primera eleccion
Es decir si tengo 2 "tipos" de articulos (maquinas y herramientas) y 8 "categorias" de las cuales 4 pertenecen a maquinas y las otras 4 a herramientas, me gustaria que al elegir en el desplegable de "tipo" la opcion maquinas en el desplegable de "categorias" me aparecieran solo las 4 correspondientes a maquinas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Filtrado dinámico de opciones en formularios

Publicado por Alejandro (4142 intervenciones) el 15/06/2023 00:45:36
Para lograr el filtrado dinámico de opciones en los desplegables de un formulario en Access, puedes utilizar el evento AfterUpdate de cada desplegable para ajustar las opciones disponibles en los desplegables siguientes.

A continuación, te proporciono un ejemplo de cómo implementar esto en tu formulario:

1. Abre el formulario en modo diseño y selecciona el primer desplegable (Tipo de artículo).
2. En la sección de propiedades del desplegable, ve a la pestaña "Eventos" y haz doble clic en el evento "AfterUpdate".
3. Se abrirá el editor de VBA. Dentro del procedimiento generado, puedes utilizar código similar al siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub cboTipoArticulo_AfterUpdate()
    ' Limpiar el desplegable de categorías
    Me.cboCategoria.Value = Null
    Me.cboCategoria.RowSource = ""
 
    ' Filtrar las opciones del desplegable de categorías según el tipo seleccionado
    Select Case Me.cboTipoArticulo.Value
        Case "Maquinas"
            Me.cboCategoria.RowSource = "SELECT Categoria FROM TablaCategorias WHERE Tipo = 'Maquinas'"
        Case "Herramientas"
            Me.cboCategoria.RowSource = "SELECT Categoria FROM TablaCategorias WHERE Tipo = 'Herramientas'"
        ' Agrega más casos para otros tipos de artículo si es necesario
    End Select
 
    ' Actualizar el desplegable de categorías
    Me.cboCategoria.Requery
End Sub

4. Repite el proceso para los demás desplegables, ajustando el código para cada nivel de filtrado. Por ejemplo, puedes agregar el siguiente código en el evento AfterUpdate del desplegable de categorías:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub cboCategoria_AfterUpdate()
    ' Limpiar el desplegable de funciones
    Me.cboFuncion.Value = Null
    Me.cboFuncion.RowSource = ""
 
    ' Filtrar las opciones del desplegable de funciones según la categoría seleccionada
    Select Case Me.cboCategoria.Value
        Case "Categoria1"
            Me.cboFuncion.RowSource = "SELECT Funcion FROM TablaFunciones WHERE Categoria = 'Categoria1'"
        Case "Categoria2"
            Me.cboFuncion.RowSource = "SELECT Funcion FROM TablaFunciones WHERE Categoria = 'Categoria2'"
        ' Agrega más casos para otras categorías si es necesario
    End Select
 
    ' Actualizar el desplegable de funciones
    Me.cboFuncion.Requery
End Sub

Recuerda reemplazar "TablaCategorias" y "TablaFunciones" con los nombres de tus tablas reales, y ajustar los nombres de los desplegables según corresponda en tu formulario.

Este enfoque te permitirá filtrar dinámicamente las opciones de los desplegables según las selecciones anteriores. A medida que los usuarios elijan opciones en los desplegables, se irán ajustando las opciones disponibles en los desplegables siguientes.

Espero que esta solución te sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar