Cómo crear y utilizar campos de búsqueda en Microsoft Access

Los controles de lista muestran múltiples valores para que los usuarios seleccionen. Al restringir la entrada a una lista específica, se eliminan los errores tipográficos, los datos no válidos y a veces se mejora el rendimiento. Algunas listas permiten a los usuarios ingresar nuevos valores, mientras que otras son estáticas. Por ejemplo, una lista de abreviaturas de dos letras para los estados es estática: conoces todos los valores de antemano y esos valores pueden no cambiar nunca. En lugar de obligar a los usuarios a ingresar estos valores ellos mismos, debes almacenar estos valores en una tabla separada llamada tabla de búsqueda. Luego, llena un control de lista con esa lista para que los usuarios puedan seleccionar un valor de esta lista. En este artículo, te mostraré cómo poblar un control de lista de forma instantánea configurando las propiedades en el nivel de campo (tabla) para crear un campo de búsqueda. Un asistente configura algunas propiedades a nivel de campo y cualquier formulario que bases en esa tabla automáticamente poblará un control de lista para ti.

Este artículo asume que sabes cómo crear tablas, consultas y formularios, y tienes una comprensión razonable de la normalización y las relaciones. No necesitas este último para completar este artículo, pero te ayudará a comprender el proceso. Las instrucciones son para el formato .accdb, pero no deberías tener problemas para seguir si estás usando el formato .mdb. Para tu comodidad, puedes descargar el archivo de ejemplo .accdb o .mdb.

Índice de Contenido
  1. Algunos antecedentes
  2. 1. Las tablas
  3. 2. Las relaciones
  4. 3. La consulta
  5. 4. El formulario
  6. 5. El formulario tal como está
  7. 6. El campo de búsqueda
  8. 7. El nuevo formulario
  9. 8. Modificar los valores de búsqueda
  10. 9. Utilizar la lista actualizada
  11. 10. Consecuencias
  12. ¡Advertencia!
  13. Envíame tu pregunta sobre Office

Algunos antecedentes

El vínculo entre una tabla principal y una tabla de búsqueda es una relación válida: la tabla principal comparte un campo con la tabla de búsqueda. Pero en lugar de mostrar el valor de clave principal, que no tiene significado para el usuario, un campo de búsqueda muestra valores de texto significativos (descriptivos) de una tabla de búsqueda. Por ejemplo, el usuario podría ver una lista de empresas en un formulario de pedido. El usuario no sabe que ACME, Inc. es el CompanyID 12. El usuario elige ACME, Inc., pero la tabla almacena el valor numérico 12. Un campo de búsqueda muestra un valor mientras muestra otro.

Esta propiedad del campo se hereda por los controles, y esa es la razón por la cual esta función es tan útil para los usuarios comunes. Al aplicar propiedades de búsqueda en el nivel del campo, puedes agregar controles de lista a formularios sin realizar ningún trabajo adicional.

El poder de esta función genera controversia entre los desarrolladores de bases de datos: a muchos no les gusta. Lo principal que debes recordar es lo siguiente: un campo de búsqueda muestra un valor y almacena otro. Al crear una consulta, expresión, filtro o cualquier otro objeto que se refiere a un campo de búsqueda, debes recordar hacer referencia al valor almacenado y no a lo que el usuario ve. La elección de implementar campos de búsqueda se extenderá a todos los objetos dependientes, por lo que no es una opción olvidar la configuración.

Si existe alguna posibilidad de que tu organización amplíe la base de datos de Access más adelante, no uses campos de búsqueda. Además, una base de datos segura no debería utilizar campos de búsqueda. Estas dos objeciones son válidas, pero no afectarán a la mayoría de los usuarios que carecen de soporte profesional de TI. Las menciono para ser exhaustivo.

Dónde encontrar los controles del Charms Bar en Windows 10

Aquí está mi consejo:

  • Si los campos de búsqueda te ahorran tiempo, úsalos
  • Si crear controles de lista amplía tus habilidades, usa campos de búsqueda.
  • Si no tienes la habilidad básica y tu empresa tiene presupuesto para ello, contrata a un desarrollador de bases de datos profesional.
  • Documenta tu decisión y recuerda que los campos de búsqueda pueden dificultar otras operaciones.

1. Las tablas

La figura A muestra las tres tablas en la base de datos de ejemplo.

figura A

Poblar un control de lista con valores en PhoneDescriptionLookup.

Consulta Tabla A para crear estas tablas, o descarga el archivo de ejemplo. Hay una relación uno a muchos entre las tablas Contacts y PhoneNumbers basada en ContactID y ContactIDFK.

Tabla A

Cómo crear y utilizar campos de búsqueda en Microsoft Access - Microsoft | Imagen 1 Newsmatic

El plan maestro de Microsoft para dominar el mundo: Estrategia del caballo de Troya
Aquí tienes una referencia para crear estas tablas, o descarga el archivo de ejemplo.

Cada contacto puede tener más de un número de teléfono, pero cada número pertenecerá solo a un contacto. Un número de teléfono podría pertenecer a muchos contactos, pero por simplicidad, nos quedaremos con una relación uno a muchos. Cada número es una línea terrestre o un teléfono celular. Observa en figura A que PhoneDescriptionLookup contiene los valores de búsqueda Land y Cell.

2. Las relaciones

No es necesario tener una relación permanente entre una tabla principal y una tabla de búsqueda. Sin embargo, crearemos una relación permanente entre las tablas PhoneNumbers y Contacts para que podamos utilizar un asistente para generar el formulario de entrada de datos. Encontrarás la ventana Relaciones en la pestaña Herramientas de base de datos en el grupo Relaciones. Agrega PhoneNumbers y Contacts y arrastra ContactID a ContactIDFK. En el diálogo Edición de relación resultante que se muestra en figura B, haz clic en Crear. Cierra la ventana y guarda la relación.

figura B

Cómo crear y utilizar campos de búsqueda en Microsoft Access - Microsoft | Imagen 2 Newsmatic

Crea una relación uno a muchos.

3. La consulta

El formulario de entrada de datos que crearemos en el paso 4 se basa en la consulta que se muestra en figura C. Utiliza tu método preferido para agregar todos los campos de PhoneNumbers y Contacts a la cuadrícula. Nombra la consulta ContactsPhoneNumbersQuery.

figura C

Podrán los usuarios de Windows 7 actualizar a Windows 10 en su hardware existente
Basaremos un formulario de entrada de datos en esta consulta.

4. El formulario

Utiliza el Asistente para formularios para basar el formulario de entrada de datos que se muestra en figura D en ContactsPhoneNumbersQuery. Agrega todos los campos al formulario y elige subformularios en lugar de formularios vinculados. Nombra el formulario "Ingresar Números de Teléfono". Es posible que debas cambiar el tamaño del subformulario.

figura D

Este formulario te permite ingresar números de teléfono para contactos.

5. El formulario tal como está

El formulario te permite ingresar contactos y sus números de teléfono. Ingresa Smith en el cuadro de texto de Apellido y Access generará un valor de clave principal (AutoNumber) automáticamente. Tabula hasta el subformulario y Access actualizará los campos PhoneID y ContactIDFK.

A continuación, tabula hasta el control PhoneDescriptionIDFK como si fueras a ingresar un número de teléfono para Smith. Como está, debes conocer los valores de clave externa para ingresar. En este momento, es fácil, porque solo tienes 2: land y cell. Incluso si eres el único usuario de esta base de datos, no recomiendo este enfoque. Te abres a errores tipográficos y datos no válidos. Es mejor controlar o validar todos los valores de entrada tanto como sea posible. Puedes hacerlo creando un control de lista manualmente o utilizando un campo de búsqueda para que el control se genere automáticamente.

6. El campo de búsqueda

Para crear un control de lista que muestre texto descriptivo del teléfono y almacene su valor numérico correspondiente automáticamente, utiliza un campo de búsqueda. En este caso, eso significa usar PhoneDescriptionIDFK para mostrar los valores de texto en PhoneDescription, mientras almacenas los valores numéricos en PhoneDescriptionID (ver figura A). Para hacerlo, abre la tabla PhoneNumbers en vista de diseño y selecciona la fila del campo PhoneDescriptionIDFK y continúa de la siguiente manera:

  1. Tus valores ya existen en una tabla, así que conserva la opción predeterminada y haz clic en Siguiente. Como regla general, recomiendo que nunca escribas los valores; siempre consulta los valores existentes en una tabla siempre que sea posible.
  2. Tus valores están en PhoneDescriptionLookup, así que elige esa tabla y haz clic en Siguiente.
  3. Cómo crear y utilizar campos de búsqueda en Microsoft Access - Microsoft | Imagen 3 Newsmatic

    Cómo acceder y gestionar los estilos de Word de manera fácil
  4. Ordena por PhoneDescription y haz clic en Siguiente dos veces.
  5. Haz clic en Terminar y luego guarda la tabla cuando se te solicite.

Haz clic en la pestaña Búsqueda en el panel inferior para ver las propiedades de búsqueda que acabas de establecer. La declaración SQL

SELECT [PhoneDescriptionLookup].[PhoneDescriptionID], [PhoneDescriptionLookup].[PhoneDescription] FROM PhoneDescriptionLookup ORDER BY [PhoneDescription];

llenará cualquier control de lista dependiente. La propiedad Anchos de columna, 0";1", ocultará los valores de clave principal. Todos los usuarios solo verán los valores de texto en PhoneDescription.

7. El nuevo formulario

El formulario Ingresar Números de Teléfono ya existe, por lo que no puede heredar el campo de búsqueda. Podrías cambiar el control en el formulario existente, pero hacerlo anula el beneficio real del campo de búsqueda: ¡que los controles de lista se construyan automáticamente! (Debes planificar tus campos de búsqueda antes de crear formularios.)

Repite el paso 4 para generar un nuevo formulario y dale el nombre que desees. Como puedes ver en figura G, el nuevo subformulario muestra los valores de texto descriptivos de PhoneDescription en lugar de los valores de clave principal en PhoneDescriptionID, y no tuviste que hacer nada para poblar el control.

figura G

Cómo resumir datos en Excel: métodos y herramientas
El control de lista hereda las propiedades de búsqueda del campo.

8. Modificar los valores de búsqueda

Los valores de búsqueda suelen ser estables, pero ocasionalmente debes modificar la lista. Para hacerlo, abre la tabla de búsqueda y realiza el cambio. Todas tus consultas y controles dependientes se actualizarán automáticamente, sin necesidad de trabajo adicional por tu parte. Podemos ilustrar este comportamiento abriendo PhoneDescriptionLookup y agregando un nuevo registro (Fax), como se muestra en figura H. Guarda y cierra la tabla.

figura H

Cómo crear y utilizar campos de búsqueda en Microsoft Access - Microsoft | Imagen 4 Newsmatic

Agrega un nuevo valor a la tabla de búsqueda.

9. Utilizar la lista actualizada

Abre el segundo formulario que creaste y haz clic en la lista desplegable de PhoneDescriptionIDFK para ver la lista actualizada que se muestra en figura I.

figura I

El cuadro combinado se actualiza automáticamente.

10. Consecuencias

Mencioné que los campos de búsqueda pueden dificultar otras operaciones, y en el paso 6, recomendé evitar listas implícitas (paso 2 al ejecutar el Asistente de Búsqueda) y usar en su lugar una tabla de búsqueda. Con valores en una tabla de búsqueda, las consultas y los informes posteriores son mucho más fáciles de definir. figura J muestra un informe simple que agrupa los números de teléfono por tipo: línea, celular y fax. Con la ayuda de un asistente de informes, generar este informe solo llevó unos minutos.

Cómo imprimir boletos numerados secuencialmente usando Publisher y Excel

figura J

Este informe agrupa los registros de teléfono por tipo (los valores de búsqueda).

¡Advertencia!

Cuando poblamos un control de lista manualmente, configuramos la propiedad Origen de fila del control para obtener valores de una tabla subyacente. El Asistente de Búsqueda simplemente hace esto por ti a nivel de campo (tabla). A pesar de las advertencias de los desarrolladores profesionales, esta función es útil siempre y cuando sigas el punto #10. No estoy recomendando que los desarrolladores profesionales utilicen campos de búsqueda para bases de datos distribuidas. Estoy sugiriendo que los usuarios aprovechen una función útil, y sé que no todos están de acuerdo con esta postura.

Envíame tu pregunta sobre Office

Responderé las preguntas de los lectores cuando pueda, pero no hay garantía. Al contactarme, sé lo más específico posible. Por ejemplo, "Soluciona mi libro de trabajo y arregla lo que está mal" probablemente no obtendrá una respuesta, pero "¿Puedes decirme por qué esta fórmula no devuelve los resultados esperados?" podría hacerlo. Por favor, menciona la aplicación y versión que estás utilizando. No recibo ninguna compensación por mi tiempo o experiencia por parte de Newsmatic, ni solicito una tarifa a los lectores. Puedes contactarme en [email protected].

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Microsoft, allí encontraras muchos artículos similares a Cómo crear y utilizar campos de búsqueda en Microsoft Access , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.