Crear un cuadro de lista, un cuadro combinado o un cuadro de lista desplegable que busque los valores

Para crear un cuadro de lista, un cuadro de lista desplegable (cuadro de lista desplegable: control de una página de acceso a datos que, cuando se hace clic en él, muestra una lista en la que puede seleccionar un valor. No puede escribir ningún valor en un cuadro de lista desplegable.) o un cuadro combinado que busque los valores, necesita decidir dos cosas:

  • ¿De dónde vendrán las filas de la lista?
  • Cuando un usuario selecciona un elemento en el cuadro de lista, cuadro de lista desplegable o cuadro combinado, ¿qué debe hacer Microsoft Access con el valor?

Las filas para un cuadro de lista, cuadro de lista desplegable o cuadro combinado pueden venir desde una lista fija de valores que introduce cuando crea el cuadro de lista, cuadro de lista desplegable o cuadro combinado (procedimiento utilizado cuando la lista no cambia muy a menudo), o pueden venir de un origen de registros (origen de registros: origen de datos subyacente de un formulario, informe o página de acceso a datos. En una base de datos de Access, puede ser una tabla, una consulta o una instrucción SQL. En un proyecto de Access, puede ser una tabla, una vista, una instrucción SQL o un procedimiento almacenado.) (procedimiento utilizado cuando la tabla se actualiza muy a menudo). Por ejemplo, podría utilizar una lista fija para un cuadro de lista que contenga las entradas de Sr., Sra, Srta. Si, por otro lado, tiene un formulario de Productos y desea presentar una lista de proveedores de productos, pero la lista va a cambiar con frecuencia, base el cuadro de lista en un origen de registros. El cuadro de lista busca los valores en la tabla de Proveedores y presenta una lista de los proveedores actualizada en la que puede elegir.

Cuadro de lista que muestra valores de la tabla Proveedores

Llamada 1   Inserte un producto.

Llamada 2   Seleccione un proveedor de la lista.

Cuando un usuario selecciona un valor en un cuadro de lista, cuadro de lista desplegable o cuadro combinado, Microsoft Access puede realizar una de las siguientes dos acciones: Access puede guardar el valor seleccionado en una tabla (no en la misma tabla de donde la lista toma las filas) o puede pasar el valor a otro control (control: objeto de interfaz gráfica para el usuario, como un cuadro de texto, una casilla de verificación, una barra de desplazamiento o un botón de comando, que permite a los usuarios controlar el programa. Utilice los controles para mostrar datos y opciones, realizar una opción o facilitar la lectura de la interfaz.). Por ejemplo, para el cuadro de lista de Proveedores de la ilustración anterior, si un usuario selecciona "Pavlova, Ltd.", Access busca el valor de la clave principal (clave principal: uno o más campos (columnas) cuyos valores identifican de manera exclusiva cada registro de una tabla. Una clave principal no puede permitir valores Nulo y debe tener siempre un índice exclusivo. Una clave principal se utiliza para relacionar una tabla con claves externas de otras tablas.) (IdProveedor) para Pavlova, Ltd. en la tabla Proveedores y establece el campo IdProveedor (la clave exterior (clave externa: uno o más campos de tabla (columnas) que hacen referencia al campo o campos de clave principal de otra tabla. Una clave externa indica cómo están relacionadas las tablas.)) para el registro actual en la tabla Productos con el mismo valor. Este es el valor que se guarda. Debido a que Access guarda un valor basado en una selección en el cuadro de lista, el cuadro de lista es dependiente (control dependiente: control utilizado en un formulario, informe o página de acceso a datos para mostrar o modificar 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.). (Observe que el valor del NombreProveedor de la tabla Proveedores se muestra en el cuadro de lista pero no se almacena).

Si, por otra parte, desea que Access utilice el valor seleccionado en el cuadro de lista, cuadro de lista desplegable o cuadro combinado para determinar el contenido de otro control o controles, necesita crear un cuadro de lista, cuadro de lista desplegable o cuadro combinado independiente (control independiente: control que no está conectado con un campo de una tabla, consulta o instrucción SQL subyacente. Un control independiente se suele utilizar para mostrar texto informativo o imágenes decorativas.). Por ejemplo, puede desear crear un cuadro de lista o cuadro de lista desplegable que pueda utilizar para buscar un registro relacionado en una página de acceso a datos (página de acceso a datos: página Web, publicada desde Access, que tiene una conexión a una base de datos. En una página de acceso a datos, puede ver, agregar, editar y manipular los datos almacenados en la base de datos. Una página puede incluir también datos de otros orígenes de datos, como Excel.). O puede desear crear un cuadro de lista o cuadro combinado para filtrar los registros en otro cuadro de lista o cuadro combinado en un formulario.

Mostrar¿Debería crear un cuadro de lista, un cuadro combinado o un cuadro de lista desplegable?

Para decidir si crear un cuadro de lista, un cuadro combinado o cuadro de lista desplegable piense en dónde va a utilizar el control (control: objeto de interfaz gráfica para el usuario, como un cuadro de texto, una casilla de verificación, una barra de desplazamiento o un botón de comando, que permite a los usuarios controlar el programa. Utilice los controles para mostrar datos y opciones, realizar una opción o facilitar la lectura de la interfaz.), en cómo desea que aparezca en su formulario o página de acceso a datos y como espera que la gente lo utilice. Cada control tiene sus ventajas:

Ventajas de un cuadro de lista       Puede utilizar cuadros de lista en formularios y páginas de acceso a datos. La lista siempre está presente y el valor del control está limitado al conjunto de alternativas de la lista. Para moverse rápidamente al primer valor que empieza con una letra determinada, puede escribir la letra. Si utiliza un formulario para insertar o modificar datos, no puede agregar un valor que no esté en la lista.

Ventajas de un cuadro combinado       Puede utilizar cuadros combinados en formularios. Como la lista no se presenta hasta que no se abre, el control utiliza menos espacio en el formulario. Puede escribir los primeros caracteres de un valor en el cuadro combinado para encontrar rápidamente ese valor. También puede controlar si se puede introducir algún valor en la lista o si sólo se puede introducir algún texto que coincida con el valor de uno de los de la lista.

Ventajas de un cuadro de lista desplegable       Puede utilizar cuadros de lista desplegables en páginas de acceso a datos. Como la lista no se presenta hasta que no se abre, el control utiliza menos espacio en la página de acceso a datos. El valor del control está limitado al conjunto de alternativas de la lista. Para moverse rápidamente al primer valor que empieza con una letra determinada, puede escribir la letra.

Mostrar¿Debería utilizar una tabla, una consulta, una instrucción SQL o una función para proporcionar los valores?

El origen de la fila de un cuadro de lista, un cuadro combinado o un cuadro de lista desplegable proporciona los valores mostrados. En la mayoría de los casos, puede utilizar una tabla como el origen de la fila cuando cree el cuadro de lista, el cuadro combinado o el cuadro de lista desplegable con un asistente. Utilice una consulta (consulta: pregunta sobre los datos almacenados en las tablas o solicitud para llevar a cabo una acción en los datos. Una consulta puede unir los datos de varias tablas para que sirvan como origen de datos para un formulario o informe.) en los siguientes casos:

  • Si desea incluir campos calculados en el cuadro de lista, cuadro de lista desplegable o cuadro combinado. Por ejemplo, podría unir un nombre y un apellido escribiendo la siguiente expresión: Nombre: [Nombre] & " "& [Apellido]. Podría definir este campo calculado en una consulta y, a continuación, incluir este campo en el cuadro de lista, cuadro de lista desplegable o cuadro combinado.
  • Si desea incluir campos de más de una tabla en el cuadro de lista, cuadro combinado o cuadro de lista desplegable.

Si selecciona campos de una tabla o consulta con un asistente en un formulario, Microsoft Access crea una instrucción SQL (cadena o instrucción SQL: expresión que define un comando de SQL, como SELECT, UPDATE o DELETE, e incluye cláusulas como WHERE y ORDER BY. Las instrucciones o cadenas SQL se utilizan en consultas y en funciones de agregado.) basada en los campos que seleccione y establece la propiedad OrigenDeLaFila (RowSource) del cuadro de lista o cuadro combinado en esa instrucción SQL. Cuando seleccione campos de una tabla o consulta con un asistente en una página de acceso a datos, Access establece la propiedad ListRowSource del cuadro de lista o cuadro de lista desplegable en la tabla o consulta seleccionada.

También puede establecer usted mismo el origen de la fila de un cuadro de lista, cuadro combinado o cuadro de lista desplegable. Por ejemplo, puede establecer el origen de la fila en una tabla o consulta guardada, o en una instrucción SQL de manera que la consulta no aparezca en la ventana Base de datos (ventana de base de datos: en Access 2003 y versiones anteriores, ventana que aparece cuando se abre una base de datos o un proyecto. Muestra métodos abreviados para crear objetos de base de datos nuevos y abrir otros existentes. En versiones posteriores, fue reemplazada por el panel de navegación.). Sin embargo, los cuadros de lista y los cuadros combinados basados en las instrucciones SQL son más lentos que los cuadros de lista y cuadros combinados basados en las consultas almacenadas.

Además, puede utilizar una función (procedimiento Function: procedimiento que devuelve un valor y que se puede utilizar en una expresión. Se declara una función con la instrucción Function y se finaliza con la instrucción End Function.) como tipo de origen de la fila cuando los valores de una lista estén cambiando constantemente o si los valores no están almacenados en una base de datos. Por ejemplo, podría escribir una función que rellenase un cuadro de lista con una lista de fechas, cada una un número determinado de fechas después de la fecha actual.

MostrarMétodos para crear cuadros de lista, cuadros combinados y cuadros de lista desplegable

Asistentes       El uso de un asistente es una manera sencilla de crear cuadros de lista, cuadros combinados y cuadros de lista desplegable. No obstante, los asistentes no están disponibles en una página de acceso a datos independiente, o cuando apunta una página de acceso a datos a otra base de datos que esté abierta actualmente. En este caso, deberá crear un cuadro de lista o cuadro de lista desplegable por su cuenta.

Campos de búsqueda      Puede crear un cuadro de lista, cuadro combinado o cuadro de lista desplegable que sea dependiente (control dependiente: control utilizado en un formulario, informe o página de acceso a datos para mostrar o modificar 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.) de un campo de búsqueda (campo de búsqueda: campo utilizado en un formulario o un informe de una base de datos de Access que muestra una lista de valores recuperados de una tabla o consulta, o almacena un conjunto estático de valores.) en una base de datos de Microsoft Access (base de datos de Microsoft Access: colección de datos y objetos (como tablas, consultas o formularios), que está relacionada con un tema o propósito concreto. o un proyecto de Microsoft Access (proyecto de Microsoft­ Access: archivo de Access que se conecta con una base de datos de Microsoft SQL Server y se usa para crear aplicaciones cliente/servidor. Un archivo de proyecto no contiene datos ni objetos basados en definiciones de datos, como tablas o vistas.) que esté conectado a una base de datos en Microsoft SQL Server 2000 o Microsoft Access SQL Server Desktop Engine. Cuando cree un campo de búsqueda, sólo necesita crear una vez el cuadro de lista o cuadro combinado. Puede entonces utilizar la misma lista de consultas en cualquier formulario. Si no tiene pensado utilizar la misma lista de búsqueda en más de un formulario, puede utilizar el Asistente para cuadros de Lista o el Asistente para cuadros Combinados en la vista Diseño (vista Diseño: vista que muestra el diseño de los siguientes objetos de base de datos: tablas, consultas, formularios, informes y macros. En la vista Diseño, puede crear objetos de base de datos nuevos y modificar el diseño de otros existentes.) del formulario. No se pueden utilizar campos de búsqueda para crear cuadros de lista o cuadros de lista desplegable en páginas de acceso a datos.

Por su cuenta       Quizá desee crear un cuadro de lista, cuadro combinado o cuadro de lista desplegable sin utilizar un asistente o un campo de búsqueda si desea establecer usted mismo las propiedades del control. Por ejemplo, puede que no desee utilizar un asistente o un campo de búsqueda si desea especificar que el tipo de origen de la fila es una función.

 
 
Corresponde a:
Access 2003