Al especificar datos en formularios en bases de datos de escritorio de Access, puede ser más rápido y fácil seleccionar un valor de una lista que recordar un valor para escribir. Una lista de opciones también ayuda a asegurarse de que el valor introducido en un campo es correcto.
Para mostrar el registro completo al seleccionar un cuadro combinado, el formulario debe disponer de un origen de registros y el cuadro combinado debe utilizar una tabla o consulta que permita localizar el registro correspondiente. De este modo, el control funciona como una herramienta de búsqueda y el resto de los controles del formulario muestran los datos relacionados.
Qué es un cuadro combinado y qué función cumple
El control de cuadro combinado proporciona una forma más compacta de presentar una lista de opciones. La lista se oculta hasta que selecciona la flecha desplegable. Un cuadro combinado también le permite escribir un valor que no está en la lista.
Un control de lista puede conectarse con datos existentes o puede mostrar valores fijos que se especifican cuando se crea el control.
Cuadro de lista: El control de cuadro de lista muestra una lista de valores u opciones. El cuadro de lista contiene filas de datos y, por lo general, tiene un tamaño tal que varias filas están visibles en todo momento. Las filas pueden tener una o más columnas, que pueden aparecer con o sin títulos. Si la lista tiene más filas de las que puede mostrar el control, Access muestra una barra de desplazamiento en el control.
Los cuadros de lista y los cuadros combinados pueden ser controles enlazados o sin enlazar. Estos controles pueden buscar valores en una lista fija que usted mismo escribe o puede buscar valores en una tabla o consulta.
Si desea que el control realice una operación de búsqueda en lugar de servir como una herramienta de entrada de datos, seleccione Buscar un registro en el formulario según el valor que seleccioné en el cuadro de lista o cuadro combinado.

Requisitos para mostrar el registro completo
Para crear un cuadro de lista dependiente o un cuadro combinado que busque valores en una tabla o consulta, asegúrese de que el formulario se basa en un origen de registros que incluye un campo de clave externa o campo de búsqueda.
En este procedimiento se asume que el formulario está enlazado a una tabla o consulta. Algunos de los pasos no se aplican si el formulario está desvinculado.
Para determinar si el formulario está enlazado a una tabla o consulta, presione F4 para mostrar la hoja de propiedades.
Cuando el cuadro combinado se utiliza para seleccionar un registro, la información elegida debe corresponder a un valor identificable dentro de la tabla o consulta. Normalmente se muestra un nombre descriptivo, mientras que Access conserva y utiliza un identificador.
Crear el campo de búsqueda y el formulario
Cree un campo de búsqueda en una tabla.
Cree un formulario nuevo que se base en un origen del registro que incluya el campo de búsqueda.
Haga doble clic en el campo de búsqueda o arrastre este campo desde el panel Lista de campos hasta el formulario.
Una de las formas más sencillas para crear un control de este tipo es utilizando el Asistente para controles.
Una vez activado el Asistente, cuando intentes crear un control de Cuadro de lista o Cuadro combinado se lanzará un generador automático del control que, siguiendo unos cuantos pasos sencillos, cumplimentará las propiedades del control para que muestre los datos que desees.
En el tema de creación de tablas ya tuvimos nuestro primer contacto con los cuadros combinados y de lista (con el asistente para búsquedas).
Si elige una de las dos primeras opciones en la primera página del asistente, el asistente le pregunta qué quiere que Access haga cuando usted selecciona un valor.
Para crear un control independiente, seleccione Recordar el valor para usarlo más adelante. Seleccione Siguiente y escriba una etiqueta para el control.
Configurar el cuadro combinado mediante el asistente
Con el formulario abierto en la vista Diseño, asegúrese de que el cuadro de lista o el cuadro combinado está seleccionado y, después, presione F4 para abrir la hoja de propiedades del control.
Si crea un cuadro de lista o un cuadro combinado sin usar un asistente, usted mismo establece muchas de las propiedades del control.
Cuando utilice un asistente para crear un cuadro de lista o cuadro combinado, Microsoft Access establecerá determinadas propiedades para el control.
Se puede trabajar con estas propiedades directamente si no se necesita utilizar un asistente para crear el control, o se puede utilizar un asistente para crear el control y, posteriormente, modificar estas propiedades para que el control funcione tal como se desee.
Elegir el origen de la fila
En la lista desplegable, seleccione la tabla o consulta que contiene los valores que desea que aparezcan en el cuadro de lista o en el cuadro combinado.
O bien, escriba una SQL instrucción.
O bien, en la pestaña Datos de la hoja de propiedades, seleccione el botón Crear para abrir el Generador de consultas.
de origen de la fila: En esta propiedad indicaremos de qué tipo será la fuente de donde sacaremos los datos de la lista. Podemos seleccionar Tabla/Consulta si los datos se van a extraer de una tabla o de una consulta.
propiedad estableceremos los datos que se van a mostrar en el control. Si en la propiedad Tipo de origen de la fila seleccionamos Tabla/Consulta deberemos indicar el nombre de una tabla o consulta o también podremos escribir una sentencia SQL que permita obtener los valores de la lista.
Funciona junto con la propiedad OrigenDeLaFila.
Esta propiedad se utiliza para especificar el tipo de origen de la fila (Tabla o consulta, Tabla/Vista/ProcAlmacenado, Lista de valores, Lista de campos o Función de Visual Basic.
Especifica el nombre de la tabla, consulta o instrucción SQL, si TipoDeOrigenDeLaFila está establecido a Tabla/Consulta.
Especifica las entradas en la lista, separadas por punto y coma, si TipoDeOrigenDeLaFila está establecida a Lista Valores.
Especifica el nombre de la tabla o consulta si TipoDeOrigenDeLaFila está establecido a Lista Campos.
Usar una lista de valores fijos
También puede escribir manualmente los valores que deben aparecer en el cuadro combinado.
Escriba una lista de valores fijos separados por puntos y comas (;). Por ejemplo, North;South;East;West.
Esta opción resulta apropiada para listas pequeñas y estables. Para localizar registros completos, normalmente es más útil utilizar una tabla o consulta como origen de la fila.
Configurar las columnas del cuadro combinado
Si desea que aparezca más de una columna en el control, seleccione el cuadro de propiedad Recuento de columnas y escriba el número de columnas que desee.
Especifica el número de columnas en un cuadro de lista o cuadro combinado.
Si el cuadro combinado o el cuadro de lista se basan en un origen del registro, Access usa los nombres de campo del origen del registro como los encabezados de columna.
En el cuadro de propiedad Encabezados de columna, seleccione Sí para mostrar los encabezados de columna.
Determina si el cuadro de lista o cuadro combinado tiene encabezados de columnas.
Si el cuadro combinado o cuadro de lista está basado en un origen de registros, Access utilizará los nombres de los campos o columnas del origen de registros como encabezados de las columnas.
Si el cuadro combinado o cuadro de lista está basado en una lista de valores fijos, Access utilizará los primeros x elementos de datos de la lista de valores (propiedad RowSource) como encabezado de las columnas, donde x es igual al número establecido en la propiedad NúmeroDeColumnas (ColumnCount).
Ajustar el ancho de las columnas
Configure la propiedad Ancho de columnas para ajustar el ancho de las columnas.
Especifica el ancho de cada columna, separadas cada una de ellas por punto y coma.
Introduzca 0 para ocultar una columna.
Introduzca un punto y coma sin ninguna medida para utilizar el valor predeterminado (alrededor de 1″ ó 2.5 cm, dependiendo de la unidad de medida establecida en el Panel de Control de Windows).
Puede incluir una columna pero no mostrarla en una lista estableciendo la propiedad AnchuraDeColumnas (ColumnWidths) en 0.
Resulta útil si tiene una lista que busca valores en una tabla o consulta. Podría incluir un campo de Id. pero oculto en la lista.
Por ejemplo, supongamos que tiene un cuadro combinado dependiente de dos columnas que tiene una columna SupplierID de 0,5 pulgadas de ancho y una columna SupplierName de 2 pulgadas de ancho.
La columna IdDeProveedor es la primera columna de la lista, por lo que la propiedad Ancho de columna está establecida en 0.5";2".
Para ocultar la columna IdDeProveedor, establezca la propiedad Ancho de columna en 0";2".
En un cuadro combinado, cuando la lista no se muestra, la primera columna visible aparece en la parte del cuadro de texto del cuadro combinado.
Por ejemplo, la columna NombreProveedor del ejemplo anterior aparecería porque la columna IdProveedor está oculta.
Definir el ancho de la lista
En el cuadro de propiedades Ancho de lista, escriba el ancho que desee utilizando la unidad de medida actual establecida en el Panel de control de Windows.
Para usar otra unidad de medida que no sea la predeterminada, incluya un indicador de medida. Por ejemplo, escriba 2 cm.
La parte del cuadro de lista del cuadro combinado puede ser más ancha que la parte del cuadro de texto, pero no puede ser más estrecha.
| Propiedad | Función |
|---|---|
| Recuento de columnas | Especifica el número de columnas en un cuadro de lista o cuadro combinado. |
| Ancho de columnas | Especifica el ancho de cada columna, separadas cada una de ellas por punto y coma. |
| Encabezados de columna | Determina si el cuadro de lista o cuadro combinado tiene encabezados de columnas. |
| Ancho de lista | Define el ancho de la parte desplegable del cuadro combinado. |
| Columna delimitada | Indica qué columna se enlaza con el campo subyacente. |
Enlazar el identificador y mostrar el nombre
Enlazar una columna desde un cuadro de lista o un cuadro combinado: En el cuadro de propiedades Columna delimitada del cuadro de lista o cuadro combinado, especifique un número que corresponda a la ubicación de la columna en el cuadro de lista o cuadro combinado.
Por ejemplo, escriba 1 para enlazar la primera columna del cuadro de lista o cuadro combinado al campo subyacente especificado en la propiedad Origen del control.
En un cuadro de lista o cuadro combinado de columnas múltiples dependientes, especifica qué columna está vinculada con el campo base especificado en la propiedad OrigenDelControl.
Los datos de esa columna serán almacenados en el campo cuando los seleccione en la lista.
Si establece la propiedad Columna delimitada en 0, Access guarda el índice de la lista en lugar de un valor de una de las columnas.
En un cuadro combinado dependiente de dos columnas, es habitual mostrar una columna descriptiva y conservar una columna identificadora. La columna identificadora puede permanecer oculta mediante la propiedad Ancho de columnas.
Vincular el control al formulario
Los cuadros de lista y los cuadros combinados pueden ser controles enlazados o sin enlazar.
En una base de datos de Access, el control dependiente utilizado en un formulario, informe o página de acceso a datos muestra o modifica los datos de una tabla, consulta o instrucción SQL.
La propiedad OrigenDelControl (ControlSource) del control almacena el nombre del campo del que es dependiente.
En cuadros de lista o de lista desplegable dependientes, especifica qué campo es dependiente del origen de datos base especificado en la propiedad ListRowSource.
En un cuadro de lista o cuadro combinado de columnas múltiples dependientes, especifica qué columna está vinculada con el campo base especificado en la propiedad OrigenDelControl.
El campo seleccionado se almacena en el campo subyacente cuando se elige un valor de la lista.
Configurar el cuadro combinado para buscar el registro
El paso esencial consiste en indicar al asistente que el cuadro combinado debe buscar un registro existente, en lugar de guardar simplemente el valor seleccionado.
Si desea que el control realice una operación de búsqueda en lugar de servir como una herramienta de entrada de datos, seleccione Buscar un registro en el formulario según el valor que seleccioné en el cuadro de lista o cuadro combinado.
Esta opción hace que la selección actúe como criterio de búsqueda dentro del formulario abierto. Access localiza el registro cuyo valor coincide con el valor seleccionado y muestra el registro completo en los controles enlazados del formulario.
Para que los demás datos aparezcan, esos controles deben estar vinculados a los campos del origen de registros del formulario. El cuadro combinado selecciona el registro; los controles dependientes muestran sus campos.
Formulario de consulta | Búsqueda con Cuadro Combinado(ComboBox) 🎤
Ordenar los valores de la lista
Cambie el criterio de ordenación en un cuadro de lista o cuadro combinado:
Si ha usado un asistente para crear el cuadro de lista o el cuadro combinado, Access ordena automáticamente las filas que componen la lista por la primera columna visible.
El orden de la lista puede facilitar la selección del registro, especialmente cuando la columna visible contiene nombres, proveedores u otras descripciones.
Permitir o impedir valores que no están en la lista
Determina si un cuadro combinado acepta cualquier texto introducido o solamente texto que coincida con uno de los valores de la lista.
Si la propiedad Limitar a la lista está establecida como No, cuando especifica una entrada que no está en la lista, si el cuadro combinado está enlazado, la entrada se almacena en el campo subyacente, pero no se agrega a la lista.
Si se requiere que la selección corresponda siempre a un registro existente, conviene limitar la entrada a los valores de la lista.
Ejecuta el procedimiento de evento adjunto cuando ocurre el evento NotInList.
Puede utilizar esta propiedad para agregar de forma automática un valor nuevo a la lista.
Especifica si Access rellena de forma automática un valor que coincida con los caracteres que se introducen en un cuadro combinado.
Esta propiedad no está disponible en la ficha Búsqueda de la vista Diseño; Access rellena automáticamente un valor en un campo de búsqueda.
Propiedades relacionadas con el cuadro combinado
Cuando se utiliza un asistente para crear un cuadro de lista o un cuadro de lista desplegable en una página de acceso a datos, Access establece determinadas propiedades para el control.
Se puede trabajar con estas propiedades directamente si no se necesita utilizar un asistente para crear el control, o se puede utilizar un asistente para crear el control y, posteriormente, modificar estas propiedades para que el control funcione tal como se desee.
En una base de datos de Access o un proyecto de Access, el control funciona junto con la propiedad OrigenDeLaFila.
Esta propiedad se utiliza para especificar el tipo de origen de la fila (Tabla o consulta, Tabla/Vista/ProcAlmacenado, Lista de valores, Lista de campos o Función de Visual Basic.
Especifica el nombre de la tabla, consulta o instrucción SQL, si TipoDeOrigenDeLaFila está establecido a Tabla/Consulta.
Especifica las entradas en la lista, separadas por punto y coma, si TipoDeOrigenDeLaFila está establecida a Lista Valores.
Especifica el nombre de la tabla o consulta si TipoDeOrigenDeLaFila está establecido a Lista Campos.
Especifica el tipo de control (cuadro combinado o cuadro de lista) que Access crea de manera predeterminada cuando se agrega un campo de búsqueda a un formulario.
Cuadro combinado y cuadro de lista: diferencias prácticas
El cuadro combinado ocupa menos espacio porque la lista se oculta hasta que se selecciona la flecha desplegable.
El cuadro de lista muestra varias filas de datos en todo momento y puede incluir una o más columnas.
La selección múltiple sólo se configura para el control Cuadro de lista.
Si seleccionamos Simple permitiremos la selección múltiple y todos los elementos sobre los que hagas clic se seleccionarán.
Seleccionando Extendida permitiremos la selección múltiple, pero para seleccionar más de un elemento deberemos mantener pulsada la tecla CTRL.
Si seleccionamos un elemento, pulsamos la tecla MAYUS y dejándola pulsada seleccionamos otro elemento, todos los elementos entre ellos serán seleccionados.
Esta propiedad sólo se muestra para el control Cuadro de lista.
Transformar un control existente
Este es un modo de transformar un control de un tipo de una clase a otra manteniendo prácticamente todas sus propiedades intactas, sobre todo aquellas relativas a los orígenes de datos.
La transformación puede ser útil cuando el formulario ya contiene un control configurado y se necesita cambiar la forma de presentación sin volver a definir todos sus orígenes de datos.
Controles dependientes y no dependientes
Un control dependiente utiliza el origen de registros del formulario y puede mostrar o modificar los datos almacenados en la tabla, consulta o instrucción SQL.
Un control independiente puede recordar un valor para utilizarlo más adelante.
Para crear un control independiente, seleccione Recordar el valor para usarlo más adelante.
Si el objetivo es mostrar el registro completo correspondiente a una selección, el cuadro combinado debe utilizarse como mecanismo de búsqueda dentro de un formulario enlazado. Si el objetivo es guardar la selección en un campo, el control debe enlazarse al campo correspondiente mediante la propiedad OrigenDelControl.
Comprobaciones antes de probar el formulario
El formulario está basado en una tabla o consulta.
El origen de registros incluye el campo de clave externa o campo de búsqueda.
El cuadro combinado está creado en la vista Diseño.
El origen de la fila corresponde a una tabla, consulta o instrucción SQL.
La columna delimitada corresponde a la columna que debe enlazarse con el campo subyacente.
La columna identificadora puede estar oculta estableciendo su ancho en 0.
La primera columna visible aparece en la parte de texto del cuadro combinado.
Los controles del formulario están enlazados a los campos que deben mostrar los datos del registro.
La opción Buscar un registro en el formulario según el valor que seleccioné en el cuadro de lista o cuadro combinado está seleccionada cuando se desea realizar una búsqueda.
La propiedad Limitar a la lista se ajusta según se permita o no introducir valores inexistentes.
En el ejemplo anterior hemos creado un campo calculado utilizando valores que extraíamos de otros campos (en el ejemplo los campos precio y cantidad).
También es posible realizar cálculos con constantes, por lo que nuestro origen de datos podría ser =[precio]*0.1 para calcular el 10% de un campo o incluso escribir =2+2 para que se muestre en el campo el resultado de la operación.
Si quieres practicar las propiedades de los controles que hemos visto hasta ahora realiza el Ejercicio Etiquetas y Cuadros de texto.