Tema 6 — Bases de datos: Access 365
Bloque VI Cuerpo General Administrativo de la Administración del Estado · Ingreso libre
- Bases de datos: Access 365. Principales funciones y utilidades.
- Tablas.
- Consultas.
- Formularios.
- Informes.
- Relaciones.
- Importación, vinculación y exportación de datos.
Epígrafe 1 — Bases de datos: Access 365. Principales funciones y utilidades
1. Concepto de base de datos relacional
Una base de datos es un conjunto organizado de datos sobre una temática concreta, estructurado de modo que sea posible consultarlos, modificarlos y mantenerlos con eficacia. Microsoft Access 365 es un sistema gestor de bases de datos relacionales (SGBDR): almacena la información en tablas con estructura definida y permite vincular unas tablas con otras mediante campos comunes para evitar la duplicación de datos y facilitar su mantenimiento.
El archivo de trabajo de Access tiene extensión .accdb, formato introducido con Access 2007 que sustituyó al antiguo .mdb (compatible con Access 2000 / 2002-2003).
1.1. Los seis objetos de una base de datos Access
Una base de datos Access puede contener seis tipos de objetos, que el panel de navegación (columna izquierda) muestra agrupados por tipo:
| Objeto | Para qué sirve |
|---|---|
| Tablas | Almacenan los datos en filas (registros) y columnas (campos). Son la base de todo. |
| Consultas | Extraen, filtran, calculan o modifican datos de una o más tablas. |
| Formularios | Proporcionan una interfaz visual para introducir, editar y visualizar datos. |
| Informes | Presentan los datos con formato para impresión o distribución. |
| Macros | Automatizan tareas repetitivas mediante secuencias de acciones predefinidas. |
| Módulos | Contienen código VBA (Visual Basic for Applications) para automatización avanzada. |
Doble clic sobre un objeto del panel lo abre; clic derecho da acceso a las opciones de diseño, renombrar y eliminar.
Son seis objetos en una BD Access: Tablas · Consultas · Formularios · Informes · Macros · Módulos. Las tablas son el único objeto indispensable: sin ellas no hay base de datos. Todo lo demás depende de las tablas (las consultas las leen; los formularios e informes muestran sus datos).
1.2. Principales sistemas gestores de bases de datos (SGBD)
Además de Microsoft Access, existen otros SGBD ampliamente utilizados en entornos profesionales y administrativos:
| SGBD | Descripción |
|---|---|
| Oracle Database | SGBDR de alta gama. Ampliamente usado en grandes corporaciones y Administraciones Públicas. |
| Microsoft SQL Server | SGBDR de Microsoft para entornos servidor. Integración nativa con el ecosistema Microsoft. |
| MySQL | SGBDR de código abierto. Uno de los más usados en aplicaciones web. |
| MariaDB | Derivado de MySQL, también de código abierto. Mantenido por la comunidad. |
| Amazon Aurora | SGBDR en la nube de Amazon Web Services. Compatible con MySQL y PostgreSQL. |
| Cassandra | Base de datos NoSQL distribuida de Apache. Diseñada para grandes volúmenes de datos. |
| SQLite | SGBDR ligero y embebido, sin servidor. Muy usado en aplicaciones móviles y de escritorio. |
El lenguaje estándar para trabajar con bases de datos relacionales es SQL (Structured Query Language), dividido en dos subconjuntos: DDL (Data Definition Language) para definir estructuras (CREATE, ALTER, DROP) y DML (Data Manipulation Language) para manipular datos (SELECT, INSERT, UPDATE, DELETE). Access usa internamente el motor ACE (sucesor del antiguo motor Jet desde Access 2007) y permite acceso programático con DAO (Data Access Objects) y ODBC (Open DataBase Connectivity) para conexiones con SGBD externos.
2. Especificaciones técnicas de Access
Access impone una serie de límites máximos verificados contra la página oficial de Microsoft Support. Son cifras nucleares que conviene retener:
| Especificación | Límite |
|---|---|
| Tamaño total de la base de datos (.accdb o .mdb) | 2 gigabytes (menos el espacio para objetos del sistema) |
| Tamaño máximo de una tabla | 2 gigabytes |
| Número total de objetos en la BD | 32.768 |
| Número de módulos | 1.000 |
| Número de caracteres del nombre de un objeto, tabla o campo | 64 |
| Número de caracteres de la contraseña | 14 |
| Número de usuarios simultáneos | 255 |
| Número de conexiones disponibles | 512 (Microsoft 365) / 256 (versiones perpetuas) |
| Número de campos en una tabla | 255 |
| Número de tablas abiertas (Microsoft 365) | 4.096 (incluidas las vinculadas y las internas) |
| Número de tablas en una consulta | 32 |
| Número de combinaciones (JOIN) en una consulta | 16 |
| Número de campos en un recordset | 255 |
| Número de niveles de subconsulta | 50 |
| Longitud máxima de una sentencia SQL | ~64.000 caracteres |
| Número de índices por tabla | 32 |
| Número de campos en un índice o clave principal | 10 |
| Número de caracteres en una etiqueta de formulario o informe | 2.048 |
| Número de caracteres en un cuadro de texto | 65.535 |
| Número de formularios o informes anidados | 7 |
| Número de campos a ordenar o agrupar en un informe | 10 |
| Número de páginas de un informe | 65.536 |
Las cifras nucleares son los dos doses (2 GB de BD · 2 GB de tabla), los dos doscientos cincuenta y cincos (255 campos · 255 usuarios simultáneos) y los dos sesentas y cuatros (64 caracteres en nombres · 65.535 caracteres en Texto largo / cuadro de texto). El total de objetos es 32.768 y los formularios/informes admiten 7 niveles de anidamiento.
3. Pantalla de bienvenida y creación de una base de datos
Al abrir Access 365 aparece la pantalla de bienvenida con tres zonas diferenciadas:
| Opción | Qué permite |
|---|---|
| Recientes / Abrir | Accede a bases de datos usadas recientemente o abre un archivo existente desde disco. |
| Base de datos en blanco | Crea una nueva base de datos vacía. Access solicita el nombre y la ubicación del archivo .accdb antes de crearlo. |
| Plantillas | Crea una BD preconfigurada a partir de un modelo (Contactos, Activos, Administración de eventos…). |
Pantalla de bienvenida de Access 365 con las tres zonas claramente identificadas: archivos recientes a la izquierda, botón «Base de datos en blanco» en el centro y galería de plantillas a la derecha.
Al elegir «Base de datos en blanco», Access solicita el nombre y la ubicación ANTES de crear el archivo. Solo tras pulsar «Crear» se genera el .accdb y se abre el área de trabajo. La primera vez aparece automáticamente una tabla en blanco (Tabla1) en vista Hoja de datos: lo recomendable es cerrarla sin guardar y construir la estructura desde cero en vista Diseño.
4. Compactar y reparar la base de datos
A medida que se trabaja con una base de datos (crear, modificar y eliminar objetos), el archivo .accdb puede crecer más de lo necesario y acumular fragmentación interna. La función Compactar y reparar cumple dos objetivos:
- Reducir el tamaño del archivo eliminando el espacio liberado por objetos borrados.
- Corregir errores estructurales del archivo cuando los detecta.
Se accede desde Herramientas de base de datos → Compactar y reparar base de datos. También se puede configurar para que se ejecute automáticamente al cerrar: Archivo → Opciones → Base de datos actual → Compactar al cerrar.
Compactar y reparar es una operación de mantenimiento preventivo: conviene ejecutarla periódicamente. Antes de aplicarla, hacer una copia de seguridad, porque la reparación puede truncar datos dañados. La ruta canónica es Herramientas de base de datos → Compactar y reparar base de datos.
5. Contraseña de la base de datos
Access permite cifrar la base de datos con una contraseña para restringir su apertura. Los archivos .accdb usan cifrado de clave simétrica.
Para establecer una contraseña:
- Abrir la BD en modo exclusivo: Archivo → Abrir → flecha junto al botón Abrir → Abrir en modo exclusivo.
- Archivo → Información → Establecer contraseña para la base de datos → introducir y confirmar la contraseña.
Para quitar la contraseña: abrir en modo exclusivo → Archivo → Información → Descifrar base de datos → introducir la contraseña actual.
Dos restricciones críticas del cifrado:
- No es posible establecer la contraseña si la base de datos está abierta en modo compartido: el modo exclusivo es un requisito previo indispensable.
- Si se pierde la contraseña, no hay forma de recuperarla ni de abrir la base de datos. Access no dispone de mecanismo de recuperación. La copia de seguridad es la única vía de respaldo.
6. Formatos de archivo
Desde Archivo → Guardar como se puede guardar la base de datos en distintos formatos:
| Formato | Extensión | Descripción |
|---|---|---|
| Base de datos de Access | .accdb | Formato estándar de Access 2007 y posteriores. Es el formato predeterminado. |
| Base de datos Access 2000 | .mdb | Formato compatible con Access 2000. Pierde las funciones exclusivas de versiones recientes. |
| Base de datos Access 2002-2003 | .mdb | Formato compatible con Access XP/2003. También pierde funciones exclusivas. |
| Plantilla de base de datos | .accdt | Guarda la BD como plantilla reutilizable, sin los datos. |
Desde Archivo → Guardar como → Avanzadas están disponibles tres opciones adicionales:
- Empaquetar y firmar: crea un paquete
.accdcfirmado digitalmente para distribución segura. - Copia de seguridad: guarda una copia con la fecha en el nombre.
- Crear ACCDE: genera un archivo
.accdede solo ejecución, con el código VBA compilado y los módulos bloqueados para impedir su edición.
Extensiones de archivo Access vigentes: .accdb (formato estándar desde 2007) · .mdb (formato antiguo, Access 2000 y 2002-2003) · .accdt (plantilla) · .accde (solo ejecución, VBA compilado) · .accdc (paquete firmado).
7. Dividir la base de datos: front-end y back-end
Access permite dividir una base de datos en dos archivos separados mediante la herramienta Dividir base de datos (Herramientas de base de datos → Mover datos → Dividir base de datos):
| Archivo | Contiene | Ubicación habitual |
|---|---|---|
Base de datos back-end (_be.accdb) | Solo las tablas con los datos. | Servidor compartido o carpeta de red. |
Base de datos front-end (.accdb) | Consultas, formularios, informes, macros, módulos y vínculos a las tablas del back-end. | Equipo local de cada usuario. |
Esta arquitectura es recomendable en entornos multiusuario: varios usuarios pueden trabajar simultáneamente con sus propios front-ends mientras comparten los mismos datos en el back-end. Si se actualiza el diseño (formularios, informes), basta con distribuir el nuevo front-end sin tocar los datos.
Front-end = capa de presentación (en local; consultas, formularios, informes, macros, módulos). Back-end = capa de datos (en servidor; solo tablas). La división reduce significativamente el riesgo de corrupción por acceso concurrente y facilita el mantenimiento en entornos multiusuario.
8. Herramientas de base de datos
Access ofrece un conjunto de herramientas de análisis y documentación accesibles desde la pestaña Herramientas de base de datos:
| Herramienta | Función |
|---|---|
| Dependencias de objetos | Muestra qué objetos dependen de un objeto determinado y de cuáles depende él. Útil para saber, p. ej., qué consultas o informes se verían afectados al eliminar una tabla. |
| Analizar tabla (Normalizador) | Examina una tabla existente y sugiere cómo dividirla en tablas más pequeñas y normalizadas para eliminar redundancias. |
| Analizar rendimiento | Evalúa los objetos seleccionados y sugiere mejoras (índices, tipos de datos, simplificaciones). Clasifica sus salidas en Recomendación (mejora garantizada), Sugerencia (probable) e Idea (a considerar). |
| Documentador de la base de datos | Genera un informe detallado con la estructura técnica de los objetos: campos, propiedades, relaciones, controles. El resultado se presenta como un informe imprimible. |
Mnemotécnico DARD: Dependencias de objetos · Analizar tabla · Analizar Rendimiento · Documentador. Son las cuatro herramientas de análisis y documentación bajo la pestaña Herramientas de base de datos.
9. Fichas de la cinta de opciones
Access organiza sus comandos en fichas permanentes (siempre visibles) y fichas contextuales (aparecen solo cuando está activo el objeto correspondiente).
9.1. Fichas permanentes
| Ficha | Contenido principal |
|---|---|
| Inicio | Vistas · Portapapeles · Ordenar y filtrar · Registros · Formato de texto. Comandos del día a día para trabajar con datos en hoja de datos. |
| Crear | Tablas · Consultas · Formularios · Informes · Macros y código. Permite crear todos los objetos de la base de datos. |
| Datos externos | Importar y vincular · Exportar. Gestión de conexiones con fuentes externas (Excel, texto, ODBC, SharePoint, Dataverse…). |
| Herramientas de base de datos | Herramientas · Macro · Relaciones · Analizar · Mover datos · Complementos. Administración avanzada. |
9.2. Fichas contextuales
| Ficha contextual | Cuándo aparece |
|---|---|
| Campos (vista Hoja de datos) | Al abrir una tabla en vista Hoja de datos. Permite añadir, eliminar y configurar campos. |
| Tabla (vista Hoja de datos) | Al abrir una tabla en vista Hoja de datos. Opciones de tabla: antes/después de filas, total de filas, descripción. |
| Diseño de tabla | Al abrir una tabla en vista Diseño. Define campos, tipos de datos y propiedades. |
| Diseño de consulta | Al abrir una consulta en vista Diseño. Acceso a la cuadrícula QBE y a los tipos de consulta. |
| Diseño de formulario / Informe | Al abrir un formulario o informe en vista Diseño. Herramientas de control, diseño y propiedades. |
10. Atajos de teclado
| Atajo | Función |
|---|---|
| F1 | Ayuda de Access. |
| F2 | Alternar entre modo Edición (cursor en el campo) y modo Exploración (campo seleccionado completo). |
| F4 | Abrir la Hoja de propiedades en vista Diseño de formularios e informes. |
| F6 | Alternar entre la zona superior e inferior de la vista Diseño de tabla. |
| F11 | Mostrar el panel de navegación. |
| F12 | Guardar como. |
| Mayús+F2 | Abrir el cuadro Zoom para introducir expresiones largas. |
| Mayús+F4 | Buscar siguiente (sin abrir el cuadro de diálogo). |
| Ctrl+S | Guardar el objeto activo. |
| Ctrl+Z | Deshacer. |
| Ctrl+F | Buscar (vistas Hoja de datos y Formulario). |
| Ctrl+H | Reemplazar. |
| Ctrl+− (menos) | Eliminar el registro actual. |
| Ctrl+Intro | Insertar nueva línea en campos Texto corto / Texto largo. |
| Esc | Deshacer cambios en el campo actual. Dos veces: deshace también el registro. |
| Ctrl+; | Insertar la fecha actual. |
| Ctrl+Mayús+: | Insertar la hora actual. |
El atajo Ctrl+− elimina el registro activo de forma irreversible: Access muestra un aviso de confirmación, pero una vez aceptado Ctrl+Z no funciona para deshacer la eliminación. La copia de seguridad es la única vía de respaldo ante un borrado accidental masivo.
11. Personalización del entorno
Access 365 comparte con el resto de aplicaciones de Microsoft 365 el sistema de personalización accesible desde Archivo → Opciones. La configuración se organiza en siete pestañas:
- General.
- Base de datos actual (incluye la opción «Compactar al cerrar»).
- Hoja de datos.
- Diseñadores de objetos.
- Revisión.
- Idioma.
- Configuración de cliente.
La cinta es contextual: muestra pestañas adicionales (Diseño de tabla, Diseño de consulta…) solo cuando son relevantes según el objeto abierto. La Barra de acceso rápido se personaliza desde Archivo → Opciones → Barra de herramientas de acceso rápido.
Epígrafe 2 — Tablas
1. Crear una tabla en vista Diseño
La vista Diseño es el método más preciso de crear una tabla: permite definir campos, tipos de datos y propiedades antes de introducir ningún dato. Se accede desde Crear → grupo Tablas → Diseño de tabla.
Junto a «Diseño de tabla», la pestaña Crear ofrece dos métodos adicionales:
- Tabla: crea una tabla nueva en vista Hoja de datos con un campo Id de autonumeración predefinido.
- Listas de SharePoint: permite crear una tabla vinculada a una lista de SharePoint, posibilitando la colaboración y el acceso a los datos desde la web y desde múltiples usuarios.
Vista Diseño de tabla con las tres columnas visibles en la zona superior (Nombre del campo, Tipo de datos, Descripción) y el panel de Propiedades del campo en la zona inferior.
La ventana de vista Diseño se divide en dos zonas:
- Zona superior (cuadrícula de campos): cada fila define un campo mediante tres columnas — Nombre del campo, Tipo de datos y Descripción opcional.
- Zona inferior (panel Propiedades del campo): muestra las propiedades configurables del campo seleccionado arriba. Las propiedades disponibles dependen del tipo de datos del campo.
2. Reglas para nombrar campos
Los nombres de campo deben cumplir cinco reglas:
- Longitud máxima: 64 caracteres.
- No pueden empezar por espacio.
- No pueden contener caracteres de control (ASCII 0–31).
- No puede haber dos campos con el mismo nombre en la misma tabla.
- Caracteres prohibidos (exactamente cuatro): punto
.· signo de admiración!· acento grave`· corchetes[ ].
Los únicos caracteres explícitamente prohibidos son: punto (.) · admiración (!) · acento grave (`) · corchetes ([ ]). Sí son válidos los espacios interiores, los números al inicio, la ñ, €, $ o /. El error frecuente es asumir que los espacios o los números al inicio están prohibidos: no lo están.
3. Tipos de datos
En la columna Tipo de datos se indica qué clase de información almacenará el campo. La elección determina el espacio de almacenamiento, las operaciones posibles y los valores permitidos. Access 365 ofrece trece tipos de datos propios, más un asistente que no es tipo real:
| Tipo de datos | Descripción / Dato clave |
|---|---|
| Texto corto | Texto de hasta 255 caracteres. Antes denominado «Texto». Para nombres, códigos, direcciones, etc. |
| Texto largo | Texto extenso de hasta 65.535 caracteres (1 GB técnicamente, vía programación). Antes denominado «Memo». |
| Número | Valores numéricos para cálculos. Subtipo predeterminado: Entero largo. |
| Número grande ★365 | 8 bytes. Rango ±2⁶³. Compatible con SQL_BIGINT. Incompatible con versiones anteriores de Access. |
| Fecha/Hora | Fechas y horas. Rango: 1/1/100 a 31/12/9999. |
| Fecha/Hora extendida ★365 | Mayor rango (0001–9999) y precisión de nanosegundos. Compatible con datetime2 de SQL Server. |
| Moneda | Valores monetarios. Hasta 15 dígitos a la izquierda y 4 a la derecha del decimal. Evita el redondeo. |
| Autonumeración | Número único generado automáticamente por Access en cada nuevo registro. No se puede editar manualmente. |
| Sí/No | Dos valores: Sí/No · Verdadero/Falso · Activado/Desactivado. Ocupa 1 bit. |
| Objeto OLE | Objetos incrustados de otras aplicaciones (imágenes, documentos…). Hasta 1 GB. Considerado casi obsoleto. |
| Hipervínculo | Almacena una URL o ruta de acceso local. |
| Datos adjuntos | Permite adjuntar varios archivos por registro (imágenes, hojas de cálculo…). Hasta 2 GB por base de datos. |
| Calculado | El valor se obtiene mediante una expresión a partir de otros campos. No editable manualmente. Desde Access 2010; no disponible en formato .mdb. |
| Asistente para búsquedas | No es un tipo de datos real: lanza un asistente que crea un cuadro combinado vinculado. El tipo resultante es Texto corto o Número. |
Tres tipos no presentes en todas las versiones de Access:
-
Número grande: desde Access 2016 (build 16.7+ con Microsoft 365 actualizado).
-
Fecha/Hora extendida: desde Microsoft 365 / Access 2021 (no disponible en Access 2019 ni anteriores).
-
Calculado: desde Access 2010 (primer tipo de datos derivado de expresión almacenado en la tabla).
Campos que parecen numéricos pero deben ser Texto corto: código postal, NIF/NIE, número de portal, número de piso, teléfono. Con ninguno de ellos se realizan cálculos matemáticos. Otros matices: Número grande hace la base de datos incompatible con versiones antiguas (Access avisa al guardar). Los límites de tamaño difieren — Objeto OLE hasta 1 GB por campo vs Datos adjuntos hasta 2 GB por base de datos. En Sí/No, los tres pares de valores son equivalentes entre sí: Sí = Verdadero = Activado; No = Falso = Desactivado.
3.1. Subtipos del campo Número
Cuando el tipo de datos es Número, la propiedad Tamaño del campo define el subtipo numérico, con su rango y almacenamiento:
| Subtipo | Rango | Almacenamiento |
|---|---|---|
| Byte | 0 a 255 (solo enteros positivos) | 1 byte |
| Entero | −32.768 a +32.767 | 2 bytes |
| Entero largo (predeterminado) | −2.147.483.648 a +2.147.483.647 | 4 bytes |
| Simple | ±3,4 × 10³⁸ (hasta 7 dígitos significativos) | 4 bytes |
| Doble | ±1,797 × 10³⁰⁸ (hasta 15 dígitos significativos) | 8 bytes |
| Id. de replicación | GUID para replicación de bases de datos | 16 bytes |
| Decimal | ±9,999… × 10²⁷ (hasta 28 dígitos significativos) | 12 bytes |
Para relacionar un campo Autonumeración (clave principal de la tabla 1) con el campo equivalente en una tabla relacionada (clave externa), ese campo debe ser de tipo Número con subtipo Entero largo (4 bytes, mismo tamaño que el Autonumeración). Este es el motivo de que Entero largo sea el subtipo predeterminado de Número.
4. Propiedades de campo
El panel inferior de la vista Diseño muestra las propiedades configurables del campo seleccionado. Las propiedades disponibles varían según el tipo de datos. Las trece principales son:
4.1. Tamaño del campo
- Para Texto corto: número máximo de caracteres permitidos (1–255; predeterminado 255).
- Para Número: subtipo numérico (Byte, Entero, Entero largo, Simple, Doble, Id. de replicación, Decimal).
- Para Autonumeración: solo permite Entero largo o Id. de replicación.
4.2. Formato
Controla cómo se muestra el valor en tablas, formularios e informes, sin modificar el valor almacenado. Disponible para todos los tipos excepto Objeto OLE y Datos adjuntos. Las opciones predefinidas dependen del tipo:
| Tipo de dato | Formatos predefinidos |
|---|---|
| Número / Moneda / Autonumeración | Número general · Moneda · Euro · Fijo · Estándar · Porcentaje · Científico |
| Fecha/Hora | Fecha general · Fecha larga · Fecha mediana · Fecha corta · Hora larga · Hora mediana (AM/PM) · Hora corta |
| Sí/No | Sí/No · Verdadero/Falso · Activado/Desactivado |
| Texto corto / Texto largo | Sin formatos predefinidos; se personaliza con caracteres especiales |
4.2.a. Formatos personalizados para Texto
Los campos de texto carecen de formatos predefinidos; se crean con estos caracteres:
| Símbolo | Significado |
|---|---|
@ | Carácter de texto obligatorio (carácter o espacio). |
& | Carácter de texto no obligatorio. |
> | Convierte los caracteres a MAYÚSCULAS. |
< | Convierte los caracteres a minúsculas. |
"ABC" | Los caracteres entre comillas se muestran literalmente. |
! | Rellena de izquierda a derecha en lugar de derecha a izquierda. |
* | Rellena el espacio disponible con el carácter que le sigue. |
[color] | Muestra los datos en el color indicado: negro, azul, verde, cian, rojo, amarillo, magenta, blanco. |
4.2.b. Formatos personalizados para Número y Moneda
| Símbolo | Significado |
|---|---|
, (coma) | Separador decimal. |
. (punto) | Separador de miles. |
0 | Muestra un dígito o cero (dígito obligatorio). |
# | Muestra un dígito o nada (dígito no obligatorio). |
$ | Muestra el símbolo $. |
€ | Muestra el símbolo €. |
% | Multiplica el valor por 100 y muestra el símbolo %. |
[color] | Muestra los datos en el color indicado. |
4.2.c. Formatos personalizados para Fecha/Hora
| Símbolo | Resultado |
|---|---|
d / dd | Día con 1-2 dígitos / Día con 2 dígitos. |
ddd / dddd | Abreviatura del día (3 letras) / Nombre completo del día. |
m / mm | Mes con 1-2 dígitos / Mes con 2 dígitos. |
mmm / mmmm | Tres primeras letras del mes / Nombre completo del mes. |
aa / aaaa | Dos últimos dígitos del año / Año completo. |
h / hh | Hora con 1-2 dígitos / Hora con 2 dígitos. |
n / nn | Minuto con 1-2 dígitos / Minuto con 2 dígitos. |
s / ss | Segundo con 1-2 dígitos / Segundo con 2 dígitos. |
AM/PM / am/pm | Indicador AM/PM en mayúsculas o minúsculas. |
4.3. Máscara de entrada
Proporciona un patrón de introducción de datos que guía al usuario mediante caracteres literales y marcadores de posición. Los principales caracteres son:
| Carácter | Significado |
|---|---|
0 | Dígito (0–9). Obligatorio. |
9 | Dígito (0–9) o espacio. Opcional. |
# | Dígito, espacio, signo + o −. Opcional. |
L | Letra (A–Z, a–z). Obligatoria. |
? | Letra. Opcional. |
A | Letra o dígito. Obligatorio. |
a | Letra o dígito. Opcional. |
& | Cualquier carácter o espacio. Obligatorio. |
C | Cualquier carácter o espacio. Opcional. |
> | Convierte los caracteres siguientes a MAYÚSCULAS. |
< | Convierte los caracteres siguientes a minúsculas. |
! | Rellena la máscara de izquierda a derecha. |
"ABC" | Los caracteres entre comillas se muestran literalmente. |
Diferencia clave entre 0 y 9: el 0 exige que el usuario introduzca un dígito; el 9 lo hace opcional. Ejemplos típicos:
-
Máscara para DNI:
00000000>L(ocho dígitos obligatorios + letra forzada a mayúsculas). -
Máscara para código postal:
00000(cinco dígitos obligatorios — el campo debe ser Texto corto, nunca Número).
4.4. Valor predeterminado
Valor que Access introduce automáticamente en el campo al crear un nuevo registro. El usuario puede modificarlo. Útil para campos que suelen contener siempre el mismo dato (por ejemplo, País = "España"). Disponible para todos los tipos excepto Objeto OLE, Datos adjuntos, Autonumeración y Calculado.
4.5. Regla de validación
Expresión que debe cumplir el valor introducido para ser aceptado. Si el valor no satisface la regla, Access muestra el Texto de validación. Disponible para todos los tipos excepto Autonumeración, Datos adjuntos y Objeto OLE.
| Expresión de regla | Significado |
|---|---|
>=100 Y <=2000 | El valor debe estar entre 100 y 2000. |
<>0 | El valor debe ser distinto de cero. |
<#1/1/2024# | Fecha anterior al 1 de enero de 2024. |
Entre #1/1/2022# Y #1/1/2024# | Fecha comprendida entre ambas fechas. |
COMO "M*" | Debe comenzar por la letra M. |
COMO "M???" | Debe comenzar por M y tener exactamente 4 caracteres. |
"Madrid" O "Barcelona" O "Sevilla" | Solo se admiten esos tres valores. |
>[Fecha_Alta] | Debe ser posterior al campo Fecha_Alta del mismo registro. |
4.6. Texto de validación
Mensaje que aparece en pantalla cuando el valor introducido infringe la regla de validación. Debe ser claro y orientar al usuario. Disponible para los mismos tipos que la Regla de validación.
4.7. Requerido
Si se establece a Sí, el campo no puede quedar vacío (nulo) al guardar el registro. Predeterminado: No. Disponible para todos los tipos excepto Calculado, Autonumeración y Sí/No.
4.8. Permitir longitud cero
Solo disponible para Texto corto y Texto largo. Controla si una cadena vacía "" se admite como valor válido.
Diferencia conceptual fundamental:
-
Nulo = el campo está vacío y no tiene ningún dato (Access no sabe qué hay ahí).
-
Cadena de longitud cero
""= el usuario ha introducido explícitamente «nada» como valor.
Una validación que exige «Requerido = Sí» con «Permitir longitud cero = No» obliga a introducir un valor real distinto de la cadena vacía.
4.9. Indexado
Un índice acelera las búsquedas y ordenaciones en ese campo. Opciones:
- No: sin índice. Predeterminado para la mayoría de campos.
- Sí (con duplicados): admite valores repetidos.
- Sí (sin duplicados): exige unicidad (equivale a una clave candidata).
La propiedad Indexado Sí (sin duplicados) garantiza unicidad en el campo, igual que la clave principal. La diferencia: una tabla solo puede tener una clave principal, pero puede tener varios campos indexados sin duplicados (claves candidatas).
4.10. Título
Define un nombre alternativo para la etiqueta del campo en tablas, formularios e informes. Si un campo se llama FechaAlq en la BD, el Título puede mostrarlo como «Fecha de alquiler» sin necesidad de renombrarlo. Si no se establece, se usa el nombre del campo. Disponible para todos los tipos.
4.11. Lugares decimales
Determina el número de decimales que se muestran. Disponible para Número (excepto Byte, Entero y Entero largo), Número grande y Moneda. Predeterminado: Automático (Access decide según el formato). Se puede fijar entre 0 y 15. No modifica el valor almacenado, solo la presentación.
4.12. Alineación del texto
Controla la alineación horizontal del contenido en las vistas Hoja de datos, formularios e informes. Opciones:
- General: alineación por defecto (texto a la izquierda, números a la derecha).
- Izquierda · Centro · Derecha · Distribuir (extiende el texto para rellenar el ancho).
4.13. Pestaña Búsqueda
La pestaña Búsqueda del panel inferior contiene propiedades adicionales para los campos de tipo «Asistente para búsquedas» o para cualquier campo al que se quiera añadir un control de lista. La propiedad más relevante es Mostrar control:
| Valor de Mostrar control | Descripción |
|---|---|
| Cuadro de texto | El campo se muestra como cuadro de texto normal editable. Predeterminado para la mayoría de tipos. |
| Cuadro de lista | Lista desplegable fija de valores. No permite escribir un valor fuera de la lista. |
| Cuadro combinado | Lista desplegable + cuadro editable. El usuario puede seleccionar o escribir un nuevo valor. |
5. Clave principal y clave externa
La clave principal (o clave primaria) es un campo o conjunto de campos que identifican de forma única e inequívoca cada registro de la tabla. No puede haber dos registros con el mismo valor en la clave principal, ni puede ser nula.
Crear una clave principal simple (un campo): vista Diseño → seleccionar el campo → clic derecho → Clave principal (o botón Clave principal en la pestaña Diseño). El campo queda marcado con un icono de llave amarilla.
Crear una clave principal compuesta (varios campos): mantener Ctrl y hacer clic en los campos → clic derecho → Clave principal.
Tres matices sobre la clave principal:
-
Si se cierra la vista Diseño sin definir clave principal, Access ofrece crearla automáticamente con un campo Id de tipo Autonumeración. Es recomendable definirla explícitamente antes.
-
Una tabla solo puede tener UNA clave principal, pero puede tener VARIOS índices sin duplicados.
-
Una clave externa (o foránea) es un campo de una tabla relacionada que almacena el valor de la clave principal de la tabla principal. Para relacionar un campo Autonumeración con su clave externa, esta debe ser tipo Número con subtipo Entero largo.
El campo que conecta dos tablas recibe distintos nombres según el lado: clave principal (o primaria) en la tabla del lado «uno» · clave externa (o foránea) en la tabla del lado «varios». En Access, la clave externa de una tabla relacionada con un campo Autonumeración debe ser de tipo Número (Entero largo).
6. Vista Hoja de datos
La vista Hoja de datos muestra los datos de la tabla en formato de cuadrícula (filas = registros, columnas = campos). Es la vista habitual para introducir y editar datos. Se alterna con la vista Diseño desde el botón Ver en la pestaña Inicio.
En la parte inferior de la hoja de datos se encuentra la barra de navegación de registros con los botones:
- Primer registro
|◄· Registro anterior◄· Número actual / total[N de M]· Siguiente registro►· Último registro►|· Nuevo registro vacío►*. - Cuadro de búsqueda que filtra registros mientras se escribe.
Cuando dos tablas están relacionadas, los registros de la tabla principal muestran un icono + a la izquierda. Al pulsarlo se despliega la hoja secundaria de datos con los registros relacionados de la tabla secundaria. Se configura desde Inicio → Registros → Más → Hoja secundaria de datos.
6.1. Operaciones con registros en vista Hoja de datos
| Operación | Método |
|---|---|
| Añadir nuevo registro | Ctrl++ · botón «Nuevo registro» en la barra · Inicio → Registros → Nuevo |
| Eliminar registro | Ctrl+− · Supr (con el registro seleccionado) · Inicio → Registros → Eliminar → Eliminar registro |
| Editar dato | Situar el cursor en la celda y escribir. El lápiz en el selector de fila indica cambios sin guardar. |
| Guardar registro | Access guarda automáticamente al saltar al siguiente registro. También Mayús+Intro. |
| Seleccionar campo (columna) | Clic en la cabecera de la columna. |
| Seleccionar registro (fila) | Clic en el selector de registro (zona izquierda de la fila). |
| Seleccionar toda la tabla | Clic en la esquina superior izquierda (intersección entre cabecera y selector). |
| Avanzar entre campos | Intro o Tab (izquierda a derecha). Al llegar al último campo del último registro, Tab crea uno nuevo. |
Eliminar un registro es una operación irreversible: Access muestra un aviso de confirmación antes de proceder, pero una vez aceptado no es posible deshacer. Ctrl+Z no funciona para eliminaciones de registros. La copia de seguridad es la única vía de respaldo ante un borrado accidental.
7. Filtros
Un filtro permite limitar temporalmente los registros visibles en una tabla, consulta o formulario sin alterar el diseño del objeto ni los datos subyacentes. A diferencia de las consultas, los filtros no se guardan como objetos independientes de la base de datos (aunque sí pueden guardarse junto con la tabla o consulta).
7.1. Filtros comunes
Se accede desde el triángulo desplegable en la cabecera de cada campo, o desde Inicio → Ordenar y filtrar → Filtro. La lista de opciones de filtrado se adapta al tipo de datos del campo (criterios de texto, número, fecha…).
- Desactivar un filtro sin eliminarlo: botón Alternar filtro.
- Eliminar el filtro completamente: Borrar filtro de [campo] desde el menú desplegable de la cabecera.
7.2. Filtro por selección
Se basa en el valor de una celda seleccionada. Pasos: seleccionar la celda cuyo valor se quiere usar como criterio → Inicio → Ordenar y filtrar → Selección → elegir el tipo de coincidencia (es igual a · contiene · comienza por…). Es el método más rápido para filtrar por un valor concreto.
7.3. Filtro por formulario
Permite combinar varios criterios sobre distintos campos antes de aplicar el filtro. Se accede desde Inicio → Ordenar y filtrar → Avanzadas → Filtro por formulario. Access muestra un registro vacío donde se introducen los criterios usando operadores de comparación (= > < >= <= <> ENTRE COMO). La pestaña O en la parte inferior permite añadir condiciones alternativas (OR). Una vez configurados, se activa el filtro con Alternar filtro.
| Operador | Significado |
|---|---|
= | Igual a |
> / < | Mayor que / Menor que |
>= / <= | Mayor o igual a / Menor o igual a |
<> | Distinto de |
ENTRE … Y … | Dentro de un rango de valores |
COMO … | Compara cadenas de texto con comodines (* y ?) |
Tres diferencias clave filtro vs consulta:
-
El filtro limita la visualización temporalmente; la consulta se guarda como objeto reutilizable.
-
El filtro opera sobre una tabla, consulta o formulario ya abierto; la consulta puede combinar varias tablas de origen.
-
El filtro no permite campos calculados ni funciones de agregación; la consulta sí.
Epígrafe 3 — Consultas
1. Concepto y clasificación
Una consulta es una pregunta formulada a la base de datos. Es el objeto de Access que permite extraer, filtrar, calcular, ordenar y manipular datos almacenados en una o varias tablas. A diferencia de los filtros, las consultas se guardan como objetos independientes de la base de datos y pueden reutilizarse.
Las consultas se clasifican en dos grandes categorías según su función:
| Categoría | Qué hace | Tipos |
|---|---|---|
| Consultas de selección | Extraen y presentan datos sin modificarlos. El resultado es un conjunto de registros (hoja de respuestas dinámica). | Simple · Parámetros · Totales · Referencias cruzadas · Duplicados · No coincidentes |
| Consultas de acción | Modifican los datos de la tabla subyacente de forma masiva. La acción es irreversible (no hay Ctrl+Z). | Creación de tabla · Actualización · Datos anexados · Eliminación |
Las consultas de acción modifican los datos de forma permanente. Access muestra un cuadro de diálogo de confirmación antes de ejecutarlas. Una vez confirmadas, no es posible deshacer la acción con Ctrl+Z. La precaución estándar es hacer una copia de seguridad antes de ejecutar una consulta de eliminación o actualización masiva.
2. Tipos de consultas de selección
2.1. Consulta simple (de selección)
Extrae registros de una o más tablas aplicando los criterios definidos. Es la base de todas las demás consultas. Se crea desde Crear → Diseño de consulta o con el Asistente para consultas → Asistente para consultas sencillas.
2.2. Consulta de parámetros
Solicita al usuario uno o más valores al ejecutarse y los utiliza como criterios de filtrado. Se definen escribiendo el texto del mensaje entre corchetes en la fila Criterios de la vista Diseño.
Ejemplo: en la columna Fecha, escribir [Introduce la fecha de inicio:] hace que Access muestre ese mensaje en un cuadro de diálogo y use el valor introducido como criterio.
Para que Access valide el tipo de dato del parámetro, se declara en Diseño → Parámetros: se indica el nombre (igual que el texto del corchete) y el tipo esperado.
2.3. Consulta de totales (de agrupación)
Calcula valores de resumen (suma, media, cuenta, máximo, mínimo…) para grupos de registros. Se activa con el botón Totales (Σ) en la vista Diseño: aparece la fila Total bajo la fila Tabla. Para cada columna se elige entre Agrupar por (define el grupo) o una función de agregación.
| Función | Significado | SQL |
|---|---|---|
| Agrupar por | Define los grupos sobre los que se calculan los totales. | GROUP BY |
| Suma | Suma de los valores del campo en cada grupo. | SUM() |
| Promedio | Media aritmética. | AVG() |
| Mín / Máx | Valor mínimo / máximo del grupo. | MIN() / MAX() |
| Cuenta | Número de registros del grupo (ignora nulos). | COUNT() |
| DesvEst | Desviación estándar de la muestra. | STDEV() |
| Var | Varianza de la muestra. | VAR() |
| Primero / Último | Primer / último valor del campo dentro del grupo. | — |
| Expresión | El campo contiene una expresión calculada con funciones de agregación. | — |
| Donde | El campo se usa solo como criterio de filtrado previo a la agrupación; no aparece en el resultado. | WHERE |
2.4. Consulta de tabla de referencias cruzadas
Presenta los datos en formato de tabla de doble entrada (similar a una tabla dinámica de Excel): los valores de un campo pasan a ser los encabezados de columna, y se calcula un valor de resumen para cada intersección de fila y columna. Se crea con el Asistente para consultas de tabla de referencias cruzadas (Crear → Asistente para consultas → Referencias cruzadas).
En la vista Diseño de una referencia cruzada aparece la fila Referencia cruzada con tres opciones:
- Encabezado de fila: campo que define las filas.
- Encabezado de columna: campo cuyos valores se convierten en columnas.
- Valor: función de agregación que rellena las celdas.
2.5. Consulta de búsqueda de duplicados
Detecta los registros que tienen el mismo valor en uno o más campos especificados. Útil para limpiar bases de datos con entradas repetidas. Se crea con el Asistente para buscar duplicados (Crear → Asistente para consultas → Buscar duplicados). Internamente genera una consulta de selección con HAVING COUNT(*) > 1.
2.6. Consulta de no coincidentes
Devuelve los registros de una tabla que no tienen correspondencia en otra tabla relacionada. Especialmente útil para detectar registros huérfanos. Se crea con el Asistente para buscar no coincidentes (Crear → Asistente para consultas → Buscar no coincidentes). Internamente genera un LEFT JOIN comprobando que el campo de la tabla derecha sea NULL.
Cuatro asistentes de consulta en Access: (1) Sencillas · (2) Referencias cruzadas · (3) Buscar duplicados · (4) Buscar no coincidentes. La consulta de tabla de referencias cruzadas es la única que se crea casi exclusivamente con asistente; el resto se pueden crear directamente en vista Diseño.
3. Consultas multitabla
Las consultas multitabla obtienen datos de más de una tabla o consulta simultáneamente. Se configuran en la vista Diseño añadiendo varias tablas a la zona de tablas. Es recomendable que las tablas estén previamente relacionadas (ver Ep. 6), aunque no es un requisito técnico: sin relación se produce una combinación cruzada (producto cartesiano) habitualmente involuntaria.
Cuando se agregan tablas relacionadas, Access muestra automáticamente la línea de unión entre los campos vinculados. El tipo de combinación (INNER, LEFT o RIGHT JOIN) se puede modificar haciendo doble clic sobre la línea de unión (ver Ep. 6).
Las consultas multitabla son la base de la mayoría de informes y formularios en bases de datos normalizadas: extraen datos de tablas relacionadas con un solo objeto consulta que después alimenta el formulario o el informe.
4. Tipos de consultas de acción
Las consultas de acción modifican los datos. Se distinguen visualmente en el panel de navegación por su icono con signo de exclamación. En la vista Diseño, la barra de herramientas muestra el tipo activo.
4.1. Consulta de creación de tabla
Crea una tabla nueva a partir del resultado de una consulta de selección. La tabla nueva se almacena en la misma base de datos (o en otra base de datos especificada). Útil para crear tablas de archivo o instantáneas del estado actual. Se configura desde Diseño → Tipo de consulta → Creación de tabla.
4.2. Consulta de actualización
Modifica los valores de uno o más campos en los registros que cumplen los criterios. Equivale a un UPDATE masivo en SQL. En la vista Diseño aparece la fila Actualizar a: donde se introduce el nuevo valor o expresión. Se configura desde Diseño → Tipo de consulta → Actualización.
Ejemplo: actualizar el campo Categoría a 'Veterano' en todos los registros con Años_Servicio > 20.
4.3. Consulta de datos anexados
Añade los registros resultado de una consulta de selección al final de una tabla ya existente (de la misma BD o de otra). Útil para consolidar datos de varias fuentes. Al configurarla se indica la tabla de destino; Access intenta hacer corresponder los campos por nombre. Se configura desde Diseño → Tipo de consulta → Datos anexados.
4.4. Consulta de eliminación
Borra los registros que cumplen los criterios. Muestra cuántos registros se eliminarán antes de confirmar. Opera sobre una tabla a la vez; para eliminar registros relacionados en cadena se necesita activar Eliminar en cascada en las relaciones (ver Ep. 6). Se configura desde Diseño → Tipo de consulta → Eliminación.
5. Operadores en Access
Los operadores permiten construir criterios y expresiones en consultas, formularios e informes. Se clasifican en cinco categorías:
5.1. Operadores de comparación
| Operador | Significado |
|---|---|
= | Igual a. Las funciones en formularios e informes deben ir precedidas de este signo. |
> | Mayor que. |
< | Menor que. |
>= | Mayor o igual a. |
<= | Menor o igual a. |
<> | Distinto a. |
5.2. Operadores de concatenación, matemáticos y lógicos
| Operador | Tipo | Significado |
|---|---|---|
& | Concatenación | Une cadenas de texto. |
+ | Matemático | Suma los términos de la expresión. |
- | Matemático | Resta dos números. |
* | Matemático | Multiplica dos números. |
/ | Matemático | Divide el primer término entre el segundo. |
^ | Matemático | Eleva un número a una potencia. |
Y | Lógico | Ambos criterios deben cumplirse. Se establece en la misma fila de la cuadrícula QBE o escribiendo Y entre dos condiciones. |
O | Lógico | Alguno de los criterios debe cumplirse. Se establece en filas distintas de la cuadrícula QBE o escribiendo O entre dos condiciones. |
5.3. Operadores especiales
| Operador | Uso |
|---|---|
ENTRE … Y … | Define un rango de valores. Ejemplo: Entre 100 Y 500. |
COMO | Compara con una cadena de texto usando comodines. Ejemplo: Como "G*". |
* (comodín) | Sustituye a una cadena de longitud indeterminada. Se usa con COMO. |
? (comodín) | Sustituye exactamente a un carácter. Se usa con COMO. |
#FECHA# | Las fechas deben ir entre almohadillas. Ejemplo: #01/01/2024#. |
"TEXTO" | El texto debe ir entre comillas dobles en las expresiones. |
[CORCHETES] | Especifica el nombre de un campo en una expresión. |
Sí/No (booleanos) | Usar: 1, Verdadero, Sí o Activado para verdadero. Usar: 0, Falso, No o Desactivado para falso. |
6. Vista Diseño de consultas: cuadrícula QBE
La vista Diseño de una consulta usa la cuadrícula QBE (Query By Example, consulta por ejemplo). Está compuesta por:
- Zona de tablas (parte superior): muestra las tablas y consultas que sirven de origen y sus líneas de relación.
- Cuadrícula de campos (parte inferior): cada columna representa un campo incluido en la consulta. La cuadrícula tiene seis filas estándar:
| Fila de la cuadrícula QBE | Función |
|---|---|
| Campo | Nombre del campo incluido en la consulta. Se arrastra desde la lista de tablas o se elige del desplegable. |
| Tabla | Tabla de origen del campo. |
| Orden | Criterio de ordenación: Ascendente · Descendente · (ninguno). |
| Mostrar | Casilla que indica si el campo aparece en el resultado. Se puede usar un campo como criterio sin mostrarlo. |
| Criterios | Condición que deben cumplir los registros para ser incluidos. |
| O: | Permite añadir condiciones OR adicionales. |
Vista Diseño de una consulta de selección con la zona de tablas en la parte superior y la cuadrícula QBE en la inferior. Se muestran varias columnas con datos en las filas Campo, Tabla, Orden, Mostrar y Criterios.
Para agregar un campo calculado a la cuadrícula: en la celda Campo, escribir el nombre del nuevo campo seguido de dos puntos y la expresión.
Ejemplo: Precio_IVA: [Precio_Base]*1,21. El nombre precedido de dos puntos actúa como alias del campo en el resultado.
Criterios en la misma fila → se combinan con AND (el registro debe cumplirlos todos). Criterios en filas distintas (fila Criterios y filas «O:») → se combinan con OR (el registro debe cumplir al menos uno).
6.1. Criterios y operadores en la QBE
| Operador / Expresión | Significado / Ejemplo |
|---|---|
=, <>, <, >, <=, >= | Comparación numérica, de texto o de fecha. Ejemplo: >=1000. |
ENTRE x Y y | Incluye los valores x e y y todos los comprendidos entre ellos. |
EN (v1, v2, v3) | El valor debe pertenecer a la lista. Ejemplo: En ("Madrid";"Barcelona";"Sevilla"). |
COMO "patrón" | Coincidencia de texto con comodines (* cualquier cadena · ? un carácter · # un dígito). |
ES NULO / NO ES NULO | Registros con / sin valor en el campo. |
NO expresión | Niega la condición. Ejemplo: No "Madrid". |
[Nombre del parámetro] | Solicita el valor al usuario cuando se ejecuta la consulta (parámetro). |
Expresión: [Campo1]*[Campo2] | Campo calculado. El texto antes de los dos puntos es el nombre del campo en el resultado. |
6.2. Comodines en criterios COMO
| Comodín | Coincide con | Ejemplo |
|---|---|---|
* | Cualquier secuencia de caracteres (incluida la vacía). | "M*" → Madrid, María, MP3. |
? | Exactamente un carácter cualquiera. | "M???" → Mars, Mapa, M123. |
# | Exactamente un dígito (0–9). | "0##" → 012, 099, 034. |
[lista] | Cualquier carácter de la lista entre corchetes. | "[AEIOU]*" → empieza por vocal. |
[!lista] | Cualquier carácter NO incluido en la lista. | "[!AEIOU]*" → empieza por consonante. |
[rango] | Cualquier carácter dentro del rango (orden ASCII). | "[A-M]*" → empieza por letra entre A y M. |
El comodín # (un dígito) es propio de Access: no forma parte del estándar SQL-92, donde sólo existen % (cualquier cadena) y _ (un carácter). Por eso, si la base de datos se migra a SQL Server u Oracle, los criterios COMO "0##" deben reescribirse.
7. Vista SQL
Cada consulta tiene una representación equivalente en lenguaje SQL (Structured Query Language). Se accede desde Inicio → Ver → Vista SQL (o clic en la flecha del botón Ver con una consulta abierta). En la vista SQL el usuario puede escribir o editar directamente el código SQL, lo que permite construcciones más complejas que las admitidas por la QBE.
La estructura básica de una consulta de selección es:
SELECT campo1, campo2, ...
FROM tabla1 INNER JOIN tabla2 ON tabla1.campo = tabla2.campo
WHERE criterio
GROUP BY campo
HAVING condición_grupo
ORDER BY campo ASC|DESC;
Correspondencia entre cláusulas SQL y la cuadrícula QBE:
| Cláusula SQL | Equivalente en la QBE |
|---|---|
SELECT campo1, campo2, ... | Columnas con la casilla Mostrar marcada. |
FROM tabla1 INNER JOIN tabla2 ON … | Tablas en la zona superior y líneas de relación. |
WHERE criterio1 AND criterio2 | Fila Criterios (misma fila → AND). |
| `ORDER BY campo ASC | DESC` |
GROUP BY campo | Fila Total = Agrupar por. |
HAVING condición_grupo | Criterios en columnas con función de agregación. |
TOP n | Propiedad «Valores más altos» de la consulta. |
7.1. Consultas UNION
La cláusula UNION combina los resultados de dos o más consultas SELECT en un único conjunto de resultados. Los requisitos:
- El número de columnas debe ser el mismo en ambas consultas.
- Los tipos de datos de las columnas correspondientes deben ser compatibles.
SELECT Nombre, Ciudad FROM Clientes
UNION
SELECT Nombre, Ciudad FROM Proveedores;
Tres matices sobre UNION:
-
UNION elimina duplicados automáticamente; UNION ALL los conserva. La cláusula para combinar dos consultas manteniendo los duplicados es
UNION ALL. -
Las consultas UNION solo se pueden crear en vista SQL (no en QBE). Por eso aparecen con un icono distinto en el panel de navegación.
-
Las consultas UNION son de solo lectura: no se puede editar el resultado ni ejecutar sobre ellas consultas de acción.
8. Generador de expresiones
El Generador de expresiones es la herramienta visual de Access para construir expresiones (cálculos, criterios, valores predeterminados, reglas de validación) sin memorizar la sintaxis exacta de cada función. Se puede invocar desde cualquier campo que admita expresiones: cuadrícula QBE, hoja de propiedades, regla de validación, valor predeterminado…
Se accede pulsando el botón ... que aparece junto al campo correspondiente, o desde la pestaña contextual Diseño → grupo Configuración de consultas → Generador.
La interfaz se divide en tres zonas:
| Zona | Contenido |
|---|---|
| Cuadro de expresión (superior) | Área de texto donde se escribe o construye la expresión. La expresión resultante (p. ej. =[Precio]*1,21) se muestra aquí. |
| Panel izquierdo — Elementos | Árbol con todos los objetos disponibles: tablas, consultas, formularios e informes; funciones integradas (agrupadas por categoría); constantes (Verdadero, Falso, Nulo); y operadores. |
| Panel central — Categorías | Subcategorías del elemento seleccionado en el panel izquierdo. Al hacer clic en «Funciones integradas», muestra los grupos: Fecha/hora, Texto, Matemáticas, Flujo de programa, etc. |
| Panel derecho — Valores | Elementos concretos de la categoría seleccionada. Al seleccionar un grupo de funciones, aparecen aquí todas las funciones de ese grupo con su sintaxis. |
Al seleccionar una función en el panel derecho y hacer doble clic (o Pegar), la función se inserta en el cuadro de expresión con marcadores de posición para los argumentos (p. ej. IIF(<<condición>>;<<valor_si_verdadero>>;<<valor_si_falso>>)). El usuario reemplaza los marcadores por los valores reales.
El Generador de expresiones no crea ningún objeto nuevo: simplemente ayuda a construir la sintaxis correcta de una expresión que se almacena en la propiedad correspondiente. La expresión se puede escribir a mano sin usar el generador si se conoce la sintaxis.
9. Funciones incorporadas
Access dispone de un amplio conjunto de funciones incorporadas utilizables en campos calculados de consultas, cuadros de texto calculados de formularios/informes, reglas de validación y macros. Las funciones se agrupan en seis categorías relevantes para el nivel C1 AGE.
Las funciones se muestran en la interfaz castellana del Generador con los nombres traducidos (SIINM, IZQ, DER…). Internamente, la consulta SQL guarda el equivalente en inglés (IIf, Left, Right…), pero el usuario puede escribir ambos.
9.1. Funciones de fecha y hora
| Función | Sintaxis | Descripción |
|---|---|---|
FECHA | FECHA() | Devuelve la fecha actual del sistema (sin hora). |
AHORA | AHORA() | Devuelve la fecha y hora actuales del sistema. |
HORAACTUAL | HORAACTUAL() | Devuelve solo la hora actual del sistema. |
AÑO | AÑO([campo]) | Extrae el año de una fecha. |
MES | MES([campo]) | Extrae el mes (1–12). |
DÍA | DÍA([campo]) | Extrae el día del mes (1–31). |
HORA | HORA([campo]) | Extrae la hora (0–23). |
MINUTO | MINUTO([campo]) | Extrae los minutos (0–59). |
SEGUNDO | SEGUNDO([campo]) | Extrae los segundos (0–59). |
DIFFECHA | DIFFECHA("unidad"; fecha1; fecha2) | Diferencia entre dos fechas en la unidad indicada: aaaa (años), t (trimestres), m (meses), ee (semanas), d (días). |
AGREGFECHA | AGREGFECHA("unidad"; n; fecha) | Suma n intervalos de la unidad indicada a una fecha. |
DÍASEMANA | DÍASEMANA([campo]; [inicio]) | Devuelve un número del 1 al 7 indicando el día de la semana. El segundo argumento define qué día es el 1 (1 = domingo predeterminado). |
SERIEFECHA | SERIEFECHA([año]; [mes]; [día]) | Construye una fecha a partir de sus componentes. |
SERIEHORA | SERIEHORA([hora]; [min]; [seg]) | Construye una hora a partir de sus componentes. |
9.2. Funciones de texto
| Función | Sintaxis | Descripción |
|---|---|---|
IZQ | IZQ(texto; n) | Extrae los n primeros caracteres por la izquierda. |
DER | DER(texto; n) | Extrae los n últimos caracteres por la derecha. |
MEDIO | MEDIO(texto; inicio; n) | Extrae n caracteres a partir de la posición inicio. |
LONGITUD | LONGITUD(texto) | Número total de caracteres de la cadena. |
MAYÚS | MAYÚS(texto) | Convierte la cadena a MAYÚSCULAS. |
MINÚS | MINÚS(texto) | Convierte la cadena a minúsculas. |
NOMPROPIO | NOMPROPIO(texto) | Primera letra de cada palabra en mayúscula. |
RECORTAR | RECORTAR(texto) | Elimina los espacios al principio y al final. |
ENCAD | ENCAD([inicio]; texto; buscado) | Posición del texto buscado dentro de la cadena. |
CADENA | CADENA(n; texto) | Repite el primer carácter de texto n veces. |
FORMAT | FORMAT(campo; "formato"; ...) | Formatea un valor según el patrón indicado. |
9.3. Funciones condicionales (flujo de programa)
| Función | Sintaxis | Descripción |
|---|---|---|
SIINM | SIINM(prueba; valorSí; valorNo) | Si la prueba lógica es verdadera devuelve valorSí; en caso contrario valorNo. Equivale al SI() de Excel. |
CONMUTADOR | CONMUTADOR(prueba1; val1; prueba2; val2; ...) | Evalúa las pruebas en orden; devuelve el valor asociado a la primera prueba verdadera. Equivale a SI() anidados de Excel. |
ELEGIR | ELEGIR(índice; op1; op2; op3; ...) | Devuelve la opción cuya posición coincide con el índice. ELEGIR(2;"A";"B";"C") → "B". |
La función equivalente al SI() de Excel en Access se llama SIINM (abreviatura de «Si Inmediato»). El nombre se confunde con frecuencia con IIF (su denominación interna en inglés). Ambas formas son válidas en la sintaxis. Sintaxis castellana: SIINM(condición; valor_si_verdadero; valor_si_falso).
9.4. Funciones matemáticas
| Función | Sintaxis | Descripción |
|---|---|---|
ABS | ABS(número) | Valor absoluto (siempre positivo). |
INT | INT(número) | Parte entera (trunca los decimales hacia abajo). |
REDONDEAR | REDONDEAR(número; decimales) | Redondea al número de decimales especificado. |
RAÍZ2 | RAÍZ2(número) | Raíz cuadrada. |
NÚMALEAT | NÚMALEAT() | Número aleatorio entre 0 y 1. |
9.5. Funciones de agregación de SQL (consultas de totales)
Estas funciones se usan en la fila Total de la cuadrícula QBE en las consultas de totales, y también en controles calculados de informes y formularios:
| Función | Descripción |
|---|---|
SUMA([campo]) | Suma todos los valores del campo. |
PROMEDIO([campo]) | Media aritmética. |
CUENTA([campo]) | Número de registros con contenido (no nulos). |
MÁX([campo]) | Valor máximo del campo. |
MÍN([campo]) | Valor mínimo del campo. |
DESVEST([campo]) | Desviación estándar. |
VAR([campo]) | Varianza. |
9.6. Funciones de dominio
Las funciones de dominio (también llamadas D-Aggregate) son similares a las funciones de agregación de SQL, pero pueden usarse en cualquier lugar donde se admita una expresión: valor predeterminado, regla de validación, control calculado de formulario o informe. Operan sobre un dominio (tabla o consulta) y opcionalmente con un criterio de filtro.
| Función | Sintaxis | Descripción |
|---|---|---|
DSUMA | DSUMA("campo"; "tabla"; [criterio]) | Suma los valores del campo que cumplen el criterio. |
DPROM | DPROM("campo"; "tabla"; [criterio]) | Promedio de los valores que cumplen el criterio. |
DCONT | DCONT("campo"; "tabla"; [criterio]) | Cuenta los registros no nulos que cumplen el criterio. |
DMÁX | DMÁX("campo"; "tabla"; [criterio]) | Máximo del campo que cumple el criterio. |
DMÍN | DMÍN("campo"; "tabla"; [criterio]) | Mínimo del campo que cumple el criterio. |
DBÚSQ | DBÚSQ("campo"; "tabla"; criterio) | Valor único que cumple el criterio (error si hay más de uno). |
DPRIM | DPRIM("campo"; "tabla"; [criterio]) | Primer valor encontrado que cumple el criterio. |
DÚLTIMO | DÚLTIMO("campo"; "tabla"; [criterio]) | Último valor encontrado que cumple el criterio. |
DVAR | DVAR("campo"; "tabla"; [criterio]) | Varianza de los valores que cumplen el criterio. |
DDESVEST | DDESVEST("campo"; "tabla"; [criterio]) | Desviación estándar de los valores que cumplen el criterio. |
Ejemplo del uso de DSUMA en el valor predeterminado de un campo:
=DSUMA("[Importe]"; "Pedidos"; "[ClienteID]=" & [ClienteID])
devuelve la suma de todos los importes de pedidos del cliente actual.
9.7. Funciones financieras
| Función | Sintaxis | Descripción |
|---|---|---|
PAGO | PAGO(tasa; plazos; valorActual) | Cuota periódica de un préstamo. |
NPER | NPER(tasa; pago; valorActual) | Número total de períodos necesarios para amortizar un capital. |
TASA | TASA(plazos; pago; valorActual) | Tasa de interés por período de una anualidad. |
10. Comparativa Excel ↔ Access
Las principales funciones de Excel tienen su equivalente en Access, aunque los nombres y la sintaxis difieren:
| Función Excel | Función Access | Descripción |
|---|---|---|
=SUMA(n1;n2;...) | SUMA([campo]) | Suma los valores. |
=RAIZ(número) | RAÍZ2(número) | Raíz cuadrada. |
=ALEATORIO() | NÚMALEAT() | Número aleatorio entre 0 y 1. |
=ENTERO(número) | INT(número) | Parte entera. |
=REDONDEAR(n;dec) | REDONDEAR(n;dec) | Redondea al número de decimales. |
=ABS(número) | ABS(número) | Valor absoluto. |
=MAYUSC(texto) | MAYÚS(texto) | Convierte a mayúsculas. |
=MINUSC(texto) | MINÚS(texto) | Convierte a minúsculas. |
=LARGO(texto) | LONGITUD(texto) | Número de caracteres. |
=IZQUIERDA(texto;n) | IZQ(texto;n) | Extrae n caracteres por la izquierda. |
=DERECHA(texto;n) | DER(texto;n) | Extrae n caracteres por la derecha. |
=EXTRAE(texto;pos;n) | MEDIO(texto;pos;n) | Extrae n caracteres desde la posición. |
=ENCONTRAR(bus;texto;pos) | ENCAD(pos;texto;bus) | Posición de una cadena dentro de otra. |
=REPETIR(texto;n) | CADENA(n;texto) | Repite el primer carácter de texto n veces (≠ Excel: Excel repite la cadena completa; Access solo el primer carácter). |
=CONTARA(...) | CUENTA([campo]) | Cuenta registros no vacíos. |
=MAX(...) | MÁX([campo]) | Valor máximo. |
=MIN(...) | MÍN([campo]) | Valor mínimo. |
=PROMEDIO(...) | PROMEDIO([campo]) | Media aritmética. |
=VAR(...) | VAR([campo]) | Varianza. |
=SUMAR.SI(...) | DSUMA("[campo]";"tabla";"crit") | Suma con criterio. |
=CONTAR.SI(...) | DCONT("[campo]";"tabla";"crit") | Cuenta con criterio. |
=MAX.SI.CONJUNTO(...) | DMÁX("[campo]";"tabla";"crit") | Máximo con criterio. |
=MIN.SI.CONJUNTO(...) | DMÍN("[campo]";"tabla";"crit") | Mínimo con criterio. |
=PROMEDIO.SI(...) | DPROM("[campo]";"tabla";"crit") | Promedio con criterio. |
=AHORA() | AHORA() | Fecha y hora actuales. |
=HOY() | FECHA() | Fecha actual (sin hora). |
=AÑO(n) / =MES(n) / =DIA(n) | AÑO([campo]) / MES([campo]) / DÍA([campo]) | Año, mes o día. |
=HORA(n) / =MINUTO(n) / =SEGUNDO(n) | HORA([campo]) / MINUTO([campo]) / SEGUNDO([campo]) | Hora, minuto o segundo. |
=FECHA(año;mes;día) | SERIEFECHA([año];[mes];[día]) | Compone una fecha. |
=NSHORA(hora;min;seg) | SERIEHORA([hora];[min];[seg]) | Compone una hora. |
=DIASEM(fecha;tipo) | DÍASEMANA([campo];1er día) | Número del día de la semana. |
=SI(prueba;v_v;v_f) | SIINM(prueba;v_v;v_f) | Función condicional. |
=SI.CONJUNTO(p1;v1;p2;v2;...) | CONMUTADOR(p1;v1;p2;v2;...) | Múltiples condiciones encadenadas. |
=PAGO(tasa;nper;va;...) | PAGO(tasa;plazos;VA) | Cuota periódica de préstamo. |
=TASA(nper;pago;va;...) | TASA(plazos;pago;VA) | Tasa de interés por período. |
Tres diferencias Excel ↔ Access que conviene retener:
-
=SIde Excel ↔SIINMde Access (noSi). -
=HOY()de Excel ↔FECHA()de Access (noHOY). -
=SUMAR.SIde Excel ↔DSUMAde Access (las funciones condicionales agregadas de Excel se traducen en Access como funciones de dominio con prefijo D).
Epígrafe 4 — Formularios
1. Concepto
Un formulario es un objeto de Access que proporciona una interfaz visual para introducir, modificar, buscar y visualizar datos de una tabla o consulta. Facilita el trabajo del usuario al presentar los datos de forma ordenada y permite añadir validaciones visuales mediante controles especializados.
2. Métodos de creación
2.1. Métodos rápidos del grupo Formularios
Access ofrece cinco métodos de creación rápida desde la pestaña Crear → grupo Formularios, sin pasar por el asistente:
| Botón | Qué genera |
|---|---|
| Formulario | Formulario simple de una columna (un registro a la vez) con todos los campos de la tabla o consulta seleccionada. Es la opción más rápida. |
| Formulario en blanco | Abre un formulario vacío en vista Presentación para que el usuario arrastre los campos deseados desde el panel «Lista de campos». |
| Varios elementos | Formulario tipo hoja de datos que muestra varios registros a la vez en cuadrícula, pero con aspecto visual de formulario. |
| Hoja de datos | Formulario con el aspecto exacto de la vista Hoja de datos de una tabla: cuadrícula con todos los campos y todos los registros. |
| Formulario dividido | Combina dos vistas simultáneas: la mitad superior muestra el formulario de detalle (un registro) y la mitad inferior la hoja de datos (todos los registros). La selección en una vista sincroniza la otra. |
La pestaña Crear ofrece además Diseño de formulario (formulario en blanco en vista Diseño), Asistente para formularios y Navegación (formulario de navegación por pestañas).
2.2. Asistente para formularios
El Asistente guía al usuario en la creación paso a paso. Permite:
- Seleccionar la tabla o consulta de origen.
- Elegir los campos que se mostrarán.
- Seleccionar la distribución y el estilo visual.
- Asignar un título al formulario.
Se inicia desde Crear → Formularios → Asistente para formularios. Las cuatro distribuciones disponibles son:
| Distribución | Descripción |
|---|---|
| En columnas | Cada campo ocupa una fila: etiqueta a la izquierda y cuadro de texto a la derecha. Muestra un registro a la vez. Distribución más habitual. |
| Tabular | Los campos se muestran en columnas como en una hoja de datos, pero con aspecto de formulario. Muestra varios registros a la vez. |
| Hoja de datos | Igual que la vista Hoja de datos estándar. Muestra varios registros en cuadrícula. |
| Justificado | Los campos se distribuyen rellenando el ancho disponible, sin patrón de filas o columnas fijo. |
3. Vistas de un formulario
Los formularios tienen tres vistas accesibles desde Inicio → Ver:
| Vista | Uso |
|---|---|
| Vista Formulario | Vista de trabajo habitual. El usuario introduce y edita datos. No se puede modificar la estructura. |
| Vista Presentación | Permite ajustar el diseño visual (tamaño, posición, formato de controles) mientras se ven datos reales del origen. |
| Vista Diseño | Permite modificar completamente la estructura del formulario: añadir/eliminar controles, editar propiedades, programar eventos. Los datos no son visibles en esta vista. |
La diferencia clave Vista Presentación vs Vista Diseño: en Presentación se ven datos reales mientras se ajusta el diseño visual (útil para dimensionar controles al contenido real); en Diseño la estructura es totalmente editable pero no hay datos visibles.
4. Controles de un formulario
Un control es cualquier elemento que se coloca en un formulario. Los controles se añaden desde la Galería de controles de la pestaña Diseño. Se clasifican en tres categorías según su origen:
| Tipo | Descripción | Ejemplos |
|---|---|---|
| Dependientes | Vinculados a un campo de la tabla o consulta de origen. Muestran y permiten editar el valor del campo. | Cuadro de texto · Casilla de verificación · Cuadro de lista · Cuadro combinado · Grupo de opciones |
| Independientes | No están vinculados a ningún campo. Información fija o elementos decorativos. | Etiqueta · Imagen · Línea · Rectángulo |
| Calculados | Muestran el resultado de una expresión evaluada en tiempo de ejecución. No modifican datos. | Cuadro de texto con expresión como =[Precio]*[Cantidad] |
4.1. Galería de controles principal
| Control | Uso |
|---|---|
| Cuadro de texto | Dependiente o calculado. Muestra y edita texto, números, fechas y expresiones. |
| Etiqueta | Independiente. Texto fijo (título, descripción). |
| Botón | Ejecuta una acción (macro o VBA) al hacer clic. |
| Cuadro combinado | Lista desplegable + cuadro editable. Permite seleccionar o escribir. |
| Cuadro de lista | Lista visible sin desplegar. Solo se puede seleccionar (no escribir). |
| Casilla de verificación | Control Sí/No. Activada = Sí/Verdadero. |
| Botón de alternancia | Alternativa visual a la casilla: botón pulsado = Sí. |
| Botón de opción (radio) | Permite elegir una opción dentro de un grupo. |
| Grupo de opciones | Contiene varios botones de opción o casillas. Solo una a la vez. |
| Control de pestaña | Añade páginas al formulario, organizando controles en pestañas. |
| Subformulario / Subinforme | Inserta otro formulario o informe en el formulario actual. |
| Marco de objeto dependiente | Muestra objetos OLE vinculados a un campo (imágenes, documentos). |
| Marco de objeto independiente | Muestra objetos OLE fijos no vinculados a ningún campo. |
| Imagen | Inserta una imagen estática. |
| Datos adjuntos | Muestra y permite gestionar archivos adjuntos del campo Datos adjuntos. |
| Línea / Rectángulo | Elementos gráficos decorativos independientes. |
| Hipervínculo | Inserta vínculo a URL, ruta local o dirección de correo. |
| Gráfico | Gráfico moderno (compartido con informes). |
| Control explorador Edge | Muestra contenido web dentro del formulario. |
4.2. Hoja de propiedades
Cada control (y el propio formulario) tiene una hoja de propiedades con todas sus características configurables. Se abre con la tecla F4 o desde Diseño → Herramientas → Hoja de propiedades. Está organizada en cinco pestañas:
| Pestaña | Contenido |
|---|---|
| Formato | Aspecto visual: fuente, color, tamaño, alineación, bordes, formato de número… |
| Datos | Conexión con los datos: Origen del control (campo vinculado), Valor predeterminado, Regla de validación… |
| Eventos | Acciones programadas (macros o VBA) ante eventos como Al hacer clic, Al cambiar, Al perder el enfoque… |
| Otras | Nombre del control, Texto de la barra de estado, Ficha de detención (si participa en el orden de tabulación)… |
| Todas | Muestra todas las propiedades de las cuatro pestañas anteriores en una sola lista. |
5. Estructura: secciones de un formulario
Un formulario puede tener hasta cinco secciones, aunque solo Detalle es obligatoria:
| Sección | Descripción |
|---|---|
| Encabezado del formulario | Se muestra solo al principio (primera pantalla o primera página impresa). Contiene el título del formulario, logotipos, etc. Se activa desde Ver → Encabezado o pie del formulario. |
| Encabezado de página | Solo visible en la impresión. Se repite en la parte superior de cada página impresa. |
| Detalle | Sección principal y obligatoria. Muestra los datos de cada registro. |
| Pie de página | Solo visible en la impresión. Se repite en la parte inferior de cada página. |
| Pie del formulario | Se muestra solo al final del formulario. Suele contener botones de navegación o totales generales. |
Un formulario tiene cinco secciones (no cuatro, no seis): Encabezado del formulario · Encabezado de página · Detalle · Pie de página · Pie del formulario. Solo Detalle es obligatoria; las demás se añaden desde el menú Ver. Los formularios no tienen secciones de grupo (solo los informes agrupan datos): esa es la diferencia fundamental con las siete secciones de un informe (ver Ep. 5).
6. Barra de navegación y buscador
La barra de navegación en la parte inferior de un formulario en Vista Formulario es idéntica en funcionalidad a la de la Vista Hoja de datos: permite desplazarse entre registros (primero · anterior · siguiente · último · nuevo) y muestra el número del registro actual y el total. También contiene un cuadro de búsqueda que filtra registros mientras se escribe.
La barra puede ocultarse estableciendo la propiedad Botones de desplazamiento del formulario a No en la hoja de propiedades (pestaña Formato). Es habitual en formularios de diálogo o formularios modales.
7. Orden de tabulación
El orden de tabulación es la secuencia en que el cursor salta de un control al siguiente cuando el usuario pulsa Tab (o Intro) al rellenar un formulario. El orden predeterminado va de izquierda a derecha y de arriba abajo, siguiendo la posición de los controles en el diseño.
Para personalizar el orden: vista Diseño → pestaña Diseño de formulario → grupo Herramientas → Orden de tabulación. Se abre un cuadro donde se listan todos los controles; se cambia el orden arrastrando por el selector de fila a la izquierda.
La propiedad Ficha de detención de cada control (hoja de propiedades → pestaña Otras) controla si ese control participa en la secuencia de tabulación:
- Sí (predeterminado): el cursor se detiene en él.
- No: el cursor lo omite y pasa directamente al siguiente.
8. Subformularios
Un subformulario es un formulario insertado dentro de otro formulario. El contenedor se llama formulario principal y el contenido subformulario. Esta técnica se usa para mostrar simultáneamente datos de dos tablas relacionadas: el principal muestra los datos del lado «uno» y el subformulario los datos del lado «varios».
Ejemplo clásico: formulario principal con los datos de un Cliente y subformulario con la lista de todos sus Pedidos. Las dos tablas deben estar relacionadas (Clientes — Pedidos con integridad referencial o, al menos, con un campo común).
Existen dos métodos para crear un formulario con subformulario:
| Método | Cómo |
|---|---|
| Asistente para formularios | Al crear el formulario desde el asistente, se seleccionan campos de varias tablas relacionadas. El asistente detecta la relación y propone automáticamente un formulario principal + subformulario. |
| Control Subformulario/Subinforme | En Vista Diseño del formulario principal → pestaña Diseño → Controles → Subformulario/Subinforme. Se arrastra al área de diseño y se lanza el asistente de configuración. |
El control de subformulario tiene dos propiedades clave para la vinculación en la hoja de propiedades (pestaña Datos):
- Objeto de origen: nombre del formulario que actúa como subformulario.
- Vincular campos secundarios / Vincular campos principales: campos comunes que sincronizan ambos formularios.
Un subformulario en Vista Hoja de datos solo puede mostrar una hoja secundaria de datos a la vez. Para mostrar dos niveles de detalle simultáneamente se necesita un sub-subformulario (tres niveles de anidamiento). El máximo absoluto en Access es de 7 niveles de anidamiento de formularios.
Epígrafe 5 — Informes
1. Concepto
Un informe es el objeto de Access diseñado para presentar los datos con formato profesional, ya sea en pantalla o en papel. A diferencia de los formularios (orientados a la introducción y edición), los informes son de solo lectura y están optimizados para la impresión y la distribución. Un informe puede presentar datos de una tabla o consulta, agrupados, ordenados y con totales y subtotales calculados.
2. Métodos de creación
2.1. Métodos rápidos del grupo Informes
Como ocurre con los formularios, Access ofrece métodos de creación rápida desde Crear → grupo Informes:
| Botón | Qué genera |
|---|---|
| Informe | Informe automático con todos los campos de la tabla o consulta seleccionada. Opción más rápida. |
| Informe en blanco | Abre un informe vacío en vista Presentación para que el usuario arrastre campos desde el panel «Lista de campos». |
| Asistente para informes | Guía al usuario paso a paso: selección de campos, agrupaciones, ordenaciones, distribución y estilo. |
| Etiquetas | Crea etiquetas de correspondencia (mailing labels). El asistente permite elegir el tipo de etiqueta Avery u otro formato estándar. |
La pestaña Crear ofrece además Diseño de informe como entrada para crear un informe en blanco directamente en vista Diseño.
2.2. Asistente para informes
El asistente para informes es la herramienta más completa para crear informes sin necesidad de programar. Sus pasos:
- Selección de tabla/consulta y campos.
- Definición de niveles de agrupación.
- Criterios de ordenación y funciones de resumen (suma, promedio, mín, máx, cuenta).
- Selección de distribución (Escalonado · En bloques · Contorno) y orientación (Vertical · Horizontal).
- Título del informe.
3. Vistas de un informe
Los informes tienen cuatro vistas accesibles desde Inicio → Ver:
| Vista | Uso |
|---|---|
| Vista Informe | Muestra el informe en pantalla con todos los datos y el formato final. Optimizada para lectura en pantalla (scroll continuo, sin saltos de página artificiales). |
| Vista Presentación preliminar | Muestra exactamente cómo se imprimirá el informe, con las páginas separadas. Permite configurar papel y márgenes antes de imprimir. |
| Vista Presentación | Permite ajustar el diseño visual mientras se ven datos reales. Equivalente a la Vista Presentación de los formularios. |
| Vista Diseño | Permite modificar completamente la estructura del informe: añadir controles, editar secciones, configurar agrupaciones. Sin datos visibles. |
Los informes tienen 4 vistas (Informe · Presentación preliminar · Presentación · Diseño). Los formularios tienen 3 (Formulario · Presentación · Diseño). La Vista Presentación preliminar es exclusiva de los informes: es la única que muestra el documento paginado tal y como se imprimirá.
4. Secciones de un informe
Un informe puede tener hasta siete secciones, aunque solo Detalle es obligatoria:
| Sección | Dónde se imprime | Contenido habitual |
|---|---|---|
| Encabezado del informe | Solo al principio (primera página). | Título del informe, fecha de generación, logotipo corporativo. |
| Encabezado de página | En la parte superior de cada página. | Nombres de las columnas (etiquetas de campo), número de página. |
| Encabezado de grupo | Antes del primer registro de cada grupo. | Nombre del grupo, descripción del nivel de agrupación. |
| Detalle | Una vez por cada registro. Sección obligatoria. | Los datos de cada registro (cuadros de texto vinculados a los campos). |
| Pie de grupo | Después del último registro de cada grupo. | Subtotales del grupo (Suma, Cuenta, Promedio…). |
| Pie de página | En la parte inferior de cada página. | Número de página, fecha de impresión. |
| Pie del informe | Solo al final (última página). | Totales generales del informe, firma, aviso legal. |
Los informes tienen 7 secciones posibles; los formularios solo 5 (no tienen secciones de grupo porque los formularios no agrupan datos). Las secciones de grupo (Encabezado de grupo y Pie de grupo) solo aparecen si se ha definido al menos un nivel de agrupación. Pueden existir varios niveles anidados (hasta 10 en Access). Pie del informe vs Pie de página: el pie del informe aparece una sola vez (al final del informe); el pie de página aparece en cada página.
5. Gráficos en informes
Access 365 incorpora el moderno control Gráfico (compatible con los gráficos modernos de Microsoft Office) que permite insertar gráficos interactivos directamente en informes y formularios. Se añade desde Diseño → Controles → Insertar gráfico moderno.
Los tipos de gráfico disponibles incluyen:
- Columnas (agrupadas / apiladas) · Barras · Línea · Área.
- Circular (tarta) · Anillo · Radial (araña).
- Cascada · Histograma · Dispersión · Burbuja.
El gráfico se vincula a los datos de la tabla o consulta del informe mediante las propiedades Origen de filas y Campos de datos del panel del gráfico.
Panel de configuración del gráfico moderno en Access 365: panel de tareas derecho con las pestañas Datos y Formato y acceso a los ejes de categorías, leyenda y valores.
Epígrafe 6 — Relaciones
1. Por qué se relacionan las tablas
El modelo relacional se basa en distribuir la información en tablas especializadas y conectarlas mediante campos comunes, en lugar de almacenar todos los datos en una sola tabla. Esto persigue tres objetivos:
- Evitar la redundancia: el mismo dato no se repite en varias tablas.
- Garantizar la consistencia: un cambio en un dato solo se realiza en un lugar.
- Facilitar el mantenimiento a largo plazo.
Ejemplo: si se almacena el nombre de la provincia en cada registro de una tabla de municipios, y luego cambia el nombre de una provincia, habría que actualizar miles de filas. Con el modelo relacional, la provincia se almacena una sola vez en su propia tabla y los municipios solo guardan el código de provincia como clave externa.
2. La ventana Relaciones
La ventana Relaciones es el panel central de diseño donde se visualizan y crean todas las relaciones entre las tablas de la base de datos. Se abre desde Herramientas de base de datos → Relaciones. Las tablas aparecen como listas de campos; las relaciones se representan como líneas que unen los campos vinculados.
Operaciones básicas:
- Agregar tablas al diagrama: clic derecho en el área en blanco → Mostrar tabla (o pestaña Diseño → Mostrar tabla).
- Eliminar una tabla del diagrama (sin borrarla de la BD): seleccionar y pulsar Supr.
- Borrar una relación: clic en la línea que une las tablas → Supr.
- Informe de relaciones: pestaña Diseño → Informe de relaciones. Access crea automáticamente un informe imprimible que se puede guardar.
Ventana Relaciones de Access 365 con tres tablas relacionadas: la línea que une los campos muestra los símbolos 1 y ∞ (infinito) en los extremos para indicar el tipo de relación.
3. Tipos de relación
Existen tres tipos de relación entre tablas, que se diferencian por la cardinalidad (número de registros de cada tabla que pueden vincularse con registros de la otra).
3.1. Uno a varios (1:N)
Un registro de la tabla A puede estar asociado con varios registros de la tabla B, pero cada registro de B solo está asociado con uno de A. Es el tipo más habitual en bases de datos relacionales. La línea muestra el símbolo 1 en el extremo de la tabla principal (lado «uno») e ∞ en el extremo de la tabla relacionada (lado «varios»).
Ejemplos clásicos: un Cliente puede tener varios Pedidos, pero cada Pedido pertenece a un solo Cliente; un Departamento puede tener varios Empleados, pero cada Empleado pertenece a un solo Departamento.
3.2. Uno a uno (1:1)
Un registro de la tabla A solo puede estar asociado con un registro de la tabla B, y viceversa. La línea muestra el símbolo 1 en ambos extremos. Se utiliza para:
- Dividir una tabla con muchos campos en dos tablas más manejables.
- Separar datos confidenciales (p. ej., una tabla Empleados y una tabla Datos_Confidenciales con salarios y datos bancarios, vinculadas por el DNI).
El campo de unión debe ser la clave principal en ambas tablas, o la clave principal en una y un índice único (sin duplicados) en la otra.
3.3. Varios a varios (N:M)
Un registro de la tabla A puede estar asociado con varios de B, y viceversa. Access no permite crear directamente una relación N:M: es necesario descomponerla en dos relaciones 1:N a través de una tabla intermedia (también llamada tabla de unión o tabla de enlace). La tabla intermedia contiene, al menos, las claves externas de las dos tablas originales (que forman su clave principal compuesta).
Ejemplo: un Alumno puede estar matriculado en varios Cursos, y un Curso puede tener varios Alumnos. La tabla Matrículas actúa de puente: contiene IdAlumno e IdCurso como clave principal compuesta.
Las relaciones N:M no se pueden crear directamente en Access. Siempre requieren una tabla intermedia con clave principal compuesta por las claves externas de las dos tablas originales. El dato preciso es tres tipos de relación en Access (1:1 · 1:N · N:M), aun cuando la N:M se implemente con tabla de unión.
4. Integridad referencial
La integridad referencial es un conjunto de reglas que garantiza la coherencia entre los datos de dos tablas relacionadas. Cuando está activa, Access comprueba que no existan registros «huérfanos» en la tabla del lado N (registros sin correspondencia en la tabla del lado 1).
Para activarla: en la ventana Relaciones, doble clic sobre la línea de relación → cuadro Modificar relaciones → activar la casilla Exigir integridad referencial.
Con integridad referencial activa, Access bloquea las siguientes operaciones:
| Operación bloqueada | Ejemplo |
|---|---|
| Añadir un registro en la tabla N con un valor de clave externa que no existe en la tabla 1. | Crear un Pedido con IdCliente=99 si ese cliente no existe en Clientes. |
| Eliminar un registro de la tabla 1 que tenga registros relacionados en la tabla N. | Eliminar un Cliente que tiene Pedidos asociados. |
| Modificar el valor de la clave principal de la tabla 1 si hay registros relacionados en la tabla N. | Cambiar el IdCliente de un cliente que tiene pedidos. |
Tres condiciones técnicas para exigir integridad referencial:
-
El campo vinculado en la tabla principal debe ser la clave principal (o tener un índice único sin duplicados).
-
Los campos relacionados deben tener el mismo tipo de datos (salvo Autonumeración con Número-Entero largo, que sí se pueden relacionar).
-
Ambas tablas deben pertenecer a la misma base de datos Access.
4.1. Opciones en cascada
Las opciones en cascada modifican el comportamiento de Access cuando el usuario intenta actualizar o eliminar registros en la tabla principal con integridad referencial activa:
| Opción | Efecto |
|---|---|
| Actualizar en cascada los campos relacionados | Si cambia el valor de la clave principal en la tabla 1, Access actualiza automáticamente todos los valores de la clave externa en la tabla N. |
| Eliminar en cascada los registros relacionados | Si se elimina un registro de la tabla 1, Access elimina automáticamente todos los registros relacionados en la tabla N. |
Sin las opciones en cascada activas, intentar modificar la clave principal o eliminar un registro con relacionados provoca error de integridad referencial. Con «Eliminar en cascada» activa, eliminar un Cliente borra automáticamente todos sus Pedidos, Facturas, etc. — es una opción potencialmente peligrosa. La regla general: «Actualizar en cascada» conviene activarla cuando la clave principal pueda cambiar (códigos alfanuméricos editables); con claves de Autonumeración no tiene efecto, porque ese valor no se modifica. «Eliminar en cascada» debe activarse solo con plena consciencia de las dependencias.
5. Tipos de combinación
El tipo de combinación (join) determina qué registros se incluyen en el resultado cuando se ejecuta una consulta que usa las tablas relacionadas. Se configura en el cuadro Modificar relaciones → Tipo de combinación (o en las propiedades de unión de la consulta). Existen tres opciones:
| Opción | Denominación SQL | Registros incluidos |
|---|---|---|
| Opción 1 (predeterminada) | INNER JOIN | Solo los registros donde el campo vinculado tiene valores coincidentes en ambas tablas. |
| Opción 2 | LEFT JOIN | Todos los registros de la tabla izquierda (principal) y solo los registros de la tabla derecha que coincidan. Los de la izquierda sin coincidencia aparecen con nulos en los campos de la derecha. |
| Opción 3 | RIGHT JOIN | Todos los registros de la tabla derecha y solo los de la izquierda que coincidan. Los de la derecha sin coincidencia aparecen con nulos en los campos de la izquierda. |
Cuando se establece una combinación LEFT o RIGHT, la línea de relación en la ventana Relaciones muestra una flecha en el extremo de la tabla «todos los registros».
Mnemotécnico para los JOIN:
-
INNER → INTERSECCIÓN (solo los que coinciden en ambas).
-
LEFT → TODOS los de la izquierda + coincidentes de la derecha.
-
RIGHT → TODOS los de la derecha + coincidentes de la izquierda.
LEFT JOIN y RIGHT JOIN son combinaciones externas (outer join). La combinación que devuelve todos los registros de ambas tablas aunque no haya coincidencia se llama FULL OUTER JOIN, y Access no la soporta de forma nativa: se simula combinando LEFT JOIN + RIGHT JOIN mediante una cláusula UNION.
5.1. Combinaciones cruzadas (producto cartesiano)
Las combinaciones cruzadas (CROSS JOIN) son el resultado de incluir dos tablas en una consulta sin definir ninguna condición de unión entre ellas. Access devuelve todas las combinaciones posibles de registros de ambas tablas: si la tabla A tiene N filas y la tabla B tiene M filas, el resultado tendrá N × M registros. Rara vez produce resultados útiles; normalmente es un error involuntario.
La combinación cruzada no tiene botón propio en la interfaz: se produce automáticamente cuando se añaden dos tablas a la zona de tablas de una consulta sin relacionarlas. En vista Diseño se reconoce porque no hay ninguna línea de unión entre las tablas.
Una combinación cruzada accidental es un error frecuente al crear consultas con varias tablas. Si una consulta devuelve un número de registros sorprendentemente grande (p. ej. 1.000 clientes × 500 productos = 500.000 filas), lo más probable es que se haya omitido la condición de unión. La solución es unir las tablas por sus campos comunes en vista Diseño.
6. Orden de introducción y eliminación de datos
Cuando se trabaja con tablas relacionadas con integridad referencial activa, existe un orden obligatorio para introducir y eliminar datos correctamente:
| Operación | Orden correcto |
|---|---|
| Insertar datos | Primero tabla 1 (principal) → después tabla N (relacionada). |
| Eliminar datos (sin cascada) | Primero tabla N (relacionada) → después tabla 1 (principal). |
| Eliminar datos (con «Eliminar en cascada») | Solo se borra el registro de la tabla 1; Access borra los de la tabla N automáticamente. |
Al crear una relación con integridad referencial entre dos tablas que ya tienen datos, Access no permitirá activar la integridad hasta que se corrijan o eliminen los registros huérfanos. Si ya existen registros en la tabla N con valores de clave externa sin correspondencia en la tabla 1, Access muestra un error al intentar guardar la relación con integridad exigida.
Epígrafe 7 — Importación, vinculación y exportación de datos
1. Tres operaciones con datos externos
Access ofrece tres operaciones distintas con datos almacenados fuera de la base de datos activa, todas accesibles desde la pestaña Datos externos:
| Operación | Qué hace | Acceso |
|---|---|---|
| Importar | Copia los datos de una fuente externa a una tabla de Access (nueva o existente). Los datos importados son independientes: los cambios en la fuente no se reflejan en Access ni viceversa. | Datos externos → grupo Importar y vincular |
| Vincular | Crea un vínculo dinámico entre Access y una fuente externa. Los datos permanecen en la fuente original y Access los muestra como propios. Los cambios en Access modifican también la fuente (y al revés). | Datos externos → grupo Importar y vincular |
| Exportar | Copia datos de Access a un formato externo (Excel, texto, PDF…). No elimina los datos de Access. | Datos externos → grupo Exportar |
Diferencia nuclear importación vs vinculación:
-
Importación: los datos se copian en Access. Una vez importados, Access y la fuente original son independientes. Los cambios en uno no afectan al otro.
-
Vinculación: los datos permanecen en la fuente. La conexión es permanente y bidireccional: los cambios se sincronizan en ambos sentidos (salvo fuentes de solo lectura).
Importar es la opción adecuada para archivos estáticos o instantáneas; vincular, para datos que se actualizan frecuentemente en la fuente original.
2. Importación de datos
Importar significa copiar datos de una fuente externa a una tabla de Access. Se accede desde Datos externos → grupo Importar y vincular.
2.1. Importar desde Excel
Es el origen más habitual. El Asistente para importación de hojas de cálculo permite:
- Seleccionar la hoja o rango con nombre.
- Indicar si la primera fila contiene los nombres de campo.
- Modificar el nombre y tipo de datos de cada columna.
- Indicar si se crea una tabla nueva o se añaden los datos a una existente.
- Elegir la clave principal.
Requisitos previos para una importación correcta desde Excel:
- La hoja debe tener estructura tabular (sin celdas combinadas ni filas de totales intermedias).
- Los tipos de datos de cada columna deben ser uniformes.
- La primera fila debe contener solo encabezados (no datos).
En Excel, las celdas combinadas, las filas en blanco intermedias y las celdas con formatos mixtos en la misma columna causan errores o importaciones incorrectas. Access documenta los problemas en una tabla auxiliar llamada nombre_tabla_ImportErrors con la lista detallada de filas y campos rechazados.
2.2. Importar desde otra base de datos Access
Permite copiar tablas, consultas, formularios, informes, macros y módulos de una BD Access de origen a la BD activa. Se accede desde Datos externos → Importar y vincular → Nueva fuente de datos → Desde base de datos → Access. El asistente permite elegir qué objetos se importan y si las relaciones entre tablas se copian también.
2.3. Otras fuentes de importación
Access 365 admite las siguientes fuentes adicionales:
- Archivo de texto (.txt) o CSV (.csv).
- XML (esquema XSD y datos XML).
- HTML.
- SharePoint (listas).
- Dataverse (plataforma cloud de Microsoft Power Platform).
- ODBC genérico (SQL Server, Oracle, MySQL, PostgreSQL…) mediante un DSN.
3. Vinculación de datos
Vincular (o enlazar) crea un vínculo dinámico entre Access y una fuente externa: los datos permanecen en la fuente y Access los muestra como propios, pero los cambios en Access modifican también la fuente (y al revés). Las tablas vinculadas se identifican en el panel de navegación con un icono de flecha.
Diferencia frente a importar:
| Característica | Importar | Vincular |
|---|---|---|
| Los datos residen en… | La base de datos Access (copia local). | La fuente original (Excel, otra BD Access, SQL Server…). |
| Cambios en Access afectan a la fuente | No | Sí (salvo fuentes de solo lectura) |
| Cambios en la fuente se reflejan en Access | No | Sí |
| Uso recomendado | Archivos estáticos o snapshots. | Datos que se actualizan frecuentemente desde otra aplicación. |
Si se mueve o renombra el archivo vinculado, el vínculo se rompe. Se puede reparar con el Administrador de tablas vinculadas (Datos externos → Importar y vincular → Administrador de tablas vinculadas).
Las tablas vinculadas se identifican en el panel de navegación con un icono de flecha delante del nombre. El Administrador de tablas vinculadas es la herramienta canónica para reparar vínculos rotos cuando la fuente se mueve, se renombra o cambia de ruta.
4. Exportación de datos
Exportar copia datos de Access a un formato externo. No elimina los datos de Access. Se accede desde Datos externos → grupo Exportar. Access puede exportar a:
| Formato | Notas |
|---|---|
| Excel (.xlsx) | Exporta la tabla o consulta como hoja de cálculo. Se puede incluir formato. |
| Texto (.txt / .csv) | Delimitado (comas, tabulaciones…) o de ancho fijo. |
| PDF / XPS | Documento de solo lectura. Mantiene el formato de informes y formularios. |
| Word (RTF) | Exporta datos en formato de texto enriquecido. |
| XML | Exporta estructura (esquema .xsd) y datos (.xml) por separado. |
| HTML | Genera una página web estática con los datos. |
| SharePoint / Listas de SharePoint | Exporta o vincula con listas de SharePoint. |
| Otra base de datos Access | Copia tablas, consultas u otros objetos a otra BD Access. |
5. Combinar correspondencia Access → Word
Access permite iniciar una combinación de correspondencia directamente desde una tabla o consulta, usando Microsoft Word como procesador de documentos. Se accede desde Datos externos → Exportar → Combinar con Microsoft Word.
El asistente ofrece dos opciones iniciales:
- Vincular los datos a un documento Word existente.
- Crear un nuevo documento en blanco y vincular los datos.
En ambos casos, Access abre Word con el panel de combinación de correspondencia activo y los campos de la tabla o consulta de Access disponibles como campos de combinación.
El proceso completo en Word sigue estos pasos:
- Selección del tipo de documento: cartas, etiquetas, sobres o directorio.
- Selección de destinatarios (ya vinculados desde Access).
- Inserción de campos combinados en el documento.
- Vista previa de cada documento resultante.
- Completar la combinación: imprimir o generar documento nuevo por cada registro.
Iniciar la combinación desde Access (en lugar de desde Word) tiene una ventaja operativa: el origen de datos queda definido automáticamente sin necesidad de configurarlo en Word. Access pasa directamente los datos de la tabla o consulta seleccionada al panel de combinación de Word.