TGA Digital

Inicializando plataforma educativa…

SENA · Tecnólogo en Gestión Administrativa

Domina los Datos
sin escribir código

TGA Digital Hero Visual
💎 SQL Pro
📊 Power BI
ETL

Esta guía está diseñada para que domines Microsoft Access desde los conceptos fundamentales hasta el desarrollo de aplicaciones robustas. Aprenderás a estructurar datos, automatizar procesos y generar reportes profesionales que transformarán tu eficiencia administrativa.

Domina los datos con las herramientas líderes del mercado.

0 Módulos
0 Simuladores
0 Ejercicios
0 % Programación

Conceptos Clave

Fundamentos que todo gestor administrativo debe dominar

🗄

Base de Datos: Academia Online

Sistema que organiza datos en tablas relacionadas entre sí mediante llaves.

Una base de datos relacional almacena la información en tablas (como hojas de cálculo) que se conectan entre sí a través de llaves primarias y foráneas. Esto elimina la redundancia y garantiza que los datos sean consistentes. Ejemplo: una tabla CLIENTES se conecta con PEDIDOS a través del campo ID_CLIENTE.

📐

Normalización

Proceso de estructurar tablas para eliminar redundancias y anomalías de datos.

La normalización sigue formas normales (1FN, 2FN, 3FN) para organizar los datos correctamente. En términos simples: cada tabla debe hablar de una sola cosa, cada campo debe ser atómico (sin listas), y los datos no clave deben depender sólo de la llave primaria.

  • 1FN: Sin grupos repetitivos
  • 2FN: Sin dependencias parciales
  • 3FN: Sin dependencias transitivas
🔗

Integridad Referencial

Regla que garantiza que las relaciones entre tablas siempre sean válidas.

La integridad referencial asegura que no puedas tener un ID_CLIENTE = 999 en la tabla PEDIDOS si ese cliente no existe en CLIENTES. Es como un contrato entre tablas: si el dato padre no existe, el dato hijo no puede existir.

Beneficio: Evita datos huérfanos y mantiene la consistencia del sistema.

Modelo Estrella

Arquitectura de datos para análisis: una tabla central rodeada de dimensiones.

El modelo estrella tiene una Tabla de Hechos central (las transacciones: ventas, pedidos) rodeada de Tablas de Dimensión (Clientes, Productos, Fechas, Regiones). Esto optimiza las consultas analíticas y es el corazón de Power BI.

🔄

ETL

Extract, Transform, Load: el proceso de llevar datos desde su origen hasta el análisis.

Extraer datos de múltiples fuentes (Excel, CSV, bases de datos).
Transformar: limpiar, unificar formatos, eliminar duplicados, calcular columnas.
Loading: cargar los datos ya depurados al modelo de datos para análisis.

Power Query es la herramienta ETL por excelencia para gestores sin programación.

Administrar vs. Analizar

Dos perspectivas distintas pero complementarias de los datos.

Administrar datos = garantizar que estén correctos, completos y organizados (Access, SQL).
Analizar datos = extraer significado, tendencias y decisiones de los datos (Power BI, dashboards).

El Tecnólogo en Gestión Administrativa necesita ambas habilidades para ser competitivo.

Módulo 1

Estructura de Datos

Microsoft Access 2024 / 365 · Tablas · Relaciones · Integridad Referencial

Access Header Visual

¿Qué es Microsoft Access 2024 / 365?

Access es un SGBD Relacional (Sistema de Gestión de Bases de Datos). Relacionales (RDBMS) de la suite de Microsoft 365 diseñado para el entorno empresarial no técnico. Permite crear, organizar y consultar datos estructurados utilizando la última tecnología del motor relacional ACE.

💡

Access es ideal para el gestor administrativo porque combina una interfaz visual amigable con un motor relacional potente (ACE/Jet).

Componentes Fundamentales

📋
Tabla

Colección de registros del mismo tipo. Como una hoja de cálculo con estructura definida.

📝
Registro (Fila)

Una instancia completa de la entidad. Ej: los datos de UN cliente específico.

🏷
Campo (Columna)

Un atributo de la entidad. Ej: Nombre, Apellido, NIT, Teléfono.

🔑
Llave Primaria

Identificador único e irrepetible de cada registro. Ej: ID_CLIENTE.

Tipos de Datos en Access

🔢AutonuméricoID autoincremental (ideal para PK)
📝Texto cortoHasta 255 caracteres
📄Texto largoDescripción extensa
🔢NúmeroEntero, largo, decimal
💰MonedaValores monetarios con decimales
📅Fecha/HoraFechas y horas
Sí/NoValores booleanos
🔗HipervínculoURLs y rutas de archivos
🛠️
Ejercicio Paso a Paso: Tu Primera Tabla "Inventario"

Vamos a crear la estructura base para controlar los activos de una oficina.

  1. Haz clic en la pestaña Crear y selecciona Diseño de tabla.
  2. Crea los siguientes campos:
    • ID_Activo (Autonumérico) → Haz clic derecho y selecciona Clave principal.
    • Nombre_Articulo (Texto corto).
    • Fecha_Compra (Fecha/Hora).
    • Precio_Unitario (Moneda).
    • En_Uso (Sí/No).
  3. Guarda la tabla con el nombre tbl_Inventario.

Meta: Al finalizar, habrás definido el "plano" donde se guardará toda la información de activos.

El Ecosistema Access: 4 Pilares Fundamentales

A diferencia de Excel, que mezcla datos y presentación, Access separa estrictamente la estructura de datos de cómo interactuamos con ellos. Esto se logra mediante 4 objetos principales:

🗃️ 1. Tablas (Los cimientos) Donde se almacena la información real. Sin tablas, la base de datos está vacía. Aquí se definen los campos, tipos de datos y relaciones.
🔍2. ConsultasPreguntas que le hacemos a las tablas para filtrar, unir o calcular datos específicos (Ej: "Ventas del mes").
📱3. FormulariosInterfaces visuales (pantallas) para que el usuario final ingrese o modifique datos sin tocar las tablas directamente.
📄4. InformesFormatos diseñados específicamente para imprimir o exportar a PDF resúmenes estéticos de los datos agrupados.

Propiedades Avanzadas de Campos (Blindando los Datos)

En la parte inferior de la Vista Diseño de una tabla, encontramos configuraciones críticas para evitar el clásico "GIGO" (Garbage In, Garbage Out / Entra basura, sale basura):

🎭
Máscara de Entrada

Fuerza un patrón visual específico al escribir. Ejemplo para un NIT: 000\.000\.000\-0. Obliga al usuario a ingresar los dígitos en ese formato exacto, añadiendo automáticamente los guiones.

🛡️
Regla de Validación

Restricción lógica que el dato debe cumplir para ser guardado. Ejemplo para un campo Precio: > 0. Se complementa con el Texto de validación (el mensaje de error que verá el usuario si incumple la regla).

⏱️
Valor Predeterminado

Dato que se auto-completa al crear un nuevo registro. Ejemplo útil: Poner =Fecha() o =Ahora() en un campo "FechaRegistro" ahorra trabajo y asegura consistencia.

🖌️
Formato

Solo cambia cómo se ve el dato, no cómo se almacena. Ej: Formato de Fecha Corta (dd/mm/aaaa) vs Fecha Larga (lunes, 1 de enero de 2024).

🎯
Ejemplo Guiado: Regla de Validación

Supongamos que al crear la tabla EMPLEADOS, queremos evitar que, por error de tipeo, se ingrese un salario negativo o inferior a la ley.

  1. En la Vista Diseño de la tabla, selecciona el campo SalarioBase (Tipo: Moneda).
  2. En la sección inferior Propiedades del campo, ubícate en la fila Regla de validación.
  3. Escribe la expresión lógica de control: >= 1300000.
  4. En la fila de abajo, Texto de validación, escribe el mensaje de error personalizado: "El salario base no puede ser menor al mínimo legal de $1.300.000."

Resultado Práctico: Al intentar ingresar 1200000 en la Vista Hoja de Datos, Access bloqueará la acción inmediatamente mostrando tu mensaje personalizado, ¡blindando así tu información administrativa!

ETL Básico: Importar vs. Vincular Datos Externos

Access es frecuentemente el "puente" entre archivos planos y un sistema robusto. Tienes dos formas de llevar datos de Excel (.xlsx) o de texto (.csv) hacia Access:

📥 Importar (Copiar Datos) Crea una tabla nueva dentro de Access copiando la data original. La conexión se rompe: si cambias el Excel original, Access no se entera. Access aísla la tabla y puedes modificarla/crear relaciones sin problema.
🔗 Vincular (Tabla Dinámica) Crea una "ventana" hacia el archivo original. La tabla vive en Excel, pero la observas desde Access. Si editas en Access, cambia en Excel y viceversa. No puedes cambiar el tipo de datos ni crear ciertas PK en tablas vinculadas.
💡

Boletín del Gestor: Usa "Importar" cuando Access será el nuevo dueño de los históricos. Usa "Vincular" cuando deba coexistir con sistemas legados que la empresa sigue alimentando en Excel.

🔗 ¿Qué es una Relación entre Tablas?

Una relación es el vínculo lógico que une dos tablas mediante un campo común. Permite que la base de datos trate los datos de múltiples tablas como una sola fuente de información coherente. En Access, las relaciones se definen visualmente en el panel "Relaciones" (Herramientas de base de datos → Relaciones).

🧠

Regla de oro: Una relación siempre une la Llave Primaria (PK) de una tabla con la Llave Foránea (FK) de otra. La FK es una copia del campo PK de la tabla padre, almacenada en la tabla hijo.

📗 Relación UNO A MUCHOS (1:N) — La más común

Definición: Un registro de la tabla A puede estar relacionado con uno o varios registros de la tabla B, pero cada registro de B pertenece a uno y solo un registro de A.

🎯 Ejemplo Real Un CLIENTE puede tener muchos PEDIDOS, pero cada PEDIDO pertenece a un solo CLIENTE
👤Tabla PADRE (1)CLIENTES con PK: ID_CLIENTE
🛒Tabla HIJO (N)PEDIDOS con FK: ID_CLIENTE
🔑Campo que uneID_CLIENTE (PK en Clientes = FK en Pedidos)
Símbolo en AccessAccess muestra "1" en la tabla padre y "∞" en la hijo
🔗
Ejercicio: Configurar Relación e Integridad
  1. Cierra todas las tablas abiertas. Ve a Herramientas de base de datosRelaciones.
  2. Agrega las tablas Clientes y Pedidos.
  3. Arrastra el campo ID_Cliente de la tabla Clientes y suéltalo sobre el mismo campo en Pedidos.
  4. En la ventana que aparece, marca la casilla Exigir integridad referencial.
  5. Haz clic en Crear.

Verificación: Si aparece una línea con un "1" y un "∞", ¡felicidades! Has blindado tu base de datos contra errores de coincidencia.

💡

¿Por qué usar 1:N? Porque evita la repetición masiva de datos. Sin esta relación, tendrías que escribir el nombre y NIT del cliente en CADA pedido — lo que genera inconsistencias y desperdicia espacio. Con 1:N solo guardas el ID_CLIENTE en la tabla de pedidos y Access sabe quién es automáticamente.

Otros ejemplos cotidianos de 1:N:

  • 📚 Un PROVEEDOR suministra muchos PRODUCTOS
  • 💼 Un EMPLEADO gestiona muchas VENTAS
  • 🏢 Un DEPARTAMENTO tiene muchos EMPLEADOS
  • 📋 Un PROYECTO tiene muchas TAREAS

📘 Relación MUCHOS A MUCHOS (N:M) — La más potente

Definición: Un registro de la tabla A puede relacionarse con muchos registros de la tabla B, y al mismo tiempo, un registro de B puede relacionarse con muchos de A.

⚠️

Limitación de Access: Las bases de datos relacionales — incluyendo Access — NO permiten crear una relación N:M directamente entre dos tablas. La solución es crear una Tabla Intermedia (también llamada tabla de unión, tabla pivote o tabla puente) que descompone la relación N:M en dos relaciones 1:N.

🎓 Ejemplo Real Un ESTUDIANTE puede inscribirse en muchos CURSOS, y un CURSO puede tener muchos ESTUDIANTES
🧑‍🎓Tabla AESTUDIANTES — PK: ID_Estudiante
📚Tabla BCURSOS — PK: ID_Curso
🔗Tabla INTERMEDIAINSCRIPCIONES — FK: ID_Estudiante + FK: ID_Curso
Campos extraFechaInscripcion, NotaFinal (datos propios de la relación)
🏆

Ventaja clave: La tabla intermedia puede tener sus propios campos que describen la relación misma. En el ejemplo de Pedidos-Productos, la tabla DETALLE_PEDIDO tiene Cantidad y PrecioVenta — datos que le pertenecen a ESA combinación específica, no al Pedido ni al Producto por separado.

Fórmula universal N:M en Access:

  • 🛒 PEDIDO ↔ PRODUCTOS → Tabla intermedia: DETALLE_PEDIDO
  • 👩‍💼 EMPLEADO ↔ HABILIDADES → Tabla intermedia: EMPLEADO_HABILIDAD
  • 🏥 MÉDICO ↔ PACIENTES → Tabla intermedia: CONSULTAS

📱 Formularios: La Cara de tu Aplicación

Los formularios son la interfaz de usuario (UI) de una base de datos Access. Son el puente entre el usuario (que no necesita ni debe ver las tablas crudas) y los datos subyacentes. Un buen formulario previene errores de digitación y acelera el trabajo diario.

La Curva de Aprendizaje: Asistente vs. Diseño

Asistente de Formularios Rápido y automático. Access crea el formulario basándose en los campos que elijas. Ideal para "borradores" o vistas rápidas, pero con un diseño visual rígido.
📐 Vista Diseño (Nivel Pro) Lienzo en blanco. Tienes control total (píxel por píxel) sobre colores, tamaños, eventos y controles. Aquí es donde se construyen las aplicaciones profesionales.

Tipos de Formularios según su Estructura

🏗️ Elemento Único Muestra un registro a la vez. Ideal para el ingreso detallado de datos (ej. Ficha completa de un Empleado).
📑Varios ElementosMuestra varios registros en lista continua. Útil para catálogos cortos.
📊Hoja de DatosSe ve exactamente como una tabla o Excel. Perfecto para subformularios donde se ingresan múltiples ítems rápidamente.
🗂️Formulario DivididoArriba muestra la vista "Elemento Único" y abajo la "Hoja de Datos" sincronizada. ¡El favorito de muchos gestores!

El Secreto de los Profesionales: El 'Origen del Registro'

El Origen del Registro (Record Source) es la propiedad más importante. Le dice al formulario de dónde sacar los datos.

⚠️ Error de Novatos: Usar solo Tablas Conectar un formulario directamente a una Tabla carga todos los registros a la vez en la memoria, lo que vuelve la aplicación lenta en red.
💡 Buena Práctica: Usar Consultas Conectar el formulario a una Consulta. Las consultas permiten filtrar, ordenar e incorporar campos calculados antes de que la información llegue a la pantalla del usuario. Además, mejoran drásticamente el rendimiento en red.

Controles UI (La Barra de Herramientas de Diseño)

En la Vista Diseño usamos "controles" para interactuar con los datos. Estos son los imprescindibles:

🏷️
Etiqueta (Label)

Texto estático. Se usa para poner títulos o indicaciones al usuario. (Ej: "Ingrese su nombre:").

📝
Cuadro de Texto (Textbox)

Donde el usuario escribe o ve información. Suele estar enlazado a un campo de la tabla ("independiente" vs "dependiente").

🔽
Cuadro Combinado (Combobox)

Una lista desplegable. ¡Crucial para las Llaves Foráneas (FK)! Permite escoger "Colombia" en vez de memorizar que su ID es "57".

🔘
Botón de Comando

Acciones con un clic: Guardar, Eliminar, Imprimir PDF, Cerrar formulario.

Propiedades Vitales del Formulario (Hoja de Propiedades)

Por último, para que tu app se comporte como software "de verdad", debes ajustar la Hoja de Propiedades (F4) → Pestaña "Formato" y "Datos":

  • Emergente (Pop-up) = Sí: El formulario "flota" sobre la base de datos principal, dándole un aire de aplicación independiente.
  • 📌 Modal = Sí: Obliga al usuario a cerrar el formulario actual antes de hacer clic en cualquier otra parte de Access.
  • 🔒 Permitir Ediciones/Eliminaciones = No: Bloquea un formulario para que sea estrictamente de solo lectura, protegiendo datos históricos.
  • Entrada de Datos = Sí: Abre el formulario totalmente en blanco, listo para añadir nuevos registros, sin cargar primero todo el historial anterior.
🛠️

Guía Maestra: Operaciones CRUD en Access

Domina la gestión de datos paso a paso

El término CRUD proviene del inglés: Create, Read, Update, Delete. En Access, los formularios son la herramienta perfecta para replicar estas operaciones sin ver una sola celda de tabla.

1. CREATE (Crear)

Objetivo: Añadir un nuevo registro a la base de datos.

  • Paso A: Haz clic en el icono '*' de la barra de navegación inferior.
  • Paso B (Pro): Crea un botón de comando → Usar Asistente → Operaciones con registros → Agregar nuevo registro.
2. READ (Leer / Consultar) 🔍

Objetivo: Buscar y visualizar información existente.

  • Paso A: Usa las flechas de navegación en la parte inferior del formulario.
  • Paso B: Presiona Ctrl + B para abrir el cuadro de búsqueda rápida sobre cualquier campo.
3. UPDATE (Actualizar) 📝

Objetivo: Modificar datos de un registro ya guardado.

  • Paso A: Simplemente escribe sobre el campo que deseas cambiar.
  • Paso B: Access guarda automáticamente al cambiar de registro, pero puedes crear un botón de "Guardar registro" para mayor seguridad visual.
4. DELETE (Borrar) 🗑️

Objetivo: Eliminar permanentemente un registro.

  • Paso A: Selecciona el registro y presiona la tecla Supr.
  • Paso B (Seguro): Botón de comando → Operaciones con registros → Eliminar registro. Access te pedirá confirmación antes de borrar.
⚠️

¡Cuidado! La operación DELETE es irreversible en Access. Asegúrate siempre de configurar reglas de validación o confirmaciones en tus botones para evitar pérdidas accidentales de datos.

🏥

Casos Prácticos: Gestión de Hospital

Aterricemos el CRUD a la realidad de una clínica médica:

1. CREATE Form: Médicos
Alta Médica

Escenario: Un nuevo Cardiólogo entra a trabajar.

Acción: Abres el formulario Frm_Medicos, haces clic en el botón "Nuevo Registro" (icono `*`) e ingresas su Nombre, Especialidad y Teléfono. Access guarda el registro automáticamente al cambiar de campo.

2. READ Form: Pacientes
🔍
Búsqueda de Paciente

Escenario: Un paciente llama pero solo recuerdas su apellido "Martínez".

Acción: En Frm_Pacientes, presionas Ctrl + B sobre el campo Apellido, eliges "Coincidir en cualquier parte del campo". Access lista todos los Martínez de la base de datos.

3. UPDATE Form: Inventario
📝
Ajuste de Stock

Escenario: Llega un cargamento de 500 Paracetamol.

Acción: Buscas el medicamento (READ), haces clic en la celda Stock Actual, borras el número viejo y pones el nuevo. Al cerrar el formulario, el Update queda registrado.

4. DELETE Form: Equipos
🗑️
Baja de Equipo

Escenario: Un viejo monitor de signos vitales se descompone y debe salir del sistema.

Acción: Seleccionas el registro en la barra lateral del formulario y oprimes Supr.

⚠️ Tip de Integridad: Si dejas el equipo registrado para historial, mejor usa un UPDATE cambiando su estado a "Baja".

💻

Bajo el Capó: El Código SQL Invisible

Access realiza "Magia Visual", pero en fondo ejecuta código SQL real. Aquí tienes la traducción exacta de lo que hiciste gráficamente en los 4 casos anteriores usando lenguajes universales de Bases de Datos (como MySQL o SQL Server):

SQL DML (Data Manipulation Language)
-- 1. CREATE (Alta Médica)
INSERT INTO Medicos (Nombre, Especialidad, Telefono)
VALUES ('Dr. Carlos Ruiz', 'Cardiología', '555-0192');

-- 2. READ (Búsqueda de Paciente)
SELECT * FROM Pacientes
WHERE Apellido LIKE '%Martínez%';

-- 3. UPDATE (Ajuste de Stock)
UPDATE Inventario
SET Stock_Actual = 500
WHERE ID_Medicamento = 'MED-042';

-- 4. DELETE (Baja de Equipo con Peligro)
DELETE FROM Equipos
WHERE ID_Equipo = 'EQP-1099';
🔄
Access vs Motores Robustos (MySQL, PostgreSQL, SQL Server)

Microsoft Access: Diseñado para usuarios de negocio. La interfaz gráfica (Formularios e Informes) y el motor de la base de datos están fuertemente acoplados en el mismo archivo .accdb. Su principal ventaja es la extrema rapidez de desarrollo, pero su punto débil es la concurrencia (se satura si más de ~20 usuarios guardan a la vez).

Motores Tipo Servidor (MySQL / Postgre): Diseñados para ingenieros. No tienen "Formularios" por defecto. El trabajo de la Base de Datos es exclusivo almacenar información de forma atómica y soportar miles de conexiones por segundo (Netflix, Facebook). Para replicar los botones "Guardar" o "Nuevo" de Access, un equipo de Frontend (React/Vue) y Backend (NodeJS/Python) tiene que escribir manualmente sentencias SQL y mandarlas a través de APIs.

🗃 Simulador: Constructor de Tablas con Ejemplos Reales

Crea tablas como lo harías en Access Vista Diseño o utiliza los Presets inferiores para ver estructuras profesionales de Inventario y Ventas.

🔑 Nombre del Campo Tipo de Dato Requerido Descripción
Ejemplos guiados de tablas:

🔗 Constructor Visual de Relaciones

Simula el diagrama de relaciones de Access. Arrastra los campos para crear vínculos.

👆 Haz clic en una relación para ver sus propiedades

🔒 Demostración de Integridad Referencial

La Integridad Referencial es un sistema de reglas que utiliza Access para asegurarse de que las relaciones entre registros de tablas relacionadas sean válidas, y que no se eliminen ni cambien accidentalmente datos relacionados.

👤 CLIENTES (Tabla Padre)
ID_CLI Nombre
1 Ana García
2 Carlos Pérez
3 Diana López
4 Elena Rivas
5 Felipe Ruiz
Solo estos IDs están permitidos
🛒 PEDIDOS (Tabla Hijo)
ID_PED ID_CLI Monto
101 1 $85k
102 2 $42k
103 ? $??
Esperando ID...

📋 Guía Práctica Completa: Tablas y Relaciones en Access

Sigue cada paso cuidadosamente. Marca los pasos completados para rastrear tu avance.

💾

PRÁCTICA 0 — Creación de la Base de Datos

Antes de almacenar datos, necesitamos el archivo contenedor principal.

1
Abrir Access y Crear Archivo

Abre Microsoft Access. En la pantalla inicial, selecciona Base de datos del escritorio en blanco. Asigna el nombre drogueria y haz clic en Crear.

💡 En SQL puro esto equivaldría al comando CREATE DATABASE drogueria;
🗃️

PRÁCTICA 1 — Crear Tabla Producto (Vista Diseño)

La Vista Diseño es el método profesional: te permite definir cada campo con precisión antes de ingresar datos, equivalente a CREATE TABLE Producto.

1
Abrir Vista Diseño

En la cinta de opciones, ve a la pestaña Crear → haz clic en Diseño de tabla. Se abrirá una cuadrícula vacía con tres columnas: Nombre del campo, Tipo de datos y Descripción.

💡 NO uses "Tabla" desde la pestaña Inicio — esa abre la vista Hoja de datos, que es menos profesional para definir estructura.
2
Definir la Llave Primaria (PK)

En la primera fila escribe ID_Cliente en "Nombre del campo". En "Tipo de datos" selecciona Autonumérico. Luego haz clic derecho sobre el selector de fila (▶) y elige Clave principal — o usa el botón 🔑 en la cinta. Verás el ícono de llave aparecer en esa fila.

⭐ El Autonumérico asigna IDs automáticamente (1, 2, 3...) sin que tengas que escribirlos. Nunca se repite, perfecto para PK.
3
Agregar los demás campos

En las filas siguientes agrega:

Nombre del Campo Tipo de Dato Propósito
NombreCliente Texto corto Nombre completo
NIT Texto corto Número fiscal (texto, no número)
Ciudad Texto corto Ciudad de residencia
Telefono Texto corto Teléfono (texto por guiones)
FechaRegistro Fecha/Hora Cuando ingresó al sistema
⚠️ El NIT y el Teléfono usan Texto corto aunque parezcan números, porque nunca harás operaciones matemáticas con ellos y pueden tener guiones o espacios.
4
Configurar Propiedades de Campo (Panel Inferior)

Al hacer clic en cualquier campo, el panel inferior muestra propiedades avanzadas. Las más importantes:

Tamaño del campo: Para Texto corto, define el máximo de caracteres (ej: 50 para NombreCliente).
Requerido: Cambia a para campos obligatorios (ej: NombreCliente no puede quedar vacío).
Indexado: Si buscas frecuentemente por ese campo, actívalo para acelerar consultas.
Valor predeterminado: Puedes poner =Fecha() en FechaRegistro para que se llene automáticamente hoy.
5
Guardar la Tabla

Presiona Ctrl + S o cierra la pestaña. Access te pedirá un nombre — escribe CLIENTES (mayúsculas por convención). Haz clic en Aceptar. La tabla aparecerá en el Panel de Navegación izquierdo.

✅ ¡Primera tabla creada! Esto equivale a terminar de crear tu CREATE TABLE Producto en base de datos. Repite el proceso siempre que necesites nuevas tablas.
🔗

PRÁCTICA 2 — Crear una Relación 1:N con Integridad (Frutas)

Aprenderemos a conectar dos tablas (TipoFruta y Fruta) para evitar registros huérfanos.

0
Preparar las Tablas Base

Antes de relacionar, asegúrate de tener creadas estas dos tablas en Vista Diseño:

  • Tabla TipoFruta: Crea un campo idTipo (Autonumeración, Clave Principal) y descripcionTipo (Texto corto).
  • Tabla Fruta: Crea un campo idFruta (Autonumeración, Clave Principal), nombreFruta (Texto corto) y el más importante: idTipoFruta (Tipo de dato: Número).
⚠️ CRÍTICO: El campo que recibe la llave foránea (idTipoFruta) NO puede ser Autonumérico, debe ser Número (tamaño Entero largo) para que coincida con el Autonumérico original.
2
📌

Preparación de la tabla PEDIDOS: Crea la tabla PEDIDOS con Vista Diseño y agrega estos campos: ID_Pedido (Autonumérico, PK), ID_Cliente (Número · Entero largo), FechaPedido (Fecha/Hora), TotalPedido (Moneda). El campo ID_Cliente en PEDIDOS es la clave foránea que enlazará con CLIENTES.

1
Abrir el Panel de Relaciones

En la cinta de opciones, ve a la pestaña Herramientas de base de datos → haz clic en Relaciones. Se abrirá un panel en blanco (o con tablas previas si ya habías trabajado). Cierra todas las tablas antes de abrir Relaciones.

2
Agregar las Tablas al Panel

En el cuadro "Mostrar tabla" que aparece automáticamente, haz doble clic sobre CLIENTES y luego sobre PEDIDOS. Haz clic en Cerrar. Verás ambas tablas en la zona superior con una línea de unión entre ellas.

💡 Puedes reposicionar las tablas dentro del panel arrastrándolas por su barra de título para que queden ordenadas.
3
Crear el Vínculo (Arrastrar campos)

Este es el paso clave. Haz clic sobre ID_Cliente en la tabla CLIENTES (no sueltes el mouse) y arrástralo hasta el campo ID_Cliente en la tabla PEDIDOS. Cuando sueltes, aparecerá el cuadro de diálogo "Modificar relaciones".

⚠️ Siempre debes arrastrar desde la tabla PADRE (CLIENTES, lado "1") hacia la tabla HIJO (PEDIDOS, lado "N"). Si lo haces al revés funcionará, pero la convención es padre → hijo.
4
Configurar Integridad Referencial

En el cuadro "Modificar relaciones" verás tres opciones importantes:

✅ Exigir integridad referencial: SIEMPRE actívala. Garantiza que no puedas agregar un pedido con un ID_Cliente que no exista en CLIENTES.
Actualizar en cascada campos relacionados: Si cambias el ID de un cliente en CLIENTES, automáticamente se actualiza en todos sus pedidos.
Eliminar en cascada registros relacionados: Si eliminas un cliente, elimina también todos sus pedidos. Úsalo con precaución.

Haz clic derecho sobre la línea de unión y selecciona Exigir integridad referencial. Luego haz clic en el botón Crear. Verás una línea que une las dos tablas con "1" en el lado de CLIENTES y "∞" en el lado de PEDIDOS.

5
Guardar el Diagrama de Relaciones

Presiona Ctrl + S o cierra el panel y acepta guardar. ¡La relación 1:N está creada! Ahora cuando agregues registros a PEDIDOS, el campo ID_Cliente solo aceptará valores que existan en CLIENTES.

🎯 Resultado visible: En la tabla PEDIDOS, si haces clic en el campo ID_Cliente, Access puede mostrarte una lista desplegable con los clientes existentes si configuras una Lista de búsqueda.
🔄

PRÁCTICA 3 — Modificar Estructura (ALTER TABLE)

En Access, alterar una tabla es tan sencillo como volver a la Vista Diseño.

1
Agregar un nuevo campo (ADD COLUMN)

Ejemplo: A la tabla Electrodomestico, vamos a agregar el campo de precio.

  • Abre Electrodomestico en Vista Diseño (clic derecho sobre la tabla > Vista Diseño).
  • Sitúate en la primera fila en blanco al final de tu lista de campos.
  • Escribe precio y selecciona el tipo de dato Moneda.
2
Ejemplo Completo: Modificar Joyas

Tienes la tabla Joyas(idJoya, nombreJoya). Te piden agregar idMaterial, precio, y kilates.

Abre Joyas en Vista Diseño y agrega:

  • idMaterial (Tipo: Número) -> ¡Listo para ser llave foránea!
  • precio (Tipo: Moneda)
  • kilates (Tipo: Número, en propiedades abajo pon Doble para aceptar decimales).
💾 Recuerda siempre guardar los cambios (Ctrl + S).
🔀

PARTE 3 — Crear Relación Muchos a Muchos (N:M) en Access

Caso de uso: Estudiantes y Cursos — un estudiante toma varios cursos y cada curso tiene varios estudiantes.

1
Crear las dos Tablas Principales

Crea ESTUDIANTES con los campos: ID_Estudiante (Autonumérico, PK), NombreEstudiante (Texto corto), Documento (Texto corto).

Crea CURSOS con los campos: ID_Curso (Autonumérico, PK), NombreCurso (Texto corto), Creditos (Número), Intensidad (Número).

2
Crear la Tabla INTERMEDIA (INSCRIPCIONES)

Ve a CrearDiseño de tabla y agrega estos campos:

Campo Tipo Notas
ID_Inscripcion Autonumérico 🔑 PK — Clave principal
ID_Estudiante Número 🔗 FK → ESTUDIANTES
ID_Curso Número 🔗 FK → CURSOS
FechaInscripcion Fecha/Hora Dato propio de la relación
NotaFinal Número Dato propio de la relación

Guarda la tabla como

⭐ La tabla INSCRIPCIONES "rompe" la relación N:M en dos relaciones 1:N: ESTUDIANTES (1) → INSCRIPCIONES (N) y CURSOS (1) → INSCRIPCIONES (N).
3
Primera Relación 1:N — ESTUDIANTES → INSCRIPCIONES

Abre el panel Relaciones y agrega las tres tablas. Arrastra ID_Estudiante desde ESTUDIANTES hasta ID_Estudiante en INSCRIPCIONES. Activa Exigir integridad referencial y haz clic en Crear. Verás el "1" y el "∞" entre ambas tablas.

💡
Teoría en Acción (PK a FK):

Al arrastrar la línea, estás conectando la Llave Primaria (PK) de la tabla PADRE (`ID_Estudiante` en ESTUDIANTES) con la Llave Foránea (FK) de la tabla HIJO (en INSCRIPCIONES). Esto crea la dependencia estricta 1 a Muchos.

4
Segunda Relación 1:N — CURSOS → INSCRIPCIONES

Ahora arrastra ID_Curso desde CURSOS hasta ID_Curso en INSCRIPCIONES. Activa Exigir integridad referencial y crea la relación. Ahora el panel muestra el esquema completo N:M resuelto.

🏆 Resultado final: Verás ESTUDIANTES — INSCRIPCIONES — CURSOS con líneas "1" a "∞" en cada lado. Esto permite registrar que el Estudiante #1 está inscrito en el Curso #3 y el Curso #5, y también que el Curso #3 tiene a los estudiantes #1, #4 y #7.
5
Guardar y Verificar

Guarda el diagrama (Ctrl + S). Para verificar que todo funciona, abre la tabla INSCRIPCIONES en Vista Hoja de datos e intenta agregar un registro. El campo ID_Estudiante solo aceptará IDs existentes en ESTUDIANTES, y ID_Curso solo aceptará IDs de CURSOS. Si ingresas un ID que no existe, Access mostrará un error de integridad referencial.

🎓

Resumen del patrón N:M: Siempre sigue esta fórmula: (1) Crea tabla A, (2) Crea tabla B, (3) Crea tabla INTERMEDIA con FK de A y FK de B más sus propios datos, (4) Crea relación 1:N de A a Intermedia, (5) Crea relación Intermedia. ¡Así se resuelve cualquier N:M!

📱

PARTE 4 — Ejemplo Guiado: Creando un Formulario con Cuadro Combinado

Aprende a conectar la interfaz visual con las llaves foráneas para evitar errores de digitación del usuario.

🎯

Escenario: Has creado la tabla INSCRIPCIONES (con la FK `ID_Estudiante`). Si un usuario digita el ID "5" pero el estudiante 5 no existe, habrá un error. Vamos a cambiar el cuadro de texto por un Cuadro Combinado (Lista Desplegable) para que el usuario seleccione el nombre, pero la base de datos guarde el ID invisiblemente.

1
Generar el Formulario Base

Selecciona la tabla INSCRIPCIONES en el panel izquierdo. Luego ve a la pestaña CrearFormulario. Access creará un diseño básico automáticamente. Haz clic derecho en la pestaña del nuevo formulario y selecciona Vista Diseño.

2
Eliminar el Campo Textbox Original

En el diseño, busca el cuadro de texto correspondiente a ID_Estudiante. Haz clic sobre él y presiona la tecla Suprimir. ¡Vamos a reemplazarlo por algo mucho mejor!

3
Insertar el Cuadro Combinado (Combobox)

Arriba en la pestaña "Diseño de Formulario", despliega la galería de Controles. Activa el botón de "Varita mágica" (Usar asistentes para controles). Ahora haz clic en el icono de Cuadro Combinado 🔽 y haz clic en el formulario para insertarlo.

4
Configurar el Asistente del Cuadro Combinado

El Asistente te guiará con 4 preguntas vitales. Responde así:

  • Paso 1: Selecciona "Deseo que el cuadro busque los valores en otra tabla".
  • Paso 2: ¿De qué tabla? Selecciona la tabla origen: ESTUDIANTES.
  • Paso 3: Pasa dos campos a la derecha: ID_Estudiante (para guardar) y NombreEstudiante (para que el usuario lo vea).
  • Paso 4 (El secreto): Activa la casilla "Ocultar la columna clave (recomendado)".
  • Paso 5: Selecciona "Almacenar el valor en este campo" y escoge la llave foránea: ID_Estudiante (de la tabla Inscripciones).
5
¡Verifica la Magia!

Cambia a Vista Formulario. Ahora, cuando despliegues la lista, verás los nombres de los estudiantes. Al elegir "Ana Pérez" (ejemplo), Access guardará silenciosamente su ID autonumérico subyacente asegurando la Integridad Referencial. ¡Has creado un sistema a prueba de errores!

📑

PARTE 5 — Ejemplo Guiado: Respaldando la Toma de Decisiones con Informes y Agrupación

Transforma los datos crudos en un documento profesional, listo para imprimir o enviar en PDF a Gerencia.

📊

Escenario: La gerencia solicita un Informe de Inventario Valorado agrupado por Categoría. El reporte debe mostrar el costo total de existencias por cada grupo (Electrónica, Aseo, etc.) y un Gran Total al final del documento.

1
Preparar el Origen de Datos (Record Source)

Recuerda la teoría: Un buen Informe nace de una buena Consulta. Ve a CrearDiseño de Consulta. Agrega las tablas "CURSOS", "INSCRIPCIONES" y "ESTUDIANTES". Arrastra los campos NombreCurso y NombreEstudiante a la cuadrícula inferior. Guarda esta consulta como "Q_Listado_Cursos".

2
Lanzar el Asistente para Informes

Con tu consulta nueva seleccionada en el panel izquierdo (Q_Listado_Cursos), ve a la pestaña Crear y haz clic en Asistente para Informes. Pasa todos los campos disponibles al cuadro de la derecha ("Campos seleccionados").

3
Configurar Niveles de Agrupamiento

Esta es la pantalla más crucial del asistente: "¿Desea agregar algún nivel de agrupamiento?". Selecciona NombreCurso y haz clic en la flecha >. Verás en el diagrama de vista previa cómo NombreCurso sube de jerarquía, quedando los estudiantes tabulados debajo de él.

4
Ordenar y Personalizar Diseño

En el siguiente paso, elige ordenar los registros por NombreEstudiante en modo Ascendente. Luego, elige la distribución en "Pasos" o "Bloque". ¡Esto le dará ese look corporativo profesional! Finaliza el asistente y mira tu reporte generado.

5
Toque Maestro: Totales (Vista Diseño)

Haz clic derecho en tu informe y entra a Vista Diseño. Ve al botón Agrupar y Ordenar (arriba). En la barra inferior que se abre, dale a Más > junto a NombreCurso. Cambia "sin sección de pie de página" a "con una sección de pie de página". ¡Allí puedes arrastrar un Cuadro de Texto de la galería para poner la fórmula =Cuenta([NombreEstudiante]) y mostrar el total por curso!

📦 Entregables del Módulo Access

Tu misión final. Sigue las instrucciones del proyecto integrador, genera la base de datos y adjunta tus evidencias para certificar este nivel.

🚀

Proyecto Integrador: Gestión de Suministros Hospitalarios

Aplicaremos lo aprendido para crear una base de datos robusta que controle el inventario de insumos médicos, asegurando la integridad de la data.

1
Diseño del Modelo: Suministros y Proveedores

Identifica las entidades: PROVEEDORES (NIT, Nombre, Teléfono) y INSUMOS (Código, Descripción, Precio, ID_Proveedor). Considera la relación natural (1:N).

2
Creación de Tablas y Claves

Crea ambas tablas en Access. Asegúrate de que NIT sea PK (Texto Corto) en Proveedores y Código sea PK en Insumos. Agrega ID_Proveedor (Texto Corto) como FK en Insumos.

3
Reglas de Validación Avanzadas

En Insumos, al campo Precio agrégale una Regla de Validación: >0 y un Texto: "Debe ser mayor a cero". Al Teléfono del Proveedor añádele una Máscara de Entrada: \(999\) 0000000;0;_

4
Relaciones e Integridad Referencial

Abre Herramientas de BD -> Relaciones. Arrastra NIT a ID_Proveedor. Marca "Exigir integridad referencial", "Actualizar en cascada" y "Eliminar en cascada".

5
Formulario Auto-Generado y Prueba Integral

Selecciona la tabla Proveedores, ve a Crear -> Formulario. Ingresa un proveedor. Posteriormente, intenta cargarle un insumo directamente a un proveedor que NO existe. Observa cómo Access bloquea la acción. Toma captura de pantalla del mensaje de error.

📤 Subir Evidencias a Drive
📁 TGA-Digital / Modulo 1 / Access / TuNombre /

⚡ Expresiones Condicionales en Access

Access usa la función SiInm() (equivalente a SI() de Excel) para evaluar condiciones directamente en campos calculados de consultas, formularios e informes. Su sintaxis es:

📐
SiInm(condición; valor_si_verdadero; valor_si_falso)

Ejemplo: SiInm([Precio]>=100000; "Premium"; "Estándar")

🔀 SiInm() Simple Evalúa una sola condición. Ej: SiInm([Stock]=0; "Agotado"; "Disponible")
🔀🔀 SiInm() Anidado Múltiples condiciones. Ej: SiInm([Nota]>=90;"A";SiInm([Nota]>=70;"B";"C"))
📊 SiInm() con fechas Ej: SiInm([FechaVence]<Fecha();"Vencido";"Vigente")
🔢 ElegirV() (Switch) Evalúa múltiples pares condición-resultado. Ideal para categorías: ElegirV([Ciudad]="Medellín";"Antioquia"; [Ciudad]="Cali";"Valle")
🎯
Ejercicio Guiado: Categorizar Inventario por Precio

Vamos a crear un campo calculado en una consulta que clasifique los productos por rango de precio.

  1. Abre una Consulta de Selección en Vista Diseño basada en tu tabla de productos.
  2. En una columna vacía de la cuadrícula, escribe:
    Categoria: SiInm([Precio]>=500000; "Alta Gama"; SiInm([Precio]>=100000; "Media Gama"; "Económico"))
  3. Ejecuta la consulta con F5. Verás una nueva columna «Categoria» con la clasificación automática.
  4. Guarda la consulta como Q_Categorias_Precio.

Resultado: Access clasifica cada producto automáticamente sin modificar los datos originales.

📋 Listas Desplegables: Cuadro Combinado y Cuadro de Lista

Los controles de lista son la clave para evitar errores de digitación y garantizar consistencia en los datos. Existen dos tipos principales en Access:

🔽 Cuadro Combinado (ComboBox) El usuario puede escribir o seleccionar de la lista. Ocupa una sola línea. Ideal para FKs (el usuario ve el Nombre, el campo guarda el ID).
📋 Cuadro de Lista (ListBox) Siempre visible, el usuario solo puede seleccionar. Ideal para filtros y paneles de navegación.

⚙️ Propiedades Clave de un Cuadro Combinado

📂
Tipo de origen de datos

Tabla/Consulta (datos dinámicos de la BD) | Lista de valores (valores fijos separados por ;) | Lista de campos.

🔗
Columna dependiente

Indica cuál columna se guarda en la tabla. Normalmente 1 (la clave). La otra columna (el nombre legible) puede estar oculta con ancho 0.

👁️
Número de columnas y anchos

Ej: Número de columnas: 2 y Anchos de columna: 0cm;4cm muestra solo el nombre, pero guarda el ID.

✔️
Limitar a lista

Si se establece en , el usuario solo puede elegir valores de la lista, imposibilitando la entrada de datos no válidos.

🛠️
Ejercicio: Crear una Lista Desplegable de Categorías
  1. Abre un formulario en Vista Diseño.
  2. En la pestaña Diseño, haz clic en Cuadro Combinado del panel de controles y dibuja el control en el formulario.
  3. En el asistente, selecciona «Los valores los escribiré». En la lista escribe:
    Electrónica / Aseo / Papelería / Herramientas.
  4. En Hoja de propiedades → pestaña Datos, establece Limitar a lista: Sí.
  5. Nombra el control cboCategoría y guarda el formulario.

Resultado: El usuario solo podrá elegir entre las categorías predefinidas, eliminando errores tipográficos.

🛡️ Validación de Datos: Las 4 Capas de Protección

Access ofrece múltiples mecanismos para blindar la calidad de los datos. Cada capa tiene un propósito específico y se complementan entre sí:

1️⃣ Tipo de Datos Primera barrera: un campo Número rechazará texto automáticamente. Nunca almacena datos incorrectos por tipo.
2️⃣ Máscara de Entrada Controla el formato visual mientras se escribe. Ej: \(999\) 000-0000 para teléfonos colombianos o 000\.000\.000\-0 para NIT.
3️⃣ Regla de Validación Expresión lógica que el dato debe cumplir. Access muestra el «Texto de validación» personalizado si falla. Ej: >=0 Y <=100 para notas.
4️⃣ Requerido + Indexado sin duplicados Requerido: Sí impide valores nulos. Indexado: Sí (sin duplicados) garantiza unicidad (como una PK alterna).

📌 Reglas de Validación más Usadas en Contexto Administrativo

Campo Regla Mensaje de error sugerido
Salario >=1300000 "El salario no puede ser menor al mínimo legal."
Nota >=0 Y <=100 "La nota debe estar entre 0 y 100."
FechaEntrega >=Fecha() "La fecha de entrega no puede ser en el pasado."
Stock >=0 "El stock no puede ser negativo."
Porcentaje >=0 Y <=1 "El descuento debe ser un valor entre 0 y 1."
Email Como "*@*.?*" "Ingrese un correo electrónico válido."
🎯
Ejercicio Integral: Blindar la Tabla Empleados

Abre tbl_Empleados en Vista Diseño y configura:

  1. Campo Salario (Moneda) → Regla: >=1300000 | Texto: «Salario inferior al mínimo legal».
  2. Campo Email (Texto corto) → Regla: Como "*@*.?*" | Texto: «Formato de email inválido».
  3. Campo Cedula (Texto corto, 10 chars) → Máscara: 0000000000;0;_ | Requerido: Sí | Indexado: Sí (sin duplicados).
  4. Campo FechaIngreso (Fecha/Hora) → Valor predeterminado: =Fecha().
  5. Prueba ingresando un salario de 500.000 y verifica que Access bloquee la acción con tu mensaje personalizado.

Resultado: Tu base de datos rechaza automáticamente datos incorrectos antes de que contaminen el sistema.

CINTA: CREAR > GRUPO: FORMULARIOS

🛠️ Manual Maestro de Creación de Formularios

Microsoft Access ofrece 6 formas fundamentales de iniciar un formulario. Cada una tiene un "momento de gloria" dependiendo de si buscas velocidad o control total.

📄 Instantáneo
1. Formulario (Simple) Genera un formulario básico con todos los campos de la tabla seleccionada en un solo clic.
Uso: Cuando necesitas una interfaz rápida para entrar datos sin diseñar nada.
🎯 Reto: Selecciona tbl_Clientes y pulsa este botón. ¡Ya tienes tu primer formulario!
📐 Nivel Experto
2. Diseño del Formulario Abre un lienzo en blanco total en Vista Diseño. Tú arrastras cada campo y control.
Uso: Para formularios complejos, menús principales o tableros de control (Dashboards).
🎯 Reto: Crea un formulario vacío y añade un "Título" desde la pestaña Diseño.
Vista Presentación
3. Formulario en Blanco Similar al anterior, pero abre en Vista Presentación. Puedes ver datos reales mientras diseñas.
Uso: Ideal para ajustar tamaños de cuadros basándote en el contenido real de los registros.
🪄 El Favorito
4. Asistente (Wizard) Te guía paso a paso: elige qué campos quieres, qué tabla y qué distribución usar.
Uso: El equilibrio perfecto entre rapidez y personalización. Permite mezclar campos de varias tablas.
🎯 Reto: Usa el asistente para crear un formulario que SOLO tenga Nombre y Email.
🧭 Estructura
5. Navegación Crea un Menú de Pestañas (Horizontal o Vertical) para agrupar varios formularios en uno solo.
Uso: Para organizar una base de datos grande. Un menú arriba para: Clientes, Ventas, Reportes.
🎭 Varios tipos
6. Más Formularios Incluye el potente Formulario Dividido (ver ficha arriba y lista abajo al mismo tiempo).
Uso: Selecciona "Formulario dividido" para buscar registros en una lista y editarlos arriba.

🤔 ¿Cuál botón elijo para mi proyecto?

Si mi objetivo es... La mejor opción es... Dificultad
Solo ver datos rápido 1. Formulario
Elegir campos de varias tablas 4. Asistente ⭐⭐
Crear un "Menú Principal" 5. Navegación / 2. Diseño ⭐⭐⭐⭐
Listas de búsqueda rápida 6. Formulario Dividido ⭐⭐

📱 Formularios Avanzados: Más Allá del Asistente

Los formularios son la interfaz de usuario de Access. Permiten al personal administrativo ingresar, modificar y consultar datos de forma segura sin tocar las tablas directamente.

📑 Formulario Simple Muestra los campos de un solo registro a la vez. Ideal para captura de datos individual (ej: registrar un empleado).
📋 Formulario Continuo Muestra múltiples registros con el mismo diseño. Perfecto para revisar listas (ej: lista de pedidos pendientes).
🏠📑 Formulario Principal/Sub Un formulario «padre» (ej: CLIENTE) que contiene un subformulario «hijo» (PEDIDOS de ese cliente). Refleja la relación 1:N visualmente.
🔲 Formulario de Navegación Menú principal de la aplicación. Contiene botones con pestañas que abren otros formularios. Es el «tablero de mando» de tu BD.

🔧 Propiedades de Formulario Esenciales

🔒
Permite agregar / eliminar registros

Puedes desactivar estas propiedades en Sí/No para crear formularios de solo lectura o de solo consulta que protegen los datos históricos.

🎨
Formato Condicional

Cambia el color/fuente de un control según una condición. Ej: pintar en rojo el campo Stock cuando sea menor a 5. (Pestaña Formato → Formato condicional).

🔍
Filtros integrados

Agrega un cuadro de texto vacío y en la propiedad Filtro de su evento Al cambiar, usa una macro para filtrar el origen de registros dinámicamente.

🛠️
Ejercicio: Formulario Principal + Subformulario

Crea una pantalla donde veas el cliente arriba y sus pedidos abajo.

  1. Selecciona la tabla CLIENTESCrearFormulario. Access genera el formulario principal.
  2. Abre el formulario en Vista Diseño. En la pestaña Diseño, arrastra el control Subformulario/Subinforme hacia la sección de detalles.
  3. El asistente preguntará qué tabla usar como subformulario: elige PEDIDOS.
  4. Access detectará automáticamente el vínculo por ID_Cliente. Confirma y guarda con el nombre frm_ClienteConPedidos.
  5. Prueba navegando entre clientes: el subformulario mostrará solo los pedidos del cliente activo.

🧮 Expresiones y Campos Calculados

Las expresiones en Access son fórmulas que combinan campos, funciones y operadores para calcular valores sin duplicar datos. Se usan en consultas, formularios e informes.

📅 Funciones de Fecha Fecha() → hoy | Año([FechaContrato]) → extrae el año | DifFecha("aaaa",[FechaIngreso];Fecha()) → años de antigüedad.
🔡 Funciones de Texto MayúsD([Nombre]) → capitaliza | Izq([Cedula];3) → primeros 3 dígitos | [Nombre] & " " & [Apellido] → concatenar.
🔢 Funciones Matemáticas [Precio]*[Cantidad] → subtotal | [Subtotal]*1.19 → con IVA | Redondear([Precio];0) → sin decimales.
📊 Funciones de Agregado En informes y consultas agrupadas: Suma([Total]), Promedio([Nota]), Conteo([ID]), Máx([Salario]).
💡
El Constructor de Expresiones

Access incluye una herramienta visual para escribir expresiones sin memorizar sintaxis. Haz clic en el botón «...» en cualquier propiedad de campo o en la cuadrícula de diseño de consultas. El constructor muestra todas las funciones disponibles organizadas por categoría.

🎯
Ejercicio: Consulta de Antigüedad Laboral
  1. Crea una Consulta de Selección basada en tbl_Empleados.
  2. Agrega los campos NombreCompleto, Cargo y FechaIngreso.
  3. En una columna vacía, crea el campo calculado:
    Antigüedad_Años: DifFecha("aaaa",[FechaIngreso];Fecha())
  4. En otra columna:
    Estado_Laboral: SiInm([Antigüedad_Años]>=5;"Veterano";SiInm([Antigüedad_Años]>=1;"Activo";"Nuevo"))
  5. Ejecuta con F5 y guarda como Q_Antigüedad_Empleados.

⚙️ Macros: Automatización sin Código

Las macros son secuencias de acciones predefinidas que Access ejecuta al ocurrir un evento (clic en un botón, apertura de formulario, etc.). Son el puente entre Access y la automatización sin programar VBA.

🖱️
AbriFormulario / AbrirInforme

Las acciones más comunes. Abren un formulario o informe, opcionalmente con un filtro. Ej: abrir el formulario de pedidos filtrando solo los pendientes.

🔍
BuscarRegistro / BuscarSiguiente

Permite buscar dinámicamente un registro específico. Útil para crear barras de búsqueda en formularios.

💾
GuardarRegistro / Actualizar

Fuerza el guardado del registro actual sin cerrar el formulario. Ideal para botones «Guardar» personalizados que den confirmación visual al usuario.

📢
CuadroDeMensaje (MsgBox)

Muestra mensajes personalizados de confirmación o alerta. Ej: «¿Está seguro de eliminar este registro?» con botones Sí/No antes de ejecutar una acción.

🏁
Macro AutoExec

Si creas una macro con el nombre exacto AutoExec, Access la ejecuta automáticamente al abrir la base de datos. Úsala para mostrar el menú principal al inicio.

🔔
EstablecerValor

Cambia el valor de un control en tiempo de ejecución. Ej: al seleccionar una categoría, limpiar automáticamente el campo de subcategoría relacionado.

🛠️
Ejercicio: Botón para Abrir Informe con Filtro
  1. Abre tu formulario principal en Vista Diseño.
  2. Agrega un Botón de comando desde el panel de controles.
  3. En el asistente, selecciona la categoría «Informe de aplicación» → acción «Vista previa del informe». Elige tu informe de inventario.
  4. Si el asistente no está disponible, ve a la propiedad «Al hacer clic» del botón → selecciona «Generador de macros» → agrega la acción AbrirInforme.
  5. En la propiedad «Condición WHERE» puedes agregar un filtro dinámico:
    [Categoria] = [Formularios]![frm_Principal]![cboCategoría]

Resultado: El botón abre el informe mostrando solo los registros de la categoría seleccionada en el formulario.

📄 Informes Avanzados: Del Dato al Documento Profesional

Los informes en Access son documentos diseñados para imprimir o exportar a PDF. Se estructuran en secciones con propósitos específicos:

📝 Encabezado del Informe Aparece solo en la primera página. Ideal para el logo de la empresa, título del documento y fecha de generación.
📋 Encabezado de Página Se repite en la parte superior de cada página. Contiene los títulos de las columnas.
📌 Encabezado de Grupo Aparece antes de cada grupo de registros. Ej: Categoría: Electrónica antes de listar todos los productos electrónicos.
🔢 Sección de Detalle Se repite por cada registro individual. Es el cuerpo del informe donde van los datos de cada fila.
Pie de Grupo Muestra subtotales y resúmenes al final de cada grupo. Ej: Total Electrónica: $4.500.000.
🏁 Pie de Informe Gran Total y resumen general. Aparece solo al final del documento completo.
💡
Técnica Profesional: Exportar a PDF automáticamente

Crea una macro con la acción ExportarConFormato, elige el tipo PDF y una ruta de guardado dinámica usando =CarpetaActual() & "\Informe_" & Formato(Fecha();"yyyymmdd") & ".pdf". Adjunta esta macro al botón de tu formulario principal para generar reportes PDF con un solo clic.

🏆
Ejercicio Integrador Final: Sistema de Inventario Completo

Aplica todos los temas vistos en esta sección para crear un mini-sistema de inventario:

  1. Validación: En tbl_Productos, agrega reglas de validación para Precio >0 y Stock >=0.
  2. Lista desplegable: En el formulario de Productos, cambia el campo Categoría por un Cuadro Combinado enlazado a una tabla tbl_Categorias con «Limitar a lista: Sí».
  3. Condicional: Crea la consulta Q_Estado_Stock con:
    Estado: SiInm([Stock]=0;"Agotado";SiInm([Stock]<5;"Crítico";"Normal"))
  4. Informe: Genera un informe agrupado por Categoría con subtotales de Stock y Valor Total (Suma([Precio]*[Stock])) en el pie de grupo.
  5. Macro: Crea un botón en el formulario principal que exporte el informe anterior a PDF automáticamente.

Entregable: Una base de datos Access funcional con formularios, consultas con condicionales, validación activa e informe exportable.

📤 Subir Ejercicio Integrador a Drive
📁 TGA-Digital / Modulo 1 / Temas-Avanzados / TuNombre /
Módulo Extra

Laboratorio SQL Puro

Aprende a comunicarte directamente con la base de datos sin interfaz gráfica.

💻

🎮 Simulador SQL Interactivo

Aprende la sintaxis armando tu propia consulta. Arrastra o haz clic en los bloques en el orden correcto para formar la sentencia.

Nivel: Principiante

🧩 Bloques Disponibles

⚙️ Tu Consulta

Haz clic en los bloques de la izquierda...

Vista de Código Real:

-- Tu código SQL aparecerá aquí
Sintaxis Correcta ✨

SELECT

Indica qué columnas queremos visualizar o extraer. (Ej: SELECT nombre o SELECT *).

FROM

Establece de qué tabla o tablas obtendremos los datos. (Ej: FROM Empleados).

WHERE

Aplica condiciones o filtros para limitar las filas devueltas. (Ej: WHERE edad > 18).

ORDER BY

Determina el criterio de ordenación de los resultados finales (ASCendente o DESCendente).

Módulo 2

Consultas y Lógica Relacional

Access QBE · Joins Gráficos · SQL Subyacente

SQL Header Visual

¿Qué es una Consulta?

Una consulta es una herramienta para extraer respuestas de tus datos. En Access, las diseñamos con el QBE (Query By Example), pero por debajo se traduce a SQL Puro.

🏢

Caso Práctico: Si tienes 10,000 registros en HISTORICO_VENTAS, una consulta te permite saber en segundos: "¿Cuánto me compró el Cliente X en el último mes?". Es el corazón del análisis de negocio.

🔍
Ejemplo: Filtros con Comodines (Like)

¿Cómo buscar todos los productos que empiecen por "Computador"?

Criterio en Access: Como "Computador*"
Equivalente SQL: WHERE Nombre LIKE 'Computador%'

El asterisco (*) o porcentaje (%) actúan como "comodines" que representan cualquier texto posterior.

🛠️
Ejercicio: Tu primera Consulta de Parámetros

Crea una consulta que pregunte qué ciudad filtrar al ejecutarse.

  1. Ve a CrearDiseño de consulta. Agrega la tabla Clientes.
  2. Baja los campos Nombre, Apellido y Ciudad.
  3. En la fila Criterios del campo Ciudad, escribe entre corchetes: [Ingrese la ciudad a buscar].
  4. Guarda y ejecuta. ¡Access te pedirá el dato antes de mostrar resultados!

Tipos de JOIN

INNER JOIN

Solo registros que coinciden en ambas tablas.

Solo clientes CON pedidos

LEFT JOIN

Todos los de la izquierda + coincidencias del lado derecho.

Todos los clientes (con o sin pedidos)
Caso Práctico: ¿Por qué no aparecen todos?

Imagina que tienes 100 Clientes, pero solo 80 han hecho Pedidos.

  • Si usas INNER JOIN: El resultado mostrará solo 80 filas (pierdes a los 20 que no han comprado).
  • Si usas LEFT JOIN: Mostrará las 100 filas. Los 20 sin pedidos aparecerán con el campo Monto en blanco (NULL).

Tip: Usa LEFT JOIN cuando quieras encontrar "quién NO ha hecho X cosa".

Vista Comparativa: QBE Visual vs SQL

Vista Comparativa QBE vs SQL

Esta imagen muestra una consulta real: Obtenemos el Nombre y Ciudad del cliente, junto con el Monto de sus pedidos, filtrando solo aquellos superiores a 500,000.

1. Selección (SELECT)

En QBE activamos el check "Mostrar". En SQL listamos los campos: C.Nombre, C.Ciudad, P.Monto.

2. Origen (FROM/JOIN)

En QBE arrastramos las tablas y creamos la línea de relación. En SQL usamos INNER JOIN con la condición ON.

3. Filtro (WHERE)

En QBE usamos la fila "Criterios". En SQL escribimos WHERE P.Monto > 500000.

4. Orden (ORDER BY)

En QBE usamos la fila "Orden". En SQL escribimos ORDER BY C.Nombre ASC.

Característica QBE (Visual) SQL (Código)
Curva de Aprendizaje Muy Baja (Intuitivo) Media/Alta (Sintaxis)
Velocidad Rápido para consultas simples Más rápido para consultas masivas
Versatilidad Limitado a la interfaz Ilimitado (Potencia total)
Estándar Propietario de Access Universal (MySQL, Oracle, etc.)
🖥 Vista QBE (Access)
CLIENTES
🔑 ID_CLIENTE
Nombre
Ciudad
PEDIDOS
🔑 ID_PEDIDO
🔗 ID_CLIENTE
Monto
Campo:Nombre
Campo:Ciudad
Campo:Monto
Mostrar:
Mostrar:
Mostrar:
💻 SQL Generado
SELECT
  C.Nombre,
  C.Ciudad,
  P.Monto
FROM
  CLIENTES AS C
  INNER JOIN PEDIDOS AS P
    ON C.ID_CLIENTE = P.ID_CLIENTE
WHERE
  P.Monto > 500000
ORDER BY
  C.Nombre ASC;

El Lenguaje SQL: DDL, DML y DQL

SQL (Structured Query Language) se divide en tres grandes categorías de comandos. Aunque Access usa QBE para no tener que escribirlos, conocerlos es vital para entender qué pasa por detrás y para usar herramientas más avanzadas como SQL Server, PostgreSQL o MySQL.

🏗️ DDL (Data Definition) Comandos para crear o alterar la estructura. Ej: CREATE TABLE, ALTER TABLE, DROP TABLE.
📝 DML (Data Manipulation) Comandos para alterar los datos. Ej: INSERT (Crear), UPDATE (Actualizar), DELETE (Borrar).
🔍 DQL (Data Query) Comandos para consultar datos sin alterarlos. Ej: SELECT (El 90% del trabajo analítico).

DML: Manipulando los Datos

Estos tres comandos son la base de la administración activa de la información.

INSERT INTO (Insertar)

Agrega nuevos registros a una tabla.
INSERT INTO Clientes (Nombre, Ciudad) VALUES ('Juan', 'Bogotá');

🔄
UPDATE (Actualizar)

Modifica registros existentes. ¡Peligro! Siempre usa WHERE.
UPDATE Productos SET Precio = 1500 WHERE ID_Producto = 5;

🗑️
DELETE (Eliminar)

Borra registros. ¡Peligro! Siempre usa WHERE.
DELETE FROM Pedidos WHERE Estado = 'Cancelado';

DQL: El Poder del SELECT

El comando SELECT tiene una estructura fundamental. Cada cláusula tiene un orden específico de ejecución.

1
SELECT (¿Qué columnas quiero?)

SELECT Nombre, Ciudad, Salario elige las columnas a mostrar. Usar SELECT * trae todas las columnas (no recomendado en producción).

2
FROM & JOIN (¿De dónde vienen los datos?)

FROM Empleados E INNER JOIN Departamentos D ON E.ID_Depto = D.ID_Depto indica las tablas origen y cómo se relacionan.

3
WHERE (¿Qué filas quiero filtrar?)

WHERE Salario > 2000 AND Ciudad = 'Medellín' filtra registro por registro antes de agrupar. Operadores: =, <, >, LIKE, IN, BETWEEN.

4
GROUP BY & Funciones de Agregación

GROUP BY Ciudad agrupa los registros con el mismo valor en esa columna. Obliga a usar funciones matemáticas para los demás datos (Ej: SUM(Salario), COUNT(ID), AVG(Salario), MAX, MIN).

5
HAVING (Filtro post-agrupación)

HAVING SUM(Salario) > 10000. A diferencia de WHERE, HAVING filtra después de que los datos han sido agrupados.

6
ORDER BY (¿Cómo los ordeno?)

ORDER BY Salario DESC ordena el resultado final (Descendente o Ascendente). Es el paso más costoso computacionalmente.

Formularios e Informes Dinámicos

Más allá de las tablas, la interfaz es lo que permite al usuario interactuar con la lógica que has creado.

Ejemplo: Subformularios

Permiten ver "un registro y sus relacionados" al mismo tiempo (ej: Un Cliente y la lista de sus Facturas).

  1. Crea un formulario para Clientes.
  2. En vista diseño, arrastra la tabla Pedidos dentro del formulario.
  3. Access detectará la relación y creará el vínculo automáticamente.

Ejercicio: Informe con Agrupación

Genera un documento profesional que sume totales por categoría automáticamente.

  • Usa el Asistente para Informes con la tabla Insumos.
  • Añade un nivel de agrupamiento por ID_Proveedor.
  • En "Opciones de resumen", marca SUM para el campo Precio.

🎮 Simulador QBE Interactivo

Construye consultas visualmente y observa el SQL que se genera en tiempo real.

📋 Guía Práctica: Consultas en Access (QBE)

Sigue cada paso y marca el check al completarlo. Construirás una consulta real que filtra pedidos mayores a $500.000.

🎯

Objetivo de la guía: Dominar el flujo real de datos: desde registrar clientes y ventas (CRUD), hasta cruzar tablas con INNER JOIN para generar reportes financieros precisos, usando tanto la interfaz visual (QBE) como SQL nativo.

🗄️

PARTE 1 — Operaciones Básicas (CRUD)

Aprende a Crear, Leer, Actualizar y Borrar registros. La base de todo sistema de información.

Ciclo de vida CRUD
CREATE READ UPDATE DELETE
1
C: CREATE (Insertar Datos — 4 Métodos)

Existen varias formas de añadir información a tu base de datos, desde la más sencilla hasta la automatizada:

Método 1: Vista Hoja de Datos (Directo)

  1. Abre la tabla CLIENTES con doble clic.
  2. Ve al final donde está el asterisco (*).
  3. Escribe los datos (ej: "Ana García") y presiona Tab o Enter para guardar.
💡
Tip Profesional:

Usa siempre los Formularios para entrada de datos manual; evita que los usuarios toquen las tablas directamente para prevenir errores de estructura.

2
R: READ (Consultar Datos — SELECT en Detalle)

Aprende a extraer información con precisión siguiendo estos niveles:

  1. Selección básica: Haz doble clic en los campos.
    SQL: SELECT Nombre, Ciudad FROM Clientes;
  2. Uso de Alias (AS): En la rejilla, escribe Amo: Nombre.
    Cambia el título de la columna sin tocar la tabla.
  3. Filtros Avanzados (WHERE): En "Criterios", usa "M*" para nombres que empiezan por M.
    Access usa * como comodín, SQL estándar usa %.
  4. Ordenación (ORDER BY): Usa la fila "Orden" para elegir Ascendente o Descendente.
🔍
Análisis de Datos:

La instrucción SELECT es el 90% del trabajo. Permite proyectar lo que necesitas y ocultar lo irrelevante. Recuerda que puedes unir tablas para obtener resultados poderosos (INNER JOIN).

Consulta Máxima:
SELECT Nombre AS Cliente, Ciudad FROM CLIENTES WHERE Ciudad = 'Madrid' ORDER BY Nombre DESC;

3
U: UPDATE (Actualizar Datos)

Para modificar información existente que ha cambiado (ej. un cliente se muda de ciudad):

  1. Abre la tabla CLIENTES con doble clic para verla en Vista Hoja de datos.
  2. Busca el registro que deseas modificar (ej. Ana García).
  3. Haz clic directamente sobre la celda que contiene el dato incorrecto o desactualizado (ej. haz clic en "Bogotá").
  4. Borra el texto antiguo escribiendo directamente sobre él el nuevo valor (ej. escribe "Medellín"). Notaras que aparece un símbolo de lápiz (✏️) en el margen izquierdo izquierdo indicando que el registro está en edición.
  5. Para guardar el cambio permanentemente, presiona Enter, tecla hacia abajo, o simplemente haz clic en cualquier otra fila. El lápiz desaparecerá confirmando el guardado.
⚠️
Regla de Oro en SQL (Update):

Si ejecutas un UPDATE en código SQL sin la cláusula WHERE, cambiarás el valor de TODAS las filas de la tabla drásticamente. Access en modo gráfico te protege de esto porque clicas una celda específica, pero en código puro es un error fatal común.

Equivalente SQL (DML):
UPDATE CLIENTES SET Ciudad = 'Medellín' WHERE ID_Cliente = 1;

4
D: DELETE (Borrar Datos)

Para eliminar registros completos que ya no son necesarios (¡con extrema precaución!):

  1. Abre la tabla donde se encuentra el registro a eliminar en Vista Hoja de datos.
  2. Identifica la fila que quieres borrar. Mueve el cursor al margen gris izquierdo (selector de registro) justo al lado de esa fila hasta que el cursor se convierta en una flecha negra apuntando a la derecha (➡️).
  3. Haz clic una vez para seleccionar toda la fila (se resaltará en otro color).
  4. Presiona la tecla Suprimir (Supr/Del) en tu teclado, o haz clic derecho sobre la fila seleccionada y elige "Eliminar registro".
  5. Access mostrará un cuadro de alerta advirtiéndote: "Va a eliminar 1 registro(s). Si hace clic en Sí, no podrá deshacer la operación...". Haz clic en solo si estás completamente seguro.
🔗
Teoría en Acción (Integridad Referencial):

¿Qué pasa si intentas borrar un CLIENTE que ya tiene PEDIDOS asignados? Si la "Integridad Referencial" está activa, Access te lo impedirá para no dejar "pedidos huérfanos". A menos que actives la opción de "Eliminación en cascada", que borraría al cliente y todos sus pedidos simultáneamente.

⚠️

¡Cuidado! A diferencia de Excel, en Access el borrado es definitivo. No existe el botón "Deshacer" (Ctrl+Z) para registros eliminados.

Equivalente SQL (DML):
DELETE FROM CLIENTES WHERE ID_Cliente = 1;

🔗

PARTE 2 — Entendiendo el INNER JOIN

¿Cómo cruzamos información de tablas distintas? Así funciona la lógica relacional.

5
El Escenario (Por qué necesitamos JOINs)

Nuestra tabla PEDIDOS solo tiene el número de cliente (ID_Cliente = 1), no su nombre ("Ana García"). Para ver un informe con "Nombre y Monto", necesitamos unir (JOIN) ambas tablas.

💡 Un INNER JOIN busca coincidencias exactas. Si un Cliente no tiene Pedidos, no aparece en el resultado. Si un Pedido no tiene Cliente (imposible por la integridad referencial), tampoco aparecerá.
6
La Línea de Conexión en QBE

Al crear una consulta y agregar CLIENTES y PEDIDOS, verás una línea que las une. Esa línea ES el diagrama del INNER JOIN. Access la dibuja si hiciste bien tus relaciones (Módulo 1).

Magia SQL Automática (INNER JOIN):

Esa simple línea visual generó todo este código estructurado por ti en Access:
FROM CLIENTES INNER JOIN PEDIDOS ON CLIENTES.ID_Cliente = PEDIDOS.ID_Cliente

🔍

PARTE 3 — Construir la Consulta Combinada

Vamos a cruzar clientes y pedidos en el entorno QBE gráfico.

7
Abrir Diseño de Consulta

En la cinta de opciones ve a la pestaña Crear → haz clic en Diseño de consulta. Se abrirá el panel QBE con dos zonas: la zona superior (tablas) y la cuadrícula inferior (campos y criterios).

💡 NO confundas con "Asistente para consultas" — ese modo limita opciones. El Diseño te da control total.
8
Agregar las Tablas al Panel

En el cuadro "Mostrar tabla" que aparece automáticamente, haz doble clic sobre CLIENTES y luego sobre PEDIDOS. Haz clic en Cerrar. Verás ambas tablas en la zona superior con la línea de unión (INNER JOIN) pre-dibujada.

📋

PARTE 4 — Seleccionar los Campos a Mostrar

Arrastrando o haciendo doble clic llevas los campos a la cuadrícula QBE.

9
Agregar campo NombreCliente (tabla CLIENTES)

Haz doble clic sobre el campo NombreCliente en la tabla CLIENTES. El campo bajará automáticamente a la primera columna de la cuadrícula QBE. Verifica que la casilla Mostrar esté marcada (✓).

💡 Alternativa: arrastra el campo desde la tabla hasta una columna vacía de la cuadrícula.
10
Agregar FechaPedido y TotalPedido (tabla PEDIDOS)

Haz doble clic sobre FechaPedido y luego sobre TotalPedido en la tabla PEDIDOS. Ambos bajarán a columnas nuevas de la cuadrícula.

⚙️

PARTE 5 — Aplicar Criterios Avanzados (El Filtro)

Los criterios filtran los datos resultantes.

11
Escribir el Criterio de Filtro

En la cuadrícula QBE, ubica la columna TotalPedido. En la fila Criterios (la fila debajo de "Mostrar"), escribe:

 > 500000

Este criterio le dice a Access: "solo muéstrame los pedidos cuyo Total sea mayor a 500.000".

⭐ Puedes combinar criterios: escribe >100000 Y <900000 para un rango. En inglés usa AND y OR si alguien te pide el SQL.
🎯
Ejemplos Guiados: Criterios Inteligentes (QBE)

El QBE nos permite filtrar datos de forma muy potente usando expresiones. Pruébalas en tu base de datos:

  • Comodines de Texto (LIKE): En la columna Ciudad escribe Como "B*". Access filtrará todas las ciudades que empiecen con "B" (Bogotá, Barranquilla). El asterisco * reemplaza cualquier cantidad de caracteres.
  • Filtro de Fechas (Rangos): En la columna FechaPedido escribe Entre #01/01/2024# Y #31/12/2024#. Los símbolos de numeral # le indican a Access que el dato es estrictamente una fecha.
  • Parámetro Interactivo: Escribe [¿Qué ciudad deseas buscar?] (con los corchetes). Al ejecutar la consulta, Access pausará y le mostrará al usuario una ventana emergente haciendo esa pregunta, filtrando por lo que el usuario responda.
12
Ejecutar la Consulta (Vista Hoja de datos)

Haz clic en el botón Ejecutar (el botón con el signo ! rojo en la cinta Diseño) o ve a InicioVistaVista Hoja de datos. Verás solo los pedidos que superan los $500.000.

✅ Si no aparecen registros, verifica que haya datos con TotalPedido mayor a 500000 en tu tabla PEDIDOS.
7
Ver el SQL que Access Generó (Bonus)

Vuelve a la Vista Diseño. Haz clic derecho sobre la pestaña de la consulta (arriba del panel) → elige Vista SQL. Verás el código equivalente:

SELECT CLIENTES.NombreCliente,
       PEDIDOS.FechaPedido,
       PEDIDOS.TotalPedido
FROM CLIENTES
  INNER JOIN PEDIDOS
    ON CLIENTES.ID_Cliente = PEDIDOS.ID_Cliente
WHERE PEDIDOS.TotalPedido > 500000;

Guarda la consulta con Ctrl + S como Q_PedidosGrandes.

📊 Progreso de la Guía QBE 0 / 12 pasos
🔍

Checklist de Entregables — Módulo 2

Sube los archivos técnicos que validan tu dominio de SQL y QBE.

💎 Criterio de Excelencia: Consultas optimizadas y uso correcto de JOINs.
Módulo 3

Integración y ETL

Power Query · Extract · Transform · Load

ETL Header Visual
🚀

¿Qué es el proceso ETL?

ETL es el acrónimo de Extract, Transform, Load. Es la columna vertebral de la inteligencia de negocios, transformando datos brutos en información estratégica para la toma de decisiones.

✨ Integridad
⚡ Automatización
📈 Escalabilidad
🛡️ Calidad

En el entorno de Gestión Administrativa, Power Query actúa como este motor, permitiendo procesar miles de registros sin escribir una sola línea de código mediante su interfaz visual y el potente lenguaje M.

El problema: Los datos administrativos suelen venir "sucios" (espacios extra, formatos de fecha inconsistentes). La solución: Un flujo ETL que limpie, valide y normalice todo automáticamente.

🧹
Ejemplo: Limpieza de Espacios "Invisibles"

¿Te ha pasado que un BUSCARV falla aunque el texto parezca igual? Suele ser por espacios al final.

Paso en Power Query: TransformarFormatoRecortar (Trim)

Esto elimina automáticamente todos los espacios al inicio y al final de cada celda en la columna seleccionada.

⚙️
Ejercicio: De Tabla "Humana" a Tabla "Base de Datos"

Si tienes meses como columnas (Ene, Feb, Mar), no puedes hacer una tabla dinámica fácil. Vamos a "Aplanar" la tabla.

  1. Carga tu Excel a Power Query.
  2. Selecciona las columnas que NO son meses (ej: Producto).
  3. Haz clic derecho y elige Anular dinamización de otras columnas.
  4. ¡Magia! Ahora tienes una columna de "Atributo" (Mes) y otra de "Valor" (Monto).

Flujo ETL Visual Premium

Paso 1
📥

EXTRAER

Captura de fuentes

  • Libros Excel / CSV
  • Bases de Datos SQL
  • Web / SharePoint
Paso 2
⚙️

TRANSFORMAR

El "Corazón" del proceso

  • Normalización de tipos
  • Limpieza de "Ruido"
  • Lógica de Negocio
Paso 3
📊

CARGAR

Destino Analítico

  • Modelo de Datos BI
  • Tablas Maestras
  • Dashboards Vivos

📋 Guía Práctica: Limpieza ETL con Power Query

Sigue cada paso y marca el check. Al finalizar tendrás un flujo ETL completo y reproducible.

🎯

Escenario: Recibes un archivo CSV con ventas. Tiene fechas en texto, columnas con dobles espacios y montos sin formato. Tu misión: limpiar y cargar al modelo analítico usando solo clics en Power Query.

📥

PARTE 1 — Extraer Datos (EXTRACT)

Conectar Power Query a tu fuente de datos y abrirlo en modo edición.

1
Abrir Power Query desde Excel o Power BI

En Excel: pestaña DatosObtener datosDe archivoDe texto/CSV. Selecciona tu archivo.
En Power BI Desktop: InicioObtener datos → elige la fuente.

⚠️ Cuando el preview muestre los datos, haz clic en Transformar datos — NO en "Cargar". Si cargas sin revisar, entran los errores al modelo.
2
Explorar el Editor de Power Query

El editor tiene 4 zonas clave que debes conocer:

Panel izquierdo (Consultas): lista de todas las consultas/tablas del modelo.
Vista central (Previsualización): los datos con formato de tabla — aquí ves errores en rojo.
Panel derecho (Pasos Aplicados): cada acción que haces se registra aquí como un paso editable.
Barra de fórmulas: muestra el código M (Power Query Formula Language) de cada paso.
🔧

PARTE 2 — Transformar y Limpiar (TRANSFORM)

Las operaciones más comunes en un flujo ETL real de gestión administrativa.

3
Corregir Tipos de Datos

Haz clic en el ícono del tipo (ABC / 123 / 📅) junto al nombre de cada columna para asignar el tipo correcto:

Columna Tipo incorrecto Tipo correcto
FechaVenta Texto (ABC) 📅 Fecha
MontoVenta Texto (ABC) 💰 Moneda
CantidadUnidades Decimal 1,2,3 Número entero
⭐ Si Power Query detecta errores de conversión, aparecerá "Error" en rojo en esas celdas. Puedes hacer clic derecho → Quitar errores para eliminar esas filas, o corregir el origen.
4
Limpiar Espacios y Estandarizar Texto

Haz clic derecho en la columna NombreCliente (o cualquier columna de texto) → TransformarRecortar. Luego aplica Limpiar para eliminar caracteres no imprimibles. Por último, aplica Poner en mayúsculas cada palabra para estandarizar nombres propios.

💡 Fíjate cómo cada clic agrega un nuevo paso en "Pasos Aplicados" a la derecha. Si cometes un error, solo borra ese paso con la X — no tienes que empezar de cero.
5
Eliminar Duplicados y Filas en Blanco

Para duplicados: selecciona la columna clave (ej. ID_Venta) → pestaña InicioQuitar filasQuitar duplicados.
Para filas en blanco: InicioQuitar filasQuitar filas en blanco.

⚠️ Si quitas duplicados sobre la columna equivocada, puedes eliminar datos válidos. Siempre hazlo sobre el campo ID único.
🎯
Casos de Uso Reales: Limpieza Avanzada

Estos son dos de los trucos más usados por los analistas financieros y administrativos:

Ejemplo Guiado: Reemplazar Valores (Traducción de Códigos)

Escenario: En la columna EstadoPedido viene el código "P" y necesitas que diga "Pendiente".

Solución: Selecciona la columna → clic derecho → Reemplazar valores.... En "Valor que buscar" escribe P y en "Reemplazar con" escribe Pendiente. ¡Así de fácil arreglas miles de registros a la vez!

Ejemplo Guiado: Agregar Columna Condicional (Clasificación IF)

Escenario: Quieres crear una nueva columna "Prioridad" basada en el MontoVenta. Si es mayor a 500,000 será "Alta", sino "Normal".

Solución: Ve a la pestaña Agregar columna (arriba) → Columna condicional. Aparecerá una ventana muy intuitiva donde configuras la lógica: Si [MontoVenta] es mayor que 500000, entonces "Alta", de lo contrario "Normal". Power Query genera el código if ... then ... else por ti por detrás.

📤

PARTE 3 — Cargar al Modelo (LOAD)

Una vez limpia, la tabla se carga al entorno analítico de forma comprimida y optimizada.

6
Verificar sin Errores

Antes de cargar, revisa la barra de estado inferior de Power Query. Debe decir N filas cargadas sin mencionar errores. Si aparece "X errores", haz clic en ese texto para filtrar y ver qué filas fallan.

7
Cerrar y Aplicar

Haz clic en el botón Cerrar y aplicar (esquina superior izquierda de Power Query). Los datos limpios se cargarán comprimidos al motor VertiPaq (Power BI) o como tabla al libro de Excel. El proceso ETL queda guardado — la próxima vez solo actualizas con Actualizar todo.

🏆 ¡Felicidades! Has completado un flujo ETL real. Cada vez que tu fuente de datos cambie, Power Query repetirá todos los pasos automáticamente con solo hacer clic en Actualizar.
🔄

Proyecto Integrador: Consolidación de Nómina Multi-Sede

Simularemos el procesamiento masivo de archivos de nómina provenientes de diferentes sedes, aplicando transformaciones estructurales para unificar la información.

8
Extracción desde Carpeta

Usa Obtener datos -> Desde una carpeta. Power Query detectará todos los archivos de nómina mensuales automáticamente.

9
Combinar y Transformar Binarios

Haz clic en "Combinar archivos". Power Query creará una función personalizada para procesar cada archivo con el mismo formato.

10
Limpieza de Códigos de Empleado

Selecciona la columna Empleado -> Dividir columna -> Por delimitador (guion). Elimina la columna de texto y deja solo el ID numérico.

11
Unpivot de Conceptos de Pago

Selecciona las columnas de devengados (Sueldo, Auxilio, Horas Extra) -> Anulación de dinamización de columnas. Esto creará una tabla "larga" ideal para BI.

12
Carga Final al Modelo de Datos

Usa Cerrar y cargar en... y selecciona "Crear solo conexión" y "Agregar estos datos al Modelo de datos" para optimizar el rendimiento.

📊 Progreso de la Guía ETL 0 / 12 pasos
🧹

Checklist de Entregables — Módulo 3

Valida la automatización de tu flujo ETL y la limpieza de datos estructurales.

⚙️ Criterio de Excelencia: Pasos reversibles y tipos de datos correctos.
Módulo 4

Modelado y Visualización

Power BI · Modelo Estrella · KPIs · Dashboard Gerencial

Power BI Header Visual

¿Qué es Power BI?

Power BI es la plataforma de Business Intelligence de Microsoft. Permite importar datos, construir modelos relacionales/estrella y crear dashboards interactivos con KPIs y gráficos.

Con Power BI, el gestor administrativo puede presentar información gerencial de forma visual y dinámica, sin programar.

Indicadores Administrativos Clave

$450M
Ventas Totales
↑ 12%
1,247
Pedidos
↑ 8%
92%
Satisfacción
↑ 3%
4.2
Días promedio despacho
↓ 0.8

⭐ Tablas de Hechos

Son el "¿Qué pasó?". Almacenan métricas numéricas (ventas, horas extrás, unidades) y llaves que conectan con las dimensiones.

📐 Tablas de Dimensiones

Son el "¿Cómo pasó?". Contienen los filtros y descripciones (quién, dónde, cuándo, qué producto). Sirven para segmentar los hechos.

💡

Regla de Oro: Las dimensiones filtran los datos, mientras que los hechos se suman o promedian (agregan).

📋 Guía Práctica: Dashboard en Power BI

Sigue cada paso y marca el check. Al final tendrás un tablero gerencial funcional con KPIs, gráfico y filtros interactivos.

🎯

Objetivo: Construir un tablero de ventas en Power BI Desktop con 3 visuales: una Tarjeta KPI de ventas totales, un Gráfico de Barras por categoría y una Segmentación de datos por fecha. Todo conectado a un Modelo Estrella.

PARTE 1 — Verificar el Modelo Estrella

El modelo es la base de todo. Sin un modelo correcto, los visuales filtrarán mal o mostrarán datos incorrectos.

1
Acceder a la Vista de Modelado

En Power BI Desktop, localiza los iconos de la barra lateral izquierda y selecciona Vista de Modelo (el tercero, con forma de diagrama de flujo). Esta vista es el "mapa" que define cómo se relacionan tus datos administrativamente.

💡 Un buen gestor siempre valida que el motor de relaciones refleje la realidad del negocio antes de crear cualquier reporte.
2
Validar la Arquitectura en Estrella

Asegúrate de que tu modelo siga el estándar de industria: 1 tabla central de Hechos rodeada de tablas de Dimensiones. Esto garantiza un rendimiento óptimo y filtros coherentes.

Componente Nombre Tabla Propósito de Negocio
Hechos FACT_VENTAS Registro histórico de ventas y transacciones.
📐 Dimensión DIM_CLIENTES Atributos del cliente (nombre, ciudad, segmento).
📐 Dimensión DIM_PRODUCTOS Catálogo detallado (marca, categoría, precio).
📐 Dimensión DIM_TIEMPO Inteligencia temporal (fechas, meses, trimestres).
⚠️ La relación debe ser de 1 a varios (1:*) siempre desde la Dimensión hacia el Hecho. Un error común es tener relaciones de muchos a muchos o en sentido inverso, lo que rompe la jerarquía de filtrado.
⚖️
Cuidado con la Granularidad:

La Granularidad es el "nivel de detalle" de la tabla de Hechos (Ej. Ventas por día vs por mes). Mezclar granularidades cruzadas (ej. metas de venta mensuales vs ventas diarias) en un mismo Dashboard generará filtros rotos y totales inflados en DAX. Unifica tus Hechos a un nivel atómico siempre que sea posible.

📐

PARTE 2 — Crear Medidas DAX

Las medidas son cálculos dinamicos que reaccionan a cualquier filtro del dashboard.

3
Crear la Medida "Total Ventas"

En el panel Campos (derecha), haz clic derecho sobre la tabla VentasNueva medida. Escribe la fórmula:

Total Ventas = SUM(Ventas[Monto])

Presiona Enter. La medida aparecerá con el ícono de calculadora (∫) en la tabla Ventas.

⭐ Diferencia clave: un campo numérico sumado directamente ignora filtros de fechas y segmentaciones. Una Medida DAX siempre respeta el contexto de filtro — por eso siempre se prefieren medidas explícitas.
📅
Ejemplo: Comparar con el Mes Anterior

¿Quieres saber si vendiste más que el mes pasado? Usa CALCULATE + DATEADD.

Ventas Mes Pasado = CALCULATE([Total Ventas], DATEADD('Calendario'[Date], -1, MONTH))

Esta medida cambia automáticamente cuando el usuario selecciona un mes en el dashboard.

4
Crear "Cantidad de Pedidos" y "Ticket Promedio"

Crea dos medidas adicionales siguiendo el mismo proceso:

Cantidad Pedidos = COUNTROWS(Ventas)

Ticket Promedio = DIVIDE([Total Ventas], [Cantidad Pedidos], 0)
💡 Usa DIVIDE(numerador, denominador, 0) en lugar del operador / para evitar errores cuando el denominador es 0.
📊

PARTE 3 — Construir los Visuales del Dashboard

Cambia a la Vista Informe (ícono de lienzo en blanco, primero de la barra izquierda).

5
Visual 1 — Tarjeta KPI (Total Ventas)

En el panel Visualizaciones (derecha), haz clic en el ícono de Tarjeta (un rectángulo con un número). En el campo Campos del panel, arrastra tu medida [Total Ventas] al área Valor del campo. Posiciona la tarjeta en la esquina superior izquierda del lienzo.

💡 Haz clic derecho en la tarjeta → Formato para cambiar el color de la fuente y el fondo. Usa el color verde (#39d0b8) para darle identidad visual.
6
Visual 2 — Gráfico de Barras por Categoría

Haz clic en un área vacía del lienzo. En Visualizaciones, selecciona Gráfico de barras agrupadas. Arrastra:

Eje Y (categorías): campo Categoria de la tabla Productos.
Eje X (valores): medida [Total Ventas].
7
Visual 3 — Segmentación de Datos por Fecha

Haz clic en área vacía del lienzo. En Visualizaciones, selecciona Segmentación de datos (Slicer). Arrastra el campo Año o MesNombre de la tabla Calendario al campo Valor. Power BI creará un filtro interactivo.

🏆 Prueba la interactividad: Haz clic en una categoría del gráfico de barras — verás cómo la Tarjeta KPI se actualiza mostrando solo las ventas de esa categoría. Esto es la interactividad cruzada (cross-filtering) de Power BI.
📈

Proyecto Integrador: Dashboard Ejecutivo de KPIs

Crearemos un reporte profesional que combine múltiples fuentes de datos, medidas DAX avanzadas y una interfaz intuitiva para la toma de decisiones gerenciales.

8
Modelado: Generar Tabla Calendario

En la pestaña Modelado -> Nueva tabla. Usa la función DAX Calendario = CALENDARAUTO(). Crea la relación 1:N con la fecha de la tabla de Ventas.

9
DAX: Cálculo de Crecimiento %

Crea una medida para el mes anterior usando CALCULATE([Total Ventas], DATEADD(Calendario[Date], -1, MONTH)). Luego calcula la variación porcentual.

10
Visualización: Matriz de Calor

Agrega un objeto visual de Matriz. Usa Categoría en filas y Mes en columnas. Aplica formato condicional de fondo (Escala de colores) a la medida Total Ventas.

11
Interactividad: Slicers de Filtro Rápido

Agrega segmentadores de datos para Sede y Vendedor. Asegúrate de que los filtros afecten a todos los visuales del reporte.

12
Finalización y Exportación

Dale formato visual (colores institucionales). Ve a Archivo -> Exportar -> Exportar a PDF para generar el entregable final.

📁 Formato de Evidencias Requeridas
Reporte Ejecutivo PDF

Archivo PDF generado con todas las visualizaciones interactivas y filtros aplicados.

PDF
Captura de la Vista de Modelo

Imagen donde se vea el esquema de estrella final con la tabla Calendario relacionada correctamente.

Imagen / Captura
📊 Progreso de la Guía Power BI 0 / 12 pasos
📊

Checklist de Entregables — Módulo 4

Tu reporte gerencial está listo. Asegúrate de cumplir con los estándares visuales.

💎 Criterio de Excelencia: Dashboard interactivo y Modelo Estrella optimizado.
☁️ Entregables subidos a Drive 0 / 5 archivos
📊 Progreso Ejercicio RRHH 0 / 5 pasos

Módulo 5: Guía Final Integrador (Access & DDL)

Aplicación práctica de conocimientos para estructuración eficiente de bases de datos según el modelo analizado funcional.

🏗️ Arquitectura de Datos (DDL)

El Lenguaje de Definición de Datos (DDL) permite establecer y/o modificar el esquema relacional central; esto es crucial para añadir, borrar o actualizar atributos de forma íntegra. En esta etapa final, consolidamos la elección de tipos de datos técnica para un rendimiento óptimo.

💡

La consistencia de tipos de datos es la garantía de integridad. Si una PK es Entero Largo, su FK debe ser exactamente Entero Largo.

📊 Matriz Técnica de Tipos de Datos

Access Uso Administrativo Propiedad Clave
Autonumeración PK Secuenciales auto-gestionadas. Incremento automático.
Texto Corto Nombres, IDs, Placas, Emails. Máx 255 (Ajustar tamaño).
Número (Ent. Largo) FKs, Cantidades, Contadores. Unión técnica perfecta.
Moneda Sueldos, Precios, Impuestos. Precisión de 4 decimales.
Fecha/Hora Check-ins, Fechas de pago. Formato estandarizado.
🎯
Reto de Consolidación:

Antes de implementar, verifica: ¿Has definido índices para las búsquedas frecuentes? ¿Estás usando 'Texto Largo' solo cuando es estrictamente necesario?

🔦
Ejercicio: Auditoría de Relaciones

Abre la ventana de Relaciones en tu proyecto final y verifica:

  • ¿Todas las llaves foráneas (FK) son de tipo Número > Entero Largo?
  • ¿Has activado Exigir Integridad Referencial en cada línea?
  • ¿Aparece el símbolo 1 y ∞ en los extremos?

Si falta el ∞, es probable que no hayas definido la PK en la tabla secundaria o los tipos no coincidan.

🔗 Relaciones Muchos a Muchos (N:M)

En el mundo real, los objetos suelen relacionarse de forma múltiple. Un aprendiz se matricula en varios cursos, y un curso tiene varios aprendices. Access/SQL no permiten esto directamente; requieren una Tabla Intermedia (Puente).

🏢 Entidad A

APRENDIZ

📚 Entidad B

CURSO

🌉 La Tabla Puente (Junction Table)

La solución técnica es crear una tercera tabla que "rompe" la relación N:M en dos relaciones 1:N.

MATRICULA (
  ID_Matricula (PK),
  ID_Aprendiz (FK),
  ID_Curso (FK),
  Fecha_Matricula
)
🔑

Llave Compuesta: A menudo, la PK de la tabla puente es la combinación de ambas FKs, impidiendo que un aprendiz se matricule dos veces al mismo curso.

🗺️ Mapa Visual de la Relación N:M

APRENDIZ
🔑 ID
📝 Nombre
MATRICULA
🔗 ID_Aprendiz
🔗 ID_Curso
📅 Fecha
CURSO
🔑 ID
📝 Nombre
La tabla central actúa como un "pivote" entre ambos extremos.

🔍 DQL: Consultas en Relaciones N:M

Para obtener los datos finales (ej: Ver qué alumnos hay en qué curso), debemos unir las 3 tablas usando dos INNER JOINs consecutivos.

SELECT 
  A.Nombre, 
  C.Nombre_Curso
FROM (APRENDIZ AS A
  INNER JOIN MATRICULA AS M ON A.ID = M.ID_Aprendiz)
  INNER JOIN CURSO AS C ON M.ID_Curso = C.ID;

💡 Lógica de Relación Intermedia

En Access, el generador de consultas visual (QBE) mostrará las tres tablas conectadas. La tabla puente es el "pivote" del flujo de información.

⚠️

Truco Pro: Si vinculas una tabla a sí misma (Reflexiva), también usas el mismo principio de DDL y tipos de datos.

📋 Misión Integrativa: El Sistema de Gestión Total

Consolida todo tu conocimiento montando un sistema relacional complejo con relaciones 1:N y N:M. Sigue cada paso con precisión quirúrgica.

🏢

ETAPA 1 — Entidades Maestras (1:N)

Definición de catálogos y arquitectura base.

1
Tabla Sedes y Departamentos

Crea la tabla Sede (idSede Autonum PK, nombreSede Texto(30)). Inserta 3 sedes (Bogotá, Medellín, Cali). Esta tabla será el origen de múltiples relaciones.

2
Tabla Instructores (FK hacia Sede)

Crea Instructor (idInst Autonum PK, nombre Texto, idSede_FK Número). Relaciona idSede -> idSede_FK con Integridad Referencial.

🧬

ETAPA 2 — El Desafío Muchos a Muchos (N:M)

Implementación técnica de la relación Aprendiz-Curso.

3
Crear Tabla Puente: Matricula_Detalle

Crea una tabla con 3 campos: ID_Matricula (Autonum), ID_Aprendiz_FK (Número), y ID_Curso_FK (Número).

4
Triple Vínculo de Integridad

En la ventana Relaciones, une:
1. Aprendiz(PK) -> Matricula(FK)
2. Curso(PK) -> Matricula(FK).
Verifica que ambas digan "Uno a Varios".

5
Refactorización: Campo Calificación

Añade CalificacionFinal (Número decimal) a Matricula_Detalle. Esto permite guardar un dato que pertenece a la unión de ambos.

🔍

ETAPA 3 — Extracción y Consultas

Generación de informes basados en el nuevo modelo.

6
Consulta de Matrícula Cruzada

Une las 3 tablas en el generador de consultas. Arrastra el nombre del aprendiz y el del curso. Access mostrará solo los alumnos inscritos.

7
Filtro de Excelente

Añade un criterio en la columna CalificacionFinal: >= 3.5. La consulta solo devolverá aprobados.

🏆
Reporte Gerencial Final

Crea un Informe basado en la consulta, agrúpalo por Sede y entrégalo como evidencia final.

🏆 Progreso del Proyecto Integrador 0 / 8 pasos

🏆 Certificación de Proyecto Final: Gestión Relacional

Para aprobar este módulo, tu proyecto debe cumplir con estándares profesionales de arquitectura de datos. Revisa el checklist de calidad antes de subir tus evidencias.

📐 Checklist de Normalización y Calidad

1FN: Átomos únicos.

2FN: Dependencia PK.

3FN: Sin transitividad.

Máscaras de Entrada.

Reglas de Validación.

Integridad Referencial.

💾

Base de Datos (.accdb)

OBJETIVO

Proyecto final con las 6 tablas normalizadas y cargadas.

Obligatorio
🗺️

Mapa Relacional

PDF

Captura de ventana 'Relaciones' con integridad activa.

Obligatorio
🔍

Dossier SQL

DOCX

Capturas de consultas con INNER JOIN y Agregación.

Recomendado
📊

Informe Gerencial

PDF

Reporte agrupado y formateado con logos de la entidad.

Nivel Pro
🎖️

¡Certificación Profesional Lista!

Habrás demostrado capacidad técnica superior en arquitectura relacional avanzada de Microsoft Access.

Estado de la Auditoría Técnica 0 / 4 evidencias

¡Formación Completada!

Has dominado los fundamentos de la Gestión de Datos Administrativa

✅ Estructura de datos con Access
✅ Consultas y lógica relacional
✅ ETL con Power Query
✅ Dashboards con Power BI
Progreso global: 0%