Usar bases de datos Microsoft Access está suponiendo un problema para todas las empresas que quieren usar un almacenamiento de archivos en la Nube.
Muchas empresas y profesionales basan parte de su organización y operativa en Access. Se trata de archivos que han venido manteniendo durante años y que han ido adaptando a sus necesidades de gestión.
Sin duda podemos decir que esta herramienta ha sido uno de los mejores productos de Microsoft de todos los tiempos. ¿Podrán seguir usando esta fantástica herramienta en la Nube?
Muchos ya han desistido. Durante años han estado compartiendo sus ficheros Access en la red de la empresa. Ahora parece que tener esos archivos en la Nube supone un problema porque los usuarios ya no se pueden conectar a la base de datos y trabajar directamente sin que se produzcan conflictos o sobrescrituras del fichero.
Por qué no funciona Access en la Nube
Decir que no funciona sin matices no es cierto.
Si que hay formas que permiten su uso en la Nube pero no son las que el usuario espera.
Todo el mundo espera subir el fichero de Access a la Nube y usarlo de la misma forma en que lo hecho durante los últimos años.
Si el archivo está compartido, los usuarios esperan poder abrirlo , guardar sus cambios y que la base de datos se actualice con los cambios.
Las bases de datos Access están diseñadas para trabajar en las redes locales, en las redes internas de las empresas. Funcionan en entornos LAN (Local Area Network).
La red interna de la empresa usa un protocolo SMB ( Server Message Block ) que permite compartir archivos o impresoras. No importa que estemos conectados por cable o por Wifi, este protocolo no tiene nada que ver con Internet.
Access no puede funcionar en Internet de la misma forma en que se comparte en una carpeta de la red interna de la empresa. Ninguna plataforma de almacenamiento en la Nube funciona igual que la red de la empresa.
A efectos prácticos, compartir una carpeta en una red interna proporciona un acceso directo al archivo como si estuviera en tu disco duro, es casi equivalente. Esto no ocurre sobre Internet, los protocolos de comunicación internos de una red son muy diferentes.
Primer intento. Usar un sincronizador como Dropbox o Drive
Obviando todos los problemas de seguridad, protección de datos o de que sea una solución adecuada para empresas. Muchos prueban lo que conocen. Intentan manejar Access con los populares sincronizadores como Dropbox o Drive.
Si se prueba de forma particular, un solo usuario, aparentemente funcionará. Se abre el fichero se hacen cambios y se subirá a la Nube.
En cuanto se comparte con otro usuario, pues aparecen los problemas propios de los sincronizadores. Se producen conflictos de archivo o copias en conflicto.
Los cambios realizados en Access nunca se guardarán sobre el propio fichero y producirán un conflicto en los siguientes casos:
- Cuando dos o más usuarios hagan cambios a la vez.
- Si se hacen modificaciones sin conexión y otro usuario ha trabajado con el archivo.
- Si simplemente el archivo está abierto en el ordenador de otro usuario. Cualquier cambio introducido por los demás provocará esta situación.
En cualquier caso, este experimento de probar Access en un sincronizador, no lo vemos como tiempo desperdiciado, se aprende a que la sincronización no es para entornos con varios usuarios.
Puede que alguien te recomiende separar las tablas de Access y poner esta parte como compartida en el sincronizador. Inicialmente parecerá que funciona pero llegará el momento en que pierdas registros y se produzca el conflicto.
Conclusión: Los sincronizadores como Dropbox, Drive no sirven para tener una base de datos Access compartida con varios usuarios.
Aquí os dejamos enlace en inglés de respuesta de Dropbox a esta cuestión: Dropbox. Sharing Access Database
Posibles soluciones para compartir Access en la Nube
[1] Usar Dataprius
Dataprius no es un sincronizador, es un sistema multi-usuario, como tal no generará conflictos de archivos. La cuestión es que no permitirá que dos personas al mismo tiempo editen la base de datos.
Si un usuario abre el archivo de base de datos y está en uso por parte de otra persona, se muestra la típica ventana de que el archivo está en uso.
[2] Usar Dataprius con MapDrive
Cuando se monta una unidad mapeada MapDrive, esta funcionará igual que una carpeta de red compartida sobre la red interna de la empresa, es SMB.
Antes explicamos que las bases de datos Access estaban diseñadas para múltiples usuarios que se conectan en la red local y que por eso no funcionaban en Internet. Pero esto es otra cosa, funciona sobre Internet pero es como si estuviera en nuestra LAN.
Pero ojo, no todo es color de rosas, aquí podemos tener un problema de velocidad. Con archivos pequeños y una muy buena conexión a Internet esta puede ser una solución magnífica. Es cuestión de probar y los chicos de Dataprius podrán ayudarte a comprobar si es la solución definitiva.
[3] Montar una VPN
Una VPN (Virtual Private Network) o red privada virtual es una solución que permite extender la red local. Es una solución costosa en cuanto a su implantación y los medios necesarios.
Mencionamos esta posible solución porque podría ser sugerida por algunos y debemos incluirla para que el artículo sea completo.
Una unidad mapeada de Dataprius no requerirá de instalaciones ni configuraciones, las comunicaciones con la Nube están cifradas de igual forma que en la VPN. La unidad mapeada proporciona la misma funcionalidad que una carpeta compartida con VPN.
Al final el problema podría ser el mismo. Hay que disponer de una muy buena conexión a Internet, la lentitud de Access al actualizarse puede hacer que estas soluciones no sean viables.
Agunos proveedores Cloud proporcionan servicios de conexión VPN. Como es una solución compleja tan solo dejamos este enlace que muestra como montar un VPN con Azure: Creación de una conexión de sitio a sitio mediante Azure Portal
[4] Un servidor Windows en la Nube
Se trata de montar un servidor Windows en Cloud.
Por temas de seguridad nunca vamos a recomendar que esto se haga con un servidor local de la empresa ni con un NAS.
Abrir servidores locales para permitir conexiones desde Internet es una temeridad y puede tener consecuencias catastróficas para la empresa, es cuestión de tiempo. Solo las grandes empresas que cuentan con un personal de seguridad permanente pueden atreverse, no sin exposición y riesgos continuos.
Dicho lo anterior. Ha de montarse un servidor en un proveedor que cuide de la seguridad del servidor por nosotros.
La idea entonces, es que podemos contratar un servidor Windows en la Nube para tener acceso a los ficheros de Access de varias formas. Hay proveedores que cumplen RGPD y dónde contratar un servidor Windows:
Fundamentalmente se tienen dos opciones.
- Montar un VPN para acceder a una carpeta compartida con Access.
- Habilitar sesiones remotas para que los usuarios se conecten.
Lo más utilizado son los escritorios remotos. Facilitamos este enlace de Clouding.io dónde explican como conectarse: Conectarte a un Servidor Windows por Escritorio Remoto
[5] Usando Servicio Sharepoint
Sharepoint es un sistema de Microsoft que permite usar documentos de Office en la Nube y otras funcionalidades de empresa. Por supuesto se tiene la posibilidad de compartir bases de datos Access aunque hay que realizar ciertas transformaciones, no es un uso directo.
En la actualidad hay dos formas de tener un servidor Sharepoint en la empresa.
- Comprar las licencias e instalarlo en un servidor Windows que ya se tiene.
- Contratar el servicio SAS que Microsoft ofrece ya en la Nube.
Aquí está el enlace con los precios: Opciones de Sharepoint Online
Como compartir bases de datos Access: Crear base de datos Access para compartir en la Web
Muchos opinamos que Sharepoint es complejo y costoso : Embarcarse en SharePoint o la sencillez de Dataprius . Por supuesto, hay muchas empresas que lo usan.
[6] Vincular base de datos a tablas en SQL Server
Esta solución consiste en mantener los formularios de Access y que las tablas se almacenen en SQL Server.
Hay que migrar las tablas a SQL Server y luego vincularlas. Suele ser un proceso sencillo porque Access es compatible con SQL Server.
En cuanto al servidor SQL hay dos opciones:
- Contratar un servidor Windows en Cloud con SQL Server
- Contratar Servidor SQL en Azure.
Usando el servicio que proporciona Microsoft Azure te liberas de todo el mantenimiento y de los temas de seguridad de un servidor Windows. El inconveniente puede ser el precio. Una base de datos única sale desde 200$ al mes aproximadamente.
Esta es sin duda una de las soluciones más potentes y viables.
Con esta solución se produce un salto cualitativo muy importante. La base de datos ahora soportará miles de conexiones y ofrecerá un alto rendimiento. Se podrá ampliar y se dispone de un mantenimiento y posibilidades dignos de las grandes empresas.
En Resumen:
Las bases de datos Access pueden conectarse a distintos orígenes de datos, no están limitadas tan solo a sus propias tablas. Se procede a migrar las tablas a SQL Server y vincular estas tablas en Access.
Los siguientes enlaces describen como se hace esto:
- Migrar una base de datos de Access a SQL Server
- How to Link an Access Database to SQL Server in Access 2016
- Vinculando Access a nuestra base de datos SQL Azure en la nube
- Migrate Access to Azure SQL Database
- Vinculación de aplicaciones de acceso a SQL Server: Azure SQL DB (AccessToSQL)
[7] Vincular base de datos a tablas en MySQL
Esta es una solución muy parecida a la anterior. La ventaja es que es más económica y versátil. Habrá que contratar un servicio de base de datos en la Nube como el de Azure o un hosting de servidor dónde instalar ese MySQL, preferiblemente un servidor Linux.
Se obtendrá un muy alto rendimiento y prestaciones, casi sin límites de usuarios y conexiones. Además, si la base de datos está en MySQL se han establecido las bases para futuras ampliaciones o desarrollos. Podemos decir que se ha realizado un importante paso de estandarización. Con MySQL se podrán montar aplicaciones mucho más fácil, por ejemplo con PHP que es uno de los lenguajes de servidor más usados del mundo.
Para vincular tablas de MySQL en Access hará falta un elemento intermedio, un conector ODBC. Este conector permitirá tener las tablas de MySQL vinculadas en Access como si de propias tablas se tratara.
Por supuesto antes de vincular las tablas hay que migrarlas a MySQL.
Los siguientes enlaces sirven de guía para esto:
- Exportar una base de datos Access a MySql
- Vincular o importar tablas de MySQL en Microsoft Access
- ¿Cómo migrar una base de datos Access a MySQL usando Workbench?
- Acceso a MySQL desde Microsoft Access
[9] Encargar una aplicación a medida
Puede que lo mejor, al final, sea encargar una aplicación basada en el modelo de gestión de la vieja base de datos Access.
Tomando en cuenta la dinámica de la base de datos una empresa de desarrollo puede construir una aplicación que cumpla con las expectativas y que esté por fin en la Nube.
Esto no es tan raro. Las empresas se encuentran con la necesidad de tener sus bases de datos en la Nube tras crecer en su modelo de negocio. Al final todas esas hojas de Excel y las bases de datos terminarán convirtiéndose en aplicaciones o creciendo hacia aplicaciones más integradas en la Nube.
Para el que tenga nociones de programación existe esta herramienta que permite integrar Access directamente y en Cloud: ScriptCase
Otras soluciones
Navegando hemos encontrado empresas que ofrecen otro tipo de soluciones para tener Access en la Nube. Casi siempre se trata de sistemas que convierten las tablas en un sistema propio sobre el que funciona una aplicación con formularios.
La mayoría de estas plataformas las ofrecen empresas de los Estados Unidos. Si las bases de datos contienen información sensible o datos personales se incumple el Reglamento General de protección de Datos RGPD.
- https://www.accessdatabasecloud.com/ (NO RGPD)
- https://www.caspio.com/ (NO RGPD)
- https://www.hyperoffice.com/es/alternativa-microsoft-access/ (NO RGPD)
Guardar archivos en la Nube con Dataprius
La entrada Bases de datos Microsoft Access en la Nube. ¿Es posible? se publicó primero en Blog de Dataprius..