Cómo separar datos en Microsoft Access

Access tiene la funcionalidad integrada de separar los datos de la interfaz y es la práctica recomendada para distribuir aplicaciones. Se llama "dividir la base de datos" (database splitting).

¿Cómo funciona?

Se separa el archivo .accdb en dos partes:

Archivo Contenido Ubicación típica
Back-end (datos.accdb) Solo tablas con los datos Servidor o carpeta compartida
Front-end (app.accdb) Formularios, consultas, informes, macros, VBA PC de cada usuario

¿Es ODBC?

No exactamente. Access usa su propio mecanismo de tablas vinculadas (linked tables), que internamente usa el motor ACE/Jet, no ODBC. La conexión se almacena en el front-end apuntando al back-end mediante una ruta UNC o local.

Puedes usar ODBC si el back-end es SQL Server, MySQL, PostgreSQL, etc., pero para un back-end que sigue siendo .accdb, se usan tablas vinculadas nativas.

Cómo dividir la base de datos

Opción 1 – Asistente automático (recomendado):

  1. Abre tu base de datos en Access.
  2. Ve a Herramientas de base de datos → Bases de datos de Access → Divisor de bases de datos. (NOTA: dependerá de tu versión de Access. Esto es para Microsoft Office LTSC Profesional Plus 2024)
  3. El asistente crea automáticamente el back-end y vincula las tablas.

Opción 2 – Manual:

  1. Copia el .accdb y elimina del back-end todo lo que no sean tablas.
  2. En el front-end, elimina las tablas locales y usa Datos externos → Access → Vincular para apuntar al back-end.

Redistribuir el front-end

Para empaquetar la aplicación:

  • Distribuye solo el front-end a cada usuario.
  • Necesitan tener instalado el Access Runtime (gratuito) si no tienen Access completo.
  • Puedes crear un instalador con el Package Solution Wizard (en versiones antiguas) o simplemente comprimir el .accdb/.accde con un acceso directo.

💡 Tip: Compila el front-end como .accde (equivalente a un ejecutable) para proteger el código VBA y evitar modificaciones accidentales.

¿Cuándo sí usar ODBC?

Si en el futuro quieres migrar el back-end a SQL Server (lo más recomendable para multiusuario o datos grandes), entonces sí se usa ODBC o el conector nativo de SQL Server, y Access actúa solo como interfaz gráfica.