Crear cuadros combinados en cascada y cuadros de lista en Access

Se aplica a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Use controles en cascada cuando el valor seleccionado en un cuadro combinado o cuadro de lista determine las opciones en otro. Por ejemplo, al seleccionar una categoría de productos se puede limitar una lista de productos a los productos de esa categoría.

Las propiedades Vincular campos principales y Vincular campos secundarios permiten que Access filtre automáticamente un cuadro combinado o un cuadro de lista dependiente. No es necesario crear una macro o un procedimiento de evento después de la actualización para volver a consultar el control dependiente.

Comprender los campos principal y secundario

Establece las propiedades de vinculación en el cuadro combinado o en el cuadro de lista dependiente.

Propiedad Descripción
Vincular campos principales Campo o control del formulario que proporciona el valor utilizado para filtrar el control dependiente.
Vincular campos secundarios Campo del origen de fila del control dependiente que Access compara con el valor principal.

Cuando cambia el valor principal, Access actualiza el control dependiente y muestra solo las filas con valores de campo secundario coincidentes.

Antes de crear el vínculo, asegúrese de que:

  • El control maestro devuelve el valor que contiene el campo secundario. Por ejemplo, un cuadro combinado de categoría debe devolver CategoryID cuando el campo secundario también CategoryIDes .
  • El campo secundario se incluye en el origen de filas del control dependiente. El campo secundario se puede ocultar en la lista, pero debe formar parte del origen de fila.
  • Los campos principal y secundario usan tipos de datos compatibles.

Para obtener más información sobre cómo crear controles de lista y establecer sus orígenes de fila, vea Agregar un cuadro de lista o un cuadro combinado.

Filtrar productos por categoría

Supongamos que un formulario de pedido contiene estos cuadros combinados:

  • cboCategory, donde el usuario selecciona una categoría de producto. Su valor es el archivo CategoryID.
  • cboProduct, en la que el usuario selecciona un producto.

Para filtrar los productos por la categoría seleccionada:

  1. Abra el formulario en la vista Diseño.

  2. Seleccione cboProducty, a continuación, presione F4 para abrir la hoja de propiedades.

  3. En la pestaña Datos , establezca Tipo de origen de fila en Tabla/Consulta.

  4. Establezca Origen de fila en una consulta o instrucción SQL que incluya el campo utilizado para vincular los controles. Por ejemplo:

    SELECT ProductID, ProductName, CategoryID
    FROM Products
    ORDER BY ProductName;
    
  5. En este ejemplo, establezca Recuento de columnas en 3, Columna enlazada a 1y Anchos de columna en 0";2";0". Esta configuración hace que el cuadro combinado retorno ProductID, muestre ProductNamey oculte CategoryID.

  6. Establece las propiedades de vinculación en cboProduct.

    Propiedad Valor
    Vincular campos principales cboCategory
    Vincular campos secundarios CategoryID
  7. Guarde el formulario y cambie a la vista Formulario.

  8. Seleccione una categoría y abra cboProduct. La lista de productos muestra solo los productos cuyas CategoryID coincidencias con el valor de cboCategory.

Access puede usar el campo oculto CategoryID para filtrar las filas porque el campo permanece en el origen de filas.

Use cuadros de lista en cascada

Las propiedades Vincular campos principales y Vincular campos secundarios funcionan del mismo modo con los cuadros de lista. Establezca las propiedades en el cuadro de lista dependiente y asegúrese de que el origen de fila incluya el campo secundario.

Puedes usar cuadros combinados y cuadros de lista vinculados para escenarios como:

  • Departamentos, equipos y empleados
  • Clientes y pedidos
  • Proyectos y tareas
  • Categorías de productos y categorías de productos

Si los registros están relacionados por más de un campo, escriba los nombres separados por comas en ambas propiedades de vinculación. Access busca coincidencias de los campos según su posición en cada lista.

Por ejemplo:

Propiedad Valor
Vincular campos principales CompanyID, LocationID
Vincular campos secundarios CompanyID, LocationID

Ambas listas deben contener el mismo número de entradas. Cada campo principal debe tener un tipo de datos compatible con el campo secundario en la posición correspondiente.

Usar controles en cascada en formularios continuos

Los cuadros combinados vinculados y los cuadros de lista también funcionan en formularios continuos. Access filtra el control dependiente de cada registro visible utilizando el valor maestro de ese registro. No es necesario el código de evento para volver a consultar cada fila de manera independiente.

Solucionar problemas de controles en cascada

Problema Qué comprobar
Las propiedades de vinculación no aparecen en la pestaña Datos . Asegúrese de que Access está actualizado a la versión 2609 (compilación 20430.20092) o posterior.
El control dependiente está vacío. Confirme que el control maestro tiene un valor, que existen registros coincidentes, que el campo secundario está incluido en el origen de fila y que los valores maestro y secundario usan tipos de datos compatibles.
El control dependiente muestra elecciones inesperadas. Confirme que las propiedades de vinculación están establecidas en el control dependiente y que el control maestro devuelve el valor de clave almacenado en el campo secundario.
Un vínculo de varios campos no funciona. Asegúrese de que ambas propiedades contienen el mismo número de campos, en orden coincidente, con tipos de datos compatibles.

Los controles en cascada existentes que usan VBA o macros siguen funcionando. Use las propiedades de vinculación como alternativa declarativa cuando solo necesite filtrar un control de los valores disponibles en el formulario.

Actualizar acceso

Para buscar una compilación del canal actual más reciente, seleccioneOpciones de actualizaciónde cuenta>de archivo>Actualizar> ahora. Después de instalar la compilación más reciente, es posible que la característica siga tardando más tiempo en aparecer a medida que se expande el lanzamiento.